diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt index 46676365aa..8d361e750d 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/model/LoginModel.kt @@ -26,7 +26,6 @@ import com.mogo.och.biz.login.callback.ITaxiLoginCallback import com.mogo.och.biz.login.net.OchCommonServiceManager import com.mogo.och.bridge.autopilot.location.OchLocationManager import com.mogo.och.biz.login.bean.LoginInfo -import com.mogo.och.biz.login.ui.login.LoginViewModel import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.cache.ISpCallback import com.mogo.och.common.module.manager.cache.OchSPManager @@ -111,7 +110,7 @@ object LoginModel { override fun onSuccess(data: BaseData?) { if (null != data && 0 == data.code) { // 获取验证码成功 - ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_get_code_success)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.biz_login_get_code_success)) iTaxiLoginCallback?.getPhoneCodeSuccess() } else { if (data != null) { @@ -122,9 +121,9 @@ object LoginModel { override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.biz_login_network_error_tip)) } else { - ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.biz_login_request_error_tip)) } iTaxiLoginCallback?.netErrorCallback() } @@ -150,7 +149,7 @@ object LoginModel { if (isAutoLoginMode){ iTaxiLoginCallback?.stopAutoLogin() }else{ - ToastCharterUtils.showToastShort(mContext?.getString(R.string.module_och_taxi_login_login_success)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.biz_login_login_success)) } // 登录成功需要新的值 queryCarStatus(false) @@ -163,12 +162,12 @@ object LoginModel { override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext?.getString(R.string.network_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.biz_login_network_error_tip)) } else { if (isAutoLoginMode){ - ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip_unmanned)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.biz_login_request_error_tip_unmanned)) }else{ - ToastCharterUtils.showToastShort(mContext?.getString(R.string.request_error_tip)) + ToastCharterUtils.showToastShort(mContext?.getString(R.string.biz_login_request_error_tip)) } } @@ -216,9 +215,9 @@ object LoginModel { MogoAnalyticUtils.track("QueryCarStatus", map) if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext!!.getString(R.string.network_error_tip)) + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.biz_login_network_error_tip)) } else { - ToastCharterUtils.showToastShort(mContext!!.getString(R.string.request_error_tip)) + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.biz_login_request_error_tip)) } // LoginStatusManager.setLoginError(-10012, "网络错误") LoginStatusManager.setLoginError(-10012, StringUtils.getString(R.string.module_och_network_mistake)) @@ -272,9 +271,9 @@ object LoginModel { override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastCharterUtils.showToastShort(mContext!!.getString(R.string.network_error_tip)) + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.biz_login_network_error_tip)) } else { - ToastCharterUtils.showToastShort(mContext!!.getString(R.string.request_error_tip)) + ToastCharterUtils.showToastShort(mContext!!.getString(R.string.biz_login_request_error_tip)) } } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt index 421cef228e..66af40c904 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/errorview/ErrorInfoViewModel.kt @@ -47,12 +47,12 @@ class ErrorInfoViewModel : ViewModel() { CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onError:${it}") it.printStackTrace() RxUtils.createSubscribe(1_000) { - viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.biz_login_get_code),true) } }, { CallerLogger.d(SceneConstant.M_TAXI_P + TAG, "倒计时onComplete") RxUtils.createSubscribe(1_000) { - viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.biz_login_get_code),true) } }) } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginView.kt index d96e703d2d..b604b92715 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginView.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginView.kt @@ -143,7 +143,7 @@ class LoginView : ConstraintLayout, LoginViewModel.IErrorInfoViewCallback { override fun inputPhoneError() { biz_ace_login_phone_value.text?.clear() - biz_ace_login_phone_value.setHint(R.string.module_och_taxi_login_phone_error) + biz_ace_login_phone_value.setHint(R.string.biz_login_phone_error) context?.let { biz_ace_login_phone_value.setHintTextColor( ContextCompat.getColor( @@ -162,7 +162,7 @@ class LoginView : ConstraintLayout, LoginViewModel.IErrorInfoViewCallback { override fun setCountDownText(text: String, enable: Boolean) { if (enable) { - biz_actv_login_get_code.setText(R.string.module_och_taxi_login_get_code) + biz_actv_login_get_code.setText(R.string.biz_login_get_code) biz_actv_login_get_code.isEnabled = true } else { biz_actv_login_get_code.text = text diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginViewModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginViewModel.kt index fb53e86ef9..cf9f590e8c 100644 --- a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginViewModel.kt +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/login/LoginViewModel.kt @@ -57,12 +57,12 @@ class LoginViewModel : ViewModel(), ITaxiLoginCallback, ILoginCallback { initListeners() } if (!RegexUtils.isMobileExact(phone)) { - ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_phone_error) + ToastCharterUtils.showToastShort(R.string.biz_login_phone_error) viewCallback?.inputPhoneError() return } if(code.isBlank()||code.length<4){ - ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_code_error) + ToastCharterUtils.showToastShort(R.string.biz_login_code_error) return } if(phone== LoginConst.OFFLINEPHONE&&code== LoginConst.OFFLINECODE){ @@ -80,7 +80,7 @@ class LoginViewModel : ViewModel(), ITaxiLoginCallback, ILoginCallback { initListeners() } if (!RegexUtils.isMobileExact(phone)) { - ToastCharterUtils.showToastShort(R.string.module_och_taxi_login_phone_error) + ToastCharterUtils.showToastShort(R.string.biz_login_phone_error) viewCallback?.inputPhoneError() OchChainLogManager.writeChainLog("登录页面","获取验证码 手机号输入错误") return @@ -101,10 +101,10 @@ class LoginViewModel : ViewModel(), ITaxiLoginCallback, ILoginCallback { }, { CallerLogger.d(TAG, "倒计时onError:${it}") it.printStackTrace() - viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.biz_login_get_code),true) }, { CallerLogger.d(TAG, "倒计时onComplete") - viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.module_och_taxi_login_get_code),true) + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.biz_login_get_code),true) }) } diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/loginf2a/LoginF2aView.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/loginf2a/LoginF2aView.kt new file mode 100644 index 0000000000..70dc4cb71d --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/loginf2a/LoginF2aView.kt @@ -0,0 +1,173 @@ +package com.mogo.och.biz.login.ui.loginf2a + +import android.content.Context +import android.os.SystemClock +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import androidx.core.content.ContextCompat +import androidx.core.widget.addTextChangedListener +import androidx.lifecycle.ViewModelProvider +import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.utilcode.kotlin.onClick +import com.mogo.eagle.core.utilcode.util.ActivityUtils +import com.mogo.eagle.core.utilcode.util.KeyboardUtils +import com.mogo.och.biz.R +import com.mogo.och.biz.login.ui.LoginFragment +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import kotlinx.android.synthetic.main.biz_login_view_old.view.biz_acbtn_login +import kotlinx.android.synthetic.main.biz_login_view_old.view.biz_acet_phone_code_value +import kotlinx.android.synthetic.main.biz_login_view_old.view.biz_ace_login_phone_value +import kotlinx.android.synthetic.main.biz_login_view_old.view.biz_actv_login_get_code +import kotlinx.android.synthetic.main.biz_login_view_old.view.biz_actv_welcome_login_title + + +class LoginF2aView : ConstraintLayout, LoginF2aViewModel.IErrorInfoViewCallback { + + private val TAG = "LoginF2aView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super( + context, + attributeSet, + defStyleAttr + ) + + constructor( + context: Context, + attributeSet: AttributeSet, + defStyleAttr: Int, + defStyleRes: Int + ) : super(context, attributeSet, defStyleAttr, defStyleRes) + + private var viewModel: LoginF2aViewModel? = null + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.biz_login_view_f2a, this, true) + } + + private fun initListener(){ + biz_acbtn_login.onClick { + val phone = biz_ace_login_phone_value.text.toString() + val code = biz_acet_phone_code_value.text.toString() + viewModel?.gotoLogin(phone, code) + } + biz_actv_welcome_login_title.setOnClickListener { + continuousClick() + } + biz_actv_login_get_code.setOnClickListener { + OchChainLogManager.writeChainLog("登录页面","点击获取验证码") + if(viewModel==null){ + OchChainLogManager.writeChainLog("司机登录页面","mPresenter=${viewModel}") + }else{ + viewModel?.getPhoneCode(biz_ace_login_phone_value.text.toString()) + } + } + + biz_ace_login_phone_value.addTextChangedListener { + it?.let { itEditable -> + if (itEditable.isNotEmpty()) { + inputPhoneNormal() + } + } + } + } + + companion object { + private const val COUNTS = 4 // 点击次数 + private const val DURATION: Long = 1000 // 规定有效时间 + val TAG = LoginFragment::class.java.simpleName + } + + private var mHits = LongArray(COUNTS) + + private fun continuousClick() { + //每次点击时,数组向前移动一位 + System.arraycopy(mHits, 1, mHits, 0, mHits.size - 1) + //为数组最后一位赋值 + mHits[mHits.size - 1] = SystemClock.uptimeMillis() + if (mHits[0] >= (SystemClock.uptimeMillis() - DURATION)) { + mHits = LongArray(COUNTS) //重新初始化数组 + viewModel?.gotoLogin("13288888888", "8888") + } + } + + private fun inputPhoneNormal() { + context?.let { + biz_ace_login_phone_value.setHintTextColor( + ContextCompat.getColor( + it, + R.color.taxi_878890 + ) + ) + biz_ace_login_phone_value.setBackgroundResource(R.drawable.biz_login_phone_normal) + } + } + + fun gotoLogin4Fragment(phone: String, code: String){ + viewModel?.gotoLogin(phone, code) + } + + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + + viewModel = findViewTreeViewModelStoreOwner()?.let { + ViewModelProvider(it).get(LoginF2aViewModel::class.java) + } + + viewModel?.setDistanceCallback(this) + } + + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + + } + + fun getBottomInfo(){ + + } + + init { + try { + initView() + initListener() + } catch (e: Exception) { + e.printStackTrace() + } + } + + override fun inputPhoneError() { + biz_ace_login_phone_value.text?.clear() + biz_ace_login_phone_value.setHint(R.string.biz_login_phone_error) + context?.let { + biz_ace_login_phone_value.setHintTextColor( + ContextCompat.getColor( + it, + R.color.taxi_EF262C + ) + ) + biz_ace_login_phone_value.setBackgroundResource(R.drawable.biz_login_phone_error) + } + } + + override fun closeSoftInput() { + requestFocus() + KeyboardUtils.hideSoftInput(ActivityUtils.getTopActivity()) + } + + override fun setCountDownText(text: String, enable: Boolean) { + if (enable) { + biz_actv_login_get_code.setText(R.string.biz_login_get_code) + biz_actv_login_get_code.isEnabled = true + } else { + biz_actv_login_get_code.text = text + biz_actv_login_get_code.isEnabled = false + } + } + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/loginf2a/LoginF2aViewModel.kt b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/loginf2a/LoginF2aViewModel.kt new file mode 100644 index 0000000000..a8288337b8 --- /dev/null +++ b/OCH/common/biz/src/main/java/com/mogo/och/biz/login/ui/loginf2a/LoginF2aViewModel.kt @@ -0,0 +1,122 @@ +package com.mogo.och.biz.login.ui.loginf2a + +import androidx.lifecycle.ViewModel +import com.mogo.commons.AbsMogoApplication +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.util.RegexUtils +import com.mogo.och.biz.R +import com.mogo.och.biz.login.LoginConst +import com.mogo.och.biz.login.callback.ITaxiLoginCallback +import com.mogo.och.biz.login.model.LoginModel +import com.mogo.och.biz.login.ui.debugview.BusinessViewModel +import com.mogo.och.common.module.biz.login.ILoginCallback +import com.mogo.och.common.module.biz.login.LoginStatusManager +import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager +import com.mogo.och.common.module.wigets.toast.ToastCharterUtils +import io.reactivex.Observable +import io.reactivex.android.schedulers.AndroidSchedulers +import io.reactivex.disposables.Disposable +import io.reactivex.schedulers.Schedulers +import java.util.concurrent.TimeUnit + +class LoginF2aViewModel : ViewModel(), ITaxiLoginCallback, ILoginCallback { + + private val TAG = BusinessViewModel::class.java.simpleName + + private var viewCallback: IErrorInfoViewCallback? = null + + private var countDownDisposable: Disposable? = null + + + init { + + } + + fun setDistanceCallback(viewCallback: IErrorInfoViewCallback) { + this.viewCallback = viewCallback + initListeners() + } + + override fun onCleared() { + super.onCleared() + this.viewCallback = null + countDownDisposable?.let { + if (!it.isDisposed) { + it.dispose() + } + } + } + + private fun initListeners() { + LoginModel.setiTaxiLoginCallback(this) + LoginStatusManager.addListener(TAG,this) + } + + fun gotoLogin(phone: String, code: String) { + if(!LoginModel.hasInit()){ + initListeners() + } + if (!RegexUtils.isMobileExact(phone)) { + ToastCharterUtils.showToastShort(R.string.biz_login_phone_error) + viewCallback?.inputPhoneError() + return + } + if(code.isBlank()||code.length<4){ + ToastCharterUtils.showToastShort(R.string.biz_login_code_error) + return + } + if(phone== LoginConst.OFFLINEPHONE&&code== LoginConst.OFFLINECODE){ + gotoOfflineMode() + return + } + LoginModel.gotoLogin(phone, code, false) + viewCallback?.closeSoftInput() + } + + fun getPhoneCode(phone: String) { + OchChainLogManager.writeChainLog("登录页面","获取验证码${phone}") + if(!LoginModel.hasInit()){ + OchChainLogManager.writeChainLog("登录页面","LoginModel没有初始化去初始化") + initListeners() + } + if (!RegexUtils.isMobileExact(phone)) { + ToastCharterUtils.showToastShort(R.string.biz_login_phone_error) + viewCallback?.inputPhoneError() + OchChainLogManager.writeChainLog("登录页面","获取验证码 手机号输入错误") + return + } + LoginModel.getPhoneCode(phone) + } + + override fun getPhoneCodeSuccess() { + super.getPhoneCodeSuccess() + val countDownSeconds = 60L; + countDownDisposable = Observable.intervalRange(0, countDownSeconds, 0, 1, TimeUnit.SECONDS) + .map { aLong -> countDownSeconds - aLong } + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe({ + viewCallback?.setCountDownText("${it}s",false) + CallerLogger.d(TAG, "倒计时:$it") + }, { + CallerLogger.d(TAG, "倒计时onError:${it}") + it.printStackTrace() + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.biz_login_get_code),true) + }, { + CallerLogger.d(TAG, "倒计时onComplete") + viewCallback?.setCountDownText(AbsMogoApplication.getApp().getString(R.string.biz_login_get_code),true) + }) + } + + private fun gotoOfflineMode() { + LoginModel.gotoOfflineMode() + } + + interface IErrorInfoViewCallback { + fun inputPhoneError() + fun closeSoftInput() + fun setCountDownText(text: String, enable: Boolean) + } + + +} \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_view_f2a.xml b/OCH/common/biz/src/main/res/layout/biz_login_view_f2a.xml new file mode 100644 index 0000000000..837363d150 --- /dev/null +++ b/OCH/common/biz/src/main/res/layout/biz_login_view_f2a.xml @@ -0,0 +1,458 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/biz/src/main/res/layout/biz_login_view_old.xml b/OCH/common/biz/src/main/res/layout/biz_login_view_old.xml index 0b77889fb7..0c041293a5 100644 --- a/OCH/common/biz/src/main/res/layout/biz_login_view_old.xml +++ b/OCH/common/biz/src/main/res/layout/biz_login_view_old.xml @@ -36,7 +36,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_99" android:layout_marginTop="@dimen/dp_104" - android:text="@string/module_och_taxi_login_title" + android:text="@string/biz_login_title" android:textColor="@color/white" android:textSize="70dp" app:layout_constraintStart_toStartOf="@+id/guideline_v_left" @@ -47,7 +47,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_50" - android:text="@string/module_och_taxi_login_get_phone_title" + android:text="@string/biz_login_get_phone_title" android:textColor="@color/biz_login_C6C6C6" android:textSize="@dimen/dp_40" app:layout_constraintStart_toStartOf="@+id/biz_actv_welcome_login_title" @@ -62,7 +62,7 @@ android:gravity="center_vertical" android:maxLines="1" android:maxLength="11" - android:hint="@string/module_och_taxi_login_phone_hint_text" + android:hint="@string/biz_login_phone_hint_text" android:textColorHint="@color/white" android:inputType="numberSigned" android:paddingStart="30dp" @@ -77,7 +77,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="@dimen/dp_50" - android:text="@string/module_och_taxi_login_get_code_title" + android:text="@string/biz_login_get_code_title" android:textColor="@color/biz_login_C6C6C6" android:textSize="40dp" app:layout_constraintStart_toStartOf="@+id/biz_ace_login_phone_value" @@ -121,7 +121,7 @@ app:pressed_enabled="false" android:textColor="@color/biz_login_getcode_text_color_selector" android:gravity="start|center_vertical" - android:text="@string/module_och_taxi_login_get_code" + android:text="@string/biz_login_get_code" android:layout_width="wrap_content" android:layout_height="136dp"/> @@ -132,7 +132,7 @@ android:background="@drawable/biz_login_bg" android:layout_marginTop="118dp" android:textColor="@android:color/white" - android:text="@string/module_och_taxi_login_btn" + android:text="@string/biz_login_btn" android:gravity="center" android:textSize="40dp" android:layout_width="760dp" diff --git a/OCH/common/biz/src/main/res/values-en/strings.xml b/OCH/common/biz/src/main/res/values-en/strings.xml index 3aa2ea5abb..f8892b4b72 100644 --- a/OCH/common/biz/src/main/res/values-en/strings.xml +++ b/OCH/common/biz/src/main/res/values-en/strings.xml @@ -1,20 +1,21 @@ - Welcome to log in - Login - Get Verification Code - Please enter verification code - Verification code obtained successfully - Login successful - Please enter a correct phone number - Please enter a correct verification code - Please enter phone number - Please enter phone number + Welcome to log in + Login + Get Verification Code + Please enter verification code + Please enter password + Verification code obtained successfully + Login successful + Please enter a correct phone number + Please enter a correct verification code + Please enter phone number + Please enter phone number - Network exception, please try again later - Request exception occurred, please try again later - Connection error between vehicle and server. Please wait. + Network exception, please try again later + Request exception occurred, please try again later + Connection error between vehicle and server. Please wait. I see Guest Login diff --git a/OCH/common/biz/src/main/res/values/colors.xml b/OCH/common/biz/src/main/res/values/colors.xml index 7db2562862..104e8a35d5 100644 --- a/OCH/common/biz/src/main/res/values/colors.xml +++ b/OCH/common/biz/src/main/res/values/colors.xml @@ -11,6 +11,7 @@ #878890 #19FFF5 #1970FF + #c0c3c9 #2EACFF diff --git a/OCH/common/biz/src/main/res/values/strings.xml b/OCH/common/biz/src/main/res/values/strings.xml index 9ba351906d..15aa58d2c3 100644 --- a/OCH/common/biz/src/main/res/values/strings.xml +++ b/OCH/common/biz/src/main/res/values/strings.xml @@ -1,20 +1,32 @@ - 欢迎您登录 - 登录 - 获取验证码 - 请输入验证码 - 获取验证码成功 - 登录成功 - 请输入正确的手机号 - 请输入正确的验证码 - 请输入手机号 - 请输入手机号 + 欢迎您登录 + 登录 + 获取验证码 + 请输入验证码 + 请输入密码 + 获取验证码成功 + 登录成功 + 请输入正确的手机号 + 请输入正确的验证码 + 请输入手机号 + 请输入手机号 - 网络异常,请稍后重试 - 请求出现异常,请稍后重试 - 车辆与服务端连接异常,请稍等 + 设置新密码 + 请设置新密码 + 14-20位,包含数字、英文大小写 + 请确认新密码 + 下一步 + + + 欢迎登录 + 请打开MFA验证器,输入6位验证码,若无法获取验证码,请联系管理员 + 请输入6位验证码 + + 网络异常,请稍后重试 + 请求出现异常,请稍后重试 + 车辆与服务端连接异常,请稍等 我知道了 访客登录