diff --git a/.idea/misc.xml b/.idea/misc.xml
index 2dc54c489f..707ee6e613 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/app/src/nwd/AndroidManifest.xml b/app/src/nwd/AndroidManifest.xml
index c3083e9cdb..ba50fd7bec 100644
--- a/app/src/nwd/AndroidManifest.xml
+++ b/app/src/nwd/AndroidManifest.xml
@@ -4,8 +4,6 @@
package="com.mogo.launcher"
android:sharedUserId="android.uid.system">
-
-
+
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 5388f39431..3ded6f7f50 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,6 +1,7 @@
// Top-level build file where you can add configuration options common to all sub-projects/modules.
apply from: "config.gradle"
apply from: "javadoc.gradle"
+
buildscript {
ext.kotlin_version = '1.3.41'
@@ -23,6 +24,7 @@ buildscript {
classpath 'com.android.tools.build:gradle:3.5.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath "com.alibaba:arouter-register:1.0.2"
+ classpath 'com.hujiang.aspectjx:gradle-android-plugin-aspectjx:2.0.4'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
diff --git a/config.gradle b/config.gradle
index 58336a0e3e..42749665e5 100644
--- a/config.gradle
+++ b/config.gradle
@@ -133,5 +133,6 @@ ext {
coroutinescore : "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.1",
coroutinesandroid : "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1",
+ aspectj : "org.aspectj:aspectjrt:1.8.9",
]
}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/aspectj/VoiceForbiddenTrackPoint.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/aspectj/VoiceForbiddenTrackPoint.kt
new file mode 100644
index 0000000000..4517f18e9c
--- /dev/null
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/aspectj/VoiceForbiddenTrackPoint.kt
@@ -0,0 +1,4 @@
+package com.mogo.module.authorize.aspectj
+
+class VoiceForbiddenTrackPoint {
+}
\ No newline at end of file
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 4e8142a38d..3f0c24f96b 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
@@ -3,14 +3,14 @@ package com.mogo.module.authorize.authprovider.biz
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.UserAgreement
+import com.mogo.module.authorize.model.bean.AgreementData
import com.mogo.module.authorize.net.request
import com.mogo.utils.logger.Logger
open class IMogoAuthorizeController {
companion object {
- const val TAG = "IMogoAuthorizeController"
+ const val TAG = "AuthorizeController"
}
private val authorizeModel: IMogoAuthorizeModel by lazy { IMogoAuthorizeModel() }
@@ -24,15 +24,14 @@ open class IMogoAuthorizeController {
})
}
try {
- request> {
+ request> {
loader {
- authorizeModel.invokeAuthorizeContent(1)
+ authorizeModel.invokeAuthorizeContent(agreementType)
}
onSuccess {
- Logger.d(TAG, "invokeAuthorizeContent onSuccess data: ${it.result}")
getAuthorizeContentListener(tag, { listener ->
- if (it.result != null) {
- listener.requestContentSuccess(it.result)
+ if (it.result != null && it.result.agreement.agreementContent != null) {
+ listener.requestContentSuccess(it.result.agreement)
} else {
listener.requestContentFailed("request authorize content success ,but result data is :${it.result}")
}
@@ -49,7 +48,7 @@ open class IMogoAuthorizeController {
})
}
}
- }catch (e:Exception){
+ } catch (e: Exception) {
e.printStackTrace()
}
}
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 4e4a08930b..9f331bc92f 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
@@ -12,6 +12,7 @@ open abstract class MogoAuthorizeManagerImpl : IMogoAuthorizeInvoke {
private val baseController: IMogoAuthorizeController by lazy { IMogoAuthorizeController() }
override fun needAuthorize(): Boolean {
+
return needAuthorization()
}
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/AuthorizeInvokerConstant.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/AuthorizeInvokerConstant.kt
index c98a4b995d..af3930f91b 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/AuthorizeInvokerConstant.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/AuthorizeInvokerConstant.kt
@@ -6,6 +6,7 @@ class AuthorizeInvokerConstant {
const val AUTHORIZE_TYPE_LAUNCHER_MAIN = "AUTHORIZE_TYPE_LAUNCHER_MAIN" //launcher
const val AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY = "AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY" //launcher 新鲜事分享
const val AUTHORIZE_TYPE_LAUNCHER_SHARE_MUSIC = "AUTHORIZE_TYPE_LAUNCHER_SHARE_MUSIC" //launcher 音乐分享
+ const val AUTHORIZE_TYPE_LAUNCHER_SHARE = "AUTHORIZE_TYPE_LAUNCHER_SHARE" //launcher 我要分享
const val AUTHORIZE_TYPE_TAN_LU = "AUTHORIZE_TYPE_TAN_LU" //探路
const val AUTHORIZE_TYPE_CALL_CHAT = "AUTHORIZE_TYPE_CALL_CHAT" //车聊聊
const val AUTHORIZE_TYPE_NOVELTY = "AUTHORIZE_TYPE_NOVELTY" //新鲜事
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeContentListener.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeContentListener.kt
index 75b0200ee3..06a999aa3e 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeContentListener.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/invoke/IMogoAuthorizeContentListener.kt
@@ -1,13 +1,13 @@
package com.mogo.module.authorize.authprovider.invoke
-import com.mogo.module.authorize.model.bean.UserAgreement
+import com.mogo.module.authorize.model.bean.Agreement
/**
* 获取授权信息回调
*/
interface IMogoAuthorizeContentListener {
- fun requestContentSuccess(userAgreement: UserAgreement)
+ fun requestContentSuccess(userAgreement: Agreement)
fun requestContentFailed(errorMsg: String)
}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IAuthorizeMainInvoke.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IAuthorizeMainInvoke.kt
index 4fa6005c28..af945e03c7 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IAuthorizeMainInvoke.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IAuthorizeMainInvoke.kt
@@ -9,11 +9,16 @@ interface IAuthorizeMainInvoke : IMogoAuthorizeInvoke {
* 同意授权
* tag:透传模块ID
*/
- fun agreeAuthorize(tag: String, agrId: Long)
+ fun agreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit))
/**
* 不同意授权
* tag:透传模块ID
*/
- fun disAgreeAuthorize(tag: String, agrId: Long)
+ fun disAgreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit))
+
+ /**
+ * 是否已经注册回调
+ */
+ fun hasRegister(tag: String): Boolean
}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IMogoAuthorizeMainManager.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IMogoAuthorizeMainManager.kt
index 2519d6cbed..810997e582 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IMogoAuthorizeMainManager.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/IMogoAuthorizeMainManager.kt
@@ -9,6 +9,10 @@ import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListen
@Route(path = AuthorizeConstant.PROVIDER_LAUNCHER)
class IMogoAuthorizeMainManager : IMogoAuthorizeMainProvider {
+ override fun hasRegister(tag: String): Boolean {
+ return mogoAuthShow.hasRegister(tag)
+ }
+
override fun needAuthorize(): Boolean {
return mogoAuthShow.needAuthorize()
}
@@ -17,12 +21,12 @@ class IMogoAuthorizeMainManager : IMogoAuthorizeMainProvider {
mogoAuthShow.invokeAuthorizeContent(tag)
}
- override fun agreeAuthorize(tag: String, agrId: Long) {
- mogoAuthShow.agreeAuthorize(tag, agrId)
+ override fun agreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit)) {
+ mogoAuthShow.agreeAuthorize(tag, agrId, onSuccess, onError)
}
- override fun disAgreeAuthorize(tag: String, agrId: Long) {
- mogoAuthShow.disAgreeAuthorize(tag, agrId)
+ override fun disAgreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit)) {
+ mogoAuthShow.disAgreeAuthorize(tag, agrId, onSuccess, onError)
}
override fun registerAuthorizeListener(tag: String, listener: IMogoAcquireAuthorizeListener) {
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoAuthorizeMainController.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoAuthorizeMainController.kt
index fba421396c..976f98d086 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoAuthorizeMainController.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoAuthorizeMainController.kt
@@ -13,25 +13,31 @@ object MogoAuthorizeMainController : IMogoAuthorizeController() {
private val authorizeShowModel: MogoAuthorizeMainModel by lazy { MogoAuthorizeMainModel() }
@Synchronized
- fun agreeAuthorize(tag: String, agrId: Long) {
+ fun agreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit)) {
val acquireAuthListener = MogoAuthorizeRegisterHandler.getAuthorizeListener(tag)
updateAuthorize(agrId, AGREEMENT_EFFECT, {
if (acquireAuthListener != null) {
+ onSuccess.invoke()
acquireAuthListener.authorizeSuccess()
} else {
Logger.d(TAG, "agreeAuthorize --- can not find listener by this tag :$tag ")
}
}, {
- authorizeFailed(tag, it ?: "agreeAuthorize failed,please check network")
+ val errorMsg = it ?: "agreeAuthorize failed,please check network"
+ onError.invoke(errorMsg)
+ authorizeFailed(tag, errorMsg)
})
}
@Synchronized
- fun disAgreeAuthorize(tag: String, agrId: Long) {
+ fun disAgreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit)) {
updateAuthorize(agrId, AGREEMENT_NOT_EFFECT, {
+ onSuccess.invoke()
authorizeFailed(tag, "UserDisAgree authorize")
}, {
- authorizeFailed(tag, it ?: "disAgreeAuthorize failed,please check network")
+ val errorMsg = it ?: "disAgreeAuthorize failed,please check network"
+ onError.invoke(errorMsg)
+ authorizeFailed(tag, errorMsg)
})
}
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt
index 33fdb9e8dc..af33c45ed5 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/launcher/MogoMainAuthorize.kt
@@ -26,12 +26,18 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog
@Volatile
private var showAuthorizeView: Boolean = false
- override fun agreeAuthorize(tag: String, agrId: Long) {
- MogoAuthorizeMainController.agreeAuthorize(tag, agrId)
+ override fun hasRegister(tag: String): Boolean {
+ if (tag.isNullOrBlank()) return false
+ val listener = MogoAuthorizeRegisterHandler.getAuthorizeContentListener(tag)
+ return listener != null
}
- override fun disAgreeAuthorize(tag: String, agrId: Long) {
- MogoAuthorizeMainController.disAgreeAuthorize(tag, agrId)
+ override fun agreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit)) {
+ MogoAuthorizeMainController.agreeAuthorize(tag, agrId, onSuccess, onError)
+ }
+
+ override fun disAgreeAuthorize(tag: String, agrId: Long, onSuccess: (() -> Unit), onError: ((String) -> Unit)) {
+ MogoAuthorizeMainController.disAgreeAuthorize(tag, agrId, onSuccess, onError)
}
fun invokeAuthorizeForShow() {
@@ -94,20 +100,4 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog
pop.invoke()
}
- fun authorizeSuccess(tag: String) {
- val listener = MogoAuthorizeRegisterHandler.getAuthorizeListener(tag)
- if (listener == null) {
- Logger.d(TAG, "authorizeSuccess,but listener is null ")
- }
- listener!!.authorizeSuccess()
- }
-
- fun authorizeFailed(tag: String, errorMsg: String) {
- val listener = MogoAuthorizeRegisterHandler.getAuthorizeListener(tag)
- if (listener == null) {
- Logger.d(TAG, "authorizeFailed,but listener is null ")
- }
- listener!!.authorizeFailed(errorMsg)
- }
-
}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/module/MogoModuleAuthorize.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/module/MogoModuleAuthorize.kt
index 1f6faddb97..e7fb2c8327 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/module/MogoModuleAuthorize.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/module/MogoModuleAuthorize.kt
@@ -19,6 +19,7 @@ class MogoModuleAuthorize private constructor() : MogoAuthorizeManagerImpl(), IM
override fun invokeAuthorization(tag: String) {
mogoAuthShow.showAuthorizeView(tag, {
//todo SP存储状态
+
}, { errorMsg ->
val listener = MogoAuthorizeRegisterHandler.getAuthorizeListener(tag)
listener?.authorizeFailed(errorMsg)
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt
index 193f7e9146..91c4683926 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt
@@ -13,10 +13,11 @@ class AuthorizeContract {
}
interface Biz {
- fun invokeAuthorize(invokeTag: String)
+ fun invokeAuthorizationContent(invokeTag: String)
fun agreeAuthorize(tag: String, agreementId: Long)
fun disAgreeAuthorize(tag: String, agreementId: Long)
+
}
}
\ 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 4be93d917b..7d2dcb8258 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
@@ -4,10 +4,16 @@ import android.text.Html
import android.view.View
import com.mogo.commons.mvp.MvpFragment
import com.mogo.module.authorize.R
+import com.mogo.module.authorize.util.AnalyticsUtil
+import com.mogo.module.authorize.util.AnalyticsUtil.INVOKE_TRACK_AUTHORIZE_CLICK
+import com.mogo.module.authorize.util.AnalyticsUtil.INVOKE_TRACK_AUTHORIZE_SHOW
+import com.mogo.module.authorize.voice.IVoiceCommandListener
+import com.mogo.module.authorize.voice.IVoiceIntentListener
+import com.mogo.module.authorize.voice.VoiceUtil
import com.mogo.utils.logger.Logger
import kotlinx.android.synthetic.main.module_authorize_fragment.*
-class AuthorizeFragment(private val invokeTag: String) : MvpFragment(), AuthorizeContract.View, View.OnClickListener {
+class AuthorizeFragment(private val invokeTag: String) : MvpFragment(), AuthorizeContract.View, View.OnClickListener, IVoiceCommandListener, IVoiceIntentListener {
companion object {
const val TAG = "AuthorizeFragment"
@@ -20,11 +26,13 @@ class AuthorizeFragment(private val invokeTag: String) : MvpFragment {
+ AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 1, "operation_result" to 1))
mPresenter.agreeAuthorize(invokeTag, agreementId)
}
R.id.btnAuthorizeDisAgree -> {
+ AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 1, "operation_result" to 2))
mPresenter.disAgreeAuthorize(invokeTag, agreementId)
}
R.id.clLoadingErrorContainer, R.id.btnAuthorizeLoadingError -> {
- mPresenter.invokeAuthorize(invokeTag)
+ mPresenter.invokeAuthorizationContent(invokeTag)
}
}
}
+ override fun onVoiceCmdAgree() {
+ AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 2, "operation_result" to 1))
+ mPresenter.agreeAuthorize(invokeTag, agreementId)
+ }
+
+ override fun onVoiceCmdDisAgree() {
+ AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 2, "operation_result" to 2))
+ mPresenter.disAgreeAuthorize(invokeTag, agreementId)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ VoiceUtil.unregisterAll(context!!, this)
+ }
}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt
index 96d96c6f08..010df3f4e8 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt
@@ -4,12 +4,10 @@ import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.mvp.Presenter
import com.mogo.module.authorize.authprovider.invoke.IMogoAuthorizeContentListener
import com.mogo.module.authorize.authprovider.launcher.MogoMainAuthorize.Companion.mogoAuthShow
-import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListener
-import com.mogo.module.authorize.model.bean.UserAgreement
-import com.mogo.module.authorize.model.proxy.AuthorizeProxy
+import com.mogo.module.authorize.model.bean.Agreement
import com.mogo.utils.logger.Logger
-class AuthorizePresenter : Presenter, AuthorizeContract.Biz, IMogoAuthorizeContentListener, IMogoAcquireAuthorizeListener {
+class AuthorizePresenter : Presenter, AuthorizeContract.Biz, IMogoAuthorizeContentListener {
companion object {
const val TAG = "AuthorizePresenter"
@@ -24,51 +22,54 @@ class AuthorizePresenter : Presenter, AuthorizeContract.
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
Logger.d(TAG, "onCreate invokeTag:$invokeTag")
- invokeAuthorize(invokeTag!!)
+ invokeAuthorizationContent(invokeTag!!)
}
- override fun invokeAuthorize(invokeTag: String) {
+ override fun invokeAuthorizationContent(invokeTag: String) {
mView.readyToAuthorize()
this.invokeTag = invokeTag
- mogoAuthShow.registerInvokeAuthorizeContentListener(invokeTag, this)
- mogoAuthShow.registerAuthorizeListener(invokeTag, this)
+ if (!mogoAuthShow.hasRegister(invokeTag)) {
+ mogoAuthShow.registerInvokeAuthorizeContentListener(invokeTag, this)
+ }
mogoAuthShow.invokeAuthorizeContent(invokeTag)
}
- override fun requestContentSuccess(userAgreement: UserAgreement) {
- val id = userAgreement.agreementEntity.id
- val content = userAgreement.agreementContent[0]
- val title = userAgreement.agreementEntity.title
- val bottomContent = userAgreement.agreementEntity.agreementButtonFirst
- val lastContent = userAgreement.agreementEntity.agreementButtonSecond
- mView.showAuthorizationAgreementContent(id, content, title, bottomContent, lastContent)
+ override fun requestContentSuccess(userAgreement: Agreement) {
+ Logger.d(TAG, "requestContentSuccess userAgreement:$userAgreement")
+ if (userAgreement?.agreementContent != null && userAgreement?.agreementContent.isNotEmpty()) {
+ val id = userAgreement.tUserAgreementEntity.id
+ val content = userAgreement.agreementContent[0]
+ val title = userAgreement.tUserAgreementEntity.title
+ val bottomContent = userAgreement.tUserAgreementEntity.agreementButtonFirst
+ val lastContent = userAgreement.tUserAgreementEntity.agreementButtonSecond
+ mView.showAuthorizationAgreementContent(id, content, title, bottomContent, lastContent)
+ } else {
+ mView.showAuthorizationError()
+ }
}
override fun requestContentFailed(errorMsg: String) {
Logger.d(TAG, "requestContentFailed errorMsg:$errorMsg")
+// mView.showAuthorizationAgreementContent(0, "123", "123456", "34234", "3543535")
mView.showAuthorizationError()
}
override fun agreeAuthorize(tag: String, agreementId: Long) {
- mogoAuthShow.agreeAuthorize(tag, agreementId)
+ mogoAuthShow.agreeAuthorize(tag, agreementId, {
+ Logger.d(TAG, "agreeAuthorize success")
+ closeAuthorizeView()
+ }, { s: String ->
+ Logger.d(TAG, "agreeAuthorize failed")
+ closeAuthorizeView()
+ })
}
override fun disAgreeAuthorize(tag: String, agreementId: Long) {
- mogoAuthShow.disAgreeAuthorize(tag, agreementId)
- }
-
- override fun authorizeSuccess() {
- mogoAuthShow.authorizeSuccess(invokeTag!!)
- closeAuthorizeView()
- }
-
- override fun authorizeFailed(errorMsg: String) {
- mogoAuthShow.authorizeFailed(invokeTag!!, errorMsg)
- closeAuthorizeView()
- }
-
- override fun forbiddenVoiceWhenAuthorize(cmd: String) {
- //do nothing
+ mogoAuthShow.disAgreeAuthorize(tag, agreementId, {
+ closeAuthorizeView()
+ }, { s: String ->
+ closeAuthorizeView()
+ })
}
private fun closeAuthorizeView() {
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/BaseResponse.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/BaseResponse.kt
index d5790a7d87..963747434a 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/BaseResponse.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/BaseResponse.kt
@@ -1,6 +1,6 @@
package com.mogo.module.authorize.model
-class BaseResponse(val code: Int, val msg: String, val result: T) {
+class BaseResponse(val code: Int, val msg: String, val detailMsg: String, val result: T) {
}
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 92b5fe261d..5747d89775 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
@@ -3,7 +3,8 @@ 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.UserAgreement
+import com.mogo.module.authorize.model.bean.Agreement
+import com.mogo.module.authorize.model.bean.AgreementData
open class IMogoAuthorizeModel : BaseRepository() {
@@ -11,7 +12,7 @@ open class IMogoAuthorizeModel : BaseRepository() {
const val TAG = "IMogoAuthorizeModel"
}
- suspend fun invokeAuthorizeContent(agreementType: Int): BaseResponse {
+ suspend fun invokeAuthorizeContent(agreementType: Int): BaseResponse {
val requestUserAgreement = Gson().toJson(RequestUserAgreement(agreementType))
val map = mapOf("sn" to getSn(), "data" to requestUserAgreement)
return apiCall { getNetWorkApi().getAuthorizeContent(map) }
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/UserAgreement.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/Agreement.kt
similarity index 73%
rename from modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/UserAgreement.kt
rename to modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/Agreement.kt
index 9e11630fc2..d530e2741f 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/UserAgreement.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/bean/Agreement.kt
@@ -3,9 +3,11 @@ 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(val agreementType: Int)
-data class UserAgreement(var agreementEntity: TUserAgreementEntity, var agreementContent: List)
+data class AgreementData(val agreement: Agreement)
+
+data class Agreement(var tUserAgreementEntity: TUserAgreementEntity, var agreementContent: List)
data class TUserAgreementEntity(
val id: Long, //协议ID
@@ -18,4 +20,4 @@ data class TUserAgreementEntity(
val agreementUserType: String, //协议适用用户
val agreementStatus: Int, //协议状态 1:生效 2:未生效
val createTime: String, //协议创建时间
- val updateTime: String) //协议更新时间
\ No newline at end of file
+ val updateTime: String) //协议更新时间
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/proxy/AuthorizeProxy.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/proxy/AuthorizeProxy.kt
index 65ad9ea34d..799259266a 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/proxy/AuthorizeProxy.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/model/proxy/AuthorizeProxy.kt
@@ -3,6 +3,7 @@ package com.mogo.module.authorize.model.proxy
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_AUXILIARY_DRIVING
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_CALL_CHAT
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_MAIN
+import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_SHARE
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_SHARE_MUSIC
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_NOVELTY
@@ -21,7 +22,8 @@ class AuthorizeProxy {
return when (authorizeName) {
AUTHORIZE_TYPE_LAUNCHER_MAIN,
AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY,
- AUTHORIZE_TYPE_LAUNCHER_SHARE_MUSIC -> 0
+ AUTHORIZE_TYPE_LAUNCHER_SHARE_MUSIC,
+ AUTHORIZE_TYPE_LAUNCHER_SHARE -> 0
AUTHORIZE_TYPE_TAN_LU -> 1
AUTHORIZE_TYPE_CALL_CHAT -> 2
AUTHORIZE_TYPE_NOVELTY -> 3
@@ -35,6 +37,7 @@ class AuthorizeProxy {
LAUNCHER_MAIN(0, AUTHORIZE_TYPE_LAUNCHER_MAIN),
LAUNCHER_SHARE_NOVELTY(0, AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY),
LAUNCHER_SHARE_MUSIC(0, AUTHORIZE_TYPE_LAUNCHER_SHARE_MUSIC),
+ LAUNCHER_SHARE(0, AUTHORIZE_TYPE_LAUNCHER_SHARE),
CALL_CHAT(1, AUTHORIZE_TYPE_TAN_LU),
TANLU(2, AUTHORIZE_TYPE_CALL_CHAT),
NOVELTY(3, AUTHORIZE_TYPE_NOVELTY),
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 c2b25d961a..ea6538d5f5 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,7 +1,8 @@
package com.mogo.module.authorize.net
import com.mogo.module.authorize.model.BaseResponse
-import com.mogo.module.authorize.model.bean.UserAgreement
+import com.mogo.module.authorize.model.bean.Agreement
+import com.mogo.module.authorize.model.bean.AgreementData
import retrofit2.http.FieldMap
import retrofit2.http.FormUrlEncoded
import retrofit2.http.POST
@@ -10,12 +11,12 @@ interface AuthorizeApi {
//获取授权内容·
@FormUrlEncoded
- @POST("yycp-channelManager/user/agreement/findUserAgreement")
- suspend fun getAuthorizeContent(@FieldMap authorizeContent: Map): BaseResponse
+ @POST("yycp-channelManager/agreement/findUserAgreement")
+ suspend fun getAuthorizeContent(@FieldMap authorizeContent: Map): BaseResponse
//更新授权状态
@FormUrlEncoded
- @POST("yycp-channelManager/user/agreement/updateStatus")
+ @POST("yycp-channelManager/agreement/updateStatus")
suspend fun updateAuthorize(@FieldMap updateStatus: Map): BaseResponse
}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/CoroutineDSL.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/CoroutineDSL.kt
index c415974178..f9d611409a 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/CoroutineDSL.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/net/CoroutineDSL.kt
@@ -5,7 +5,6 @@ import com.mogo.module.authorize.exception.ApiException.Companion.NULL_REQUEST_D
import com.mogo.module.authorize.exception.CommonException.Companion.NETWORK_EXCEPTION
import com.mogo.module.authorize.exception.CommonException.Companion.NULL_EXCEPTION
import com.mogo.module.authorize.model.BaseResponse
-import com.mogo.utils.logger.Logger
import kotlinx.coroutines.*
import java.net.SocketTimeoutException
import java.net.UnknownHostException
@@ -63,7 +62,7 @@ class Request {
}
} catch (e: Exception) {
e.printStackTrace()
- if(e == null){
+ if (e == null) {
onError?.invoke(NULL_EXCEPTION)
return@launch
}
@@ -71,7 +70,7 @@ class Request {
is UnknownHostException -> onError?.invoke(NETWORK_EXCEPTION)
is TimeoutException -> onError?.invoke(NETWORK_EXCEPTION)
is SocketTimeoutException -> onError?.invoke(NETWORK_EXCEPTION)
- else -> onError?.invoke(java.lang.Exception(e.message?:""))
+ else -> onError?.invoke(java.lang.Exception(e.message ?: ""))
}
} finally {
onComplete?.invoke()
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/AnalyticsUtil.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/AnalyticsUtil.kt
new file mode 100644
index 0000000000..bb08c3350f
--- /dev/null
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/AnalyticsUtil.kt
@@ -0,0 +1,24 @@
+package com.mogo.module.authorize.util
+
+import com.alibaba.android.arouter.launcher.ARouter
+import com.mogo.service.IMogoServiceApis
+import com.mogo.service.MogoServicePaths
+import com.mogo.service.analytics.IMogoAnalytics
+
+object AnalyticsUtil {
+
+ const val INVOKE_TRACK_AUTHORIZE_SHOW = "Launcher_Privacy_protocol_Show"
+ const val INVOKE_TRACK_AUTHORIZE_CLICK = "Launcher_Privacy_protocol_click"
+
+ private var trackRouter: IMogoAnalytics? = null
+
+ fun track(eventType: String, data: MutableMap? = hashMapOf()) {
+ if (trackRouter == null) {
+ val arouter = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation()
+ if (arouter is IMogoServiceApis) {
+ trackRouter = arouter.analyticsApi
+ }
+ }
+ trackRouter!!.track(eventType, data)
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/SharedPreferenceUtil.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/SharedPreferenceUtil.kt
index 1817218390..68dc8a288d 100644
--- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/SharedPreferenceUtil.kt
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/SharedPreferenceUtil.kt
@@ -7,7 +7,7 @@ object SharedPreferenceUtil {
private const val HAS_AUTH = "HAS_AUTH"
- fun needAuthorization():Boolean{
+ fun needAuthorization(): Boolean {
return !hasAuth()
}
@@ -15,4 +15,7 @@ object SharedPreferenceUtil {
return SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()).getBoolean(HAS_AUTH, false)
}
+ fun setAuthorizeStatus() {
+ SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()).putBoolean(HAS_AUTH, true)
+ }
}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceBusinessListener.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceBusinessListener.kt
new file mode 100644
index 0000000000..b9792d1126
--- /dev/null
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceBusinessListener.kt
@@ -0,0 +1,8 @@
+package com.mogo.module.authorize.voice
+
+interface IVoiceBusinessListener {
+
+ fun onVoiceCmdAgree()
+
+ fun onVoiceCmdDisAgree()
+}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceCommandListener.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceCommandListener.kt
new file mode 100644
index 0000000000..bf50a36ae6
--- /dev/null
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceCommandListener.kt
@@ -0,0 +1,35 @@
+package com.mogo.module.authorize.voice
+
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
+import com.mogo.utils.logger.Logger
+
+private const val IVoiceCommandTAG = "IVoiceCommandTAG"
+
+interface IVoiceCommandListener : IMogoVoiceCmdCallBack, IVoiceBusinessListener {
+
+ override fun onCmdSelected(cmd: String?) {
+ Logger.i(
+ IVoiceCommandTAG, "onCmdSelected cmd:${cmd ?: "cmd is null"}"
+ )
+ cmd?.let {
+ VoiceManager.handleOnCmdSelected(cmd, this)
+ }
+ }
+
+ override fun onCmdAction(speakText: String?) {
+
+ }
+
+ override fun onCmdCancel(speakText: String?) {
+
+ }
+
+ override fun onSpeakSelectTimeOut(speakText: String?) {
+
+ }
+
+ override fun onSpeakEnd(speakText: String?) {
+ Logger.i(IVoiceCommandTAG, "onSpeakEnd --- speakText : $speakText")
+ }
+
+}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceIntentListener.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceIntentListener.kt
new file mode 100644
index 0000000000..f4b3d233d6
--- /dev/null
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/IVoiceIntentListener.kt
@@ -0,0 +1,18 @@
+package com.mogo.module.authorize.voice
+
+import android.content.Intent
+import com.mogo.service.intent.IMogoIntentListener
+import com.mogo.utils.logger.Logger
+
+private const val IVoiceIntentTAG = "IVoiceIntentListener"
+
+interface IVoiceIntentListener : IMogoIntentListener, IVoiceBusinessListener {
+
+ override fun onIntentReceived(cmd: String?, intent: Intent?) {
+ Logger.i(IVoiceIntentTAG, "cmd -> $cmd")
+ if (intent != null && cmd != null) {
+ VoiceManager.handleOnIntentCmd(cmd, intent, this)
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceManager.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceManager.kt
new file mode 100644
index 0000000000..d29e9d6a82
--- /dev/null
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceManager.kt
@@ -0,0 +1,40 @@
+package com.mogo.module.authorize.voice
+
+import android.content.Intent
+import com.mogo.module.authorize.voice.VoiceUtil.VOICE_REGISTER_AUTHORIZE_AGREE
+import com.mogo.module.authorize.voice.VoiceUtil.VOICE_REGISTER_AUTHORIZE_DISAGREE
+import com.mogo.utils.logger.Logger
+
+object VoiceManager {
+
+ private const val TAG = "VoiceManager"
+
+ fun handleOnCmdSelected(cmd: String, listener: IVoiceCommandListener) {
+ Logger.i(TAG, "handleOnCmdSelected: cmd ---> $cmd")
+ when (cmd) {
+ VOICE_REGISTER_AUTHORIZE_AGREE -> {
+ Logger.i(TAG, "语音免唤醒 同意")
+ listener.onVoiceCmdAgree()
+ }
+ VOICE_REGISTER_AUTHORIZE_DISAGREE -> {
+ Logger.i(TAG, "语音免唤醒 不同意")
+ listener.onVoiceCmdDisAgree()
+ }
+ }
+ }
+
+ fun handleOnIntentCmd(cmd: String, intent: Intent, listener: IVoiceIntentListener) {
+ Logger.i(TAG, "handleOnIntentCmd: cmd -> $cmd")
+ when (cmd) {
+ VOICE_REGISTER_AUTHORIZE_AGREE -> {
+ Logger.i(TAG, "语音唤醒 同意")
+ listener.onVoiceCmdAgree()
+ }
+ VOICE_REGISTER_AUTHORIZE_DISAGREE -> {
+ Logger.i(TAG, "语音免唤醒 不同意")
+ listener.onVoiceCmdDisAgree()
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceUtil.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceUtil.kt
new file mode 100644
index 0000000000..b393c41670
--- /dev/null
+++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceUtil.kt
@@ -0,0 +1,93 @@
+package com.mogo.module.authorize.voice
+
+import android.content.Context
+import com.alibaba.android.arouter.launcher.ARouter
+import com.mogo.commons.voice.AIAssist
+import com.mogo.service.IMogoServiceApis
+import com.mogo.service.MogoServicePaths
+import com.mogo.service.intent.IMogoIntentManager
+import com.mogo.utils.logger.Logger
+
+object VoiceUtil {
+
+ private const val TAG = "VoiceUtil"
+ private var intentRegister: IMogoIntentManager? = null
+
+ init {
+ Logger.i(TAG, "init")
+ val register =
+ ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation()
+ if (register is IMogoServiceApis) {
+ intentRegister = register.intentManagerApi
+ }
+ }
+
+ //WakeUp Command (Intent)
+ const val VOICE_INTENT_AGREE = "system.application.operation" //同意
+ const val VOICE_INTENT_DISAGREE = "system.application.operation" //不同意
+
+ //unWakeUp Command
+ const val VOICE_REGISTER_AUTHORIZE_AGREE = "CMD_AUTHORIZATION_AGREE"
+ private val agreeArray: Array = arrayOf("同意", "调整", "好的")
+ const val VOICE_REGISTER_AUTHORIZE_DISAGREE = "CMD_AUTHORIZATION_DISAGREE"
+ private val disAgreeArray: Array = arrayOf("不同意", "不调整")
+
+ private var hasRegister = false
+
+ fun speak(content: String, context: Context, listener: IVoiceCommandListener) {
+ AIAssist.getInstance(context).speakTTSVoice(content, listener)
+ }
+
+ fun registerAll(
+ context: Context,
+ voiceCommand: IVoiceCommandListener,
+ intentCommand: IVoiceIntentListener
+ ) {
+ if (!hasRegister) {
+ hasRegister = true
+ registerAgree(context, voiceCommand, intentCommand)
+ registerDisAgree(context, voiceCommand, intentCommand)
+ }
+ }
+
+ private fun registerAgree(
+ context: Context,
+ voiceCommand: IVoiceCommandListener,
+ intentCommand: IVoiceIntentListener
+ ) {
+ Logger.i(TAG, "registerAgree")
+ AIAssist.getInstance(context)
+ .registerUnWakeupCommand(
+ VOICE_REGISTER_AUTHORIZE_AGREE,
+ agreeArray, voiceCommand
+ )
+// intentRegister?.registerIntentListener(VOICE_INTENT_AGREE, intentCommand)
+ }
+
+ private fun registerDisAgree(
+ context: Context,
+ voiceCommand: IVoiceCommandListener,
+ intentCommand: IVoiceIntentListener
+ ) {
+ Logger.i(TAG, "registerDisAgree")
+ AIAssist.getInstance(context)
+ .registerUnWakeupCommand(
+ VOICE_REGISTER_AUTHORIZE_DISAGREE,
+ disAgreeArray, voiceCommand
+ )
+// intentRegister?.registerIntentListener(VOICE_INTENT_DISAGREE, intentCommand)
+ }
+
+ fun unregisterAll(context: Context, listener: IVoiceIntentListener) {
+ Logger.i(TAG, "unregister All")
+ AIAssist.getInstance(context).unregisterUnWakeupCommand(VOICE_REGISTER_AUTHORIZE_AGREE)
+ AIAssist.getInstance(context).unregisterUnWakeupCommand(VOICE_REGISTER_AUTHORIZE_DISAGREE)
+ hasRegister = false
+
+ Logger.i(TAG, "unregister IntentVoiceCommand --- intentRegister:$intentRegister")
+ intentRegister?.let {
+ it.unregisterIntentListener(VOICE_INTENT_AGREE, listener)
+ it.unregisterIntentListener(VOICE_INTENT_DISAGREE, listener)
+ }
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml b/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml
index 7e09e1a855..68244747c6 100644
--- a/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml
+++ b/modules/mogo-module-authorize/src/main/res/layout/module_authorize_fragment.xml
@@ -50,11 +50,25 @@
android:layout_marginRight="@dimen/dp_330"
android:layout_marginBottom="@dimen/dp_90"
android:background="@drawable/module_authorize_selector_dark_corner"
+ android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- android:visibility="gone"
app:layout_constraintTop_toTopOf="parent">
+
+
-
-
正在加载,请稍等...
加载失败
点击重试
+ 您还没有授权,不可分享,您可以说“同意”进行授权。
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
index 16d0d7b2ef..fdf8030545 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntranceFragment.java
@@ -63,6 +63,8 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import retrofit2.http.HEAD;
+
/**
* @author congtaowang
* @since 2020-01-07
@@ -128,8 +130,8 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
@Override
protected void initViews() {
mApis = ( IMogoServiceApis ) ARouter.getInstance().build( MogoServicePaths.PATH_SERVICE_APIS ).navigation( getContext() );
- mIMogoAuthorizeModuleManager = ( IMogoAuthorizeModuleManager ) ARouter.getInstance().build( AuthorizeConstant.PROVIDER_MODULE ).navigation( getContext() );
- mIMogoAuthorizeModuleManager.registerAuthorizeListener( AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY, this );
+ mIMogoAuthorizeModuleManager = (IMogoAuthorizeModuleManager) ARouter.getInstance().build(AuthorizeConstant.PROVIDER_MODULE).navigation(getContext());
+ mIMogoAuthorizeModuleManager.registerAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE, this);
mEntrancePresenter = new EntrancePresenter( getContext(), this, mIMogoAuthorizeModuleManager );
mMogoFragmentManager = mApis.getFragmentManagerApi();
@@ -308,7 +310,7 @@ public class EntranceFragment extends MvpFragment< EntranceView, EntrancePresent
mEntrancePresenter.unregisterUnWake();
}
- mIMogoAuthorizeModuleManager.unregisterAuthorizeListener( AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY );
+ mIMogoAuthorizeModuleManager.unregisterAuthorizeListener(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE);
}
diff --git a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
index 00d5b691a4..b9d879615f 100644
--- a/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
+++ b/modules/mogo-module-extensions/src/main/java/com/mogo/module/extensions/entrance/EntrancePresenter.java
@@ -209,7 +209,11 @@ public class EntrancePresenter extends Presenter {
Logger.d(TAG, "mogoIntentListener 两次未回复关闭对话框");
}
} else if (intentStr.equals(ExtensionsModuleConst.UPLOAD_ROAD_CONDITION)) { //上报路况 免唤醒 --ok
+ if (mIMogoAuthorizeModuleManager.needAuthorize()) {
+ mIMogoAuthorizeModuleManager.invokeAuthorization(AuthorizeInvokerConstant.AUTHORIZE_TYPE_LAUNCHER_SHARE_NOVELTY);
+ } else {
uploadRoadCondition();
+ }
}
}
};
diff --git a/modules/mogo-module-guide/src/androidTest/java/com/mogo/module/guide/agreement/ExampleInstrumentedTest.kt b/modules/mogo-module-guide/src/androidTest/java/com/mogo/module/guide/agreement/ExampleInstrumentedTest.kt
index 50a1214bf8..1b82ddd479 100644
--- a/modules/mogo-module-guide/src/androidTest/java/com/mogo/module/guide/agreement/ExampleInstrumentedTest.kt
+++ b/modules/mogo-module-guide/src/androidTest/java/com/mogo/module/guide/agreement/ExampleInstrumentedTest.kt
@@ -1,24 +1,2 @@
package com.mogo.module.guide.agreement
-import androidx.test.platform.app.InstrumentationRegistry
-import androidx.test.ext.junit.runners.AndroidJUnit4
-
-import org.junit.Test
-import org.junit.runner.RunWith
-
-import org.junit.Assert.*
-
-/**
- * Instrumented test, which will execute on an Android device.
- *
- * See [testing documentation](http://d.android.com/tools/testing).
- */
-@RunWith(AndroidJUnit4::class)
-class ExampleInstrumentedTest {
- @Test
- fun useAppContext() {
- // Context of the app under test.
- val appContext = InstrumentationRegistry.getInstrumentation().targetContext
- assertEquals("com.mogo.module.guide.agreement.test", appContext.packageName)
- }
-}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/GuideBizManager.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/GuideBizManager.kt
index 2b8f7fe1a5..83b3628aca 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/GuideBizManager.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/GuideBizManager.kt
@@ -1,8 +1,11 @@
package com.mogo.module.guide
import com.alibaba.android.arouter.launcher.ARouter
+import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant
+import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager
import com.mogo.module.guide.fragment.GuideFragment
import com.mogo.module.guide.util.SharedPreferenceUtil.hasGuide
+import com.mogo.module.guide.util.SharedPreferenceUtil.setGuideFinish
import com.mogo.service.IMogoServiceApis
import com.mogo.service.MogoServicePaths
import com.mogo.service.fragmentmanager.FragmentDescriptor
@@ -15,7 +18,7 @@ object GuideBizManager {
fun init() {
Logger.d("GuideBizManager", "init===================================")
initService()
-// addGuideFragmentToStack()
+ addGuideFragmentToStack()
}
private fun initService() {
@@ -35,8 +38,19 @@ object GuideBizManager {
}
fun removeGuideFragmentToStack() {
+ Logger.d("GuideBizManager", "removeGuideFragmentToStack")
+ setGuideFinish()
serviceApi?.let {
it.fragmentManagerApi.pop()
}
}
+
+ fun invokeAuthorize() {
+ val authorizeInvoke = ARouter.getInstance().build(AuthorizeConstant.PROVIDER_MODULE).navigation()
+ if (authorizeInvoke is IMogoAuthorizeModuleManager) {
+ if (authorizeInvoke.needAuthorize()) {
+ authorizeInvoke.invokeAuthorizeForShow()
+ }
+ }
+ }
}
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideFragment.kt
index 311baa5998..49e38411b6 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideFragment.kt
@@ -1,9 +1,6 @@
package com.mogo.module.guide.fragment
-import com.alibaba.android.arouter.launcher.ARouter
import com.mogo.commons.mvp.MvpFragment
-import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant
-import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager
import com.mogo.module.guide.GuideBizManager
import com.mogo.module.guide.R
import com.mogo.utils.logger.Logger
@@ -44,17 +41,15 @@ class GuideFragment : MvpFragment(), GuideC
fun closeGuideFragment() {
Logger.d(TAG, "closeGuideFragment")
- val authorizeInvoke = ARouter.getInstance().build(AuthorizeConstant.PROVIDER_MODULE).navigation()
- if (authorizeInvoke is IMogoAuthorizeModuleManager) {
- if (authorizeInvoke.needAuthorize()) {
- authorizeInvoke.invokeAuthorizeForShow()
- } else {
- destroy()
- }
- }
+ destroy()
+ invokeAuthorize()
}
private fun destroy() {
GuideBizManager.removeGuideFragmentToStack()
}
+
+ private fun invokeAuthorize() {
+ GuideBizManager.invokeAuthorize()
+ }
}
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideAppListFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideAppListFragment.kt
index 8179f261f2..2bd448fc24 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideAppListFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideAppListFragment.kt
@@ -6,6 +6,7 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.module.guide.R
import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.AnalyticsUtil
import kotlinx.android.synthetic.main.module_guide_item_app_list.*
class GuideAppListFragment : MvpFragment>, View.OnClickListener {
@@ -25,6 +26,7 @@ class GuideAppListFragment : MvpFragment>, View.OnClickL
}
override fun initViews() {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 6))
moduleGuideAppListNext.setOnClickListener(this)
moduleGuideAppListSkip.setOnClickListener(this)
}
@@ -32,9 +34,11 @@ class GuideAppListFragment : MvpFragment>, View.OnClickL
override fun onClick(v: View) {
when (v.id) {
R.id.moduleGuideAppListNext -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 6, "button_type" to 1))
containerFragment?.moveToNext()
}
R.id.moduleGuideAppListSkip -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 6, "button_type" to 2))
containerFragment?.moveToLast()
}
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideCardFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideCardFragment.kt
index 8c7a434e21..aef2a84ef7 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideCardFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideCardFragment.kt
@@ -6,13 +6,16 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.module.guide.R
import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.AnalyticsUtil
+import com.mogo.module.guide.util.AnalyticsUtil.INVOKE_TRACK_CLICK
+import com.mogo.module.guide.util.AnalyticsUtil.INVOKE_TRACK_SHOW
import kotlinx.android.synthetic.main.module_guide_item_card.*
class GuideCardFragment : MvpFragment>, View.OnClickListener {
- private var containerFragment:GuideFragment? = null
+ private var containerFragment: GuideFragment? = null
- constructor(containerFragment:GuideFragment){
+ constructor(containerFragment: GuideFragment) {
this.containerFragment = containerFragment
}
@@ -25,6 +28,7 @@ class GuideCardFragment : MvpFragment>, View.OnClickList
}
override fun initViews() {
+ AnalyticsUtil.track(INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 2))
moduleGuideCardNext.setOnClickListener(this)
moduleGuideCardSkip.setOnClickListener(this)
}
@@ -32,9 +36,11 @@ class GuideCardFragment : MvpFragment>, View.OnClickList
override fun onClick(v: View) {
when (v.id) {
R.id.moduleGuideCardNext -> {
+ AnalyticsUtil.track(INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 2, "button_type" to 1))
containerFragment?.moveToNext()
}
R.id.moduleGuideCardSkip -> {
+ AnalyticsUtil.track(INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 2, "button_type" to 2))
containerFragment?.moveToLast()
}
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideEntryMainFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideEntryMainFragment.kt
index cfdcc64052..b5217ff094 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideEntryMainFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideEntryMainFragment.kt
@@ -6,9 +6,10 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.module.guide.R
import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.AnalyticsUtil
import kotlinx.android.synthetic.main.module_guide_item_entry_main.*
-class GuideEntryMainFragment : MvpFragment>,View.OnClickListener {
+class GuideEntryMainFragment : MvpFragment>, View.OnClickListener {
private var containerFragment: GuideFragment? = null
@@ -25,12 +26,14 @@ class GuideEntryMainFragment : MvpFragment>,View.OnClick
}
override fun initViews() {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 7))
moduleGuideEntryMain.setOnClickListener(this)
}
override fun onClick(v: View) {
- when(v.id){
+ when (v.id) {
R.id.moduleGuideEntryMain -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 7, "button_type" to 3))
containerFragment?.closeGuideFragment()
}
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideLocationFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideLocationFragment.kt
index 4e28bd302e..9068ac8ece 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideLocationFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideLocationFragment.kt
@@ -6,6 +6,7 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.module.guide.R
import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.AnalyticsUtil
import kotlinx.android.synthetic.main.module_guide_item_location.*
class GuideLocationFragment : MvpFragment>, View.OnClickListener {
@@ -25,6 +26,7 @@ class GuideLocationFragment : MvpFragment>, View.OnClick
}
override fun initViews() {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 5))
moduleGuideLocationNext.setOnClickListener(this)
moduleGuideLocationSkip.setOnClickListener(this)
}
@@ -32,9 +34,11 @@ class GuideLocationFragment : MvpFragment>, View.OnClick
override fun onClick(v: View) {
when (v.id) {
R.id.moduleGuideLocationNext -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 5, "button_type" to 1))
containerFragment?.moveToNext()
}
R.id.moduleGuideLocationSkip -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 5, "button_type" to 2))
containerFragment?.moveToLast()
}
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideNavigationFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideNavigationFragment.kt
index 26eebb6d25..f5ea2fd476 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideNavigationFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideNavigationFragment.kt
@@ -6,6 +6,7 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.module.guide.R
import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.AnalyticsUtil
import kotlinx.android.synthetic.main.module_guide_item_navigation.*
class GuideNavigationFragment : MvpFragment>, View.OnClickListener {
@@ -25,6 +26,7 @@ class GuideNavigationFragment : MvpFragment>, View.OnCli
}
override fun initViews() {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 4))
moduleGuideNavigationNext.setOnClickListener(this)
moduleGuideNavigationSkip.setOnClickListener(this)
}
@@ -32,9 +34,11 @@ class GuideNavigationFragment : MvpFragment>, View.OnCli
override fun onClick(v: View) {
when (v.id) {
R.id.moduleGuideNavigationNext -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 4, "button_type" to 1))
containerFragment?.moveToNext()
}
R.id.moduleGuideNavigationSkip -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 4, "button_type" to 2))
containerFragment?.moveToLast()
}
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideOnLineCarFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideOnLineCarFragment.kt
index b8229361f5..2d5a1edebc 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideOnLineCarFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideOnLineCarFragment.kt
@@ -6,6 +6,7 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.module.guide.R
import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.AnalyticsUtil
import kotlinx.android.synthetic.main.module_guide_item_online_car.*
class GuideOnLineCarFragment : MvpFragment>, View.OnClickListener {
@@ -25,6 +26,7 @@ class GuideOnLineCarFragment : MvpFragment>, View.OnClic
}
override fun initViews() {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 3))
moduleGuideOnLineCarNext.setOnClickListener(this)
moduleGuideOnLineCarSkip.setOnClickListener(this)
}
@@ -32,9 +34,11 @@ class GuideOnLineCarFragment : MvpFragment>, View.OnClic
override fun onClick(v: View) {
when (v.id) {
R.id.moduleGuideOnLineCarNext -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 3, "button_type" to 1))
containerFragment?.moveToNext()
}
R.id.moduleGuideOnLineCarSkip -> {
+ AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 3, "button_type" to 2))
containerFragment?.moveToLast()
}
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt
index fb1ea72c9e..bb7cd9f341 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt
@@ -4,6 +4,8 @@ import com.mogo.commons.mvp.IView
import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.module.guide.R
+import com.mogo.module.guide.util.AnalyticsUtil
+import com.mogo.module.guide.util.AnalyticsUtil.INVOKE_TRACK_SHOW
class GuideStartFragment : MvpFragment>() {
@@ -16,7 +18,7 @@ class GuideStartFragment : MvpFragment>() {
}
override fun initViews() {
-
+ AnalyticsUtil.track(INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 1))
}
class GuideStartPresenter : Presenter {
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/AnalyticsUtil.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/AnalyticsUtil.kt
new file mode 100644
index 0000000000..d04ae036a8
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/AnalyticsUtil.kt
@@ -0,0 +1,24 @@
+package com.mogo.module.guide.util
+
+import com.alibaba.android.arouter.launcher.ARouter
+import com.mogo.service.IMogoServiceApis
+import com.mogo.service.MogoServicePaths
+import com.mogo.service.analytics.IMogoAnalytics
+
+object AnalyticsUtil {
+
+ const val INVOKE_TRACK_SHOW = "newhand_show"
+ const val INVOKE_TRACK_CLICK = "newhand_click"
+
+ private var trackRouter: IMogoAnalytics? = null
+
+ fun track(eventType: String, data: MutableMap? = hashMapOf()) {
+ if (trackRouter == null) {
+ val arouter = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation()
+ if (arouter is IMogoServiceApis) {
+ trackRouter = arouter.analyticsApi
+ }
+ }
+ trackRouter!!.track(eventType, data)
+ }
+}
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/SharedPreferenceUtil.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/SharedPreferenceUtil.kt
index 5348919b04..5a1fcb87e3 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/SharedPreferenceUtil.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/SharedPreferenceUtil.kt
@@ -11,4 +11,8 @@ object SharedPreferenceUtil {
return SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()).getBoolean(HAS_GUIDE, false)
}
+ fun setGuideFinish() {
+ SharedPrefsMgr.getInstance(AbsMogoApplication.getApp()).putBoolean(HAS_GUIDE, true)
+ }
+
}
\ No newline at end of file