1.修复注册页面隐私和协议语言过长问题

2.完善退款详情页面和文案
This commit is contained in:
2026-09-24 18:31:05 +08:00
parent 69b91f8135
commit 64a94f2a7c
20 changed files with 221 additions and 95 deletions

View File

@@ -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"

View File

@@ -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(

View File

@@ -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)
/**
* 监听键盘弹出和隐藏,解决键盘弹出挡住输入框的问题
*/

View File

@@ -96,6 +96,8 @@ abstract class BaseFragment<T : ViewBinding>(
(activity as BaseActivity<*>).showNoCancelableLoading(show)
}
fun getResColor(colorRes: Int) = (activity as BaseActivity<*>).getResColor(colorRes)
/**
* 显示提示toast
*/

View File

@@ -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!!) {

View File

@@ -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)
)
}
}
}

View 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>

View 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>

View File

@@ -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">

View File

@@ -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" />

View File

@@ -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

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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" />

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>