diff --git a/modules/mogo-module-authorize/build.gradle b/modules/mogo-module-authorize/build.gradle index 5b1bf4cfbb..f1cf437d8a 100644 --- a/modules/mogo-module-authorize/build.gradle +++ b/modules/mogo-module-authorize/build.gradle @@ -57,10 +57,12 @@ dependencies { implementation rootProject.ext.dependencies.mogoutils implementation rootProject.ext.dependencies.mogocommons implementation rootProject.ext.dependencies.mogoserviceapi + implementation rootProject.ext.dependencies.modulecommon } else { implementation project(":foudations:mogo-utils") implementation project(":foudations:mogo-commons") implementation project(':services:mogo-service-api') + implementation project(":modules:mogo-module-common") } } diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt index ca4faaa0fc..3246b53116 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/authprovider/biz/MogoAuthorizeManagerImpl.kt @@ -6,6 +6,7 @@ import com.mogo.module.authorize.authprovider.module.IMogoAcquireAuthorizeListen import com.mogo.module.authorize.model.proxy.AuthorizeProxy import com.mogo.module.authorize.model.proxy.toAuthorizeType import com.mogo.module.authorize.util.SharedPreferenceUtil.needAuthorization +import com.mogo.module.authorize.util.isDeviceOfD import com.mogo.utils.logger.Logger open abstract class MogoAuthorizeManagerImpl : IMogoAuthorizeInvoke { @@ -17,9 +18,13 @@ open abstract class MogoAuthorizeManagerImpl : IMogoAuthorizeInvoke { private val baseController: IMogoAuthorizeController by lazy { IMogoAuthorizeController() } override fun needAuthorize(tag: String): Boolean { - Logger.d(TAG, "needAuthorize update agreement in background") - baseController.updateAgreementVersion(tag.toAuthorizeType()) - return needAuthorization(tag.toAuthorizeType()) + return if (isDeviceOfD()) { + Logger.d(TAG, "needAuthorize update agreement in background") + baseController.updateAgreementVersion(tag.toAuthorizeType()) + needAuthorization(tag.toAuthorizeType()) + } else { + false + } } override fun invokeAuthorizeContent(tag: String) { 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 e3850d1c71..7a85dc2355 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 @@ -14,6 +14,7 @@ import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant.Companion 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.module.authorize.util.isDeviceOfD import com.mogo.service.module.IMogoModuleLifecycle import com.mogo.service.module.IMogoModuleProvider import com.mogo.service.module.ModuleType @@ -63,10 +64,10 @@ class MogoAuthorizeProvider : IMogoModuleProvider { } override fun init(context: Context?) { - if (hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { + if (isDeviceOfD() && hasGuide() && mogoAuthShow.needAuthorize(AUTHORIZE_TYPE_LAUNCHER_MAIN)) { mogoAuthShow.invokeAuthorizeForShow() } else { - Logger.d(TAG, "wait for guide invoke") + Logger.d(TAG, "not do match self startUp condition ,wait for someone invoke") } } diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt index 91c4683926..4573e021ba 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeContract.kt @@ -10,6 +10,8 @@ class AuthorizeContract { fun readyToAuthorize() fun showAuthorizationError() + + fun voiceAuthorizeError() } interface Biz { diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt index 792494b6d8..bc1581099c 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizeFragment.kt @@ -32,7 +32,7 @@ class AuthorizeFragment : MvpFragment { @@ -148,4 +151,233 @@ class AuthorizeFragment : MvpFragment\n" + + "用户使用协议(以下简称“本协议”)是您(个人、公司或其他任何实体)与智道网联科技(深圳)有限公司(以下简称“智道网联”)就蘑菇MUSHROOM车载智能终端、系统及应用(以下简称“本产品”)的使用所签订的协议。您可以利用本产品搜索路况信息、商家信息、定位你所在的位置,进行路径规划、导航你想去的地址,搜索周边的服务,查看车况信息以及其他本产品提供的服务(以下统称“蘑菇MUSHROOM产品或服务”),您使用蘑菇MUSHROOM产品或服务,即表示您同意本协议条款:\n" + + "

\n" + + "

\n" + + "\t一、重要须知\n" + + "

\n" + + "

\n" + + "\t1.在您开始使用蘑菇MUSHROOM产品或服务前,请您务必仔细阅读并充分理解本《用户使用协议》。同时,您还应仔细阅读并充分理解知识产权归属、免责声明、权利声明、用户行为要求等内容,请您务必特别注意及重点阅读与您的权利及义务密切相关的条款,此类条款可能以粗体的方式标识。阅读本协议的过程中,如果您不同意本协议或其中任何条款约定,您应立即停止注册程序。\n" + + "

\n" + + "

\n" + + "\t2.一旦您开始使用蘑菇MUSHROOM产品或服务,即代表您已理解并同意本协议及系列声明,同时还表明您已完全同意并承认智道网联已经履行了相关的提示和通知义务。您确保您有充分的权利、权限及能力以同意及履行本协议条款。\n" + + "

\n" + + "

\n" + + "\t3.如果您未满18周岁,请在法定监护人的陪同下阅读本协议条款。\n" + + "

\n" + + "

\n" + + "\t4.智道网联有权不时对本协议条款进行修订,如果本协议条款发生变动,智道网联将在本产品公布修订后的用户使用协议。如果您在修订后的用户使用协议公布后继续使用本产品提供的服务,即视为您已经理解并同意修订后的用户使用协议。发生争议时,您可根据您具体使用的服务及对您权益产生影响的具体行为对象确定与您履约的主体及争议相对方。\n" + + "

\n" + + "

\n" + + "\t\n" + + "

\n" + + "

\n" + + "\t二、使用蘑菇MUSHROOM产品\n" + + "

\n" + + "

\n" + + "\t1.产品介绍\n" + + "本产品是安装在车辆驾驶台上,4G无线通信、GPS导航、出行导游、购物、娱乐影音等多种功能的车载智能终端(包含OS系统及应用软件),是智道网联及其关联公司研发或已得到相应权利人授权的,具备包括地点查询、周边服务、路线规划、路线导航、实时路况查询等相关功能的产品。\n" + + "请您务必在确保安全的前提下使用本产品,以防发生交通事故或其他危险情况。本产品提供的服务仅供参考,请不要以此作为您出行或行驶的唯一依据,在您出行或行驶时以实际的交通路况为准,严格遵守相关法律法规和交通规则。\n" + + "

\n" + + "

\n" + + "\t2.第三方服务\n" + + "本产品可能会指向或包含任何第三方所提供的产品、服务或其他任何内容(统称为“第三方服务”)。第三方服务均由第三方公司或机构(统称为“第三方”)提供,您在使用本服务中第三方提供的产品或服务时,除遵守本协议约定外,还应遵守第三方的用户协议。智道网联不保证通过第三方提供服务及内容的安全性、准确性、有效性及其他不确定的风险,由此若引发的任何争议及损害与智道网联无关,智道网联不承担任何责任。\n" + + "

\n" + + "

\n" + + "\t3.广告宣传\n" + + "您理解并同意,智道网联拥有通过本产品向您关联或展示广告的权利,并对广告投放行为不承担通知义务。您不得以任何方式改变、移除或遮蔽这些广告,亦不得以任何形式利用或展示任何广告。\n" + + "您理解并清楚,您对本产品中关联或展示的广告应当审慎判断,您通过本产品与广告商进行任何形式的通讯或商业往来,属于您与广告商之间的行为。如果您因前述任何行为而遭受的任何性质的后果或损失,您应向有关广告商主张权利。\n" + + "您同意本产品以各种方式投放商业性广告或其他任何类型的商业信息(包括但不限于在本产品的任何位置上投放广告,在您上传、传播的内容中投放广告)。\n" + + "

\n" + + "

\n" + + "\t
\n" + + "

\n" + + "

\n" + + "\t三、用户行为要求\n" + + "

\n" + + "

\n" + + "\t1.用户内容上传\n" + + "您可通过本产品(互联网平台等政策管控原因不得上传和发布的相关平台除外)上传、发布或传输相关内容,包括但不限于文字、软件、程序、图形、图片、声音、音乐、视频、音视频、链接等信息或其他资料(下称“内容”),但您需对此内容的合法性及完整性承担相关的法律责任。智道网联在法律有明确规定的情况下承担相应的责任。\n" + + "2.授权使用\n" + + "除非有相反证明,您使用本产品上传、发布或传输内容即视为您是在本产品上传、发布或传输的内容的版权拥有人。除双方另有约定外,您使用本产品上传、发布或传输内容的行为即代表了您有权且同意在全世界范围内,不可撤销、独家、永久性的(除非您主动删除或要求智道网联下线上述信息)、免费的、可转授权和可再许可的向智道网联授予以下权利,包括但不限于:复制权、发行权、出租权、展览权、表演权、放映权、广播权、信息网络传播权、摄制权、改编权、翻译权、汇编权以及《著作权法》规定的由著作权人享有的其他著作财产权利及邻接权利。智道网联可自行选择是否使用以及使用方式。\n" + + "

\n" + + "

\n" + + "\t3.用户上传内容免责\n" + + "您理解并知晓在使用本产品时,所接触的内容和信息来源广泛,智道网联无法对该内容和信息的准确性、真实性、可用性、安全性、完整性和正当性负责。您理解并认可您可能会接触到不正确的、令人不快的、不适当的或令人厌恶的内容和信息,您不会以此追究智道网联的相关责任。智道网联不对用户在本产品上传、发布或传输的任何内容和信息背书、推荐或表达观点,也不对任何内容和信息的错误、瑕疵及产生的损失或损害承担任何责任,您对内容和信息的任何使用需自行承担相关的风险。智道网联在法律有明确规定的情况下承担相应的责任。\n" + + "

\n" + + "

\n" + + "\t4.遵守法律法规\n" + + "您同意在使用本产品过程中,遵守以下法律法规:《中华人民共和国网络安全法》、《中华人民共和国保守国家秘密法》、《中华人民共和国著作权法》、《中华人民共和国计算机信息系统安全保护条例》、《计算机软件保护条例》、《互联网电子公告服务管理规定》、《信息网络传播权保护条例》等有关计算机及互联网规定的法律、法规。在任何情况下,我方一旦有证据认为您的行为可能违反上述法律、法规,智道网联有权对用户行为及其适用的规则进行认定,并据此处理,如可不经事先通知终止向您提供服务。\n" + + "

\n" + + "

\n" + + "\t5.使用行为规范\n" + + "除非法律允许或智道网联书面许可,您不得从事下列行为:\n" + + "

\n" + + "

\n" + + "\t(1)删除本产品上关于著作权的信息;\n" + + "

\n" + + "

\n" + + "\t(2)对本产品进行反向工程、反向汇编、反向编译,或者以其他方式尝试发现本产品的源代码;\n" + + "

\n" + + "

\n" + + "\t(3)对智道网联拥有知识产权的内容进行使用、出租、出借、复制、修改、链接、转载、汇编、发表、出版等;\n" + + "

\n" + + "

\n" + + "\t(4)对本产品运行过程中释放到任何终端内存中的数据、软件运行过程中客户端与服务器端的交互数据,以及本产品运行所必需的系统数据,进行复制、修改、增加、删除、挂接运行或创作任何衍生作品,形式包括但不限于使用插件、外挂或非经智道网联授权的第三方工具/服务接入本产品和相关系统;\n" + + "

\n" + + "

\n" + + "\t(5)通过修改或伪造本产品运行中的指令、数据,增加、删减、变动软件的功能或运行效果,或者将用于上述用途的软件、方法进行运营或向公众传播,无论这些行为是否为商业目的;\n" + + "

\n" + + "

\n" + + "\t(6)通过非智道网联开发、授权的第三方软件、插件、外挂、系统,登录或使用本产品,或制作、发布、传播上述工具;\n" + + "

\n" + + "

\n" + + "\t(7)自行或者授权他人、第三方软件对本产品及其组件、模块、数据进行干扰;\n" + + "

\n" + + "

\n" + + "\t(8)发送任何未获邀约或未经授权的垃圾电邮、广告或宣传资料,或任何其他商业通讯;\n" + + "

\n" + + "

\n" + + "\t(9)未经我方明确许可,使用本产品用于任何商业用途或为任何第三方的利益;\n" + + "

\n" + + "

\n" + + "\t(10)跟踪或以其他方式骚扰他人;\n" + + "

\n" + + "

\n" + + "\t(11)使用或利用智道网联知识产权(包括我们的商标、品牌、标志、任何其他专有数据或任何网页的布局或设计),或在其他方面侵犯我方任何知识产权(包括试图对智道网联客户端或所使用的软件进行逆向工程);\n" + + "

\n" + + "

\n" + + "\t(12)通过使用任何自动化程序、软件、引擎、网络爬虫、网页分析工具、数据挖掘工具或类似工具,接入我方服务、抓取、收集或处理通过本产品所提供的内容和数据;\n" + + "

\n" + + "

\n" + + "\t(13)干预或试图干预任何用户或任何其他方接入本产品提供的服务;\n" + + "

\n" + + "

\n" + + "\t(14)故意散播病毒、网络蠕虫、特洛伊木马病毒、已损毁的档案或其他恶意代码或项目;\n" + + "

\n" + + "

\n" + + "\t(15)探究或测试本产品、系统或其他用户的系统是否容易入侵攻击,或在其他方面规避(或试图规避)本产品、系统或其他用户的系统的任何安全功能;\n" + + "

\n" + + "

\n" + + "\t(16)其他未经智道网联明示授权的行为;\n" + + "

\n" + + "

\n" + + "\t(17)其他违反法律法规、政策的行为。\n" + + "

\n" + + "

\n" + + "\t6.对自己行为负责\n" + + "您充分了解并同意,您必须为自己使用本服务下的一切行为负责。智道网联不对您使用本产品及提供的服务所查询的结果的安全性、正确性、及时性、完整性、实用性等作出任何保证,您必须对您使用本产品提供的服务及所查询的结果自行加以判断,并承担因使用内容而引起的所有风险。智道网联无法且不会对因前述风险而导致的任何损失或损害承担责任。\n" + + "

\n" + + "

\n" + + "\t
\n" + + "

\n" + + "

\n" + + "\t四、知识产权归属\n" + + "

\n" + + "

\n" + + "\t1.智道网联的知识产权\n" + + "智道网联拥有本产品及相关内容的著作权、商标权、专利权等所有法定权利、资格和利益(不论这些权利是否已注册、不论这些权利可能存在于世界何处),包括但不限于产品中的地图数据、源代码、文档、商标、标志等。您对本协议条款的同意和对本产品的使用,不涉及上述任何知识产权的转让,上述全部知识产权仍归相应权利人所有。未经智道网联和/或相应权利人事先书面同意,您不能自行实施、利用、转让或许可任何三方实施、利用、转让上述知识产权,您亦不能修改、租借、出售、制作衍生作品或以其他方式使用任何部分或全部上述知识产权。\n" + + "

\n" + + "

\n" + + "\t2.您的知识产权\n" + + "您理解并同意,为持续改善智道网联为您提供的各项服务,除非有相反证明,您使用本平台服务上传、发布或传输内容即代表了您有权且同意在全世界范围内,永久性的、不可撤销的、免费的授予智道网联及其关联方对该内容的存储、使用、发布、复制、修改、改编、出版、翻译、据以创作衍生作品、传播、表演和展示等权利;将内容的全部或部分编入其他任何形式的作品、媒体、技术中的权利;对您的上传、发布的内容进行商业开发的权利;其相关宣传和推广等服务的权利;以及再授权给其他第三方以上述方式使用的权利。\n" + + "您理解并同意,尽管有上述约定,您通过本产品上报、反馈、分享、添加、标注、纠正或以其他方式向本产品提交道路信息、路况信息、路况图片、地点信息、门址信息、门牌号码、商家信息、点评信息、问题截图、纠错信息、问题反馈、改进建议或意见等内容或类似内容时,前述任何内容的全部知识产权、所有权及其他现行及未来法律规定的全部法律权利自您提交之时全部自动转让给智道网联,并且智道网联无需向您支付任何费用。\n" + + "

\n" + + "

\n" + + "\t
\n" + + "

\n" + + "

\n" + + "\t
\n" + + "

\n" + + "

\n" + + "\t五、法律责任\n" + + "

\n" + + "

\n" + + "\t1. 若您提交的注册信息和材料不真实、不完整、不合法或无效,那么导致或产生的一切法律责任由您承担。智道网联有权随时中止或终止为您提供本产品的相关服务。\n" + + "

\n" + + "

\n" + + "\t2.您理解并认可,本产品为提供信息分享、传播及获取的平台,您在使用本产品时,请您自行对服务加以判断,并承担因使用内容而引起的所有风险。智道网联无法且不会对因用户行为而导致的损失或损害承担责任。 如果您发现任何人违反本协议规定或以其他不当的方式使用本产品,请立即举报或投诉,我们将依法进行处理。\n" + + "

\n" + + "

\n" + + "\t3.对违反有关法律法规或本协议规定的行为,智道网联将依法律规定及上述规则等加以合理判断进行处理,智道网联有权随时中断或终止向用户提供本协议项下的服务(包括收费服务和免费服务)而无需对用户或任何第三方承担任何责任,由此造成的损失由用户自行独立承担。智道网联同时有权对违法违规的任何人士采取适当的法律行动,并依据法律法规保存有关信息并向有关部门报告等。\n" + + "

\n" + + "

\n" + + "\t4.若您上传、发布的内容或其他在本产品上的行为侵害他人利益并引发第三方的任何索赔、要求或赔偿的,需由您承担全部法律责任。若因此给智道网联或第三方造成任何损失,您应负责赔偿并使之免受损害,损失包括但不限于诉讼费用、律师费用、和解费用、罚款或生效法律文书中规定的损害赔偿金额及其他直接或间接支出费用。\n" + + "

\n" + + "

\n" + + "\t5.因技术故障等不可抗事件影响到产品的正常运行的,智道网联及其合作单位承诺在第一时间内与相关单位配合,及时处理进行修复,但您因第三方如电信部门的通讯线路故障、技术问题、网络、电脑故障、系统不稳定性及其他各种不可抗力原因而遭受的一切损失,智道网联及其合作单位不承担责任。\n" + + "

\n" + + "

\n" + + "\t6.您理解并同意,本产品可能会受到多种因素影响,包括但不限于您的原因、网络设备维护、网络连接故障、网络信号未覆盖、网络传输延时或中断、电子终端、通讯或其他系统的故障或误差、电力故障、罢工、劳动争议、暴乱、骚乱、火灾、洪水、风暴、爆炸、战争、政府行为、司法行政机关的命令、其他不可抗力或第三方的不作为等不可抗力;本产品也可能受到各种安全问题的侵扰。除法律法规明确规定要求智道网联承担责任之外,因本款所述原因给您造成的任何损失由您本人自行承担,智道网联对此不承担责任。\n" + + "

\n" + + "

\n" + + "\t
\n" + + "

\n" + + "

\n" + + "\t六、期限及终止\n" + + "

\n" + + "

\n" + + "\t1.本协议的生效日期应为您同意本协议条款之日或使用本产品之日中的较早日期,并且无固定的终止日期,除非根据以下情形而终止:\n" + + "

\n" + + "

\n" + + "\t(1)您丧失民事权利能力或民事行为能力,或丧失其他主体的法律授权;\n" + + "

\n" + + "

\n" + + "\t(2)智道网联因为任何原因终止向您提供本产品或服务;\n" + + "

\n" + + "

\n" + + "\t(3)您主动地不再使用本产品;\n" + + "

\n" + + "

\n" + + "\t(4)其他导致本用户服务条款终止的原因。\n" + + "

\n" + + "

\n" + + "\t2.本协议终止后,除法律有明确规定外,原则上,智道网联无义务向您或您指定的第三方披露您账户中的任何信息。\n" + + "

\n" + + "

\n" + + "\t3.在本协议终止后,智道网联仍然可以依据相关法律法规及本协议向您追究违反法律法规或违反本协议行为的责任。\n" + + "

\n" + + "

\n" + + "\t
\n" + + "

\n" + + "

\n" + + "\t七、其他\n" + + "

\n" + + "

\n" + + "\t1.通知及送达\n" + + "您理解并同意,智道网联就有关本产品的任何通知可通过如下任一途径向您发送:在产品界面张贴一般通知;向您提供的电子邮件地址发送电子邮件;向您提供的通讯号码发送短信通知;向您提供的通讯地址以平信形式寄送书面通知。前述通知自发布或发送之日即视为已经对您送达,您理解并同意您有义务查收任何上述通知。\n" + + "

\n" + + "

\n" + + "\t2.适用法律、争议解决及其他\n" + + "

\n" + + "

\n" + + "\t(1) 法律适用:本用户服务条款的订立、效力、解释、履行、修改和终止,访问以及争议的解决均适用中国法律。如法律无相关规定的,参照商业惯例及/或行业惯例。\n" + + "

\n" + + "

\n" + + "\t(2) 争议解决:因访问和使用本产品而发生的任何争议,双方应首先通过友好协商的方式加以解决。协商不成时,任何一方均可向本协议签署地北京市东城区人民法院提起诉讼。\n" + + "

\n" + + "

\n" + + "\t(3) 条款有效性:本协议任一条款被视为废止、无效或不可执行,该条应视为可分的且并不影响本协议其余条款的有效性及可执行性。\n" + + "

\n" + + "

\n" + + "\t(4) 您和公司均是独立的主体,在任何情况下本协议不构成公司对用户的任何形式的明示或暗示担保或条件,双方之间亦不构成代理、合伙、合营或雇佣关系。\n" + + "

\n" + + "

\n" + + "\t3.联系我们\n" + + "关于本协议的问题,您可以通过如下联络方式同我们联系:fwb@zhidaoauto.com\n" + + "4.解释权\n" + + "智道网联在法律法规许可的范围内对本协议享有解释权。\n" + + "

\n" + + "

\n" + + "\t隐私政策\n" + + "更新日期:2019年【 】月【 】日\n" + + "生效日期:2019年【 】月【 】日\n" + + "

\n" + + "

\n" + + "\t
\n" + + "

\n" + } } \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt index 91fb367b28..69fb0e834e 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/fragment/AuthorizePresenter.kt @@ -2,12 +2,14 @@ package com.mogo.module.authorize.fragment import androidx.lifecycle.LifecycleOwner import com.mogo.commons.mvp.Presenter +import com.mogo.module.authorize.R import com.mogo.module.authorize.authprovider.biz.MogoAuthorizeRegisterHandler import com.mogo.module.authorize.authprovider.launcher.MogoAuthorizeMainController import com.mogo.module.authorize.authprovider.launcher.MogoMainAuthorize.Companion.mogoAuthShow import com.mogo.module.authorize.model.bean.Agreement import com.mogo.module.authorize.util.DateUtil.parseDateToTime import com.mogo.module.authorize.util.SharedPreferenceUtil.updateAuthorizeVersion +import com.mogo.module.authorize.voice.VoiceUtil import com.mogo.utils.logger.Logger class AuthorizePresenter : Presenter, AuthorizeContract.Biz { @@ -80,6 +82,7 @@ class AuthorizePresenter : Presenter, AuthorizeContract. }, { closeAuthorizeView() }) + mView.voiceAuthorizeError() } private fun closeAuthorizeView() { diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/DeviceUtil.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/DeviceUtil.kt new file mode 100644 index 0000000000..8884512894 --- /dev/null +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/util/DeviceUtil.kt @@ -0,0 +1,10 @@ +package com.mogo.module.authorize.util + +import com.mogo.module.common.utils.CarSeries.* + +fun isDeviceOfD(): Boolean { + return when (getSeries()) { + CAR_SERIES_D80X, CAR_SERIES_D81X, CAR_SERIES_D82X, CAR_SERIES_D84X -> true + else -> false + } +} \ No newline at end of file diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceManager.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceManager.kt index d29e9d6a82..c664aa310d 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceManager.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceManager.kt @@ -1,6 +1,8 @@ package com.mogo.module.authorize.voice import android.content.Intent +import com.mogo.module.authorize.voice.VoiceUtil.VOICE_INTENT_AGREE +import com.mogo.module.authorize.voice.VoiceUtil.VOICE_INTENT_DISAGREE import com.mogo.module.authorize.voice.VoiceUtil.VOICE_REGISTER_AUTHORIZE_AGREE import com.mogo.module.authorize.voice.VoiceUtil.VOICE_REGISTER_AUTHORIZE_DISAGREE import com.mogo.utils.logger.Logger @@ -26,12 +28,12 @@ object VoiceManager { fun handleOnIntentCmd(cmd: String, intent: Intent, listener: IVoiceIntentListener) { Logger.i(TAG, "handleOnIntentCmd: cmd -> $cmd") when (cmd) { - VOICE_REGISTER_AUTHORIZE_AGREE -> { + VOICE_INTENT_AGREE -> { Logger.i(TAG, "语音唤醒 同意") listener.onVoiceCmdAgree() } - VOICE_REGISTER_AUTHORIZE_DISAGREE -> { - Logger.i(TAG, "语音免唤醒 不同意") + VOICE_INTENT_DISAGREE -> { + Logger.i(TAG, "语音唤醒 不同意") listener.onVoiceCmdDisAgree() } } diff --git a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceUtil.kt b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceUtil.kt index e7785dbd6b..3063079c34 100644 --- a/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceUtil.kt +++ b/modules/mogo-module-authorize/src/main/java/com/mogo/module/authorize/voice/VoiceUtil.kt @@ -61,7 +61,7 @@ object VoiceUtil { VOICE_REGISTER_AUTHORIZE_AGREE, agreeArray, voiceCommand ) -// intentRegister?.registerIntentListener(VOICE_INTENT_AGREE, intentCommand) + intentRegister?.registerIntentListener(VOICE_INTENT_AGREE, intentCommand) } private fun registerDisAgree( @@ -75,7 +75,7 @@ object VoiceUtil { VOICE_REGISTER_AUTHORIZE_DISAGREE, disAgreeArray, voiceCommand ) -// intentRegister?.registerIntentListener(VOICE_INTENT_DISAGREE, intentCommand) + intentRegister?.registerIntentListener(VOICE_INTENT_DISAGREE, intentCommand) } fun unregisterAll(context: Context, listener: IVoiceIntentListener) { diff --git a/modules/mogo-module-authorize/src/main/res/values/strings.xml b/modules/mogo-module-authorize/src/main/res/values/strings.xml index 7c09fd8115..55ab13ef81 100644 --- a/modules/mogo-module-authorize/src/main/res/values/strings.xml +++ b/modules/mogo-module-authorize/src/main/res/values/strings.xml @@ -5,5 +5,6 @@ 正在加载,请稍等... 加载失败 点击重试 - 您还没有授权,不可分享,您可以说“同意”进行授权。 + 请阅读用户协议并做出选择。未授权部分功能的使用会受到限制。您可以说“同意”进行授权。 + 授权失败 diff --git a/modules/mogo-module-guide/build.gradle b/modules/mogo-module-guide/build.gradle index cd6e53c450..bc18471261 100644 --- a/modules/mogo-module-guide/build.gradle +++ b/modules/mogo-module-guide/build.gradle @@ -59,12 +59,14 @@ dependencies { implementation rootProject.ext.dependencies.moduleservice implementation rootProject.ext.dependencies.mogoserviceapi implementation rootProject.ext.dependencies.mogomoduleauth + implementation rootProject.ext.dependencies.modulecommon } else { implementation project(":foudations:mogo-utils") implementation project(":foudations:mogo-commons") implementation project(":modules:mogo-module-service") implementation project(':services:mogo-service-api') implementation project(':modules:mogo-module-authorize') + implementation project(":modules:mogo-module-common") } } 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 19784cc5a2..789757ee9d 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 @@ -4,6 +4,9 @@ import com.alibaba.android.arouter.launcher.ARouter import com.mogo.module.authorize.authprovider.invoke.AuthorizeConstant import com.mogo.module.authorize.authprovider.invoke.AuthorizeInvokerConstant.Companion.AUTHORIZE_TYPE_LAUNCHER_MAIN import com.mogo.module.authorize.authprovider.module.IMogoAuthorizeModuleManager +import com.mogo.module.common.utils.CarSeries +import com.mogo.module.common.utils.CarSeries.CAR_SERIES_C80X +import com.mogo.module.common.utils.CarSeries.CAR_SERIES_F80X import com.mogo.module.guide.GuideConstant.Companion.PATH_GUIDE_MODULE_NAME import com.mogo.module.guide.fragment.GuideFragment import com.mogo.module.guide.util.SharedPreferenceUtil.hasGuide 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 2920563afb..a9ed8285cd 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 @@ -11,10 +11,12 @@ import com.mogo.map.marker.IMogoMarkerClickListener 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 +import com.mogo.utils.logger.Logger @Route(path = PATH_GUIDE_FRAGMENT) class MogoGuideProvider : IMogoModuleProvider { @@ -59,9 +61,14 @@ class MogoGuideProvider : IMogoModuleProvider { } override fun init(context: Context?) { - UiThreadHandler.postDelayed({ - GuideBizManager.init() - }, 5000L) + if (isDeviceOfD()) { + UiThreadHandler.postDelayed({ + GuideBizManager.init() + }, 5000L) + } else { + Logger.d("MogoGuideProvider", "device type is not D") + } + } override fun getAppPackage(): String? { 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 6d21d0fa62..de1b0d7e81 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 @@ -27,7 +27,7 @@ class GuideAdapter(fragmentActivity: GuideFragment) : FragmentStateAdapter(fragm } init { - guideList.add(GUIDE_PAGE_START, GuideStartFragment()) + 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)) 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 86b7a0b8cd..ef2d876f63 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 @@ -42,7 +42,6 @@ class GuideFragment : MvpFragment(), GuideC fun closeGuideFragment() { Logger.d(TAG, "closeGuideFragment") destroy() - invokeAuthorize() } private fun destroy() { diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt index bb7cd9f341..c06da62a58 100644 --- a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt +++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/guide/GuideStartFragment.kt @@ -1,13 +1,26 @@ 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.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.* -class GuideStartFragment : MvpFragment>() { + +class GuideStartFragment : MvpFragment>, View.OnClickListener { + + private var containerFragment: GuideFragment? = null + + constructor(containerFragment: GuideFragment) { + this.containerFragment = containerFragment + } override fun getLayoutId(): Int { return R.layout.module_guide_item_start @@ -19,6 +32,19 @@ class GuideStartFragment : MvpFragment>() { 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) + } + + override fun onClick(v: View) { + when (v.id) { + R.id.moduleGuideTvStart, R.id.moduleGuideIvStart -> { + containerFragment?.moveToNext() + } + } } class GuideStartPresenter : Presenter { diff --git a/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/DeviceUtil.kt b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/DeviceUtil.kt new file mode 100644 index 0000000000..970611850e --- /dev/null +++ b/modules/mogo-module-guide/src/main/java/com/mogo/module/guide/util/DeviceUtil.kt @@ -0,0 +1,10 @@ +package com.mogo.module.guide.util + +import com.mogo.module.common.utils.CarSeries.* + +fun isDeviceOfD(): Boolean { + return when (getSeries()) { + CAR_SERIES_D80X, CAR_SERIES_D81X, CAR_SERIES_D82X, CAR_SERIES_D84X -> true + else -> false + } +} \ 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 index e3ca21994f..0a0cf2730d 100644 --- 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 @@ -1,5 +1,29 @@ \ No newline at end of file + android:layout_height="match_parent" + android:background="@mipmap/module_guide_item_start"> + + + + + \ No newline at end of file diff --git a/modules/mogo-module-guide/src/main/res/mipmap-ldpi/module_guide_item_start_scroll.png b/modules/mogo-module-guide/src/main/res/mipmap-ldpi/module_guide_item_start_scroll.png new file mode 100644 index 0000000000..23ca7ad659 Binary files /dev/null and b/modules/mogo-module-guide/src/main/res/mipmap-ldpi/module_guide_item_start_scroll.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 377130cc80..4cc90ce4d9 100644 --- a/modules/mogo-module-guide/src/main/res/values/strings.xml +++ b/modules/mogo-module-guide/src/main/res/values/strings.xml @@ -1,5 +1,6 @@ mogo-module-guide-agreement + 左滑了解更多 进入首页 下一步 跳过教程