From e2e5125d665c28c93d79cd519b282a1fff35433f Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 9 Apr 2020 10:02:50 +0800 Subject: [PATCH 1/5] repackage --- app/build.gradle | 13 +++++++++- app/src/d80x/AndroidManifest.xml | 25 +++++++++++++++++++ config.gradle | 15 +++++------ .../src/main/res/values/strings.xml | 1 + .../module/navi/manager/VolumeManager.java | 7 ++++-- 5 files changed, 51 insertions(+), 10 deletions(-) create mode 100644 app/src/d80x/AndroidManifest.xml diff --git a/app/build.gradle b/app/build.gradle index 51c8e306a8..d67aa1334b 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -56,7 +56,7 @@ android { flavorDimensions "product", "env" productFlavors { - //诺威达 + // 诺威达 nwd { dimension "product" sourceSets { @@ -64,6 +64,16 @@ android { manifest.srcFile 'src/nwd/AndroidManifest.xml' } } + applicationId rootProject.ext.android.applicationId + } + d80x { + dimension "product" + sourceSets { + main { + manifest.srcFile 'src/d80x/AndroidManifest.xml' + } + } + applicationId rootProject.ext.android.zhidadoApplicationId } zhidao { dimension "product" @@ -72,6 +82,7 @@ android { manifest.srcFile 'src/main/AndroidManifest.xml' } } + applicationId rootProject.ext.android.applicationId } qa { dimension "env" diff --git a/app/src/d80x/AndroidManifest.xml b/app/src/d80x/AndroidManifest.xml new file mode 100644 index 0000000000..53ab924776 --- /dev/null +++ b/app/src/d80x/AndroidManifest.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/config.gradle b/config.gradle index 6952e1d502..122f4b236a 100644 --- a/config.gradle +++ b/config.gradle @@ -1,12 +1,13 @@ ext { android = [ - applicationId : "com.mogo.launcher", - compileSdkVersion: 28, - buildToolsVersion: "29.0.2", - minSdkVersion : 19, - targetSdkVersion : 22, - versionCode : 4, - versionName : "1.0.3", + applicationId : "com.mogo.launcher", + zhidadoApplicationId: "com.zhidao.launcher", + compileSdkVersion : 28, + buildToolsVersion : "29.0.2", + minSdkVersion : 19, + targetSdkVersion : 22, + versionCode : 4, + versionName : "1.0.3", ] dependencies = [ diff --git a/modules/mogo-module-apps/src/main/res/values/strings.xml b/modules/mogo-module-apps/src/main/res/values/strings.xml index fc518577eb..d0d2711895 100644 --- a/modules/mogo-module-apps/src/main/res/values/strings.xml +++ b/modules/mogo-module-apps/src/main/res/values/strings.xml @@ -5,5 +5,6 @@ 为了您的安全,导航中不可播放视频 com.mogo.launcher + com.zhidao.launcher diff --git a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/VolumeManager.java b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/VolumeManager.java index 26bbada2d3..c2c38d89de 100644 --- a/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/VolumeManager.java +++ b/modules/mogo-module-search/src/main/java/com/mogo/module/navi/manager/VolumeManager.java @@ -172,7 +172,7 @@ public class VolumeManager { } /* - 判断是否future渠道 + 判断是否future渠道(F系列) */ private boolean isFuture() { @@ -181,7 +181,8 @@ public class VolumeManager { Class buildConfig = Class.forName("com.mogo.launcher.BuildConfig"); Field flavor = buildConfig.getDeclaredField("FLAVOR"); //String descriptor= Modifier.toString(flavor.getModifiers()); - return TextUtils.equals((CharSequence) flavor.get(null),"zhidao"); + String val = (String) flavor.get(null); + return val.toLowerCase().contains( "zhidao" ); } catch (ClassNotFoundException e) { e.printStackTrace(); @@ -189,6 +190,8 @@ public class VolumeManager { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); + } catch (Exception e){ + e.printStackTrace(); } return false; From 35f8872f30cd04dd51447858efb11799418525ca Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 9 Apr 2020 11:55:52 +0800 Subject: [PATCH 2/5] update v2x version --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index e589dd1e94..d1e01136dd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -62,7 +62,7 @@ MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION=1.0.2-SNAPSHOT # 在线车辆F MOGO_MODULE_ONLINECAR_VERSION=1.0.3.1-SNAPSHOT # v2x -MOGO_MODULE_V2X_VERSION=1.0.3-SNAPSHOT +MOGO_MODULE_V2X_VERSION=1.0.3.2-SNAPSHOT # 媒体卡片 MOGO_MODULE_MEDIA_VERSION=1.0.2-SNAPSHOT # 推送 From b2520188c0593a0c7e9ffbd31abadc73e5165f33 Mon Sep 17 00:00:00 2001 From: wangcongtao Date: Thu, 9 Apr 2020 14:55:56 +0800 Subject: [PATCH 3/5] opt --- .../src/main/java/com/mogo/module/map/MapPresenter.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java index 3b23e3325b..7255778958 100644 --- a/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java +++ b/modules/mogo-module-map/src/main/java/com/mogo/module/map/MapPresenter.java @@ -258,13 +258,11 @@ public class MapPresenter extends Presenter< MapView > implements case VoiceConstants.CMD_MAP_TRAFFIC_MODE: AIAssist.getInstance( getContext() ).speakTTSVoice( "已打开", null ); mView.getUIController().setTrafficEnabled( true ); - mSearchManager.showSearch(); break; case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE_UN_WAKEUP: case VoiceConstants.CMD_MAP_UN_TRAFFIC_MODE: AIAssist.getInstance( getContext() ).speakTTSVoice( "已关闭", null ); mView.getUIController().setTrafficEnabled( false ); - mSearchManager.showMain(); break; case VoiceConstants.CMD_MAP_ZOOM_IN_UN_WAKEUP: case VoiceConstants.CMD_MAP_ZOOM_IN: From f5a2a838420193e30ff921f8cee1c9a0c87e9e45 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Apr 2020 16:55:54 +0800 Subject: [PATCH 4/5] fix bug of when user clear cache --- .../biz/IMogoAuthorizeController.kt | 31 ++++++++++++++++--- .../biz/MogoAuthorizeManagerImpl.kt | 9 ++++-- .../authprovider/biz/MogoAuthorizeProvider.kt | 2 ++ .../invoke/IMogoAuthorizeInvoke.kt | 8 +++++ .../authorize/model/IMogoAuthorizeModel.kt | 14 ++++++--- .../module/authorize/model/bean/Agreement.kt | 16 +++++++++- .../mogo/module/authorize/net/AuthorizeApi.kt | 7 ++++- 7 files changed, 74 insertions(+), 13 deletions(-) diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/IMogoAuthorizeController.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/IMogoAuthorizeController.kt index 7914bcf599..a52028d2b1 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/IMogoAuthorizeController.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/IMogoAuthorizeController.kt @@ -1,10 +1,10 @@ package com.mogo.module.authorize.authprovider.biz +import com.google.gson.Gson import com.mogo.module.authorize.authprovider.invoke.IMogoAuthorizeContentListener import com.mogo.module.authorize.model.BaseResponse import com.mogo.module.authorize.model.IMogoAuthorizeModel -import com.mogo.module.authorize.model.bean.Agreement -import com.mogo.module.authorize.model.bean.AgreementData +import com.mogo.module.authorize.model.bean.* import com.mogo.module.authorize.net.request import com.mogo.module.authorize.util.DateUtil.parseDateToTime import com.mogo.module.authorize.util.SharedPreferenceUtil.getAuthorizeVersion @@ -31,7 +31,7 @@ open class IMogoAuthorizeController { } }, { msg: String -> onError.invoke(msg) - }) + }, true) } fun invokeAuthorizeContent(tag: String, agreementType: Int) { @@ -62,12 +62,12 @@ open class IMogoAuthorizeController { }) } - private fun realInvokeAuthorizeContent(agreementType: Int, onStart: (() -> Unit), onSuccess: ((BaseResponse) -> Unit), onError: ((String) -> Unit)) { + private fun realInvokeAuthorizeContent(agreementType: Int, onStart: (() -> Unit), onSuccess: ((BaseResponse) -> Unit), onError: ((String) -> Unit), needContent: Boolean = false) { onStart.invoke() try { request> { loader { - authorizeModel.invokeAuthorizeContent(agreementType) + authorizeModel.invokeAuthorizeContent(agreementType, needContent) } onSuccess { onSuccess.invoke(it) @@ -116,4 +116,25 @@ open class IMogoAuthorizeController { val oldVersion = getAuthorizeVersion() return currentTime > oldVersion } + + fun checkIfNeedAuthorize(agreementType: Int) { + request> { + loader { + authorizeModel.invokeIfNeedAuthorize(agreementType) + } + onSuccess { + Logger.d(TAG,"result : ${it.result}") + val result = it.result + when (result.agreementStatus) { + AGREEMENT_EFFECT -> setAuthorizeStatus(agreementType, true) + AGREEMENT_NOT_EFFECT -> setAuthorizeStatus(agreementType, false) + else -> Logger.d(TAG, "agreementStatus is not match any case") + } + } + onError { + Logger.d(TAG, it.message ?: "checkIfNeedAuthorize onError, message is null") + setAuthorizeStatus(agreementType, true) + } + } + } } \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt index 3246b53116..a5e97c2cda 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt @@ -6,6 +6,7 @@ import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListen import com.mogo.module.authorize.model.proxy.AuthorizeProxy import com.mogo.module.authorize.model.proxy.toAuthorizeType import com.mogo.module.authorize.util.SharedPreferenceUtil.needAuthorization +import com.mogo.module.authorize.util.SharedPreferenceUtil.setAuthorizeStatus import com.mogo.module.authorize.util.isDeviceOfD import com.mogo.utils.logger.Logger @@ -19,14 +20,18 @@ open abstract class MogoAuthorizeManagerImpl : IMogoAuthorizeInvoke { override fun needAuthorize(tag: String): Boolean { return if (isDeviceOfD()) { - Logger.d(TAG, "needAuthorize update agreement in background") - baseController.updateAgreementVersion(tag.toAuthorizeType()) + Logger.d(TAG, "===== needAuthorize update agreement in background") + baseController.checkIfNeedAuthorize(tag.toAuthorizeType()) needAuthorization(tag.toAuthorizeType()) } else { false } } + override fun updateAuthorizeStatus(tag: String) { + baseController.checkIfNeedAuthorize(tag.toAuthorizeType()) + } + override fun invokeAuthorizeContent(tag: String) { //todo 后面动态代理统一处理校验问题 Logger.d(TAG, "tag:$tag") diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt index 7a85dc2355..4627cf25e8 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeProvider.kt @@ -67,6 +67,8 @@ class MogoAuthorizeProvider : IMogoModuleProvider { if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { mogoAuthShow.invokeAuthorizeForShow() } else { + //首次进入Launcher同步一下授权状态,防止由于用户清除数据造成首次加载还会出现授权状态不同步问题 + mogoAuthShow.updateAuthorizeStatus(AUTHORIZE_TYPE_LAUNCHER_MAIN) Logger.d(TAG, "not do match self startUp condition ,wait for someone invoke") } } diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeInvoke.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeInvoke.kt index 7cdfc6af18..c84550a0b7 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeInvoke.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeInvoke.kt @@ -15,4 +15,12 @@ interface IMogoAuthorizeInvoke : IMogoAuthorizeRegister { * tag:模块ID */ fun invokeAuthorizeContent(tag: String) + + /** + * 更新授权状态 + * tag:模块ID + */ + fun updateAuthorizeStatus(tag:String){ + + } } \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/IMogoAuthorizeModel.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/IMogoAuthorizeModel.kt index 5747d89775..0b79f7c692 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/IMogoAuthorizeModel.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/IMogoAuthorizeModel.kt @@ -2,9 +2,9 @@ package com.mogo.module.authorize.model import com.google.gson.Gson import com.mogo.commons.network.Utils.getSn -import com.mogo.module.authorize.model.bean.RequestUserAgreement -import com.mogo.module.authorize.model.bean.Agreement import com.mogo.module.authorize.model.bean.AgreementData +import com.mogo.module.authorize.model.bean.AgreementStatus +import com.mogo.module.authorize.model.bean.RequestUserAgreement open class IMogoAuthorizeModel : BaseRepository() { @@ -12,9 +12,15 @@ open class IMogoAuthorizeModel : BaseRepository() { const val TAG = "IMogoAuthorizeModel" } - suspend fun invokeAuthorizeContent(agreementType: Int): BaseResponse { - val requestUserAgreement = Gson().toJson(RequestUserAgreement(agreementType)) + suspend fun invokeAuthorizeContent(agreementType: Int, needContent: Boolean = false): BaseResponse { + val requestUserAgreement = Gson().toJson(RequestUserAgreement(agreementType, needContent)) val map = mapOf("sn" to getSn(), "data" to requestUserAgreement) return apiCall { getNetWorkApi().getAuthorizeContent(map) } } + + suspend fun invokeIfNeedAuthorize(agreementType: Int): BaseResponse { + val requestUserAgreement = Gson().toJson(RequestUserAgreement(agreementType)) + val map = mapOf("sn" to getSn(), "data" to requestUserAgreement) + return apiCall { getNetWorkApi().checkIfNeedAuthorize(map) } + } } \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/Agreement.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/Agreement.kt index d530e2741f..bec8a198d5 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/Agreement.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/Agreement.kt @@ -3,7 +3,21 @@ package com.mogo.module.authorize.model.bean const val AGREEMENT_EFFECT = 1 //用户协议生效 const val AGREEMENT_NOT_EFFECT = 2 //用户协议不生效 -class RequestUserAgreement(val agreementType: Int) +class RequestUserAgreement{ + var agreementType:Int + var want:Boolean = false + + constructor(agreementType:Int){ + this.agreementType = agreementType + } + + constructor(agreementType: Int, want: Boolean) { + this.agreementType = agreementType + this.want = want + } +} + +data class AgreementStatus(val agreementStatus:Int) data class AgreementData(val agreement: Agreement) diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/AuthorizeApi.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/AuthorizeApi.kt index ea6538d5f5..71163940dd 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/AuthorizeApi.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/AuthorizeApi.kt @@ -1,8 +1,8 @@ package com.mogo.module.authorize.net import com.mogo.module.authorize.model.BaseResponse -import com.mogo.module.authorize.model.bean.Agreement import com.mogo.module.authorize.model.bean.AgreementData +import com.mogo.module.authorize.model.bean.AgreementStatus import retrofit2.http.FieldMap import retrofit2.http.FormUrlEncoded import retrofit2.http.POST @@ -19,4 +19,9 @@ interface AuthorizeApi { @POST("yycp-channelManager/agreement/updateStatus") suspend fun updateAuthorize(@FieldMap updateStatus: Map): BaseResponse + //查询是否要授权 + @FormUrlEncoded + @POST("yycp-channelManager/agreement/queryUserAuthorizeStatusByType") + suspend fun checkIfNeedAuthorize(@FieldMap needAuthorize: Map): BaseResponse + } \ No newline at end of file From 8b9096a6be8624619377ecdde68e77e52ddd327a Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 9 Apr 2020 17:37:47 +0800 Subject: [PATCH 5/5] fix bug of ANR -> Async Html load text --- .../module/authorize/fragment/AuthorizeFragment.kt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt index 324dd747c3..8d865b3256 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt @@ -15,6 +15,10 @@ import com.mogo.module.authorize.voice.IVoiceCommandListener import com.mogo.module.authorize.voice.IVoiceAuthorizeIntentListener import com.mogo.module.authorize.voice.VoiceUtil import com.mogo.utils.logger.Logger +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.async +import kotlinx.coroutines.withContext class AuthorizeFragment : MvpFragment(), AuthorizeContract.View, View.OnClickListener, IVoiceCommandListener, IVoiceAuthorizeIntentListener { @@ -105,7 +109,12 @@ class AuthorizeFragment : MvpFragment