1
1
package org .amahi .anywhere .server .client ;
2
2
3
+ import com .squareup .otto .Subscribe ;
4
+
5
+ import org .amahi .anywhere .bus .BusProvider ;
6
+ import org .amahi .anywhere .bus .ServerConnectedEvent ;
7
+ import org .amahi .anywhere .bus .ServerRouteLoadedEvent ;
3
8
import org .amahi .anywhere .server .Api ;
4
9
import org .amahi .anywhere .server .api .ProxyApi ;
5
10
import org .amahi .anywhere .server .api .ServerApi ;
6
11
import org .amahi .anywhere .server .header .ApiHeaders ;
7
12
import org .amahi .anywhere .server .model .Server ;
8
- import org .amahi .anywhere .server .model .ServerFile ;
9
13
import org .amahi .anywhere .server .model .ServerRoute ;
10
14
import org .amahi .anywhere .server .model .ServerShare ;
11
-
12
- import java .util .List ;
15
+ import org .amahi .anywhere .server .response .ServerRouteResponse ;
16
+ import org .amahi .anywhere .server .response .ServerFilesResponse ;
17
+ import org .amahi .anywhere .server .response .ServerSharesResponse ;
13
18
14
19
import javax .inject .Inject ;
15
20
import javax .inject .Singleton ;
@@ -49,9 +54,28 @@ private ProxyApi buildProxyApi() {
49
54
50
55
public void connect (Server server ) {
51
56
this .server = server ;
52
- this .serverRoute = proxyApi .getServerRoute (server .getSession ());
53
57
58
+ startServerConnection ();
59
+ }
60
+
61
+ private void startServerConnection () {
62
+ BusProvider .getBus ().register (this );
63
+
64
+ proxyApi .getServerRoute (server .getSession (), new ServerRouteResponse ());
65
+ }
66
+
67
+ @ Subscribe
68
+ public void onServerRouteLoaded (ServerRouteLoadedEvent event ) {
69
+ this .serverRoute = event .getServerRoute ();
54
70
this .serverApi = buildServerApi ();
71
+
72
+ finishServerConnection ();
73
+ }
74
+
75
+ private void finishServerConnection () {
76
+ BusProvider .getBus ().unregister (this );
77
+
78
+ BusProvider .getBus ().post (new ServerConnectedEvent ());
55
79
}
56
80
57
81
private ServerApi buildServerApi () {
@@ -64,11 +88,11 @@ private ServerApi buildServerApi() {
64
88
return apiAdapter .create (ServerApi .class );
65
89
}
66
90
67
- public List < ServerShare > getShares () {
68
- return serverApi .getShares (server .getSession ());
91
+ public void getShares () {
92
+ serverApi .getShares (server .getSession (), new ServerSharesResponse ());
69
93
}
70
94
71
- public List < ServerFile > getFiles (ServerShare share , String path ) {
72
- return serverApi .getFiles (server .getSession (), share .getName (), path );
95
+ public void getFiles (ServerShare share , String path ) {
96
+ serverApi .getFiles (server .getSession (), share .getName (), path , new ServerFilesResponse () );
73
97
}
74
98
}
0 commit comments