add guide
@@ -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() {
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
|
||||
@@ -17,23 +17,19 @@ class GuideAdapter(fragmentActivity: GuideFragment) : FragmentStateAdapter(fragm
|
||||
private val guideList: MutableList<Fragment> = 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))
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<GuideConstract.View, GuidePresenter>(), 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<GuideConstract.View, GuidePresenter>(), 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()
|
||||
}
|
||||
|
||||
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, View.OnClickListener {
|
||||
class GuideStageOneFragment : MvpFragment<IView, Presenter<IView>>, View.OnClickListener {
|
||||
|
||||
private var containerFragment: GuideFragment? = null
|
||||
|
||||
@@ -23,7 +22,7 @@ class GuideStartFragment : MvpFragment<IView, Presenter<IView>>, 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<IView> {
|
||||
@@ -32,18 +31,23 @@ class GuideStartFragment : MvpFragment<IView, Presenter<IView>>, 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()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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<IView, Presenter<IView>>, 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<IView> {
|
||||
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<IView> {
|
||||
|
||||
constructor(view: IView?) : super(view)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -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)
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<corners android:radius="@dimen/dp_15"/>
|
||||
<gradient android:angle="180" android:startColor="#42B2FD" android:endColor="#1F7BF9"/>
|
||||
</shape>
|
||||
@@ -1,15 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:state_pressed="true">
|
||||
<shape>
|
||||
<corners android:radius="@dimen/dp_53" />
|
||||
<gradient android:endColor="#805CC1FF" android:startColor="#803E7FFC" />
|
||||
</shape>
|
||||
</item>
|
||||
<item>
|
||||
<shape>
|
||||
<corners android:radius="@dimen/dp_53" />
|
||||
<gradient android:endColor="#5CC1FF" android:startColor="#3E7FFC" />
|
||||
</shape>
|
||||
</item>
|
||||
</selector>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_app_list">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideAppListNext"
|
||||
android:layout_width="@dimen/dp_299"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginRight="@dimen/dp_521"
|
||||
android:layout_marginBottom="@dimen/dp_132"
|
||||
android:background="@drawable/module_guide_selector_blue"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_item_next_step"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideAppListSkip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_77"
|
||||
android:layout_marginRight="@dimen/dp_77"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="@color/module_guide_blue_3B91FF"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_card">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideCardNext"
|
||||
android:layout_width="@dimen/dp_299"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginRight="@dimen/dp_592"
|
||||
android:layout_marginBottom="@dimen/dp_205"
|
||||
android:background="@drawable/module_guide_selector_blue"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_item_next_step"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideCardSkip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_77"
|
||||
android:layout_marginRight="@dimen/dp_77"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="@color/module_guide_blue_3B91FF"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_entry_main">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideEntryMain"
|
||||
android:layout_width="@dimen/dp_299"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginBottom="@dimen/dp_132"
|
||||
android:background="@drawable/module_guide_selector_blue"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_item_entry_main"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_guide_page_right"
|
||||
android:layout_width="@dimen/dp_52"
|
||||
android:layout_height="@dimen/dp_87"
|
||||
android:layout_marginRight="@dimen/dp_92"
|
||||
android:src="@mipmap/module_guide_right_page"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_guide_page_left"
|
||||
android:layout_width="@dimen/dp_52"
|
||||
android:layout_height="@dimen/dp_87"
|
||||
android:layout_marginLeft="@dimen/dp_92"
|
||||
android:src="@mipmap/module_guide_left_page"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_guide_tv_jump"
|
||||
android:layout_width="@dimen/dp_159"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:layout_marginRight="@dimen/dp_55"
|
||||
android:background="@drawable/module_guide_blue_corner"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_37"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_location">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideLocationNext"
|
||||
android:layout_width="@dimen/dp_299"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginLeft="@dimen/dp_787"
|
||||
android:layout_marginBottom="@dimen/dp_125"
|
||||
android:background="@drawable/module_guide_selector_blue"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_item_next_step"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideLocationSkip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_77"
|
||||
android:layout_marginRight="@dimen/dp_77"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="@color/module_guide_blue_3B91FF"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_navigation">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideNavigationNext"
|
||||
android:layout_width="@dimen/dp_299"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginLeft="@dimen/dp_787"
|
||||
android:layout_marginBottom="@dimen/dp_125"
|
||||
android:background="@drawable/module_guide_selector_blue"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_item_next_step"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideNavigationSkip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_77"
|
||||
android:layout_marginRight="@dimen/dp_77"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="@color/module_guide_blue_3B91FF"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_online_car">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideOnLineCarNext"
|
||||
android:layout_width="@dimen/dp_299"
|
||||
android:layout_height="@dimen/dp_106"
|
||||
android:layout_marginLeft="@dimen/dp_850"
|
||||
android:layout_marginBottom="@dimen/dp_95"
|
||||
android:background="@drawable/module_guide_selector_blue"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_item_next_step"
|
||||
android:textColor="@android:color/white"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideOnLineCarSkip"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginTop="@dimen/dp_77"
|
||||
android:layout_marginRight="@dimen/dp_77"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="@color/module_guide_blue_3B91FF"
|
||||
android:textSize="@dimen/dp_44"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_stage_five">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_guide_page_left"
|
||||
android:layout_width="@dimen/dp_52"
|
||||
android:layout_height="@dimen/dp_87"
|
||||
android:layout_marginLeft="@dimen/dp_92"
|
||||
android:src="@mipmap/module_guide_left_page"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintLeft_toLeftOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_guide_tv_jump"
|
||||
android:layout_width="@dimen/dp_159"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:layout_marginRight="@dimen/dp_55"
|
||||
android:background="@drawable/module_guide_blue_corner"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_37"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_stage_four">
|
||||
|
||||
<include
|
||||
android:id="@+id/module_guide_include"
|
||||
layout="@layout/module_guide_item_include" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,31 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_stage_one">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/module_guide_page_right"
|
||||
android:layout_width="@dimen/dp_52"
|
||||
android:layout_height="@dimen/dp_87"
|
||||
android:layout_marginRight="@dimen/dp_92"
|
||||
android:src="@mipmap/module_guide_right_page"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/module_guide_tv_jump"
|
||||
android:layout_width="@dimen/dp_159"
|
||||
android:layout_height="@dimen/dp_64"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:layout_marginRight="@dimen/dp_55"
|
||||
android:background="@drawable/module_guide_blue_corner"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_skip"
|
||||
android:textColor="#FFFFFF"
|
||||
android:textSize="@dimen/dp_37"
|
||||
app:layout_constraintRight_toRightOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_stage_three">
|
||||
|
||||
<include
|
||||
android:id="@+id/module_guide_include"
|
||||
layout="@layout/module_guide_item_include" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_stage_two">
|
||||
|
||||
<include
|
||||
android:id="@+id/module_guide_include"
|
||||
layout="@layout/module_guide_item_include" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
@@ -1,29 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:background="@mipmap/module_guide_item_start">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/moduleGuideIvStart"
|
||||
android:layout_width="@dimen/dp_77"
|
||||
android:layout_height="@dimen/dp_77"
|
||||
android:layout_marginBottom="@dimen/dp_75"
|
||||
android:src="@mipmap/module_guide_item_start_scroll"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintStart_toEndOf="@+id/moduleGuideTvStart"
|
||||
app:layout_constraintTop_toTopOf="@+id/moduleGuideTvStart" />
|
||||
|
||||
<TextView
|
||||
android:id="@+id/moduleGuideTvStart"
|
||||
android:layout_width="@dimen/dp_307"
|
||||
android:layout_height="@dimen/dp_73"
|
||||
android:layout_marginRight="@dimen/dp_154"
|
||||
android:layout_marginBottom="@dimen/dp_75"
|
||||
android:gravity="center"
|
||||
android:text="@string/module_guide_main"
|
||||
android:textSize="@dimen/dp_51"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintRight_toRightOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
Before Width: | Height: | Size: 315 KiB |
|
Before Width: | Height: | Size: 416 KiB |
|
Before Width: | Height: | Size: 323 KiB |
|
Before Width: | Height: | Size: 379 KiB |
|
Before Width: | Height: | Size: 314 KiB |
|
Before Width: | Height: | Size: 328 KiB |
|
After Width: | Height: | Size: 276 KiB |
|
After Width: | Height: | Size: 285 KiB |
|
After Width: | Height: | Size: 279 KiB |
|
After Width: | Height: | Size: 432 KiB |
|
After Width: | Height: | Size: 400 KiB |
|
Before Width: | Height: | Size: 305 KiB |
|
Before Width: | Height: | Size: 927 B |
|
After Width: | Height: | Size: 635 B |
|
After Width: | Height: | Size: 713 B |
@@ -3,5 +3,12 @@
|
||||
<string name="module_guide_main">左滑了解更多</string>
|
||||
<string name="module_guide_item_entry_main">进入首页</string>
|
||||
<string name="module_guide_item_next_step">下一步</string>
|
||||
<string name="module_guide_skip">跳过教程</string>
|
||||
<string name="module_guide_skip">跳过</string>
|
||||
|
||||
<string name="module_guide_voice_page_one">欢迎使用蘑菇出行,您下次可以直接对我说,打开蘑菇出行来直接进入应用,点击左下方按钮进行摄像头设置</string>
|
||||
<string name="module_guide_voice_page_two"></string>
|
||||
<string name="module_guide_voice_page_three">这里是道路信息显示,点击后可查看事件详情</string>
|
||||
<string name="module_guide_voice_page_four">这里是事件汇总,您可以查看您参与的事件和您的分享记录</string>
|
||||
<string name="module_guide_voice_page_five">点击这里可以把路况分享给其他车友,或者直接对我说,上报路况</string>
|
||||
<string name="module_guide_voice_page_end">我们希望让您的出行更加安全高效,更多功能等着你去发现,快去体验体验吧</string>
|
||||
</resources>
|
||||
|
||||