国内登录注册界面

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> <selectionStates>
<SelectionState runConfigName="app"> <SelectionState runConfigName="app">
<option name="selectionMode" value="DROPDOWN" /> <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"> <Target type="DEFAULT_BOOT">
<handle> <handle>
<DeviceId pluginId="PhysicalDevice" identifier="serial=GBG5T19625003301" /> <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" applicationId "com.abbidot.tracker"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 35 targetSdkVersion 35
versionCode 2210 versionCode 2211
// versionName "2.2.10" // versionName "2.2.11"
versionName "2.2.10-Beta3" versionName "2.2.11-Beta1"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
@@ -127,7 +127,7 @@ android {
zipAlignEnabled true zipAlignEnabled true
// 设置混淆 // 设置混淆
minifyEnabled false minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' proguardFiles getDefaultProguardFile('proguard-android-optimize.txt')
signingConfig signingConfigs.release signingConfig signingConfigs.release
} }
} }

View File

@@ -106,6 +106,15 @@
android:usesCleartextTraffic="true" android:usesCleartextTraffic="true"
tools:replace="android:supportsRtl" tools:replace="android:supportsRtl"
tools:targetApi="n"> 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 <activity
android:name=".ui.activity.account.cn.LoginV2CNActivity" android:name=".ui.activity.account.cn.LoginV2CNActivity"
android:exported="false" /> android:exported="false" />

View File

@@ -1,9 +1,11 @@
package com.abbidot.tracker.base package com.abbidot.tracker.base
import android.annotation.SuppressLint
import android.app.Activity import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Rect import android.graphics.Rect
import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.view.Gravity import android.view.Gravity
@@ -526,12 +528,12 @@ abstract class BaseActivity<T : ViewBinding>(val inflater: (inflater: LayoutInfl
override fun finish() { override fun finish() {
super.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) { override fun startActivity(intent: Intent) {
super.startActivity(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) { fun startActivityFinish(intent: Intent) {
@@ -541,7 +543,7 @@ abstract class BaseActivity<T : ViewBinding>(val inflater: (inflater: LayoutInfl
override fun startActivity(intent: Intent, options: Bundle?) { override fun startActivity(intent: Intent, options: Bundle?) {
super.startActivity(intent, options) 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) { fun launchActivity(activityResultLauncher: ActivityResultLauncher<Intent>, intent: Intent) {
activityResultLauncher.launch(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.CreateAccountV2Activity
import com.abbidot.tracker.ui.activity.account.LoginV2Activity 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.LoginV2CNActivity
import com.abbidot.tracker.ui.activity.account.cn.RegisterCNActivity
import com.abbidot.tracker.util.ThirdPartyUtil
class SayHelloActivity : BaseActivity<ActivitySayHelloBinding>(ActivitySayHelloBinding::inflate) { class SayHelloActivity : BaseActivity<ActivitySayHelloBinding>(ActivitySayHelloBinding::inflate) {
@@ -51,11 +53,15 @@ class SayHelloActivity : BaseActivity<ActivitySayHelloBinding>(ActivitySayHelloB
} }
} }
btnSayHelloSignup -> startActivity( btnSayHelloSignup -> {
Intent( if (AppUtils.isChina()) {
mContext, CreateAccountV2Activity::class.java 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.Animator
import android.animation.AnimatorListenerAdapter import android.animation.AnimatorListenerAdapter
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.app.Activity
import android.app.NotificationManager import android.app.NotificationManager
import android.content.BroadcastReceiver import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.os.Build
import android.os.Bundle import android.os.Bundle
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
@@ -35,7 +36,6 @@ import com.baidu.mapapi.SDKInitializer
import com.hjq.toast.Toaster import com.hjq.toast.Toaster
import com.qmuiteam.qmui.arch.QMUIActivity import com.qmuiteam.qmui.arch.QMUIActivity
import com.stripe.android.PaymentConfiguration import com.stripe.android.PaymentConfiguration
import com.tencent.mm.opensdk.constants.ConstantsAPI
import com.tencent.mm.opensdk.openapi.IWXAPI import com.tencent.mm.opensdk.openapi.IWXAPI
import java.util.Calendar import java.util.Calendar
@@ -113,8 +113,8 @@ class SplashActivity : QMUIActivity() {
} else { } else {
startActivity(Util.checkBindDeviceAndPetGoActivity(mContext)) startActivity(Util.checkBindDeviceAndPetGoActivity(mContext))
} }
overridePendingTransition(R.anim.slide_in_right, R.anim.slide_out_left)
finish() 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) { override fun attachBaseContext(newBase: Context) {
super.attachBaseContext(getConfigurationContext(newBase)) super.attachBaseContext(getConfigurationContext(newBase))
@@ -198,7 +207,7 @@ class SplashActivity : QMUIActivity() {
SDKInitializer.setCoordType(CoordType.GCJ02) SDKInitializer.setCoordType(CoordType.GCJ02)
if (AppUtils.isChina()) { if (AppUtils.isChina()) {
// regToWx() regToWx()
} else { } else {
initMapbox() initMapbox()
try { try {
@@ -238,16 +247,16 @@ class SplashActivity : QMUIActivity() {
private fun regToWx() { private fun regToWx() {
mApi = ThirdPartyUtil.mApi mApi = ThirdPartyUtil.mApi
// 将应用的 appId 注册到微信 // 将应用的 appId 注册到微信
// mApi.registerApp(ThirdPartyUtil.wXAppID)
mWXAppBroadcastReceiver = object : BroadcastReceiver() {
override fun onReceive(context: Context?, intent: Intent?) {
// 将该 app 注册到微信
mApi.registerApp(ThirdPartyUtil.WXAppID) 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() { override fun onDestroy() {

View File

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

View File

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

View File

@@ -12,14 +12,13 @@ import com.abbidot.tracker.ui.fragment.account.EmailValidFragment
class CreateAccountV2Activity : AddEmailValidActivity() { class CreateAccountV2Activity : AddEmailValidActivity() {
override fun initData() { override fun initData() {
mEmailValidFragment = EmailValidFragment.newInstance(mContext, 1) { mEmailValidFragment = EmailValidFragment.newInstance(this, 1) {
switchFragment(2) 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() super.initData()
} }
} }

View File

@@ -14,17 +14,22 @@ import com.abbidot.tracker.ui.fragment.account.ForgotPasswordV2ThereFragment
class ForgotPasswordV2Activity : AddEmailValidActivity() { class ForgotPasswordV2Activity : AddEmailValidActivity() {
override fun initData() { override fun initData() {
mContext = this
intent.extras?.apply { intent.extras?.apply {
mUserEmail = getString(MMKVKey.Email, "") mUserEmail = getString(MMKVKey.Email, "")
} }
mEmailValidFragment = EmailValidFragment.newInstance(mContext, 2) { mEmailValidFragment = EmailValidFragment.newInstance(mContext, 2) {
switchFragment(2) switchFragment(2)
} }.apply {
mFragmentList = mutableListOf( mContext = this@ForgotPasswordV2Activity
mFragmentList.add(
ForgotPasswordV2OneFragment.newInstance( ForgotPasswordV2OneFragment.newInstance(
mContext, getString(R.string.txt_change_pwd), 2 mContext!!, mContext!!.getString(R.string.txt_change_pwd), 2
), mEmailValidFragment, ForgotPasswordV2ThereFragment.newInstance(mContext)
) )
)
mFragmentList.add(this)
mFragmentList.add(ForgotPasswordV2ThereFragment.newInstance(mContext!!))
}
super.initData() 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 package com.abbidot.tracker.ui.activity.account.cn
import android.content.Intent
import android.graphics.Paint import android.graphics.Paint
import android.text.InputFilter import android.text.InputFilter
import android.text.InputType import android.text.InputType
import android.view.View
import com.abbidot.tracker.R import com.abbidot.tracker.R
import com.abbidot.tracker.base.BaseActivity import com.abbidot.tracker.base.BaseActivity
import com.abbidot.tracker.databinding.ActivityLoginV2CnBinding import com.abbidot.tracker.databinding.ActivityLoginV2CnBinding
@@ -23,6 +25,8 @@ class LoginV2CNActivity :
it.tvInputNameTitle.setText(R.string.login_txt_phone) it.tvInputNameTitle.setText(R.string.login_txt_phone)
it.etInputContent.setHint(R.string.login_txt_phone) it.etInputContent.setHint(R.string.login_txt_phone)
it.etInputContent.inputType = InputType.TYPE_CLASS_PHONE it.etInputContent.inputType = InputType.TYPE_CLASS_PHONE
val filters = arrayOf<InputFilter>(InputFilter.LengthFilter(11))
it.etInputContent.filters = filters
ViewUtil.instance.setInputViewErrorHideClick( ViewUtil.instance.setInputViewErrorHideClick(
mContext, it.rlEtInputLayout, tvPhoneErrorTipLoginCn, it.etInputContent mContext, it.rlEtInputLayout, tvPhoneErrorTipLoginCn, it.etInputContent
) )
@@ -47,7 +51,29 @@ class LoginV2CNActivity :
ilLoginV2CnPassword.ivInputRepresentImage, ilLoginV2CnPassword.ivInputRepresentImage,
btnLoginV2CnLogin, btnLoginV2CnLoginCode 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.base.BaseFragment
import com.abbidot.tracker.constant.GetResultCallback import com.abbidot.tracker.constant.GetResultCallback
import com.abbidot.tracker.databinding.FragmentCreateAccountV2ThreeBinding 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.activity.account.SignupSuccessActivity
import com.abbidot.tracker.ui.common.CountryCommon import com.abbidot.tracker.ui.common.CountryCommon
import com.abbidot.tracker.util.Util import com.abbidot.tracker.util.Util
@@ -33,8 +33,6 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
private val mUserViewModel: UserProfileViewModel by viewModels() private val mUserViewModel: UserProfileViewModel by viewModels()
private lateinit var mCreateAccountV2Activity: CreateAccountV2Activity
private lateinit var mCountryCommon: CountryCommon private lateinit var mCountryCommon: CountryCommon
private var isShowPassword = false private var isShowPassword = false
@@ -48,7 +46,6 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
override fun initData() { override fun initData() {
super.initData() super.initData()
mCreateAccountV2Activity = activity as CreateAccountV2Activity
mViewBinding.apply { mViewBinding.apply {
ilCreateAccountV2FullName.let { ilCreateAccountV2FullName.let {
@@ -118,12 +115,15 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
) )
} }
mUserViewModel.getCountryCodes(mCreateAccountV2Activity) getHostActivity(AddEmailValidActivity::class.java)?.let {
mUserViewModel.getCountryCodes(it)
}
} }
override fun liveDataObserve() { override fun liveDataObserve() {
getHostActivity(AddEmailValidActivity::class.java)?.let { ac ->
mUserViewModel.apply { mUserViewModel.apply {
mCountryCodeLiveData.observe(mCreateAccountV2Activity) { mCountryCodeLiveData.observe(ac) {
dealRequestResult(it, object : GetResultCallback { dealRequestResult(it, object : GetResultCallback {
override fun onResult(any: Any) { override fun onResult(any: Any) {
it.getOrNull()?.apply { it.getOrNull()?.apply {
@@ -132,26 +132,28 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
} }
}) })
} }
mRegisterV2LiveData.observe(mCreateAccountV2Activity) { mRegisterV2LiveData.observe(ac) {
dealRequestResult(it, object : GetResultCallback { dealRequestResult(it, object : GetResultCallback {
override fun onResult(any: Any) { override fun onResult(any: Any) {
it.getOrNull()?.apply { it.getOrNull()?.apply {
Util.dealLoginSuccessData(mContext!!, this) Util.dealLoginSuccessData(mContext!!, this)
val intent = Intent(mContext, SignupSuccessActivity::class.java) val intent = Intent(mContext, SignupSuccessActivity::class.java)
mCreateAccountV2Activity.startActivityFinish(intent) ac.startActivityFinish(intent)
} }
} }
}) })
} }
} }
} }
}
private fun signupClick() { private fun signupClick() {
getHostActivity(AddEmailValidActivity::class.java)?.let {
mViewBinding.apply { mViewBinding.apply {
val name = ilCreateAccountV2FullName.etInputContent.text.toString() val name = ilCreateAccountV2FullName.etInputContent.text.toString()
// val country = ilCreateAccountV2Country.etInputContent.text.toString() // val country = ilCreateAccountV2Country.etInputContent.text.toString()
val country = "1212" val country = "1212"
val email = mCreateAccountV2Activity.mUserEmail val email = it.mUserEmail
var password = ilCreateAccountV2Password.etInputContent.text.toString() var password = ilCreateAccountV2Password.etInputContent.text.toString()
var isSure = true var isSure = true
if (TextUtils.isEmpty(name)) { if (TextUtils.isEmpty(name)) {
@@ -193,10 +195,11 @@ class CreateAccountV2ThreeFragment : BaseFragment<FragmentCreateAccountV2ThreeBi
password = Utils.get32Md5Value(password) password = Utils.get32Md5Value(password)
mUserViewModel.registerV2( mUserViewModel.registerV2(
mCreateAccountV2Activity, email, password, name, mCountryCommon.getCountryCode() it, email, password, name, mCountryCommon.getCountryCode()
) )
} }
} }
}
override fun onClick(v: View?) { override fun onClick(v: View?) {
mViewBinding.apply { mViewBinding.apply {

View File

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

View File

@@ -1,8 +1,15 @@
package com.abbidot.tracker.ui.fragment.account.cn 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 androidx.fragment.app.Fragment
import com.abbidot.tracker.R
import com.abbidot.tracker.base.BaseFragment import com.abbidot.tracker.base.BaseFragment
import com.abbidot.tracker.databinding.FragmentAccountCnPhoneBinding import com.abbidot.tracker.databinding.FragmentAccountCnPhoneBinding
import com.abbidot.tracker.ui.activity.account.AddEmailValidActivity
import com.abbidot.tracker.util.ViewUtil
/** /**
* A simple [Fragment] subclass. * A simple [Fragment] subclass.
@@ -14,14 +21,36 @@ class AccountCnPhoneFragment :
companion object { companion object {
@JvmStatic @JvmStatic
fun newInstance() = fun newInstance(context: Context) =
AccountCnPhoneFragment().apply { AccountCnPhoneFragment().apply {
mContext = context
} }
} }
override fun initData() { override fun initData() {
super.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 <androidx.appcompat.widget.AppCompatImageView
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:background="#990F1719" /> android:background="@color/transparent_black" />
<include <include
android:id="@+id/forgot_password_v2_top_bar" android:id="@+id/forgot_password_v2_top_bar"

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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