From 0406fde7aaef5ae4e2164b417ea1ac3ad4ff05e1 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 25 May 2020 09:48:51 +0800 Subject: [PATCH 1/4] rename the fun name --- .../authorize/authprovider/launcher/MogoMainAuthorize.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 528135f4f8..c58520c34a 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 @@ -47,7 +47,7 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog Logger.d(TAG, "User is operation authorization, do not repeat invoke") return } - pushFragmentToMainView(AUTHORIZE_TYPE_LAUNCHER_MAIN) { + pushLayoutToMainWindow(AUTHORIZE_TYPE_LAUNCHER_MAIN) { showAuthorizeView = true } } @@ -76,7 +76,7 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog Logger.d(TAG, "ready to forbidden voice") forbiddenVoice.invoke() Logger.d(TAG, "ready to push fragment") - pushFragmentToMainView(tag) { + pushLayoutToMainWindow(tag) { showAuthorizeView = true } } @@ -91,10 +91,10 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog showAuthorizeView = false } - private inline fun pushFragmentToMainView(tag: String, push: (() -> Unit)) { + private inline fun pushLayoutToMainWindow(tag: String, push: (() -> Unit)) { val builderWrapper = FragmentDescriptor.Builder().fragment(AuthorizeFragment.newInstance(tag)) .tag(PATH_AGREEMENT_MODULE_NAME).notifyMainModule(false).build() - Logger.d(TAG, "pushFragmentToMainView") + Logger.d(TAG, "pushLayoutToMainWindow") val mogoService = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation() if (mogoService is IMogoServiceApis) { push.invoke() From 6647695b61896ba51c59770d6ab5e7335c6c07a9 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 25 May 2020 14:36:42 +0800 Subject: [PATCH 2/4] opt auth --- .../biz/IMogoAuthorizeController.kt | 1 - .../authprovider/biz/MogoAuthorizeProvider.kt | 4 +- .../launcher/MogoMainAuthorize.kt | 70 ++++------- .../module/MogoModuleAuthorize.kt | 7 +- .../authorize/fragment/AuthorizeContract.kt | 25 ---- .../AuthorizeController.kt} | 60 +++++---- .../AuthorizeLayout.kt} | 117 ++++++++++-------- .../mogo/module/authorize/voice/VoiceUtil.kt | 4 +- .../res/layout/module_authorize_fragment.xml | 2 + 9 files changed, 129 insertions(+), 161 deletions(-) delete mode 100644 modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt rename modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/{fragment/AuthorizePresenter.kt => layout/AuthorizeController.kt} (59%) rename modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/{fragment/AuthorizeFragment.kt => layout/AuthorizeLayout.kt} (58%) 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 a52028d2b1..055f1ee6ed 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,6 +1,5 @@ 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 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 7db66447cd..f234fad44f 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 @@ -63,11 +63,11 @@ class MogoAuthorizeProvider : IMogoModuleProvider { return null } - override fun init(context: Context?) { + override fun init(context: Context) { //todo 引导判断暂时去掉 后续引导流程更改完再放开 // todo if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { if (isDeviceOfD() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { - mogoAuthShow.invokeAuthorizeForShow() + mogoAuthShow.invokeAuthorizeForShow(context) } else { //首次进入Launcher同步一下授权状态,防止由于用户清除数据造成首次加载还会出现授权状态不同步问题 mogoAuthShow.updateAuthorizeStatus(AUTHORIZE_TYPE_LAUNCHER_MAIN) 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 c58520c34a..933e83abcf 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 @@ -1,17 +1,16 @@ package com.mogo.module.authorize.authprovider.launcher +import android.content.Context import android.os.Looper -import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.commons.AbsMogoApplication import com.mogo.module.authorize.authprovider.biz.MogoAuthorizeManagerImpl import com.mogo.module.authorize.authprovider.biz.MogoAuthorizeRegisterHandler -import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.Companion.PATH_AGREEMENT_MODULE_NAME +import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_MAIN -import com.mogo.module.authorize.fragment.AuthorizeFragment +import com.mogo.module.authorize.layout.AuthorizeLayout import com.mogo.module.authorize.model.proxy.toAuthorizeType import com.mogo.module.authorize.util.SharedPreferenceUtil.hasAuth -import com.mogo.service.IMogoServiceApis -import com.mogo.service.MogoServicePaths -import com.mogo.service.fragmentmanager.FragmentDescriptor +import com.mogo.module.common.wm.WindowManagerView import com.mogo.utils.logger.Logger class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMogoAuthorizeMainProvider { @@ -25,8 +24,7 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog } } - @Volatile - private var showAuthorizeView: Boolean = false + private var windowManagerView: WindowManagerView? = null override fun hasRegister(tag: String): Boolean { if (tag.isNullOrBlank()) return false @@ -42,14 +40,8 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog MogoAuthorizeMainController.disAgreeAuthorize(tag, agrId, onSuccess, onError) } - fun invokeAuthorizeForShow() { - if (showAuthorizeView) { - Logger.d(TAG, "User is operation authorization, do not repeat invoke") - return - } - pushLayoutToMainWindow(AUTHORIZE_TYPE_LAUNCHER_MAIN) { - showAuthorizeView = true - } + fun invokeAuthorizeForShow(context: Context) { + pushLayoutToMainWindow(context, AUTHORIZE_TYPE_LAUNCHER_MAIN) } fun showAuthorizeView(tag: String, forbiddenVoice: (() -> Unit), onError: ((String) -> Unit)) { @@ -69,44 +61,28 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog onError.invoke("already authorize,do not repeat operation") return } - if (showAuthorizeView) { - onError.invoke("User is operation authorization, do not repeat invoke") - return - } Logger.d(TAG, "ready to forbidden voice") forbiddenVoice.invoke() Logger.d(TAG, "ready to push fragment") - pushLayoutToMainWindow(tag) { - showAuthorizeView = true - } + pushLayoutToMainWindow(AbsMogoApplication.getApp().applicationContext,tag) } fun hideAuthorizeView() { - popFragmentFromMainView { - showAuthorizeView = false + windowManagerView?.dismiss() + } + + private fun pushLayoutToMainWindow(context: Context,tag: String) { + if (windowManagerView == null) { + val authorizeLayout = AuthorizeLayout(tag) + val view = authorizeLayout.getLayoutView() + windowManagerView = WindowManagerView.Builder(context).contentView(view).build() } - } - - fun resetShowStatus() { - showAuthorizeView = false - } - - private inline fun pushLayoutToMainWindow(tag: String, push: (() -> Unit)) { - val builderWrapper = FragmentDescriptor.Builder().fragment(AuthorizeFragment.newInstance(tag)) - .tag(PATH_AGREEMENT_MODULE_NAME).notifyMainModule(false).build() - Logger.d(TAG, "pushLayoutToMainWindow") - val mogoService = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation() - if (mogoService is IMogoServiceApis) { - push.invoke() - mogoService.fragmentManagerApi.push(builderWrapper) - } - } - - private inline fun popFragmentFromMainView(pop: (() -> Unit)) { - val mogoService = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation() - if (mogoService is IMogoServiceApis) { - pop.invoke() - mogoService.fragmentManagerApi.pop() + if (windowManagerView!!.isShowing) { + Logger.d(TAG, "User is operation authorization, do not repeat invoke") + return + } else { + Logger.d(TAG, "pushLayoutToMainWindow") + windowManagerView!!.show() } } 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 e7fb2c8327..e698249eee 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 @@ -1,5 +1,6 @@ package com.mogo.module.authorize.authprovider.module +import com.mogo.commons.AbsMogoApplication import com.mogo.module.authorize.authprovider.biz.MogoAuthorizeManagerImpl import com.mogo.module.authorize.authprovider.biz.MogoAuthorizeRegisterHandler import com.mogo.module.authorize.authprovider.launcher.MogoMainAuthorize.Companion.mogoAuthShow @@ -13,7 +14,7 @@ class MogoModuleAuthorize private constructor() : MogoAuthorizeManagerImpl(), IM } override fun invokeAuthorizeForShow() { - mogoAuthShow.invokeAuthorizeForShow() + mogoAuthShow.invokeAuthorizeForShow(AbsMogoApplication.getApp().applicationContext) } override fun invokeAuthorization(tag: String) { @@ -28,12 +29,12 @@ class MogoModuleAuthorize private constructor() : MogoAuthorizeManagerImpl(), IM fun forbiddenVoiceWhenAuthorize(cmd: String) { val tmpMap = MogoAuthorizeRegisterHandler.getAllAuthorizeListener() - if (tmpMap == null || tmpMap.size == 0) { + if (tmpMap.isEmpty()) { return } tmpMap.forEach { val acquireListener = it.value - acquireListener?.forbiddenVoiceWhenAuthorize(cmd) + acquireListener.forbiddenVoiceWhenAuthorize(cmd) } } } \ No newline at end of file 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 deleted file mode 100644 index 4573e021ba..0000000000 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt +++ /dev/null @@ -1,25 +0,0 @@ -package com.mogo.module.authorize.fragment - -import com.mogo.commons.mvp.IView - -class AuthorizeContract { - - interface View : IView { - fun showAuthorizationAgreementContent(agreementId: Long, agreementContent: String, agreementTitle: String, agreementBottom: String, agreementLast: String) - - fun readyToAuthorize() - - fun showAuthorizationError() - - fun voiceAuthorizeError() - } - - interface Biz { - 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/AuthorizePresenter.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeController.kt similarity index 59% rename from modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt rename to modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeController.kt index 61a72c003b..80af518b8b 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/layout/AuthorizeController.kt @@ -1,7 +1,5 @@ -package com.mogo.module.authorize.fragment +package com.mogo.module.authorize.layout -import androidx.lifecycle.LifecycleOwner -import com.mogo.commons.mvp.Presenter import com.mogo.module.authorize.authprovider.biz.MogoAuthorizeRegisterHandler import com.mogo.module.authorize.authprovider.launcher.MogoAuthorizeMainController import com.mogo.module.authorize.authprovider.launcher.MogoMainAuthorize.Companion.mogoAuthShow @@ -10,40 +8,41 @@ import com.mogo.module.authorize.util.DateUtil.parseDateToTime import com.mogo.module.authorize.util.SharedPreferenceUtil.updateAuthorizeVersion import com.mogo.utils.logger.Logger -class AuthorizePresenter : Presenter, AuthorizeContract.Biz { +class AuthorizeController { companion object { - const val TAG = "AuthorizePresenter" + const val TAG = "AuthorizeController" } private var invokeTag: String? = null private var updateTime: Long = 0L - constructor(invokeTag: String, view: AuthorizeContract.View?) : super(view) { + private constructor() + + constructor(invokeTag: String) { this.invokeTag = invokeTag - } - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) Logger.d(TAG, "onCreate invokeTag:$invokeTag") - invokeAuthorizationContent(invokeTag!!) } - override fun invokeAuthorizationContent(invokeTag: String) { - mView.readyToAuthorize() + fun invokeAuthorizationContent(invokeTag: String, before: () -> Unit, + agreementContent: (id: Long, content: String, title: String, bottomContent: String, lastContent: String) -> Unit, + agreementError: () -> Unit) { + before.invoke() this.invokeTag = invokeTag MogoAuthorizeMainController.getAuthorizeContent({ Logger.d(TAG, "ready to get Authorize Content") }, { - getContentSuccess(it) + getContentSuccess(it, agreementContent, agreementError) }, { msg: String -> - getContentFailed(msg) + getContentFailed(msg, agreementError) }) } - private fun getContentSuccess(userAgreement: Agreement) { + private fun getContentSuccess(userAgreement: Agreement, + agreementContent: (id: Long, content: String, title: String, bottomContent: String, lastContent: String) -> Unit, + agreementError: () -> Unit) { Logger.d(TAG, "requestContentSuccess userAgreement:$userAgreement") - if (userAgreement?.agreementContent != null && userAgreement?.agreementContent.isNotEmpty()) { + if (userAgreement.agreementContent.isNotEmpty()) { val id = userAgreement.tUserAgreementEntity.id val content = userAgreement.agreementContent[0] val title = userAgreement.tUserAgreementEntity.title @@ -52,38 +51,38 @@ class AuthorizePresenter : Presenter, AuthorizeContract. val tmpUpdate = userAgreement.tUserAgreementEntity.updateTime updateTime = parseDateToTime(tmpUpdate) Logger.d(TAG, "updateTime ===== $updateTime") - mView.showAuthorizationAgreementContent(id, content, title, bottomContent, lastContent) + agreementContent.invoke(id, content, title, bottomContent, lastContent) } else { - mView.showAuthorizationError() + agreementError.invoke() } } - private fun getContentFailed(errorMsg: String) { + private fun getContentFailed(errorMsg: String, agreementError: () -> Unit) { Logger.d(TAG, "requestContentFailed errorMsg:$errorMsg") - mView.showAuthorizationError() + agreementError.invoke() } - override fun agreeAuthorize(tag: String, agreementId: Long) { + fun agreeAuthorize(tag: String, agreementId: Long, voiceAuthorizeError: () -> Unit) { mogoAuthShow.agreeAuthorize(tag, agreementId, { Logger.d(TAG, "agreeAuthorize success") updateAuthorizeVersion(updateTime) closeAuthorizeView() }, { Logger.d(TAG, "agreeAuthorize failed") - authorizeFailed() + authorizeFailed(voiceAuthorizeError) }) } - override fun disAgreeAuthorize(tag: String, agreementId: Long) { + fun disAgreeAuthorize(tag: String, agreementId: Long, voiceAuthorizeError: () -> Unit) { mogoAuthShow.disAgreeAuthorize(tag, agreementId, { - authorizeFailed() + authorizeFailed(voiceAuthorizeError) }, { - authorizeFailed() + authorizeFailed(voiceAuthorizeError) }) } - private fun authorizeFailed() { - mView.voiceAuthorizeError() + private inline fun authorizeFailed(voiceAuthorizeError: () -> Unit) { + voiceAuthorizeError.invoke() closeAuthorizeView() } @@ -92,13 +91,12 @@ class AuthorizePresenter : Presenter, AuthorizeContract. mogoAuthShow.hideAuthorizeView() } - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) + fun onDestroy() { Logger.d(TAG, "onDestroy invokeTag : $invokeTag") - mogoAuthShow.resetShowStatus() invokeTag?.let { MogoAuthorizeRegisterHandler.getAuthorizeContentListener(it)?.requestContentFailed("user exit authorize --- onDestroy") MogoAuthorizeRegisterHandler.getAuthorizeListener(it)?.authorizeFailed("user exit authorize --- onDestroy") } + mogoAuthShow.hideAuthorizeView() } } \ 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/layout/AuthorizeLayout.kt similarity index 58% rename from modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt rename to modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt index 8d865b3256..829ef1e5d3 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/layout/AuthorizeLayout.kt @@ -1,18 +1,18 @@ -package com.mogo.module.authorize.fragment +package com.mogo.module.authorize.layout -import android.os.Bundle import android.text.Html +import android.view.LayoutInflater import android.view.View import android.widget.Button import android.widget.TextView import androidx.constraintlayout.widget.ConstraintLayout -import com.mogo.commons.mvp.MvpFragment +import com.mogo.commons.AbsMogoApplication 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.IVoiceAuthorizeIntentListener +import com.mogo.module.authorize.voice.IVoiceCommandListener import com.mogo.module.authorize.voice.VoiceUtil import com.mogo.utils.logger.Logger import kotlinx.coroutines.Dispatchers @@ -20,27 +20,19 @@ import kotlinx.coroutines.GlobalScope import kotlinx.coroutines.async import kotlinx.coroutines.withContext -class AuthorizeFragment : MvpFragment(), AuthorizeContract.View, View.OnClickListener, IVoiceCommandListener, IVoiceAuthorizeIntentListener { +class AuthorizeLayout(private val invokeTag: String) : View.OnClickListener, IVoiceCommandListener, IVoiceAuthorizeIntentListener { companion object { - const val TAG = "AuthorizeFragment" - private const val INVOKE = "INVOKE" - - fun newInstance(invokeTag: String): AuthorizeFragment { - val fragment = AuthorizeFragment() - val args = Bundle() - args.putString(INVOKE, invokeTag) - fragment.arguments = args - return fragment - } + const val TAG = "AuthorizeLayout" } private var agreementId: Long = 0L - private var invokeTag: String? = null + private var clTopParent: ConstraintLayout? = null private var clErrorContainer: ConstraintLayout? = null private var clLoadAuthorizeContainer: ConstraintLayout? = null private var clContainer: ConstraintLayout? = null + private var clAuthorizeLoading: ConstraintLayout? = null private var btnAgree: Button? = null private var btnDisAgree: Button? = null private var btnLoadingError: Button? = null @@ -49,33 +41,34 @@ class AuthorizeFragment : MvpFragment { AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 1, "operation_result" to 1)) - mPresenter.agreeAuthorize(invokeTag!!, agreementId) + agreeAuthorize() } R.id.btnAuthorizeDisAgree -> { AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 1, "operation_result" to 2)) - mPresenter.disAgreeAuthorize(invokeTag!!, agreementId) + disAgreeAuthorize() } R.id.clLoadingErrorContainer, R.id.btnAuthorizeLoadingError -> { - mPresenter.invokeAuthorizationContent(invokeTag!!) + invokeAuthorizationContent() + } + R.id.clAuthorizeTopParent-> { + Logger.i(TAG,"dismiss authorizeView") } } } override fun onVoiceCmdAgree() { AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 2, "operation_result" to 1)) - mPresenter.agreeAuthorize(invokeTag!!, agreementId) + agreeAuthorize() } override fun onVoiceCmdDisAgree() { AnalyticsUtil.track(INVOKE_TRACK_AUTHORIZE_CLICK, hashMapOf("operation_type" to 2, "operation_result" to 2)) - mPresenter.disAgreeAuthorize(invokeTag!!, agreementId) + disAgreeAuthorize() } - override fun onDestroy() { - super.onDestroy() - Logger.d(TAG, "onDestroy") - VoiceUtil.unregisterAll(context!!, this) + private fun agreeAuthorize() { + authorizeController?.agreeAuthorize(invokeTag, agreementId) { + voiceAuthorizeError() + } + } + + private fun disAgreeAuthorize() { + authorizeController?.disAgreeAuthorize(invokeTag, agreementId) { + voiceAuthorizeError() + } + } + + private fun invokeAuthorizationContent() { + authorizeController?.invokeAuthorizationContent(invokeTag, { + readyToAuthorize() + }, { id: Long, content: String, title: String, bottomContent: String, lastContent: String -> + showAuthorizationAgreementContent(id, content, title, bottomContent, lastContent) + }, { + showAuthorizationError() + }) } } \ 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 index 36cf023211..6d0d0e8b45 100644 --- 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 @@ -2,6 +2,7 @@ package com.mogo.module.authorize.voice import android.content.Context import com.alibaba.android.arouter.launcher.ARouter +import com.mogo.commons.AbsMogoApplication import com.mogo.commons.voice.AIAssist import com.mogo.service.IMogoServiceApis import com.mogo.service.MogoServicePaths @@ -39,9 +40,8 @@ object VoiceUtil { } fun registerAll( - context: Context, voiceCommand: IVoiceCommandListener, - intentCommand: IVoiceAuthorizeIntentListener + intentCommand: IVoiceAuthorizeIntentListener, context: Context = AbsMogoApplication.getApp().applicationContext ) { if (!hasRegister) { hasRegister = true 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 8399d8ee30..5e5992f151 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 @@ -1,6 +1,7 @@ @@ -19,6 +20,7 @@ app:layout_constraintTop_toTopOf="parent"> Date: Mon, 25 May 2020 14:47:36 +0800 Subject: [PATCH 3/4] add fun of authView close --- .../java/com/mogo/module/authorize/layout/AuthorizeLayout.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt index 829ef1e5d3..13f116115f 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt @@ -84,9 +84,6 @@ class AuthorizeLayout(private val invokeTag: String) : View.OnClickListener, IVo clErrorContainer?.setOnClickListener(this) clLoadAuthorizeContainer?.setOnClickListener(this) clAuthorizeLoading?.setOnClickListener(this) -// layoutInflater?.setOnClickListener{ -// Logger.i(TAG,"dismiss authorizeView") -// } } private fun readyToAuthorize() { @@ -141,6 +138,7 @@ class AuthorizeLayout(private val invokeTag: String) : View.OnClickListener, IVo } R.id.clAuthorizeTopParent-> { Logger.i(TAG,"dismiss authorizeView") + authorizeController?.onDestroy() } } } From f49a2ff4b6ae1ae4806c1186961effab60a8ec95 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 25 May 2020 14:57:28 +0800 Subject: [PATCH 4/4] fix bug of load authContent --- .../java/com/mogo/module/authorize/layout/AuthorizeLayout.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt index 13f116115f..37248c1cb1 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/layout/AuthorizeLayout.kt @@ -60,6 +60,7 @@ class AuthorizeLayout(private val invokeTag: String) : View.OnClickListener, IVo init(mRootView) Logger.d(TAG, "invokeTag :$invokeTag") authorizeController = AuthorizeController(invokeTag) + invokeAuthorizationContent() VoiceUtil.registerAll(this, this) }