1.修复注册页面隐私和协议语言过长问题
2.完善退款详情页面和文案
This commit is contained in:
@@ -29,8 +29,8 @@ android {
|
||||
minSdkVersion 24
|
||||
targetSdkVersion 35
|
||||
versionCode 2600
|
||||
// versionName "2.6.0"
|
||||
versionName "2.6.0-Beta3"
|
||||
versionName "2.6.0"
|
||||
// versionName "2.6.0-Beta5"
|
||||
4
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.abbidot.tracker.adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.content.res.ColorStateList
|
||||
import android.view.View
|
||||
import android.widget.TextView
|
||||
import androidx.appcompat.widget.AppCompatImageView
|
||||
@@ -211,21 +212,17 @@ class SubscriptionHistoryAdapter(
|
||||
}
|
||||
|
||||
holder.getView<AppCompatImageView>(R.id.iv_subscription_history_refund_arrow).apply {
|
||||
visibility = if (item.enabled == ConstantInt.Type0) View.GONE
|
||||
val imageTintColor = if (item.enabled == ConstantInt.Type0) R.color.block_color2
|
||||
else when (item.orderStatus) {
|
||||
1 -> {
|
||||
if (item.subscriptionStatus == ConstantInt.Type1) View.GONE
|
||||
else if (item.isRefundable == ConstantInt.Type1) View.VISIBLE
|
||||
else View.GONE
|
||||
if (item.isRefundable == ConstantInt.Type1) R.color.txt_black
|
||||
else R.color.block_color2
|
||||
}
|
||||
|
||||
4 -> View.VISIBLE
|
||||
5 -> View.VISIBLE
|
||||
6 -> View.VISIBLE
|
||||
7 -> View.VISIBLE
|
||||
8 -> View.VISIBLE
|
||||
else -> View.GONE
|
||||
4, 5, 6, 7, 8 -> R.color.txt_black
|
||||
else -> R.color.block_color2
|
||||
}
|
||||
imageTintList = ColorStateList.valueOf(ContextCompat.getColor(context, imageTintColor))
|
||||
}
|
||||
holder.getView<TypefaceTextView>(R.id.tv_subscription_history_auto_renew_result).apply {
|
||||
text =
|
||||
@@ -233,14 +230,21 @@ class SubscriptionHistoryAdapter(
|
||||
else context.getString(R.string.tracker_manage_set_led_off)
|
||||
}
|
||||
holder.getView<LinearLayoutCompat>(R.id.ll_subscription_history_auto_renew_item).apply {
|
||||
visibility = if (item.enabled == ConstantInt.Type0 || (expiredTime <= 0)) View.GONE
|
||||
else View.VISIBLE
|
||||
setOnClickListener {
|
||||
if (item.enabled == ConstantInt.Type0 || (expiredTime <= 0)) return@setOnClickListener
|
||||
mHistoryActivity.updateSubscriptionStatus(
|
||||
item.subscriptionId, item.subscriptionStatus, position
|
||||
)
|
||||
}
|
||||
}
|
||||
holder.getView<AppCompatImageView>(R.id.iv_subscription_history_auto_renew_arrow).apply {
|
||||
val imageTintColor = if (item.enabled == ConstantInt.Type0 || (expiredTime <= 0)) {
|
||||
R.color.block_color2
|
||||
} else {
|
||||
R.color.txt_black
|
||||
}
|
||||
imageTintList = ColorStateList.valueOf(ContextCompat.getColor(context, imageTintColor))
|
||||
}
|
||||
}
|
||||
|
||||
private fun setRefundState(
|
||||
|
||||
@@ -234,6 +234,8 @@ abstract class BaseActivity<T : ViewBinding>(val inflater: (inflater: LayoutInfl
|
||||
return findViewById(Window.ID_ANDROID_CONTENT)
|
||||
}
|
||||
|
||||
fun getResColor(colorRes: Int) = ContextCompat.getColor(mContext, colorRes)
|
||||
|
||||
/**
|
||||
* 监听键盘弹出和隐藏,解决键盘弹出挡住输入框的问题
|
||||
*/
|
||||
|
||||
@@ -96,6 +96,8 @@ abstract class BaseFragment<T : ViewBinding>(
|
||||
(activity as BaseActivity<*>).showNoCancelableLoading(show)
|
||||
}
|
||||
|
||||
fun getResColor(colorRes: Int) = (activity as BaseActivity<*>).getResColor(colorRes)
|
||||
|
||||
/**
|
||||
* 显示提示toast
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package com.abbidot.tracker.ui.activity.subscribe
|
||||
|
||||
import android.content.res.ColorStateList
|
||||
import android.graphics.Typeface
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import com.abbidot.baselibrary.util.Utils
|
||||
import com.abbidot.tracker.R
|
||||
import com.abbidot.tracker.base.BaseActivity
|
||||
@@ -11,12 +12,14 @@ import com.abbidot.tracker.databinding.ActivityRefundDetailsBinding
|
||||
import com.abbidot.tracker.ui.fragment.subscribe.RefundPolicyBottomSheetFragment
|
||||
import com.abbidot.tracker.util.Util
|
||||
import com.abbidot.tracker.util.ViewUtil
|
||||
import com.abbidot.tracker.widget.TypefaceTextView
|
||||
|
||||
class RefundDetailsActivity :
|
||||
BaseActivity<ActivityRefundDetailsBinding>(ActivityRefundDetailsBinding::inflate) {
|
||||
|
||||
//套餐
|
||||
private var mSetMealBean: SubscriptionsOrderBean? = null
|
||||
private var mTypeface: Typeface? = null
|
||||
|
||||
override fun getTopBar() = mViewBinding.ilRefundDetailsTopBar.titleTopBar
|
||||
|
||||
@@ -28,7 +31,7 @@ class RefundDetailsActivity :
|
||||
mSetMealBean = Util.getParcelableAdaptive(
|
||||
intent, ConstantString.SetMeal, SubscriptionsOrderBean::class.java
|
||||
)
|
||||
|
||||
mTypeface = ViewUtil.instance.setTypeface(mContext, ViewUtil.FONT_BOLD_NAME)
|
||||
mViewBinding.apply {
|
||||
mSetMealBean?.let {
|
||||
tvRefundDetailsPlanName.text = it.mealName
|
||||
@@ -39,8 +42,7 @@ class RefundDetailsActivity :
|
||||
tvRefundDetailsOrderTime.text =
|
||||
Utils.formatTime(it.payTime, Utils.DATE_FORMAT_PATTERN_CN2)
|
||||
|
||||
val typeface = ViewUtil.instance.setTypeface(mContext, ViewUtil.FONT_BOLD_NAME)
|
||||
ilRefundDetailsStateStep1.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
setBoldAndColor(ilRefundDetailsStateStep1.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep1.ivRefundStateStepDot.isActivated = true
|
||||
ilRefundDetailsStateStep1.tvRefundStateStepTitle.setText(R.string.txt_request_submit)
|
||||
ilRefundDetailsStateStep1.tvRefundStateStepDesc.setText(R.string.txt_request_submit_dec)
|
||||
@@ -66,11 +68,12 @@ class RefundDetailsActivity :
|
||||
ilRefundDetailsStateStep1.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep2.ivRefundStateStepDot.isActivated = true
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepTitle.setTextColor(
|
||||
ContextCompat.getColor(
|
||||
mContext, R.color.select_color
|
||||
)
|
||||
getResColor(R.color.select_color)
|
||||
)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
ilRefundDetailsStateStep1.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
setBoldAndColor(ilRefundDetailsStateStep2.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec)
|
||||
}
|
||||
@@ -81,78 +84,117 @@ class RefundDetailsActivity :
|
||||
getString(R.string.txt_refund_processing_tips)
|
||||
|
||||
ilRefundDetailsStateStep1.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep1.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep2.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec2)
|
||||
setBoldAndColor(ilRefundDetailsStateStep2.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec)
|
||||
ilRefundDetailsStateStep2.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepTitle.setTextColor(
|
||||
ContextCompat.getColor(
|
||||
mContext, R.color.select_color
|
||||
)
|
||||
getResColor(R.color.select_color)
|
||||
)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.setText(R.string.txt_refund_processing_tips)
|
||||
ilRefundDetailsStateStep3.ivRefundStateStepDot.isActivated = true
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
setBoldAndColor(ilRefundDetailsStateStep3.tvRefundStateStepTitle)
|
||||
}
|
||||
|
||||
6 -> {
|
||||
rlRefundDetailsStateBg.setBackgroundResource(R.drawable.shape20_green_bg)
|
||||
ivRefundDetailsStateImage.setImageResource(R.drawable.icon_refund_completed_state)
|
||||
tvRefundDetailsStateTitle.setText(R.string.txt_refund_completed)
|
||||
tvRefundDetailsStateContent.setText(R.string.txt_refund_success_tips)
|
||||
|
||||
ilRefundDetailsStateStep1.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep1.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep2.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec2)
|
||||
setBoldAndColor(ilRefundDetailsStateStep2.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec)
|
||||
ilRefundDetailsStateStep2.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.setText(R.string.txt_refund_processing_tips)
|
||||
ilRefundDetailsStateStep3.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.setText(R.string.txt_refund_processing_tips2)
|
||||
ilRefundDetailsStateStep3.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
setBoldAndColor(ilRefundDetailsStateStep3.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep4.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
setBoldAndColor(ilRefundDetailsStateStep4.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepDesc.setText(R.string.txt_refund_success_tips)
|
||||
}
|
||||
|
||||
7 -> {
|
||||
ivRefundDetailsStateImage.setImageResource(R.drawable.icon_refund_fail_state)
|
||||
tvRefundDetailsStateTitle.setText(R.string.txt_refund_unsuccessful)
|
||||
tvRefundDetailsStateContent.setText(R.string.txt_refund_fail_tips)
|
||||
|
||||
ilRefundDetailsStateStep1.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep1.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep2.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec2)
|
||||
setBoldAndColor(ilRefundDetailsStateStep2.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec)
|
||||
ilRefundDetailsStateStep2.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.setText(R.string.txt_refund_processing_tips)
|
||||
ilRefundDetailsStateStep3.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep3.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.setText(R.string.txt_refund_processing_tips2)
|
||||
setBoldAndColor(ilRefundDetailsStateStep3.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepTitle.setText(R.string.txt_refund_failed)
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
setBoldAndColor(ilRefundDetailsStateStep4.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepDesc.setText(R.string.txt_refund_failed_dec)
|
||||
ilRefundDetailsStateStep4.ivRefundStateStepDot.setImageResource(R.drawable.icon_permission_error_check_svg)
|
||||
ilRefundDetailsStateStep4.ivRefundStateStepDot.setImageResource(R.drawable.qmui_icon_notify_error)
|
||||
ilRefundDetailsStateStep4.ivRefundStateStepDot.imageTintList =
|
||||
ColorStateList.valueOf(getResColor(R.color.red_color5))
|
||||
}
|
||||
|
||||
8 -> {
|
||||
ivRefundDetailsStateImage.setImageResource(R.drawable.icon_refund_fail_state)
|
||||
tvRefundDetailsStateTitle.setText(R.string.txt_refund_unsuccessful)
|
||||
tvRefundDetailsStateContent.setText(R.string.txt_refund_fail_tips)
|
||||
|
||||
ilRefundDetailsStateStep1.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep1.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep2.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
setBoldAndColor(ilRefundDetailsStateStep2.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec2)
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep2.tvRefundStateStepDesc.setText(R.string.txt_under_review_dec)
|
||||
ilRefundDetailsStateStep2.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.setText(R.string.txt_refund_processing_tips)
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepDesc.setText(R.string.txt_refund_processing_tips2)
|
||||
ilRefundDetailsStateStep3.viewRefundStateStepLine.setBackgroundColor(
|
||||
getResColor(R.color.orange_color8)
|
||||
)
|
||||
ilRefundDetailsStateStep3.ivRefundStateStepDot.isSelected = true
|
||||
ilRefundDetailsStateStep3.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
setBoldAndColor(ilRefundDetailsStateStep3.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepTitle.setText(R.string.txt_refund_declined)
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepTitle.setTypeface(typeface)
|
||||
setBoldAndColor(ilRefundDetailsStateStep4.tvRefundStateStepTitle)
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepDesc.visibility = View.VISIBLE
|
||||
ilRefundDetailsStateStep4.tvRefundStateStepDesc.setText(R.string.txt_refund_fail_tips)
|
||||
ilRefundDetailsStateStep4.ivRefundStateStepDot.setImageResource(R.drawable.icon_permission_error_check_svg)
|
||||
ilRefundDetailsStateStep4.ivRefundStateStepDot.setImageResource(R.drawable.qmui_icon_notify_error)
|
||||
ilRefundDetailsStateStep4.ivRefundStateStepDot.imageTintList =
|
||||
ColorStateList.valueOf(getResColor(R.color.red_color5))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -161,6 +203,13 @@ class RefundDetailsActivity :
|
||||
}
|
||||
}
|
||||
|
||||
private fun setBoldAndColor(tv: TypefaceTextView) {
|
||||
mTypeface?.let {
|
||||
tv.setTypeface(it)
|
||||
}
|
||||
tv.setTextColor(getResColor(R.color.data_black_color))
|
||||
}
|
||||
|
||||
override fun onClick(v: View?) {
|
||||
mViewBinding.apply {
|
||||
when (v!!) {
|
||||
|
||||
@@ -2,8 +2,8 @@ package com.abbidot.tracker.ui.fragment.account
|
||||
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
import android.graphics.Color
|
||||
import android.text.InputType
|
||||
import android.text.SpannableString
|
||||
import android.text.SpannableStringBuilder
|
||||
import android.text.Spanned
|
||||
import android.text.TextUtils
|
||||
@@ -63,11 +63,37 @@ class CreateAccountV2OneFragment : BaseFragment<FragmentCreateAccountV2OneBindin
|
||||
)
|
||||
}
|
||||
|
||||
setOnClickListenerViews(
|
||||
btnCreateAccountV2Continue,
|
||||
ilCreateAccountV2PolicyTermsCheck.tvLoginAgreePrivacyContent,
|
||||
ilCreateAccountV2PolicyTermsCheck.tvLoginAgreeTermsContent
|
||||
)
|
||||
val privacyAndTerms =
|
||||
"${getString(R.string.register_txt_agree1)} ${getString(R.string.txt_privacy_policy)} ${
|
||||
getString(R.string.register_txt_agree2)
|
||||
} ${getString(R.string.register_txt_terms)}"
|
||||
ilCreateAccountV2PolicyTermsCheck.tvLoginAgreePrivacyContent.let {
|
||||
it.text = privacyAndTerms
|
||||
it.setAgreementSpan(
|
||||
fullText = privacyAndTerms,
|
||||
text1 = getString(R.string.txt_privacy_policy),
|
||||
color1 = getResColor(R.color.txt_policy_color),
|
||||
click1 = {
|
||||
ViewUtil.instance.goHtmlAssetContent(
|
||||
mActivity!!,
|
||||
getString(R.string.txt_privacy_policy),
|
||||
getString(R.string.txt_privacy_html)
|
||||
)
|
||||
},
|
||||
text2 = getString(R.string.register_txt_terms),
|
||||
color2 = getResColor(R.color.txt_policy_color),
|
||||
click2 = {
|
||||
ViewUtil.instance.goHtmlAssetContent(
|
||||
mActivity!!,
|
||||
getString(R.string.txt_service_contract),
|
||||
getString(R.string.txt_terms_html)
|
||||
)
|
||||
},
|
||||
showUnderline = false
|
||||
)
|
||||
}
|
||||
|
||||
setOnClickListenerViews(btnCreateAccountV2Continue)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -107,6 +133,53 @@ class CreateAccountV2OneFragment : BaseFragment<FragmentCreateAccountV2OneBindin
|
||||
}
|
||||
}
|
||||
|
||||
private fun TextView.setAgreementSpan(
|
||||
fullText: String,
|
||||
text1: String,
|
||||
color1: Int,
|
||||
click1: () -> Unit,
|
||||
text2: String,
|
||||
color2: Int,
|
||||
click2: () -> Unit,
|
||||
showUnderline: Boolean = false
|
||||
) {
|
||||
try {
|
||||
val ssb = SpannableStringBuilder(fullText)
|
||||
// span1
|
||||
val s1Start = fullText.indexOf(text1)
|
||||
if (s1Start != -1) {
|
||||
ssb.setSpan(object : ClickableSpan() {
|
||||
override fun onClick(widget: View) = click1()
|
||||
override fun updateDrawState(ds: android.text.TextPaint) {
|
||||
super.updateDrawState(ds)
|
||||
ds.color = color1
|
||||
ds.isUnderlineText = showUnderline
|
||||
}
|
||||
}, s1Start, s1Start + text1.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
}
|
||||
|
||||
// span2
|
||||
val s2Start = fullText.indexOf(text2)
|
||||
if (s2Start != -1) {
|
||||
ssb.setSpan(object : ClickableSpan() {
|
||||
override fun onClick(widget: View) = click2()
|
||||
override fun updateDrawState(ds: android.text.TextPaint) {
|
||||
super.updateDrawState(ds)
|
||||
ds.color = color2
|
||||
ds.isUnderlineText = showUnderline
|
||||
}
|
||||
}, s2Start, s2Start + text2.length, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE)
|
||||
}
|
||||
|
||||
text = ssb
|
||||
movementMethod = LinkMovementMethod.getInstance()
|
||||
highlightColor = Color.TRANSPARENT
|
||||
} catch (e: Exception) {
|
||||
LogUtil.e("解析同意隐私政策错误${e.message}")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private fun continueClick() {
|
||||
mViewBinding.apply {
|
||||
val email = ilCreateAccountV2Email.etInputContent.text.toString()
|
||||
@@ -137,18 +210,6 @@ class CreateAccountV2OneFragment : BaseFragment<FragmentCreateAccountV2OneBindin
|
||||
mViewBinding.apply {
|
||||
when (v!!) {
|
||||
btnCreateAccountV2Continue -> continueClick()
|
||||
|
||||
ilCreateAccountV2PolicyTermsCheck.tvLoginAgreePrivacyContent -> ViewUtil.instance.goHtmlAssetContent(
|
||||
mActivity!!,
|
||||
getString(R.string.txt_privacy_policy),
|
||||
getString(R.string.txt_privacy_html)
|
||||
)
|
||||
|
||||
ilCreateAccountV2PolicyTermsCheck.tvLoginAgreeTermsContent -> ViewUtil.instance.goHtmlAssetContent(
|
||||
mActivity!!,
|
||||
getString(R.string.txt_service_contract),
|
||||
getString(R.string.txt_terms_html)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
6
app/src/main/res/drawable/shape20_cyan_bg.xml
Normal file
6
app/src/main/res/drawable/shape20_cyan_bg.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/yellow_color10" />
|
||||
<corners android:radius="@dimen/dp_20" />
|
||||
</shape>
|
||||
6
app/src/main/res/drawable/shape20_green_bg.xml
Normal file
6
app/src/main/res/drawable/shape20_green_bg.xml
Normal file
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<shape xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:shape="rectangle">
|
||||
<solid android:color="@color/green_color11" />
|
||||
<corners android:radius="@dimen/dp_20" />
|
||||
</shape>
|
||||
@@ -27,7 +27,8 @@
|
||||
<RelativeLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:background="@drawable/shape20_yellow_border_cyan_bg"
|
||||
android:id="@+id/rl_refund_details_state_bg"
|
||||
android:background="@drawable/shape20_cyan_bg"
|
||||
android:paddingHorizontal="@dimen/dp_16"
|
||||
android:paddingVertical="@dimen/dp_18">
|
||||
|
||||
|
||||
@@ -57,7 +57,8 @@
|
||||
android:id="@+id/tv_home_pet_v2_type"
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:layout_alignTop="@id/tv_home_pet_v2_type_title"
|
||||
android:layout_marginStart="@dimen/dp_42"
|
||||
android:layout_toEndOf="@id/tv_home_pet_v2_type_title"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:text="@string/txt_dog"
|
||||
android:textSize="@dimen/textSize14" />
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:layout_marginStart="@dimen/dp_4"
|
||||
android:text="@string/app_name"
|
||||
android:gravity="start"
|
||||
android:textSize="@dimen/textSize14"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
@@ -80,6 +81,7 @@
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:text="@string/txt_auto_subscription_year"
|
||||
android:textSize="@dimen/textSize14"
|
||||
android:gravity="start"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
|
||||
@@ -126,9 +126,9 @@
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
|
||||
<androidx.appcompat.widget.LinearLayoutCompat
|
||||
android:id="@+id/ll_subscription_history_auto_renew_item"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_47"
|
||||
android:id="@+id/ll_subscription_history_auto_renew_item"
|
||||
android:layout_below="@id/cl_subscription_history_refund_item"
|
||||
android:background="@drawable/selector_transparent_pressed"
|
||||
android:gravity="center_vertical"
|
||||
@@ -151,13 +151,14 @@
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginEnd="@dimen/dp_16"
|
||||
android:textAllCaps="true"
|
||||
android:text="@string/app_name"
|
||||
android:textAllCaps="true"
|
||||
android:textColor="@color/block_color2"
|
||||
android:textSize="@dimen/textSize14"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_subscription_history_auto_renew_arrow"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:src="@drawable/ico_list_next" />
|
||||
|
||||
@@ -12,7 +12,6 @@
|
||||
android:layout_height="wrap_content"
|
||||
android:minWidth="0dp"
|
||||
android:minHeight="0dp"
|
||||
android:text="@string/register_txt_agree1"
|
||||
android:textColor="@color/select_color3"
|
||||
android:textSize="@dimen/textSize12" />
|
||||
|
||||
@@ -20,28 +19,10 @@
|
||||
android:id="@+id/tv_login_agree_privacy_content"
|
||||
style="@style/my_TextView_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_2"
|
||||
android:text="@string/txt_privacy_policy"
|
||||
android:textColor="@color/txt_policy_color"
|
||||
android:textSize="@dimen/textSize12"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
|
||||
<com.abbidot.tracker.widget.TypefaceTextView
|
||||
style="@style/my_TextView_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:text="@string/register_txt_agree2"
|
||||
android:gravity="start"
|
||||
android:textColor="@color/select_color3"
|
||||
android:textSize="@dimen/textSize12"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
|
||||
<com.abbidot.tracker.widget.TypefaceTextView
|
||||
android:id="@+id/tv_login_agree_terms_content"
|
||||
style="@style/my_TextView_style"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_marginHorizontal="@dimen/dp_2"
|
||||
android:text="@string/register_txt_terms"
|
||||
android:textColor="@color/txt_policy_color"
|
||||
android:textSize="@dimen/textSize12"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
|
||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||
@@ -17,7 +17,7 @@
|
||||
android:layout_width="@dimen/dp_2"
|
||||
android:layout_height="@dimen/dp_26"
|
||||
android:layout_below="@id/iv_refund_state_step_dot"
|
||||
android:layout_marginStart="@dimen/dp_10"
|
||||
android:layout_marginStart="9dp"
|
||||
android:background="@color/slope_bg" />
|
||||
|
||||
<com.abbidot.tracker.widget.TypefaceTextView
|
||||
@@ -27,6 +27,7 @@
|
||||
android:layout_toEndOf="@id/iv_refund_state_step_dot"
|
||||
android:gravity="start"
|
||||
android:text="@string/txt_refund_status"
|
||||
android:textColor="@color/block_color2"
|
||||
android:textSize="@dimen/textSize14"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
|
||||
|
||||
@@ -534,7 +534,7 @@
|
||||
<string name="txt_duplicate_wifi_not">Doppeltes WLAN ist nicht zulässig</string>
|
||||
<string name="txt_network_setup">Netzwerkeinrichtung</string>
|
||||
<string name="txt_about_weight_dec">Geben Sie das genaue Gewicht ein, um die Genauigkeit der Kalorienberechnung zu verbessern.</string>
|
||||
<string name="txt_enable_auto_renew">Verlängerung aktivieren</string>
|
||||
<string name="txt_enable_auto_renew">Auto-Verlängerung</string>
|
||||
<string name="txt_about_weight">Über das Gewicht</string>
|
||||
<string name="txt_order">Bestellung</string>
|
||||
<string name="txt_set_premium">Premium festlegen</string>
|
||||
@@ -958,7 +958,8 @@
|
||||
<string name="txt_request_submit">Antrag eingereicht</string>
|
||||
|
||||
<string name="txt_under_review_dec">Ihr Erstattungsantrag wird geprüft.</string>
|
||||
|
||||
<string name="txt_under_review_dec2">Ihr Rückerstattungsantrag wurde geprüft.</string>
|
||||
<string name="txt_refund_processing_tips2">Ihre Rückerstattung wurde bearbeitet.</string>
|
||||
<string name="txt_refund_failed_dec">Ihre Erstattung konnte nicht abgeschlossen werden. Bitte versuchen Sie es erneut oder kontaktieren Sie den Support.</string>
|
||||
|
||||
<string name="txt_refund_failed">Erstattung fehlgeschlagen</string>
|
||||
|
||||
@@ -173,7 +173,7 @@
|
||||
<string name="selector_folder_all_easy_photos">Toutes les photos</string>
|
||||
<string name="selector_permission_error_easy_photos">Veuillez autoriser les permissions requises</string>
|
||||
<string name="edit_easy_photos">Modifier</string>
|
||||
<string name="txt_card_auto_sub">Renouvellement automatique :</string>
|
||||
<string name="txt_card_auto_sub">Renouv. auto :</string>
|
||||
<string name="txt_card_recharge">Recharger</string>
|
||||
<string name="txt_pay_order_total">Total général</string>
|
||||
<string name="txt_pay_order_payment_again">Réessayer</string>
|
||||
@@ -534,7 +534,7 @@
|
||||
<string name="txt_duplicate_wifi_not">Désolé, les réseaux Wi-Fi en double ne sont pas autorisés</string>
|
||||
<string name="txt_network_setup">Configuration réseau</string>
|
||||
<string name="txt_about_weight_dec">Définissez un poids précis pour améliorer le calcul des calories.</string>
|
||||
<string name="txt_enable_auto_renew">Activer le renouvellement automatique</string>
|
||||
<string name="txt_enable_auto_renew">Renouvellement auto</string>
|
||||
<string name="txt_about_weight">À propos du poids</string>
|
||||
<string name="txt_order">Commande</string>
|
||||
<string name="txt_set_premium">Passer à Premium</string>
|
||||
@@ -958,7 +958,8 @@
|
||||
<string name="txt_request_submit">Demande envoyée</string>
|
||||
|
||||
<string name="txt_under_review_dec">Votre demande de remboursement est en cours d’examen.</string>
|
||||
|
||||
<string name="txt_under_review_dec2">Votre demande de remboursement a été examinée.</string>
|
||||
<string name="txt_refund_processing_tips2">Votre remboursement a été traité.</string>
|
||||
<string name="txt_refund_failed_dec">Nous n’avons pas pu effectuer votre remboursement. Veuillez réessayer ou contacter le support.</string>
|
||||
<string name="txt_refund_failed">Échec du remboursement</string>
|
||||
<string name="txt_refund_declined">Remboursement refusé</string>
|
||||
|
||||
@@ -531,7 +531,7 @@
|
||||
<string name="txt_duplicate_wifi_not">Spiacenti, non è possibile duplicare il WiFi</string>
|
||||
<string name="txt_network_setup">Configurazione della rete</string>
|
||||
<string name="txt_about_weight_dec">Imposta un peso preciso per migliorare la precisione calorica.</string>
|
||||
<string name="txt_enable_auto_renew">Attivare il rinnovo automatico</string>
|
||||
<string name="txt_enable_auto_renew">Rinnovo auto</string>
|
||||
<string name="txt_about_weight">Informazioni sul peso</string>
|
||||
<string name="txt_order">Ordine</string>
|
||||
<string name="txt_set_premium">Imposta Premium</string>
|
||||
@@ -944,7 +944,8 @@
|
||||
|
||||
<string name="txt_request_submit">Richiesta inviata</string>
|
||||
<string name="txt_under_review_dec">La richiesta di rimborso è in fase di revisione.</string>
|
||||
|
||||
<string name="txt_under_review_dec2">La tua richiesta di rimborso è stata esaminata.</string>
|
||||
<string name="txt_refund_processing_tips2">Il rimborso è stato elaborato.</string>
|
||||
<string name="txt_refund_failed_dec">Non è stato possibile completare il rimborso. Riprova o contatta l’assistenza.</string>
|
||||
<string name="txt_refund_failed">Rimborso non riuscito</string>
|
||||
<string name="txt_refund_declined">Rimborso rifiutato</string>
|
||||
|
||||
@@ -977,6 +977,8 @@
|
||||
<string name="txt_request_submit_dec">您的退款申请已提交。</string>
|
||||
<string name="txt_request_submit">申请已提交</string>
|
||||
<string name="txt_under_review_dec">您的退款申请正在审核中。</string>
|
||||
<string name="txt_under_review_dec2">您的退款申请已审核。</string>
|
||||
<string name="txt_refund_processing_tips2">您的退款已处理。</string>
|
||||
<string name="txt_refund_failed_dec">退款无法完成,请重试或联系客服。</string>
|
||||
<string name="txt_refund_failed">退款失败</string>
|
||||
<string name="txt_refund_declined">退款被拒绝</string>
|
||||
|
||||
@@ -317,6 +317,7 @@
|
||||
<color name="device_state_color">#1f4c4b4b</color>
|
||||
<color name="yellow_color10">#F8FFE4</color>
|
||||
<color name="green_color10">#E7F9EF</color>
|
||||
<color name="green_color11">#EBFAF2</color>
|
||||
<color name="white_color10">#ECF3FB</color>
|
||||
<color name="green_color100">#0CC25F</color>
|
||||
<color name="orange_color1">#FF7527</color>
|
||||
@@ -385,5 +386,6 @@
|
||||
<color name="blue_color11">#0099CC</color>
|
||||
<color name="green_color4">#00B3A6</color>
|
||||
<color name="orange_color7">#FFB020</color>
|
||||
<color name="orange_color8">#C8E092</color>
|
||||
<color name="red_color6">#E5484D</color>
|
||||
</resources>
|
||||
@@ -1028,6 +1028,8 @@
|
||||
<string name="txt_request_submit_dec">Your refund request has been submitted.</string>
|
||||
<string name="txt_request_submit">Request Submitted</string>
|
||||
<string name="txt_under_review_dec">Your refund request is being reviewed.</string>
|
||||
<string name="txt_under_review_dec2">Your refund request has been reviewed.</string>
|
||||
<string name="txt_refund_processing_tips2">Your refund has been processed.</string>
|
||||
<string name="txt_refund_failed_dec">We couldn\'t complete your refund. Please contact support.</string>
|
||||
<string name="txt_refund_failed">Refund Failed</string>
|
||||
<string name="txt_refund_declined">Refund Declined</string>
|
||||
|
||||
Reference in New Issue
Block a user