From cd523bd55282c2ed403862d9bb776d4fc94bbd02 Mon Sep 17 00:00:00 2001 From: chenjuntao Date: Mon, 3 Dec 2018 14:59:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=AF=B9=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E5=99=A8=E6=97=B6=E9=97=B4=E8=BF=99=E4=B8=AA?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E7=9A=84=E8=A7=A3=E6=9E=90=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/gh/common/AppExecutor.kt | 4 ++++ .../com/gh/common/exposure/time/Corrector.kt | 18 +++++++++----- .../com/gh/common/util/DeviceTokenUtils.kt | 24 +++++++++---------- .../com/gh/gamecenter/entity/TimeEntity.kt | 3 +++ .../retrofit/service/ApiService.java | 3 ++- .../main/java/com/halo/assistant/HaloApp.java | 2 +- libraries/LGLibrary | 2 +- 7 files changed, 34 insertions(+), 22 deletions(-) create mode 100644 app/src/main/java/com/gh/gamecenter/entity/TimeEntity.kt diff --git a/app/src/main/java/com/gh/common/AppExecutor.kt b/app/src/main/java/com/gh/common/AppExecutor.kt index ff4d5f6266..e010bec477 100644 --- a/app/src/main/java/com/gh/common/AppExecutor.kt +++ b/app/src/main/java/com/gh/common/AppExecutor.kt @@ -17,5 +17,9 @@ object AppExecutor { override fun execute(command: Runnable) { mainThreadHandler.post(command) } + + fun executeWithDelay(command: Runnable, delay: Long) { + mainThreadHandler.postDelayed(command, delay) + } } } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/exposure/time/Corrector.kt b/app/src/main/java/com/gh/common/exposure/time/Corrector.kt index e22046b44d..ff34932ae4 100644 --- a/app/src/main/java/com/gh/common/exposure/time/Corrector.kt +++ b/app/src/main/java/com/gh/common/exposure/time/Corrector.kt @@ -1,5 +1,7 @@ package com.gh.common.exposure.time +import com.gh.gamecenter.entity.TimeEntity +import com.gh.gamecenter.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager import com.halo.assistant.HaloApp import io.reactivex.schedulers.Schedulers @@ -18,12 +20,16 @@ class Corrector { fixedRateTimer("TimeUtil-Corrector-Checker", initialDelay = 0, period = TIME_CORRECTOR_ADJUST_PERIOD) { RetrofitManager.getInstance(HaloApp.getInstance().application).api.time .subscribeOn(Schedulers.io()) - .subscribe({ - // TODO Fix time parsing format. - val serverTime = java.lang.Long.parseLong(it.string()) - delta = serverTime * 1000 - System.currentTimeMillis() - }, Throwable::printStackTrace) + .subscribe(object : Response() { + override fun onResponse(response: TimeEntity?) { + try { + val serverTime = response?.time!! + delta = serverTime * 1000 - System.currentTimeMillis() + } catch (e: NumberFormatException) { + e.printStackTrace() + } + } + }) } } - } \ No newline at end of file diff --git a/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt b/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt index 895a84372d..536c50de79 100644 --- a/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt +++ b/app/src/main/java/com/gh/common/util/DeviceTokenUtils.kt @@ -4,8 +4,9 @@ import android.content.Context import android.os.Environment import android.preference.PreferenceManager import com.gh.gamecenter.BuildConfig +import com.gh.gamecenter.entity.TimeEntity +import com.gh.gamecenter.retrofit.Response import com.gh.gamecenter.retrofit.RetrofitManager -import com.gh.gamecenter.retrofit.StringResponse import com.halo.assistant.HaloApp import com.lightgame.utils.Util_System_Phone_State import com.lightgame.utils.Utils @@ -26,18 +27,15 @@ object DeviceTokenUtils { RetrofitManager.getInstance(context).api.time .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) - .subscribe(object : StringResponse() { - override fun onResponse(response: String) { - if (response.matches("^[0-9]{10}$".toRegex())) { - try { - val editor = sp.edit() - editor.putLong("server_time", java.lang.Long.parseLong(response)) - editor.putLong("client_time", System.currentTimeMillis() / 1000) - editor.apply() - } catch (e: NumberFormatException) { - e.printStackTrace() - } - + .subscribe(object : Response() { + override fun onResponse(response: TimeEntity?) { + try { + val editor = sp.edit() + editor.putLong("server_time", response?.time!!) + editor.putLong("client_time", System.currentTimeMillis() / 1000) + editor.apply() + } catch (e: NumberFormatException) { + e.printStackTrace() } } }) diff --git a/app/src/main/java/com/gh/gamecenter/entity/TimeEntity.kt b/app/src/main/java/com/gh/gamecenter/entity/TimeEntity.kt new file mode 100644 index 0000000000..27ade8a8de --- /dev/null +++ b/app/src/main/java/com/gh/gamecenter/entity/TimeEntity.kt @@ -0,0 +1,3 @@ +package com.gh.gamecenter.entity + +data class TimeEntity(var time: Long) \ No newline at end of file diff --git a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java index b8cac8ddb3..0b3601944e 100644 --- a/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java +++ b/app/src/main/java/com/gh/gamecenter/retrofit/service/ApiService.java @@ -33,6 +33,7 @@ import com.gh.gamecenter.entity.SubjectEntity; import com.gh.gamecenter.entity.SubjectRecommendEntity; import com.gh.gamecenter.entity.SubjectSettingEntity; import com.gh.gamecenter.entity.TagEntity; +import com.gh.gamecenter.entity.TimeEntity; import com.gh.gamecenter.entity.ToolBoxEntity; import com.gh.gamecenter.entity.UserInfoEntity; import com.gh.gamecenter.entity.VersionVoteEntity; @@ -121,7 +122,7 @@ public interface ApiService { * 获取服务器时间 */ @GET("time") - Observable getTime(); + Observable getTime(); /** * 统计下载量 diff --git a/app/src/main/java/com/halo/assistant/HaloApp.java b/app/src/main/java/com/halo/assistant/HaloApp.java index 72070ee4ef..cee4cebfb9 100644 --- a/app/src/main/java/com/halo/assistant/HaloApp.java +++ b/app/src/main/java/com/halo/assistant/HaloApp.java @@ -106,7 +106,7 @@ public class HaloApp extends TinkerAppLike { Log.e("CHANNEL_ID", mChannel); // DataUtils是根据debug/release自动编译对应的文件的 - AppExecutor.getUiExecutor().execute( () -> DataUtils.init(getApplication(), mChannel)); + AppExecutor.getUiExecutor().execute(() -> DataUtils.init(getApplication(), mChannel)); // 注册回调以用于做各种统计 registerActivityLifecycleCallbacks(new GHActivityLifecycleCallbacksImpl()); diff --git a/libraries/LGLibrary b/libraries/LGLibrary index 671804fa6d..f0adbc4c07 160000 --- a/libraries/LGLibrary +++ b/libraries/LGLibrary @@ -1 +1 @@ -Subproject commit 671804fa6d27d928dce9139943bf78b248ffcf12 +Subproject commit f0adbc4c07e0d21a148edea626b92782fe89aeb7