diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 8b16a854d3..cb58b5cb2b 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -35,6 +35,7 @@
+
diff --git a/app/build.gradle b/app/build.gradle
index 4e1653ad8a..1b06b49f12 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -302,6 +302,7 @@ dependencies {
implementation rootProject.ext.dependencies.mogomonitor
implementation rootProject.ext.dependencies.mogomodulewidgets
implementation rootProject.ext.dependencies.mogomoduleback
+ implementation rootProject.ext.dependencies.guideshow
} else {
implementation project(':foudations:mogo-commons')
implementation project(':modules:mogo-module-common')
@@ -318,6 +319,7 @@ dependencies {
implementation project(':modules:mogo-module-monitor')
implementation project(':modules:mogo-module-widgets')
implementation project(':modules:mogo-module-back')
+ implementation project(':modules:mogo-module-guide')
}
apply from: "./functions/perform.gradle"
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index 75868656df..3b1b3cb600 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -9,6 +9,7 @@ import android.util.Log;
import com.alibaba.android.arouter.launcher.ARouter;
import com.auto.zhidao.logsdk.CrashSystem;
import com.bytedance.boost_multidex.BoostMultiDex;
+import com.elegant.utils.WindowUtil;
import com.mogo.commons.AbsMogoApplication;
import com.mogo.commons.debug.DebugConfig;
import com.mogo.commons.network.Utils;
@@ -17,6 +18,7 @@ import com.mogo.module.back.BackToLauncherConst;
import com.mogo.module.carchatting.card.CallChatConstant;
import com.mogo.module.common.MogoModule;
import com.mogo.module.common.MogoModulePaths;
+import com.mogo.module.guide.GuideConstant;
import com.mogo.module.main.service.MogoMainService;
import com.mogo.module.media.MediaConstants;
import com.mogo.module.push.base.PushUIConstants;
@@ -34,6 +36,9 @@ import com.zhidao.boot.persistent.lib.PersistentManager;
import com.zhidao.mogo.module.left.panel.LeftPanelConst;
import com.zhidao.mogo.tanlu.api.TanluApiConst;
+import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_FRAGMENT;
+import static com.mogo.module.guide.GuideConstant.PATH_GUIDE_MODULE_NAME;
+
/**
* @author congtaowang
* @since 2019-12-18
@@ -56,7 +61,7 @@ public class MogoApplication extends AbsMogoApplication {
crashSystem.setDebug( BuildConfig.DEBUG );
Logger.init( BuildConfig.DEBUG ? LogLevel.DEBUG : LogLevel.OFF );
-// MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME));
+ MogoModulePaths.addModule(new MogoModule(PATH_GUIDE_FRAGMENT, PATH_GUIDE_MODULE_NAME));
MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_AGREEMENT, AuthorizeConstant.PATH_AGREEMENT_MODULE_NAME ) );
if ( DebugConfig.isLauncher() ) {
@@ -68,6 +73,7 @@ public class MogoApplication extends AbsMogoApplication {
if ( DebugConfig.getCarMachineType() != DebugConfig.CAR_MACHINE_TYPE_BYD ) {
MogoModulePaths.addModule( new MogoModule( CallChatConstant.PROVIDER, CallChatConstant.MODULE_NAME ) );
}
+
MogoModulePaths.addModule( new MogoModule( TanluApiConst.MODULE_PATH, TanluApiConst.MODULE_NAME ) );
MogoModulePaths.addBaseModule( new MogoModule( TanluConstants.TAG, TanluConstants.MODEL_NAME ) );
MogoModulePaths.addModule( new MogoModule( MogoServicePaths.PATH_SHARE, "ShareControl" ) );
diff --git a/config.gradle b/config.gradle
index 6340ca963d..55b5f1e3fe 100644
--- a/config.gradle
+++ b/config.gradle
@@ -108,7 +108,7 @@ targetSdkVersion : 22,
moduleextensions : "com.mogo.module:module-extensions:${MOGO_MODULE_EXTENSIONS_VERSION}",
carcall : "com.mogo.module.carchatting:module-carchatting:${CARCHATTING_VERSION}",
carcallprovider : "com.mogo.module.carchatting:module-carchatting-provider:${CARCHATTINGPROVIDER_VERSION}",
-// guideshow : "com.mogo.module.guideshow:module-guideshow:${MOGO_MODULE_GUIDESHOW_VERSION}",
+ guideshow : "com.mogo.module.guideshow:module-guideshow:${MOGO_MODULE_GUIDESHOW_VERSION}",
// guideshowprovider : "com.mogo.module.guideshow:module-guideshow-provider:${MOGO_MODULE_GUIDESHOW_PROVIDER_VERSION}",
// 在线车辆
moduleonlinecar : "com.mogo.module:module-onlinecar:${MOGO_MODULE_ONLINECAR_VERSION}",
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 beac0c0246..00261fe76b 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
@@ -12,6 +12,7 @@ import com.mogo.map.navi.IMogoNaviListener
import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.Companion.PATH_AGREEMENT_MODULE_NAME
import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_MAIN
import com.mogo.module.authorize.authprovider.launcher.MogoMainAuthorize.Companion.mogoAuthShow
+import com.mogo.module.authorize.util.SharedPreferenceUtil.hasGuide
import com.mogo.service.MogoServicePaths
import com.mogo.service.auth.IMogoAuthManager
import com.mogo.service.module.IMogoModuleLifecycle
@@ -24,7 +25,7 @@ class MogoAuthorizeProvider : IMogoAuthManager {
const val TAG = "MogoAuthorizeProvider"
}
- private var mContext:Context? = null
+ private var mContext: Context? = null
override fun createFragment(context: Context?, data: Bundle?): Fragment? {
return null
@@ -62,10 +63,11 @@ class MogoAuthorizeProvider : IMogoAuthManager {
return null
}
- override fun showAuth(context: Context?) {
+ override fun showAuth(context: Context) {
mContext = context
- if (mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) {
- mogoAuthShow.invokeAuthorizeForShow(mContext!!)
+ mogoAuthShow.initContext(context)
+ if (hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) {
+ mogoAuthShow.invokeAuthorizeForShow()
} else {
//首次进入Launcher同步一下授权状态,防止由于用户清除数据造成首次加载还会出现授权状态不同步问题
mogoAuthShow.updateAuthorizeStatus(AUTHORIZE_TYPE_LAUNCHER_MAIN)
@@ -78,9 +80,7 @@ class MogoAuthorizeProvider : IMogoAuthManager {
}
override fun init(context: Context) {
- //todo 引导判断暂时去掉 后续引导流程更改完再放开
-// todo if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) {
- // todo F系列暂时没有授权功能 1.1需求中添加 全量上
+
}
override fun getAppPackage(): String? {
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 a8102b84ad..681ffbd91e 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
@@ -39,8 +39,11 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog
MogoAuthorizeMainController.disAgreeAuthorize(tag, agrId, onSuccess, onError)
}
- fun invokeAuthorizeForShow(context: Context) {
- mContext = context
+ fun initContext(mContext: Context) {
+ this.mContext = mContext
+ }
+
+ fun invokeAuthorizeForShow() {
pushLayoutToMainWindow(AUTHORIZE_TYPE_LAUNCHER_MAIN)
}
@@ -74,7 +77,7 @@ class MogoMainAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMog
}
private fun pushLayoutToMainWindow(tag: String) {
- if(mContext == null){
+ if (mContext == null) {
Logger.d(TAG, "Because of mContext has no init, the application has in background now")
return
}
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 e698249eee..33361ceba2 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,9 +1,12 @@
package com.mogo.module.authorize.authprovider.module
+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.launcher.MogoMainAuthorize.Companion.mogoAuthShow
+import com.mogo.module.authorize.util.SharedPreferenceUtil
+import com.mogo.service.module.IMogoModuleProvider
class MogoModuleAuthorize private constructor() : MogoAuthorizeManagerImpl(), IMogoAuthorizeModuleProvider {
@@ -14,13 +17,21 @@ class MogoModuleAuthorize private constructor() : MogoAuthorizeManagerImpl(), IM
}
override fun invokeAuthorizeForShow() {
- mogoAuthShow.invokeAuthorizeForShow(AbsMogoApplication.getApp().applicationContext)
+ mogoAuthShow.invokeAuthorizeForShow()
}
override fun invokeAuthorization(tag: String) {
+ if(!SharedPreferenceUtil.hasGuide()){
+ val guideService = ARouter.getInstance().build("/guide/showFragment").navigation()
+ if(guideService is IMogoModuleProvider){
+ guideService.init(AbsMogoApplication.getApp().applicationContext)
+ }
+ val listener = MogoAuthorizeRegisterHandler.getAuthorizeListener(tag)
+ listener?.authorizeFailed("需要先执行用户引导")
+ return
+ }
mogoAuthShow.showAuthorizeView(tag, {
//todo SP存储状态
-
}, { errorMsg ->
val listener = MogoAuthorizeRegisterHandler.getAuthorizeListener(tag)
listener?.authorizeFailed(errorMsg)
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 789757ee9d..ce741dde37 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
@@ -29,8 +29,9 @@ object GuideBizManager {
private fun initService() {
val mogoService = ARouter.getInstance().build(MogoServicePaths.PATH_SERVICE_APIS).navigation()
- if (mogoService is IMogoServiceApis) {
+ if (mogoService is IMogoServiceApis && serviceApi == null) {
serviceApi = mogoService
+ serviceApi?.adasControllerApi?.closeADAS()
}
}
@@ -50,6 +51,7 @@ object GuideBizManager {
serviceApi?.let {
it.fragmentManagerApi.pop()
}
+ serviceApi?.adasControllerApi?.showADAS()
}
fun invokeAuthorize() {
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/MogoGuideProvider.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/MogoGuideProvider.kt
index a9ed8285cd..6258977faa 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/MogoGuideProvider.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/MogoGuideProvider.kt
@@ -12,7 +12,6 @@ import com.mogo.map.navi.IMogoNaviListener
import com.mogo.module.guide.GuideConstant.Companion.PATH_GUIDE_FRAGMENT
import com.mogo.module.guide.GuideConstant.Companion.PATH_GUIDE_MODULE_NAME
import com.mogo.module.guide.util.isDeviceOfD
-import com.mogo.service.module.IMogoModuleLifecycle
import com.mogo.service.module.IMogoModuleProvider
import com.mogo.service.module.ModuleType
import com.mogo.utils.UiThreadHandler
@@ -36,10 +35,6 @@ class MogoGuideProvider : IMogoModuleProvider {
return PATH_GUIDE_MODULE_NAME
}
- override fun getCardLifecycle(): IMogoModuleLifecycle? {
- return null
- }
-
override fun getMapListener(): IMogoMapListener? {
return null
}
@@ -62,9 +57,7 @@ class MogoGuideProvider : IMogoModuleProvider {
override fun init(context: Context?) {
if (isDeviceOfD()) {
- UiThreadHandler.postDelayed({
- GuideBizManager.init()
- }, 5000L)
+ GuideBizManager.init()
} else {
Logger.d("MogoGuideProvider", "device type is not D")
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideAdapter.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideAdapter.kt
index de1b0d7e81..af3660c13e 100644
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideAdapter.kt
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/fragment/GuideAdapter.kt
@@ -17,23 +17,19 @@ class GuideAdapter(fragmentActivity: GuideFragment) : FragmentStateAdapter(fragm
private val guideList: MutableList = mutableListOf()
companion object {
- const val GUIDE_PAGE_START = 0
- const val GUIDE_PAGE_CARD = 1
- const val GUIDE_PAGE_ONLINE_CAR = 2
- const val GUIDE_PAGE_NAVIGATION = 3
- const val GUIDE_PAGE_LOCATION = 4
- const val GUIDE_PAGE_APP_LIST = 5
- const val GUIDE_PAGE_ENTRY_MAIN = 6
+ const val GUIDE_PAGE_ONE = 0
+ const val GUIDE_PAGE_TWO = 1
+ const val GUIDE_PAGE_THREE = 2
+ const val GUIDE_PAGE_FOUR = 3
+ const val GUIDE_PAGE_FIVE = 4
}
init {
- guideList.add(GUIDE_PAGE_START, GuideStartFragment(fragmentActivity))
- guideList.add(GUIDE_PAGE_CARD, GuideCardFragment(fragmentActivity))
- guideList.add(GUIDE_PAGE_ONLINE_CAR, GuideOnLineCarFragment(fragmentActivity))
- guideList.add(GUIDE_PAGE_NAVIGATION, GuideNavigationFragment(fragmentActivity))
- guideList.add(GUIDE_PAGE_LOCATION, GuideLocationFragment(fragmentActivity))
- guideList.add(GUIDE_PAGE_APP_LIST, GuideAppListFragment(fragmentActivity))
- guideList.add(GUIDE_PAGE_ENTRY_MAIN, GuideEntryMainFragment(fragmentActivity))
+ guideList.add(GUIDE_PAGE_ONE, GuideStageOneFragment(fragmentActivity))
+ guideList.add(GUIDE_PAGE_TWO, GuideStageTwoFragment(fragmentActivity))
+ guideList.add(GUIDE_PAGE_THREE, GuideStageThreeFragment(fragmentActivity))
+ guideList.add(GUIDE_PAGE_FOUR, GuideStageFourFragment(fragmentActivity))
+ guideList.add(GUIDE_PAGE_FIVE, GuideStageFiveFragment(fragmentActivity))
}
}
\ 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 ef2d876f63..b9fbdb5303 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,8 +1,10 @@
package com.mogo.module.guide.fragment
import com.mogo.commons.mvp.MvpFragment
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
import com.mogo.module.guide.GuideBizManager
import com.mogo.module.guide.R
+import com.mogo.module.guide.util.speak
import com.mogo.utils.logger.Logger
import kotlinx.android.synthetic.main.module_guide_fragment.*
@@ -35,8 +37,12 @@ class GuideFragment : MvpFragment(), GuideC
}
}
- fun moveToLast() {
- moduleGuideViewPager.setCurrentItem(adapter!!.itemCount, false)
+ fun moveToBack() {
+ val count = adapter?.itemCount
+ val backCount = moduleGuideViewPager.currentItem - 1
+ if (moduleGuideViewPager.currentItem != count && backCount != 0) {
+ moduleGuideViewPager.currentItem = backCount
+ }
}
fun closeGuideFragment() {
@@ -45,6 +51,11 @@ class GuideFragment : MvpFragment(), GuideC
}
private fun destroy() {
+ speak(context!!,context!!.resources.getString(R.string.module_guide_voice_page_end),object : IMogoVoiceCmdCallBack {
+ override fun onTTSEnd(ttsId: String?, tts: String?) {
+
+ }
+ })
GuideBizManager.removeGuideFragmentToStack()
}
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
deleted file mode 100644
index 2bd448fc24..0000000000
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideAppListFragment.kt
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.mogo.module.guide.guide
-
-import android.view.View
-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.fragment.GuideFragment
-import com.mogo.module.guide.util.AnalyticsUtil
-import kotlinx.android.synthetic.main.module_guide_item_app_list.*
-
-class GuideAppListFragment : MvpFragment>, View.OnClickListener {
-
- private var containerFragment: GuideFragment? = null
-
- constructor(containerFragment: GuideFragment) {
- this.containerFragment = containerFragment
- }
-
- override fun getLayoutId(): Int {
- return R.layout.module_guide_item_app_list
- }
-
- override fun createPresenter(): Presenter {
- return GuideAppListPresenter(this)
- }
-
- override fun initViews() {
- AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 6))
- moduleGuideAppListNext.setOnClickListener(this)
- moduleGuideAppListSkip.setOnClickListener(this)
- }
-
- 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()
- }
- }
- }
-
- class GuideAppListPresenter : Presenter {
-
- constructor(view: IView?) : super(view)
- }
-
-}
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
deleted file mode 100644
index aef2a84ef7..0000000000
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideCardFragment.kt
+++ /dev/null
@@ -1,54 +0,0 @@
-package com.mogo.module.guide.guide
-
-import android.view.View
-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.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
-
- constructor(containerFragment: GuideFragment) {
- this.containerFragment = containerFragment
- }
-
- override fun getLayoutId(): Int {
- return R.layout.module_guide_item_card
- }
-
- override fun createPresenter(): Presenter {
- return GuideCardPresenter(this)
- }
-
- override fun initViews() {
- AnalyticsUtil.track(INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 2))
- moduleGuideCardNext.setOnClickListener(this)
- moduleGuideCardSkip.setOnClickListener(this)
- }
-
- 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()
- }
- }
- }
-
- class GuideCardPresenter : Presenter {
-
- constructor(view: IView?) : super(view)
- }
-
-}
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
deleted file mode 100644
index b5217ff094..0000000000
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideEntryMainFragment.kt
+++ /dev/null
@@ -1,47 +0,0 @@
-package com.mogo.module.guide.guide
-
-import android.view.View
-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.fragment.GuideFragment
-import com.mogo.module.guide.util.AnalyticsUtil
-import kotlinx.android.synthetic.main.module_guide_item_entry_main.*
-
-class GuideEntryMainFragment : MvpFragment>, View.OnClickListener {
-
- private var containerFragment: GuideFragment? = null
-
- constructor(containerFragment: GuideFragment) {
- this.containerFragment = containerFragment
- }
-
- override fun getLayoutId(): Int {
- return R.layout.module_guide_item_entry_main
- }
-
- override fun createPresenter(): Presenter {
- return GuideEntryPresenter(this)
- }
-
- 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) {
- R.id.moduleGuideEntryMain -> {
- AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_CLICK, hashMapOf("pages_num" to 7, "button_type" to 3))
- containerFragment?.closeGuideFragment()
- }
- }
- }
-
- class GuideEntryPresenter : Presenter {
-
- constructor(view: IView?) : super(view)
- }
-
-}
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
deleted file mode 100644
index 9068ac8ece..0000000000
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideLocationFragment.kt
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.mogo.module.guide.guide
-
-import android.view.View
-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.fragment.GuideFragment
-import com.mogo.module.guide.util.AnalyticsUtil
-import kotlinx.android.synthetic.main.module_guide_item_location.*
-
-class GuideLocationFragment : MvpFragment>, View.OnClickListener {
-
- private var containerFragment: GuideFragment? = null
-
- constructor(containerFragment: GuideFragment) {
- this.containerFragment = containerFragment
- }
-
- override fun getLayoutId(): Int {
- return R.layout.module_guide_item_location
- }
-
- override fun createPresenter(): Presenter {
- return GuideLocationPresenter(this)
- }
-
- override fun initViews() {
- AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 5))
- moduleGuideLocationNext.setOnClickListener(this)
- moduleGuideLocationSkip.setOnClickListener(this)
- }
-
- 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()
- }
- }
- }
-
- class GuideLocationPresenter : Presenter {
-
- constructor(view: IView?) : super(view)
- }
-
-}
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
deleted file mode 100644
index f5ea2fd476..0000000000
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideNavigationFragment.kt
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.mogo.module.guide.guide
-
-import android.view.View
-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.fragment.GuideFragment
-import com.mogo.module.guide.util.AnalyticsUtil
-import kotlinx.android.synthetic.main.module_guide_item_navigation.*
-
-class GuideNavigationFragment : MvpFragment>, View.OnClickListener {
-
- private var containerFragment: GuideFragment? = null
-
- constructor(containerFragment: GuideFragment) {
- this.containerFragment = containerFragment
- }
-
- override fun getLayoutId(): Int {
- return R.layout.module_guide_item_navigation
- }
-
- override fun createPresenter(): Presenter {
- return GuideNavigationPresenter(this)
- }
-
- override fun initViews() {
- AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 4))
- moduleGuideNavigationNext.setOnClickListener(this)
- moduleGuideNavigationSkip.setOnClickListener(this)
- }
-
- 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()
- }
- }
- }
-
- class GuideNavigationPresenter : Presenter {
-
- constructor(view: IView?) : super(view)
- }
-
-}
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
deleted file mode 100644
index 2d5a1edebc..0000000000
--- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideOnLineCarFragment.kt
+++ /dev/null
@@ -1,52 +0,0 @@
-package com.mogo.module.guide.guide
-
-import android.view.View
-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.fragment.GuideFragment
-import com.mogo.module.guide.util.AnalyticsUtil
-import kotlinx.android.synthetic.main.module_guide_item_online_car.*
-
-class GuideOnLineCarFragment : MvpFragment>, View.OnClickListener {
-
- private var containerFragment: GuideFragment? = null
-
- constructor(containerFragment: GuideFragment) {
- this.containerFragment = containerFragment
- }
-
- override fun getLayoutId(): Int {
- return R.layout.module_guide_item_online_car
- }
-
- override fun createPresenter(): Presenter {
- return GuideOnLineCarPresenter(this)
- }
-
- override fun initViews() {
- AnalyticsUtil.track(AnalyticsUtil.INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 3))
- moduleGuideOnLineCarNext.setOnClickListener(this)
- moduleGuideOnLineCarSkip.setOnClickListener(this)
- }
-
- 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()
- }
- }
- }
-
- class GuideOnLineCarPresenter : Presenter {
-
- constructor(view: IView?) : super(view)
- }
-
-}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageFiveFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageFiveFragment.kt
new file mode 100644
index 0000000000..9b2313a63f
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageFiveFragment.kt
@@ -0,0 +1,55 @@
+package com.mogo.module.guide.guide
+
+import android.view.View
+import com.mogo.commons.mvp.IView
+import com.mogo.commons.mvp.MvpFragment
+import com.mogo.commons.mvp.Presenter
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
+import com.mogo.module.guide.R
+import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.speak
+import kotlinx.android.synthetic.main.module_guide_item_stage_five.*
+
+class GuideStageFiveFragment : MvpFragment>, View.OnClickListener {
+
+ private var containerFragment: GuideFragment? = null
+
+ constructor(containerFragment: GuideFragment) {
+ this.containerFragment = containerFragment
+ }
+
+ override fun getLayoutId(): Int {
+ return R.layout.module_guide_item_stage_five
+ }
+
+ override fun createPresenter(): Presenter {
+ return GuideLocationPresenter(this)
+ }
+
+ override fun initViews() {
+ module_guide_page_left.setOnClickListener(this)
+ module_guide_tv_jump.setOnClickListener(this)
+ speak(context!!,context!!.resources.getString(R.string.module_guide_voice_page_five),object : IMogoVoiceCmdCallBack {
+ override fun onTTSEnd(ttsId: String?, tts: String?) {
+ containerFragment?.closeGuideFragment()
+ }
+ })
+ }
+
+ override fun onClick(v: View) {
+ when (v.id) {
+ R.id.module_guide_page_left -> {
+ containerFragment?.moveToBack()
+ }
+ R.id.module_guide_tv_jump -> {
+ containerFragment?.closeGuideFragment()
+ }
+ }
+ }
+
+ class GuideLocationPresenter : Presenter {
+
+ constructor(view: IView?) : super(view)
+ }
+
+}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageFourFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageFourFragment.kt
new file mode 100644
index 0000000000..23730d54d6
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageFourFragment.kt
@@ -0,0 +1,59 @@
+package com.mogo.module.guide.guide
+
+import android.view.View
+import com.mogo.commons.mvp.IView
+import com.mogo.commons.mvp.MvpFragment
+import com.mogo.commons.mvp.Presenter
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
+import com.mogo.module.guide.R
+import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.speak
+import kotlinx.android.synthetic.main.module_guide_item_include.*
+
+class GuideStageFourFragment : MvpFragment>, View.OnClickListener {
+
+ private var containerFragment: GuideFragment? = null
+
+ constructor(containerFragment: GuideFragment) {
+ this.containerFragment = containerFragment
+ }
+
+ override fun getLayoutId(): Int {
+ return R.layout.module_guide_item_stage_four
+ }
+
+ override fun createPresenter(): Presenter {
+ return GuideNavigationPresenter(this)
+ }
+
+ override fun initViews() {
+ module_guide_page_left.setOnClickListener(this)
+ module_guide_page_right.setOnClickListener(this)
+ module_guide_tv_jump.setOnClickListener(this)
+ speak(context!!,context!!.resources.getString(R.string.module_guide_voice_page_four),object : IMogoVoiceCmdCallBack {
+ override fun onTTSEnd(ttsId: String?, tts: String?) {
+ containerFragment?.moveToNext()
+ }
+ })
+ }
+
+ override fun onClick(v: View) {
+ when (v.id) {
+ R.id.module_guide_page_left -> {
+ containerFragment?.moveToBack()
+ }
+ R.id.module_guide_page_right -> {
+ containerFragment?.moveToNext()
+ }
+ R.id.module_guide_tv_jump -> {
+ containerFragment?.closeGuideFragment()
+ }
+ }
+ }
+
+ class GuideNavigationPresenter : Presenter {
+
+ constructor(view: IView?) : super(view)
+ }
+
+}
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/GuideStageOneFragment.kt
similarity index 55%
rename from modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt
rename to modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageOneFragment.kt
index c06da62a58..1f92a4ad19 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/GuideStageOneFragment.kt
@@ -1,20 +1,19 @@
package com.mogo.module.guide.guide
-import android.graphics.Color
-import android.graphics.LinearGradient
-import android.graphics.Shader
import android.view.View
import com.mogo.commons.mvp.IView
import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
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_SHOW
-import kotlinx.android.synthetic.main.module_guide_item_start.*
+import com.mogo.module.guide.util.speak
+import kotlinx.android.synthetic.main.module_guide_item_stage_one.*
-class GuideStartFragment : MvpFragment>, View.OnClickListener {
+class GuideStageOneFragment : MvpFragment>, View.OnClickListener {
private var containerFragment: GuideFragment? = null
@@ -23,7 +22,7 @@ class GuideStartFragment : MvpFragment>, View.OnClickLis
}
override fun getLayoutId(): Int {
- return R.layout.module_guide_item_start
+ return R.layout.module_guide_item_stage_one
}
override fun createPresenter(): Presenter {
@@ -32,18 +31,23 @@ class GuideStartFragment : MvpFragment>, View.OnClickLis
override fun initViews() {
AnalyticsUtil.track(INVOKE_TRACK_SHOW, hashMapOf("pages_num" to 1))
- val mLinearGradient = LinearGradient(0f, 0f, 0f, moduleGuideTvStart.paint.textSize,
- Color.parseColor("#B3B3B3"), Color.parseColor("#EBEBEB"), Shader.TileMode.CLAMP)
- moduleGuideTvStart.paint.shader = mLinearGradient
- moduleGuideTvStart.setOnClickListener(this)
- moduleGuideIvStart.setOnClickListener(this)
+ module_guide_page_right.setOnClickListener(this)
+ module_guide_tv_jump.setOnClickListener(this)
+ speak(context!!,context!!.resources.getString(R.string.module_guide_voice_page_one),object : IMogoVoiceCmdCallBack {
+ override fun onTTSEnd(ttsId: String?, tts: String?) {
+ containerFragment?.moveToNext()
+ }
+ })
}
override fun onClick(v: View) {
when (v.id) {
- R.id.moduleGuideTvStart, R.id.moduleGuideIvStart -> {
+ R.id.module_guide_page_right -> {
containerFragment?.moveToNext()
}
+ R.id.module_guide_tv_jump -> {
+ containerFragment?.closeGuideFragment()
+ }
}
}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageThreeFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageThreeFragment.kt
new file mode 100644
index 0000000000..47c22aa36b
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageThreeFragment.kt
@@ -0,0 +1,59 @@
+package com.mogo.module.guide.guide
+
+import android.view.View
+import com.mogo.commons.mvp.IView
+import com.mogo.commons.mvp.MvpFragment
+import com.mogo.commons.mvp.Presenter
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
+import com.mogo.module.guide.R
+import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.speak
+import kotlinx.android.synthetic.main.module_guide_item_include.*
+
+class GuideStageThreeFragment : MvpFragment>, View.OnClickListener {
+
+ private var containerFragment: GuideFragment? = null
+
+ constructor(containerFragment: GuideFragment) {
+ this.containerFragment = containerFragment
+ }
+
+ override fun getLayoutId(): Int {
+ return R.layout.module_guide_item_stage_three
+ }
+
+ override fun createPresenter(): Presenter {
+ return GuideOnLineCarPresenter(this)
+ }
+
+ override fun initViews() {
+ module_guide_page_left.setOnClickListener(this)
+ module_guide_page_right.setOnClickListener(this)
+ module_guide_tv_jump.setOnClickListener(this)
+ speak(context!!,context!!.resources.getString(R.string.module_guide_voice_page_three),object : IMogoVoiceCmdCallBack {
+ override fun onTTSEnd(ttsId: String?, tts: String?) {
+ containerFragment?.moveToNext()
+ }
+ })
+ }
+
+ override fun onClick(v: View) {
+ when (v.id) {
+ R.id.module_guide_page_left -> {
+ containerFragment?.moveToBack()
+ }
+ R.id.module_guide_page_right -> {
+ containerFragment?.moveToNext()
+ }
+ R.id.module_guide_tv_jump -> {
+ containerFragment?.closeGuideFragment()
+ }
+ }
+ }
+
+ class GuideOnLineCarPresenter : Presenter {
+
+ constructor(view: IView?) : super(view)
+ }
+
+}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageTwoFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageTwoFragment.kt
new file mode 100644
index 0000000000..d103ac8ed9
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStageTwoFragment.kt
@@ -0,0 +1,59 @@
+package com.mogo.module.guide.guide
+
+import android.view.View
+import com.mogo.commons.mvp.IView
+import com.mogo.commons.mvp.MvpFragment
+import com.mogo.commons.mvp.Presenter
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
+import com.mogo.module.guide.R
+import com.mogo.module.guide.fragment.GuideFragment
+import com.mogo.module.guide.util.speak
+import kotlinx.android.synthetic.main.module_guide_item_include.*
+
+class GuideStageTwoFragment : MvpFragment>, View.OnClickListener {
+
+ private var containerFragment: GuideFragment? = null
+
+ constructor(containerFragment: GuideFragment) {
+ this.containerFragment = containerFragment
+ }
+
+ override fun getLayoutId(): Int {
+ return R.layout.module_guide_item_stage_two
+ }
+
+ override fun createPresenter(): Presenter {
+ return GuideCardPresenter(this)
+ }
+
+ override fun initViews() {
+ module_guide_page_left.setOnClickListener(this)
+ module_guide_page_right.setOnClickListener(this)
+ module_guide_tv_jump.setOnClickListener(this)
+ speak(context!!,context!!.resources.getString(R.string.module_guide_voice_page_two),object : IMogoVoiceCmdCallBack {
+ override fun onTTSEnd(ttsId: String?, tts: String?) {
+ containerFragment?.moveToNext()
+ }
+ })
+ }
+
+ override fun onClick(v: View) {
+ when (v.id) {
+ R.id.module_guide_page_left -> {
+ containerFragment?.moveToBack()
+ }
+ R.id.module_guide_page_right -> {
+ containerFragment?.moveToNext()
+ }
+ R.id.module_guide_tv_jump -> {
+ containerFragment?.closeGuideFragment()
+ }
+ }
+ }
+
+ class GuideCardPresenter : Presenter {
+
+ constructor(view: IView?) : super(view)
+ }
+
+}
diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/VoiceUtil.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/VoiceUtil.kt
new file mode 100644
index 0000000000..c0184db527
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/VoiceUtil.kt
@@ -0,0 +1,10 @@
+package com.mogo.module.guide.util
+
+import android.content.Context
+import com.mogo.commons.voice.AIAssist
+import com.mogo.commons.voice.IMogoVoiceCmdCallBack
+import com.mogo.commons.voice.VoicePreemptType
+
+fun speak(context: Context, text: String, callBack: IMogoVoiceCmdCallBack?) {
+ AIAssist.getInstance(context).speakTTSVoice(text, VoicePreemptType.PREEMPT_TYPE_IMMEADIATELY, callBack)
+}
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/drawable/module_guide_blue_corner.xml b/modules/mogo-module-guide/src/main/res/drawable/module_guide_blue_corner.xml
new file mode 100644
index 0000000000..c21deebfbf
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/res/drawable/module_guide_blue_corner.xml
@@ -0,0 +1,5 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/drawable/module_guide_selector_blue.xml b/modules/mogo-module-guide/src/main/res/drawable/module_guide_selector_blue.xml
deleted file mode 100644
index 598aa0aa6d..0000000000
--- a/modules/mogo-module-guide/src/main/res/drawable/module_guide_selector_blue.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_app_list.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_app_list.xml
deleted file mode 100644
index ff6613a6ab..0000000000
--- a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_app_list.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_card.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_card.xml
deleted file mode 100644
index ec9030cac3..0000000000
--- a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_card.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_entry_main.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_entry_main.xml
deleted file mode 100644
index e7c167e59c..0000000000
--- a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_entry_main.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_include.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_include.xml
new file mode 100644
index 0000000000..fafcf06a94
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_include.xml
@@ -0,0 +1,40 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_location.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_location.xml
deleted file mode 100644
index fab64de64d..0000000000
--- a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_location.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_navigation.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_navigation.xml
deleted file mode 100644
index c2c09f075d..0000000000
--- a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_navigation.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_online_car.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_online_car.xml
deleted file mode 100644
index 31f1619a91..0000000000
--- a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_online_car.xml
+++ /dev/null
@@ -1,34 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_five.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_five.xml
new file mode 100644
index 0000000000..1e697fcb8d
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_five.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_four.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_four.xml
new file mode 100644
index 0000000000..6cc75dab99
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_four.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_one.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_one.xml
new file mode 100644
index 0000000000..02c4191b75
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_one.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_three.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_three.xml
new file mode 100644
index 0000000000..695c9c539e
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_three.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_two.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_two.xml
new file mode 100644
index 0000000000..14ef76dd79
--- /dev/null
+++ b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_stage_two.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_start.xml b/modules/mogo-module-guide/src/main/res/layout/module_guide_item_start.xml
deleted file mode 100644
index 0a0cf2730d..0000000000
--- a/modules/mogo-module-guide/src/main/res/layout/module_guide_item_start.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_app_list.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_app_list.png
deleted file mode 100644
index 21b6cb9d2e..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_app_list.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_card.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_card.png
deleted file mode 100644
index ad448fdb0c..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_card.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_entry_main.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_entry_main.png
deleted file mode 100644
index ee612b77e0..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_entry_main.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_location.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_location.png
deleted file mode 100644
index 5e3d0ba8b1..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_location.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_navigation.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_navigation.png
deleted file mode 100644
index 0b766fe07e..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_navigation.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_online_car.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_online_car.png
deleted file mode 100644
index 63f55e2426..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_online_car.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_five.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_five.png
new file mode 100644
index 0000000000..d2531f926e
Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_five.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_four.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_four.png
new file mode 100644
index 0000000000..11da8364ea
Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_four.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_one.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_one.png
new file mode 100644
index 0000000000..e9ee00f563
Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_one.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_three.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_three.png
new file mode 100644
index 0000000000..b10ed110c7
Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_three.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_two.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_two.png
new file mode 100644
index 0000000000..41e32da5b5
Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_stage_two.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_start.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_start.png
deleted file mode 100644
index ba7f209b9f..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_start.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_start_scroll.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_start_scroll.png
deleted file mode 100644
index 23ca7ad659..0000000000
Binary files a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_item_start_scroll.png and /dev/null differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_left_page.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_left_page.png
new file mode 100644
index 0000000000..da94ba4a48
Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_left_page.png differ
diff --git a/modules/mogo-module-guide/src/main/res/mipmap/module_guide_right_page.png b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_right_page.png
new file mode 100644
index 0000000000..f25becf47a
Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap/module_guide_right_page.png differ
diff --git a/modules/mogo-module-guide/src/main/res/values/strings.xml b/modules/mogo-module-guide/src/main/res/values/strings.xml
index 4cc90ce4d9..456983286e 100644
--- a/modules/mogo-module-guide/src/main/res/values/strings.xml
+++ b/modules/mogo-module-guide/src/main/res/values/strings.xml
@@ -3,5 +3,12 @@
左滑了解更多
进入首页
下一步
- 跳过教程
+ 跳过
+
+ 欢迎使用蘑菇出行,您下次可以直接对我说,打开蘑菇出行来直接进入应用,点击左下方按钮进行摄像头设置
+
+ 这里是道路信息显示,点击后可查看事件详情
+ 这里是事件汇总,您可以查看您参与的事件和您的分享记录
+ 点击这里可以把路况分享给其他车友,或者直接对我说,上报路况
+ 我们希望让您的出行更加安全高效,更多功能等着你去发现,快去体验体验吧
diff --git a/settings.gradle b/settings.gradle
index 78e973c012..802707be57 100644
--- a/settings.gradle
+++ b/settings.gradle
@@ -49,6 +49,8 @@ include ':modules:mogo-module-push'
include ':modules:mogo-module-push-base'
include ':modules:mogo-module-push-noop'
+include ':modules:mogo-module-guide'
+
include ':modules:mogo-module-tanlu'
include ':libraries:tanlulib'
include ':skin'