hMap<String,String> params = new HashMap<>();
+ params.put("user_id",lensmanId);
+ if(BuildConfig.isTestMode){
+ listener.onTimeSync(true,0);
+ }
+ timeSyncTask = new HttpPostTask(params){
+
+ int msgId = R.string.sync_time_box_error;
+
+ @Override
+ protected boolean parseResponse(String response) {
+ try{
+ JSONObject json = new JSONObject(response);
+ int status = json.getInt("status");
+ if(status == 200){
+ JSONObject data = json.getJSONObject("data");
+ String time = data.getString("time");
+ HashMap<String,String> boxParams = new HashMap<>();
+ boxParams.put("time",time);
+ if(isCancelled){
+ return false;
+ }
+ HttpUtils.doHttpPost(BoxUrlContainer.SET_TIME_URL,boxParams);
+ if(isCancelled){
+ return false;
+ }
+ SystemClock.sleep(1000);
+ if(isCancelled){
+ return false;
+ }
+ String boxResp = HttpUtils.doHttpPost(BoxUrlContainer.BOX_TIME_URL,null);
+ if(isCancelled){
+ return false;
+ }
+ JSONObject boxJson = new JSONObject(boxResp);
+ int boxStatus = boxJson.getInt("status");
+ if(boxStatus == 200){
+ String boxTime = boxJson.getJSONObject("data").getString("time");
+ if(time.substring(0,13).equals(boxTime.substring(0,13))){
+ return true;
+ }
+ }
+ }else{
+ msgId = R.string.sync_time_server_error;
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ return false;
+ }
+
+ @Override
+ protected void onPostFail() {
+ super.onPostFail();
+ listener.onTimeSync(false,msgId);
+ }
+
+ @Override
+ protected void onPostSuccess() {
+ super.onPostSuccess();
+ listener.onTimeSync(true,0);
+ }
+ };
+ timeSyncTask.executeOnExecutor(ThreadExecutor.getInstance().getExecutor(), UrlContainer.SERVER_TIME_URL);
+ }
+
+ @Override
+ public void cancelJob() {
+ if(timeSyncTask==null){
+ return;
+ }
+ if(timeSyncTask.getStatus()== AsyncTask.Status.RUNNING){
+ timeSyncTask.cancel(true);
+ }
+ isCancelled = true;
+ timeSyncTask = null;
+ }
+
+ public interface SyncTimeListener{
+
+ void onTimeSync(boolean result,@StringRes int strId);
+ }
+}
@@ -173,4 +173,8 @@ |
||
| 173 | 173 |
<string name="upload_fast">短</string> |
| 174 | 174 |
|
| 175 | 175 |
<string name="upload_settings">上传管理</string> |
| 176 |
+ |
|
| 177 |
+ <string name="sync_time_server_error">时间同步出错,请检查网络连接后退出重试</string> |
|
| 178 |
+ <string name="sync_time_box_error">时间同步出错,请检查盒子是否打开后退出重试</string> |
|
| 179 |
+ |
|
| 176 | 180 |
</resources> |