国内登录注册界面

This commit is contained in:
2026-06-16 09:48:59 +08:00
parent d4f5a1e0a3
commit c82066ca38
27 changed files with 306 additions and 137 deletions

View File

@@ -4,7 +4,7 @@
<selectionStates>
<SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" />
<DropdownSelection timestamp="2026-06-01T08:32:46.679728300Z">
<DropdownSelection timestamp="2026-06-15T09:38:09.014028800Z">
<Target type="DEFAULT_BOOT">
<handle>
<DeviceId pluginId="PhysicalDevice" identifier="serial=GBG5T19625003301" />

View File

@@ -1 +1 @@
#Tue Jun 09 18:35:33 CST 2026
#Fri Jun 12 18:29:22 CST 2026

View File

@@ -28,9 +28,9 @@ android {
applicationId "com.abbidot.tracker"
minSdkVersion 23
targetSdkVersion 35
versionCode 2210
// versionName "2.2.10"
versionName "2.2.10-Beta3"
versionCode 2211
// versionName "2.2.11"
versionName "2.2.11-Beta1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -127,7 +127,7 @@ android {
zipAlignEnabled true
// 设置混淆
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
signingConfig signingConfigs.release
}
}

View File

@@ -106,6 +106,15 @@
android:usesCleartextTraffic="true"
tools:replace="android:supportsRtl"
tools:targetApi="n">
<activity
android:name=".ui.activity.account.cn.RegisterCNActivity"
android:exported="false" />
<activity
android:name=".ui.activity.account.cn.ForgotPasswordCNActivity"
android:exported="false" />
<activity
android:name=".ui.activity.account.cn.VerifyCodeLoginCNActivity"
android:exported="false" />
<activity
android:name=".ui.activity.account.cn.LoginV2CNActivity"
android:exported="false" />

View File

@@ -1,9 +1,11 @@
package com.abbidot.tracker.base
import android.annotation.SuppressLint
import android.app.Activity
import android.content.Context
import android.content.Intent
import android.graphics.Rect
import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.view.Gravity
@@ -526,12 +528,12 @@ abstract class BaseActivity<T : ViewBinding>(val inflater: (inflater: LayoutInfl
override fun finish() {
super.finish()
overridePendingTransition(R.anim.slide_still, R.anim.slide_out_right)
overrideTransitionClose(R.anim.slide_still, R.anim.slide_out_right)
}
override fun startActivity(intent: Intent) {
super.startActivity(intent)
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
overrideTransitionOpen(R.anim.slide_in_right, R.anim.slide_out_left)
}
fun startActivityFinish(intent: Intent) {
@@ -541,7 +543,7 @@ abstract class BaseActivity<T : ViewBinding>(val inflater: (inflater: LayoutInfl
override fun startActivity(intent: Intent, options: Bundle?) {
super.startActivity(intent, options)
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
overrideTransitionOpen(R.anim.slide_in_right, R.anim.slide_out_left)
}
/**
@@ -549,7 +551,25 @@ abstract class BaseActivity<T : ViewBinding>(val inflater: (inflater: LayoutInfl
*/
fun launchActivity(activityResultLauncher: ActivityResultLauncher<Intent>, intent: Intent) {
activityResultLauncher.launch(intent)
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
overrideTransitionOpen(R.anim.slide_in_right, R.anim.slide_out_left)
}
private fun Activity.overrideTransitionOpen(enter: Int, exit: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
overrideActivityTransition(Activity.OVERRIDE_TRANSITION_OPEN, enter, exit)
} else {
@Suppress("DEPRECATION")
overridePendingTransition(enter, exit)
}
}
private fun Activity.overrideTransitionClose(enter: Int, exit: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
overrideActivityTransition(Activity.OVERRIDE_TRANSITION_CLOSE, enter, exit)
} else {
@Suppress("DEPRECATION")
overridePendingTransition(enter, exit)
}
}
/**

View File

@@ -13,6 +13,8 @@ import com.abbidot.tracker.databinding.ActivitySayHelloBinding
import com.abbidot.tracker.ui.activity.account.CreateAccountV2Activity
import com.abbidot.tracker.ui.activity.account.LoginV2Activity
import com.abbidot.tracker.ui.activity.account.cn.LoginV2CNActivity
import com.abbidot.tracker.ui.activity.account.cn.RegisterCNActivity
import com.abbidot.tracker.util.ThirdPartyUtil
class SayHelloActivity : BaseActivity<ActivitySayHelloBinding>(ActivitySayHelloBinding::inflate) {
@@ -51,11 +53,15 @@ class SayHelloActivity : BaseActivity<ActivitySayHelloBinding>(ActivitySayHelloB
}
}
btnSayHelloSignup -> startActivity(
Intent(
mContext, CreateAccountV2Activity::class.java
)
)
btnSayHelloSignup -> {
if (AppUtils.isChina()) {
startActivity(Intent(mContext, RegisterCNActivity::class.java))
} else {
startActivity(Intent(mContext, CreateAccountV2Activity::class.java))
}
}
btnSayHelloLoginWechat -> ThirdPartyUtil.instance.startWXLogin(this@SayHelloActivity)
}
}
}

View File

@@ -3,11 +3,12 @@ package com.abbidot.tracker.ui.activity
import android.animation.Animator
import android.animation.AnimatorListenerAdapter
import android.annotation.SuppressLint
import android.app.Activity
import android.app.NotificationManager
import android.content.BroadcastReceiver
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
import android.os.Build
import android.os.Bundle
import android.text.TextUtils
import android.view.View
@@ -35,7 +36,6 @@ import com.baidu.mapapi.SDKInitializer
import com.hjq.toast.Toaster
import com.qmuiteam.qmui.arch.QMUIActivity
import com.stripe.android.PaymentConfiguration
import com.tencent.mm.opensdk.constants.ConstantsAPI
import com.tencent.mm.opensdk.openapi.IWXAPI
import java.util.Calendar
@@ -113,8 +113,8 @@ class SplashActivity : QMUIActivity() {
} else {
startActivity(Util.checkBindDeviceAndPetGoActivity(mContext))
}
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
finish()
overrideTransitionClose(R.anim.slide_in_right, R.anim.slide_out_left)
}
@@ -137,6 +137,15 @@ class SplashActivity : QMUIActivity() {
}
}
private fun Activity.overrideTransitionClose(enter: Int, exit: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
overrideActivityTransition(Activity.OVERRIDE_TRANSITION_CLOSE, enter, exit)
} else {
@Suppress("DEPRECATION")
overridePendingTransition(enter, exit)
}
}
// 字体大小不跟随系统
override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(getConfigurationContext(newBase))
@@ -198,7 +207,7 @@ class SplashActivity : QMUIActivity() {
SDKInitializer.setCoordType(CoordType.GCJ02)
if (AppUtils.isChina()) {
// regToWx()
regToWx()
} else {
initMapbox()
try {
@@ -238,16 +247,16 @@ class SplashActivity : QMUIActivity() {
private fun regToWx() {
mApi = ThirdPartyUtil.mApi
// 将应用的 appId 注册到微信
// mApi.registerApp(ThirdPartyUtil.wXAppID)
mWXAppBroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// 将该 app 注册到微信
mApi.registerApp(ThirdPartyUtil.WXAppID)
}
}
// mWXAppBroadcastReceiver = object : BroadcastReceiver() {
// override fun onReceive(context: Context?, intent: Intent?) {
// // 将该 app 注册到微信
// mApi.registerApp(ThirdPartyUtil.WXAppID)
// }
// }
//建议动态监听微信启动广播进行注册到微信
registerReceiver(mWXAppBroadcastReceiver, IntentFilter(ConstantsAPI.ACTION_REFRESH_WXAPP))
// registerReceiver(mWXAppBroadcastReceiver, IntentFilter(ConstantsAPI.ACTION_REFRESH_WXAPP))
}
override fun onDestroy() {

View File

@@ -14,8 +14,8 @@ import com.abbidot.tracker.ui.fragment.account.EmailValidFragment
open class AddEmailValidActivity :
BaseActivity<ActivityAddEmailValidBinding>(ActivityAddEmailValidBinding::inflate) {
lateinit var mFragmentList: MutableList<Fragment>
lateinit var mEmailValidFragment: EmailValidFragment
val mFragmentList = mutableListOf<Fragment>()
var mEmailValidFragment: EmailValidFragment? = null
private var mIndex = 0
@@ -36,12 +36,12 @@ open class AddEmailValidActivity :
}
switchFragment(mIndex)
mEmailValidFragment.setEmail(mUserEmail)
mEmailValidFragment?.setEmail(mUserEmail)
}
fun setToEmail(email: String) {
mUserEmail = email
mEmailValidFragment.setEmail(mUserEmail)
mEmailValidFragment?.setEmail(mUserEmail)
}
fun switchFragment(index: Int) {

View File

@@ -17,6 +17,7 @@ class ChangeEmailActivity : AddEmailValidActivity() {
private val mUserViewModel: UserProfileViewModel by viewModels()
override fun initData() {
mContext = this
//验证老的邮箱验证码
val oldEmailValidFragment = EmailValidFragment.newInstance(mContext, 2) {
switchFragment(1)
@@ -26,12 +27,19 @@ class ChangeEmailActivity : AddEmailValidActivity() {
mEmailValidFragment =
EmailValidFragment.newInstance(mContext, 3, getString(R.string.txt_change_now)) {
updateEmail()
}
mFragmentList = mutableListOf(
oldEmailValidFragment, ForgotPasswordV2OneFragment.newInstance(
mContext, getString(R.string.txt_enter_new_email), 3, 1
), mEmailValidFragment
}.apply {
mContext = this@ChangeEmailActivity
mFragmentList.add(oldEmailValidFragment)
mFragmentList.add(
ForgotPasswordV2OneFragment.newInstance(
mContext!!,
mContext!!.getString(R.string.txt_enter_new_email),
3,
1
)
)
mFragmentList.add(this)
}
super.initData()
}

View File

@@ -12,14 +12,13 @@ import com.abbidot.tracker.ui.fragment.account.EmailValidFragment
class CreateAccountV2Activity : AddEmailValidActivity() {
override fun initData() {
mEmailValidFragment = EmailValidFragment.newInstance(mContext, 1) {
mEmailValidFragment = EmailValidFragment.newInstance(this, 1) {
switchFragment(2)
}.apply {
mFragmentList.add(CreateAccountV2OneFragment.newInstance(this@CreateAccountV2Activity))
mFragmentList.add(this)
mFragmentList.add(CreateAccountV2ThreeFragment.newInstance(this@CreateAccountV2Activity))
}
mFragmentList = mutableListOf(
CreateAccountV2OneFragment.newInstance(mContext),
mEmailValidFragment,
CreateAccountV2ThreeFragment.newInstance(mContext)
)
super.initData()
}
}

View File

@@ -14,17 +14,22 @@ import com.abbidot.tracker.ui.fragment.account.ForgotPasswordV2ThereFragment
class ForgotPasswordV2Activity : AddEmailValidActivity() {
override fun initData() {
mContext = this
intent.extras?.apply {
mUserEmail = getString(MMKVKey.Email, "")
}
mEmailValidFragment = EmailValidFragment.newInstance(mContext, 2) {
switchFragment(2)
}
mFragmentList = mutableListOf(
}.apply {
mContext = this@ForgotPasswordV2Activity
mFragmentList.add(
ForgotPasswordV2OneFragment.newInstance(
mContext, getString(R.string.txt_change_pwd), 2
), mEmailValidFragment, ForgotPasswordV2ThereFragment.newInstance(mContext)
mContext!!, mContext!!.getString(R.string.txt_change_pwd), 2
)
)
mFragmentList.add(this)
mFragmentList.add(ForgotPasswordV2ThereFragment.newInstance(mContext!!))
}
super.initData()
}

View File

@@ -0,0 +1,32 @@
package com.abbidot.tracker.ui.activity.account.cn
import com.abbidot.baselibrary.constant.MMKVKey
import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity
import com.abbidot.tracker.ui.fragment.account.EmailValidFragment
import com.abbidot.tracker.ui.fragment.account.ForgotPasswordV2ThereFragment
import com.abbidot.tracker.ui.fragment.account.cn.AccountCnPhoneFragment
/**
*Created by .yzq on 2024/8/2/002.
* @link
* @description:
*/
class ForgotPasswordCNActivity : AddEmailValidActivity() {
override fun initData() {
mContext = this
intent.extras?.apply {
mUserEmail = getString(MMKVKey.Email, "")
}
mEmailValidFragment = EmailValidFragment.newInstance(mContext, 2) {
switchFragment(2)
}.apply {
mContext = this@ForgotPasswordCNActivity
mFragmentList.add(AccountCnPhoneFragment.newInstance(mContext!!))
mFragmentList.add(this)
mFragmentList.add(ForgotPasswordV2ThereFragment.newInstance(mContext!!))
}
super.initData()
}
}

View File

@@ -1,8 +1,10 @@
package com.abbidot.tracker.ui.activity.account.cn
import android.content.Intent
import android.graphics.Paint
import android.text.InputFilter
import android.text.InputType
import android.view.View
import com.abbidot.tracker.R
import com.abbidot.tracker.base.BaseActivity
import com.abbidot.tracker.databinding.ActivityLoginV2CnBinding
@@ -23,6 +25,8 @@ class LoginV2CNActivity :
it.tvInputNameTitle.setText(R.string.login_txt_phone)
it.etInputContent.setHint(R.string.login_txt_phone)
it.etInputContent.inputType = InputType.TYPE_CLASS_PHONE
val filters = arrayOf<InputFilter>(InputFilter.LengthFilter(11))
it.etInputContent.filters = filters
ViewUtil.instance.setInputViewErrorHideClick(
mContext, it.rlEtInputLayout, tvPhoneErrorTipLoginCn, it.etInputContent
)
@@ -47,7 +51,29 @@ class LoginV2CNActivity :
ilLoginV2CnPassword.ivInputRepresentImage,
btnLoginV2CnLogin, btnLoginV2CnLoginCode
)
}
}
private fun goForgotPassword() {
Intent(mContext, ForgotPasswordCNActivity::class.java).apply {
// val email = mViewBinding.ilLoginV2EmailAddress.etInputContent.text.toString()
// putExtra(MMKVKey.Email, email)
startActivity(this)
}
}
override fun onClick(v: View?) {
mViewBinding.apply {
when (v!!) {
btnLoginV2CnLoginCode -> startActivity(
Intent(
mContext,
VerifyCodeLoginCNActivity::class.java
)
)
tvLoginV2CnForgotPassword -> goForgotPassword()
}
}
}
}

View File

@@ -0,0 +1,19 @@
package com.abbidot.tracker.ui.activity.account.cn
import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity
import com.abbidot.tracker.ui.fragment.account.CreateAccountV2ThreeFragment
import com.abbidot.tracker.ui.fragment.account.EmailValidFragment
import com.abbidot.tracker.ui.fragment.account.cn.AccountCnPhoneFragment
class RegisterCNActivity : AddEmailValidActivity() {
override fun initData() {
mEmailValidFragment = EmailValidFragment.newInstance(this, 1) {
switchFragment(2)
}.apply {
mFragmentList.add(AccountCnPhoneFragment.newInstance(this@RegisterCNActivity))
mFragmentList.add(this)
mFragmentList.add(CreateAccountV2ThreeFragment.newInstance(this@RegisterCNActivity))
}
super.initData()
}
}

View File

@@ -0,0 +1,18 @@
package com.abbidot.tracker.ui.activity.account.cn
import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity
import com.abbidot.tracker.ui.fragment.account.EmailValidFragment
import com.abbidot.tracker.ui.fragment.account.cn.AccountCnPhoneFragment
class VerifyCodeLoginCNActivity : AddEmailValidActivity() {
override fun initData() {
mEmailValidFragment = EmailValidFragment.newInstance(this, 1) {
// switchFragment(2)
}.apply {
mFragmentList.add(AccountCnPhoneFragment.newInstance(this@VerifyCodeLoginCNActivity))
mFragmentList.add(this)
}
super.initData()
}
}

View File

@@ -14,7 +14,7 @@ import com.abbidot.tracker.R
import com.abbidot.tracker.base.BaseFragment
import com.abbidot.tracker.constant.GetResultCallback
import com.abbidot.tracker.databinding.FragmentCreateAccountV2ThreeBinding
import com.abbidot.tracker.ui.activity.account.CreateAccountV2Activity
import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity
import com.abbidot.tracker.ui.activity.account.SignupSuccessActivity
import com.abbidot.tracker.ui.common.CountryCommon
import com.abbidot.tracker.util.Util
@@ -33,8 +33,6 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
private val mUserViewModel: UserProfileViewModel by viewModels()
private lateinit var mCreateAccountV2Activity: CreateAccountV2Activity
private lateinit var mCountryCommon: CountryCommon
private var isShowPassword = false
@@ -48,7 +46,6 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
override fun initData() {
super.initData()
mCreateAccountV2Activity = activity as CreateAccountV2Activity
mViewBinding.apply {
ilCreateAccountV2FullName.let {
@@ -118,12 +115,15 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
)
}
mUserViewModel.getCountryCodes(mCreateAccountV2Activity)
getHostActivity(AddEmailValidActivity::class.java)?.let {
mUserViewModel.getCountryCodes(it)
}
}
override fun liveDataObserve() {
getHostActivity(AddEmailValidActivity::class.java)?.let { ac ->
mUserViewModel.apply {
mCountryCodeLiveData.observe(mCreateAccountV2Activity) {
mCountryCodeLiveData.observe(ac) {
dealRequestResult(it, object : GetResultCallback {
override fun onResult(any: Any) {
it.getOrNull()?.apply {
@@ -132,26 +132,28 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
}
})
}
mRegisterV2LiveData.observe(mCreateAccountV2Activity) {
mRegisterV2LiveData.observe(ac) {
dealRequestResult(it, object : GetResultCallback {
override fun onResult(any: Any) {
it.getOrNull()?.apply {
Util.dealLoginSuccessData(mContext!!, this)
val intent = Intent(mContext, SignupSuccessActivity::class.java)
mCreateAccountV2Activity.startActivityFinish(intent)
ac.startActivityFinish(intent)
}
}
})
}
}
}
}
private fun signupClick() {
getHostActivity(AddEmailValidActivity::class.java)?.let {
mViewBinding.apply {
val name = ilCreateAccountV2FullName.etInputContent.text.toString()
// val country = ilCreateAccountV2Country.etInputContent.text.toString()
val country = "1212"
val email = mCreateAccountV2Activity.mUserEmail
val email = it.mUserEmail
var password = ilCreateAccountV2Password.etInputContent.text.toString()
var isSure = true
if (TextUtils.isEmpty(name)) {
@@ -193,10 +195,11 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
password = Utils.get32Md5Value(password)
mUserViewModel.registerV2(
mCreateAccountV2Activity, email, password, name, mCountryCommon.getCountryCode()
it, email, password, name, mCountryCommon.getCountryCode()
)
}
}
}
override fun onClick(v: View?) {
mViewBinding.apply {

View File

@@ -37,7 +37,7 @@ open class EmailValidFragment : BaseFragment<FragmentBaseEmailValidBinding>(
private var mBtnString = ""
private var mEmailCodeType = 0
private lateinit var mOnOkClickListener: OnClickListener
private var mOnOkClickListener: OnClickListener?=null
companion object {
@JvmStatic
@@ -150,7 +150,7 @@ open class EmailValidFragment : BaseFragment<FragmentBaseEmailValidBinding>(
dealRequestResult(it, object : GetResultCallback {
override fun onResult(any: Any) {
it.getOrNull()?.apply {
mOnOkClickListener.onClick(view)
mOnOkClickListener?.onClick(view)
}
}
})

View File

@@ -1,8 +1,15 @@
package com.abbidot.tracker.ui.fragment.account.cn
import android.content.Context
import android.text.InputFilter
import android.text.InputType
import android.view.View
import androidx.fragment.app.Fragment
import com.abbidot.tracker.R
import com.abbidot.tracker.base.BaseFragment
import com.abbidot.tracker.databinding.FragmentAccountCnPhoneBinding
import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity
import com.abbidot.tracker.util.ViewUtil
/**
* A simple [Fragment] subclass.
@@ -14,14 +21,36 @@ class AccountCnPhoneFragment :
companion object {
@JvmStatic
fun newInstance() =
fun newInstance(context: Context) =
AccountCnPhoneFragment().apply {
mContext = context
}
}
override fun initData() {
super.initData()
mViewBinding.apply {
ilAccountCnPhoneEditLayout.let {
it.tvInputNameTitle.setText(R.string.login_txt_phone)
it.etInputContent.setHint(R.string.login_txt_phone)
val filters = arrayOf<InputFilter>(InputFilter.LengthFilter(11))
it.etInputContent.filters = filters
it.etInputContent.inputType = InputType.TYPE_CLASS_PHONE
ViewUtil.instance.setInputViewErrorHideClick(
mContext!!, it.rlEtInputLayout, tvAccountCnPhoneErrorTip, it.etInputContent
)
}
setOnClickListenerViews(btnAccountCnPhoneContinue)
}
}
override fun onClick(v: View?) {
mViewBinding.apply {
when (v!!) {
btnAccountCnPhoneContinue -> getHostActivity(AddEmailValidActivity::class.java)?.switchFragment(
1
)
}
}
}
}

View File

@@ -14,7 +14,7 @@
<androidx.appcompat.widget.AppCompatImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#990F1719" />
android:background="@color/transparent_black" />
<include
android:id="@+id/forgot_password_v2_top_bar"

View File

@@ -96,6 +96,7 @@
android:layout_centerHorizontal="true"
android:layout_marginTop="@dimen/dp_12"
android:layout_marginBottom="@dimen/dp_60"
android:background="@drawable/selector_transparent_pressed"
android:text="@string/login_txt_login_code"
android:textColor="@color/gray_color50"
android:textSize="@dimen/textSize16"

View File

@@ -4,6 +4,7 @@
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingHorizontal="@dimen/dp_16"
android:paddingTop="@dimen/dp_24"
android:paddingBottom="@dimen/dp_36"
@@ -16,54 +17,36 @@
android:textSize="@dimen/textSize32"
android:textStyle="bold" />
<com.abbidot.tracker.widget.TypefaceTextView
style="@style/my_TextView_style_v2"
android:layout_width="match_parent"
android:layout_marginTop="@dimen/dp_8"
android:gravity="start"
android:text="@string/txt_reset_password_tips"
android:textColor="@color/select_color3"
android:textSize="@dimen/textSize14"
android:visibility="gone"
app:typeface="@string/roboto_regular_font" />
<include
android:id="@+id/il_create_account_v2_email"
android:id="@+id/il_account_cn_phone_edit_layout"
layout="@layout/layout_input_edit_view"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_66"
android:layout_marginTop="@dimen/dp_32" />
android:layout_marginTop="@dimen/dp_18" />
<com.abbidot.tracker.widget.TypefaceTextView
android:id="@+id/tv_email_error_tip_create_account_v2"
android:id="@+id/tv_account_cn_phone_error_tip"
style="@style/my_TextView_style_v2"
android:layout_below="@id/il_login_v2_email_address"
android:layout_marginTop="@dimen/dp_10"
android:text="@string/txt_valid_email"
android:text="@string/txt_use_valid_phone"
android:textColor="@color/red_color2"
android:textSize="@dimen/textSize14"
android:visibility="gone"
app:typeface="@string/roboto_regular_font" />
<include
android:id="@+id/il_create_account_v2_policy_terms_check"
layout="@layout/layout_create_account_policy_terms"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_18" />
<com.abbidot.tracker.widget.TypefaceButton
android:id="@+id/btn_create_account_v2_continue"
android:id="@+id/btn_account_cn_phone_continue"
style="@style/my_match_RoundRect_Button_style"
android:text="@string/txt_continue"
app:qmui_radius="@dimen/dp_64"
app:typeface="@string/roboto_bold_font" />
<com.abbidot.tracker.widget.TypefaceTextView
style="@style/my_TextView_style_v2"
android:layout_width="match_parent"
android:text="@string/txt_verify_your_email"
android:textColor="@color/select_color3"
android:textSize="@dimen/textSize14"
app:typeface="@string/roboto_regular_font" />
</androidx.appcompat.widget.LinearLayoutCompat>

View File

@@ -8,7 +8,7 @@
android:paddingHorizontal="@dimen/dp_16"
android:paddingTop="@dimen/dp_24"
android:paddingBottom="@dimen/dp_60"
tools:context=".ui.fragment.account.ForgotPasswordV2OneFragment">
tools:context=".ui.fragment.account.EmailValidFragment">
<com.abbidot.tracker.widget.TypefaceTextView
style="@style/my_TextView_style_v2"

View File

@@ -8,7 +8,7 @@
android:paddingHorizontal="@dimen/dp_16"
android:paddingTop="@dimen/dp_24"
android:paddingBottom="@dimen/dp_60"
tools:context=".ui.fragment.account.ForgotPasswordV2OneFragment">
tools:context=".ui.fragment.account.ForgotPasswordV2ThereFragment">
<com.abbidot.tracker.widget.TypefaceTextView
style="@style/my_TextView_style_v2"

View File

@@ -9,6 +9,7 @@
<!-- 透明色 -->
<color name="transparent">#00000000</color>
<color name="transparent_half">#80000000</color>
<color name="transparent_black">#990F1719</color>
<!-- 白色 -->
<color name="white">#FFFFFFFF</color>

View File

@@ -1119,5 +1119,6 @@
<string name="txt_use_valid_phone">请使用有效的手机号码</string>
<string name="txt_account">账户</string>
<string name="title_activity_register_cnactivity">RegisterCNActivity</string>
</resources>

View File

@@ -10,7 +10,7 @@
<!-- <item name="colorSecondaryVariant">@color/teal_700</item>-->
<!-- <item name="colorOnSecondary">@color/black</item>-->
<!-- Status bar color. -->
<item name="android:statusBarColor" >?attr/colorPrimaryVariant</item>
<item name="android:statusBarColor">?attr/colorPrimaryVariant</item>
<!-- Customize your theme here. -->

View File

@@ -93,7 +93,7 @@ class AppUtils {
* 是否是国内
*/
fun isChina(type: String = SWITCH_PAGE_TYPE): Boolean {
return false
// return false
if (isDebug()) {
if (type == SWITCH_MAP_TYPE && MMKVUtil.getBoolean(MMKVKey.OnlyGoogleMap, false)) {
//只启用谷歌地图