diff --git a/app/build.gradle b/app/build.gradle
index 6c550b7979..69a11edf58 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 1b86c8dc64..cc4b9526a3 100644
--- a/config.gradle
+++ b/config.gradle
@@ -1,10 +1,11 @@
ext {
android = [
- applicationId : "com.mogo.launcher",
- compileSdkVersion: 28,
- buildToolsVersion: "29.0.2",
- minSdkVersion : 19,
- targetSdkVersion : 22,
+ applicationId : "com.mogo.launcher",
+ zhidadoApplicationId: "com.zhidao.launcher",
+ compileSdkVersion : 28,
+ buildToolsVersion : "29.0.2",
+ minSdkVersion : 19,
+ targetSdkVersion : 22,
versionName : "8.0.4",
]
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-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/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 {
- 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
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;