1 |
|
package com.dreamcatcher.bicycle.core; |
2 |
|
|
3 |
|
import java.io.IOException; |
4 |
|
import java.util.concurrent.ExecutorService; |
5 |
|
import java.util.concurrent.Executors; |
6 |
|
|
7 |
|
import org.json.JSONException; |
8 |
|
|
9 |
|
import android.os.Bundle; |
10 |
|
import android.os.Handler; |
11 |
|
import android.os.Message; |
12 |
|
|
13 |
|
import com.dreamcatcher.bicycle.exception.NetworkException; |
14 |
|
import com.dreamcatcher.bicycle.interfaces.IHttpService; |
15 |
|
import com.dreamcatcher.bicycle.util.Constants; |
16 |
|
import com.dreamcatcher.bicycle.util.HttpUtils; |
17 |
|
import com.dreamcatcher.bicycle.vo.BicycleNumberInfo; |
18 |
|
|
|
|
| 30,7% |
Uncovered Elements: 52 (75) |
Complexity: 25 |
Complexity Density: 0,37 |
|
19 |
|
public class HttpService implements IHttpService { |
20 |
|
private ExecutorService mExecutorService = null; |
21 |
|
private Handler mHandler = null; |
22 |
|
private final static int ALL_SUCCESS = 0; |
23 |
|
private final static int ALL_HTTP_FAILED = 1; |
24 |
|
private final static int ALL_DISCONNECT = 2; |
25 |
|
private final static int SINGLE_SUCCESS = 3; |
26 |
|
private final static int SINGLE_HTTP_FAILED = 4; |
27 |
|
private final static int SINGLE_JSON_FAILED = 5; |
28 |
|
private final static int SINGLE_DISCONNECT = 6; |
29 |
|
private final static int CHECK_VERSION_COMPLETE = 7; |
30 |
|
private final static int CHECK_VERSION_DISCONNECT = 8; |
31 |
|
private final static int CHECK_VERSION_HTTP_FAILED = 9; |
32 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (2) |
Complexity: 1 |
Complexity Density: 0,5 |
|
33 |
1
|
public HttpService(){... |
34 |
1
|
mExecutorService = Executors.newCachedThreadPool(); |
35 |
1
|
mHandler = new Handler(){ |
|
|
| 19,4% |
Uncovered Elements: 29 (36) |
Complexity: 11 |
Complexity Density: 0,31 |
|
36 |
4
|
@Override... |
37 |
|
public void handleMessage(Message msg) { |
38 |
4
|
switch (msg.what) { |
39 |
0
|
case ALL_SUCCESS: |
40 |
0
|
BicycleService.getInstance().getHttpEventListener().onAllBicyclesInfoReceived(Constants.ResultCode.SUCCESS); |
41 |
0
|
break; |
42 |
3
|
case ALL_HTTP_FAILED: |
43 |
3
|
BicycleService.getInstance().getHttpEventListener().onAllBicyclesInfoReceived(Constants.ResultCode.HTTP_REQUEST_FAILED); |
44 |
3
|
break; |
45 |
0
|
case ALL_DISCONNECT: |
46 |
0
|
BicycleService.getInstance().getHttpEventListener().onAllBicyclesInfoReceived(Constants.ResultCode.NETWORK_DISCONNECT); |
47 |
0
|
break; |
48 |
0
|
case SINGLE_SUCCESS: |
49 |
0
|
BicycleNumberInfo bicycleNumberInfo = null; |
50 |
0
|
bicycleNumberInfo = msg.getData().getParcelable(Constants.ParcelableTag.BICYCLE_STATION_INFO); |
51 |
|
|
52 |
0
|
BicycleService.getInstance().getHttpEventListener().onSingleBicycleNumberInfoReceived(bicycleNumberInfo, Constants.ResultCode.SUCCESS); |
53 |
0
|
break; |
54 |
0
|
case SINGLE_HTTP_FAILED: |
55 |
0
|
BicycleService.getInstance().getHttpEventListener().onSingleBicycleNumberInfoReceived(null, Constants.ResultCode.HTTP_REQUEST_FAILED); |
56 |
0
|
break; |
57 |
0
|
case SINGLE_JSON_FAILED: |
58 |
0
|
BicycleService.getInstance().getHttpEventListener().onSingleBicycleNumberInfoReceived(null, Constants.ResultCode.JSON_PARSER_FAILED); |
59 |
0
|
break; |
60 |
0
|
case SINGLE_DISCONNECT: |
61 |
0
|
BicycleService.getInstance().getHttpEventListener().onSingleBicycleNumberInfoReceived(null, Constants.ResultCode.NETWORK_DISCONNECT); |
62 |
0
|
break; |
63 |
0
|
case CHECK_VERSION_COMPLETE: |
64 |
0
|
boolean needUpdate = msg.getData().getBoolean(Constants.ParcelableTag.VERSION_NEED_UPDATE); |
65 |
0
|
BicycleService.getInstance().getHttpEventListener().onNewVersionCheckCompleted(needUpdate, Constants.ResultCode.SUCCESS); |
66 |
0
|
break; |
67 |
0
|
case CHECK_VERSION_DISCONNECT: |
68 |
0
|
BicycleService.getInstance().getHttpEventListener().onNewVersionCheckCompleted(false, Constants.ResultCode.NETWORK_DISCONNECT); |
69 |
0
|
break; |
70 |
1
|
case CHECK_VERSION_HTTP_FAILED: |
71 |
1
|
BicycleService.getInstance().getHttpEventListener().onNewVersionCheckCompleted(false, Constants.ResultCode.HTTP_REQUEST_FAILED); |
72 |
1
|
break; |
73 |
0
|
default: |
74 |
0
|
break; |
75 |
|
} |
76 |
|
} |
77 |
|
}; |
78 |
|
} |
79 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
80 |
3
|
public void getAllBicyclesInfo() {... |
81 |
3
|
mExecutorService.execute(new Runnable() { |
|
|
| 60% |
Uncovered Elements: 2 (5) |
Complexity: 3 |
Complexity Density: 0,6 |
|
82 |
3
|
public void run() {... |
83 |
3
|
try { |
84 |
3
|
HttpUtils.getAllBicyclesInfoFromServer(); |
85 |
0
|
mHandler.sendEmptyMessage(ALL_SUCCESS); |
86 |
|
} catch (IOException e) { |
87 |
3
|
mHandler.sendEmptyMessage(ALL_HTTP_FAILED); |
88 |
|
} catch (NetworkException e) { |
89 |
0
|
mHandler.sendEmptyMessage(ALL_DISCONNECT); |
90 |
|
} |
91 |
|
} |
92 |
|
}); |
93 |
|
} |
94 |
|
|
|
|
| 0% |
Uncovered Elements: 1 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
95 |
0
|
public void getSingleBicycleInfo(final int bicycleId) {... |
96 |
0
|
mExecutorService.execute(new Runnable() { |
|
|
| 0% |
Uncovered Elements: 11 (11) |
Complexity: 4 |
Complexity Density: 0,36 |
|
97 |
0
|
public void run() {... |
98 |
0
|
try { |
99 |
0
|
BicycleNumberInfo bicycleNumberInfo = HttpUtils.getSingleBicycleInfoFromHttp(bicycleId); |
100 |
0
|
Bundle data = new Bundle(); |
101 |
0
|
data.putParcelable(Constants.ParcelableTag.BICYCLE_STATION_INFO, bicycleNumberInfo); |
102 |
0
|
Message message = Message.obtain(); |
103 |
0
|
message.setData(data); |
104 |
0
|
message.what = SINGLE_SUCCESS; |
105 |
0
|
mHandler.sendMessage(message); |
106 |
|
} catch (IOException e) { |
107 |
0
|
mHandler.sendEmptyMessage(SINGLE_HTTP_FAILED); |
108 |
|
} catch (JSONException e) { |
109 |
0
|
mHandler.sendEmptyMessage(SINGLE_JSON_FAILED); |
110 |
|
} catch (NetworkException e) { |
111 |
0
|
mHandler.sendEmptyMessage(SINGLE_DISCONNECT); |
112 |
|
} |
113 |
|
} |
114 |
|
}); |
115 |
|
} |
116 |
|
|
|
|
| 100% |
Uncovered Elements: 0 (1) |
Complexity: 1 |
Complexity Density: 1 |
|
117 |
1
|
public void checkNewVersion(final String currentVersionName, final int currentVersionCode) {... |
118 |
1
|
mExecutorService.execute(new Runnable() { |
|
|
| 30% |
Uncovered Elements: 7 (10) |
Complexity: 3 |
Complexity Density: 0,3 |
|
119 |
1
|
public void run() {... |
120 |
1
|
try { |
121 |
1
|
boolean needUpdate = HttpUtils.checkVersion(currentVersionName, currentVersionCode); |
122 |
0
|
Bundle data = new Bundle(); |
123 |
0
|
data.putBoolean(Constants.ParcelableTag.VERSION_NEED_UPDATE, needUpdate); |
124 |
0
|
Message message = Message.obtain(); |
125 |
0
|
message.setData(data); |
126 |
0
|
message.what = CHECK_VERSION_COMPLETE; |
127 |
0
|
mHandler.sendMessage(message); |
128 |
|
} catch (NetworkException e) { |
129 |
0
|
mHandler.sendEmptyMessage(CHECK_VERSION_DISCONNECT); |
130 |
|
} catch (Exception e) { |
131 |
1
|
mHandler.sendEmptyMessage(CHECK_VERSION_HTTP_FAILED); |
132 |
|
} |
133 |
|
} |
134 |
|
}); |
135 |
|
} |
136 |
|
} |