套餐优化
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -1,5 +1,6 @@
|
|||||||
*.iml
|
*.iml
|
||||||
.gradle
|
.gradle
|
||||||
|
.idea
|
||||||
/local.properties
|
/local.properties
|
||||||
/.idea/caches
|
/.idea/caches
|
||||||
/.idea/libraries
|
/.idea/libraries
|
||||||
@@ -13,3 +14,4 @@
|
|||||||
.externalNativeBuild
|
.externalNativeBuild
|
||||||
.cxx
|
.cxx
|
||||||
local.properties
|
local.properties
|
||||||
|
/.idea/
|
||||||
|
|||||||
8
.idea/deploymentTargetSelector.xml
generated
8
.idea/deploymentTargetSelector.xml
generated
@@ -4,6 +4,14 @@
|
|||||||
<selectionStates>
|
<selectionStates>
|
||||||
<SelectionState runConfigName="app">
|
<SelectionState runConfigName="app">
|
||||||
<option name="selectionMode" value="DROPDOWN" />
|
<option name="selectionMode" value="DROPDOWN" />
|
||||||
|
<DropdownSelection timestamp="2025-10-09T01:39:35.620630500Z">
|
||||||
|
<Target type="DEFAULT_BOOT">
|
||||||
|
<handle>
|
||||||
|
<DeviceId pluginId="LocalEmulator" identifier="path=H:\androidAvd\.android\avd\Pixel_9_Pro.avd" />
|
||||||
|
</handle>
|
||||||
|
</Target>
|
||||||
|
</DropdownSelection>
|
||||||
|
<DialogSelection />
|
||||||
</SelectionState>
|
</SelectionState>
|
||||||
</selectionStates>
|
</selectionStates>
|
||||||
</component>
|
</component>
|
||||||
|
|||||||
5
.idea/gradle.xml
generated
5
.idea/gradle.xml
generated
@@ -4,9 +4,9 @@
|
|||||||
<component name="GradleSettings">
|
<component name="GradleSettings">
|
||||||
<option name="linkedExternalProjectsSettings">
|
<option name="linkedExternalProjectsSettings">
|
||||||
<GradleProjectSettings>
|
<GradleProjectSettings>
|
||||||
<option name="testRunner" value="GRADLE" />
|
<option name="testRunner" value="CHOOSE_PER_TEST" />
|
||||||
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
<option name="externalProjectPath" value="$PROJECT_DIR$" />
|
||||||
<option name="gradleJvm" value="Embedded JDK" />
|
<option name="gradleJvm" value="jbr-21" />
|
||||||
<option name="modules">
|
<option name="modules">
|
||||||
<set>
|
<set>
|
||||||
<option value="$PROJECT_DIR$" />
|
<option value="$PROJECT_DIR$" />
|
||||||
@@ -19,5 +19,6 @@
|
|||||||
</option>
|
</option>
|
||||||
</GradleProjectSettings>
|
</GradleProjectSettings>
|
||||||
</option>
|
</option>
|
||||||
|
<option name="offlineMode" value="true" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -1,6 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_21" default="true" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_7" project-jdk-name="jbr-21" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/build/classes" />
|
<output url="file://$PROJECT_DIR$/build/classes" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectType">
|
<component name="ProjectType">
|
||||||
|
|||||||
@@ -30,7 +30,7 @@ android {
|
|||||||
targetSdkVersion 35
|
targetSdkVersion 35
|
||||||
versionCode 2020
|
versionCode 2020
|
||||||
// versionName "2.0.20"
|
// versionName "2.0.20"
|
||||||
versionName "2.0.20-Beta2"
|
versionName "2.0.20-Beta4"
|
||||||
|
|
||||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||||
|
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package com.abbidot.tracker.adapter
|
package com.abbidot.tracker.adapter
|
||||||
|
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.Paint
|
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import com.abbidot.baselibrary.list.BaseRecyclerAdapter
|
import com.abbidot.baselibrary.list.BaseRecyclerAdapter
|
||||||
import com.abbidot.baselibrary.list.RecyclerViewHolder
|
import com.abbidot.baselibrary.list.RecyclerViewHolder
|
||||||
@@ -9,7 +8,6 @@ import com.abbidot.baselibrary.util.Utils
|
|||||||
import com.abbidot.tracker.R
|
import com.abbidot.tracker.R
|
||||||
import com.abbidot.tracker.bean.PackageBean
|
import com.abbidot.tracker.bean.PackageBean
|
||||||
import com.abbidot.tracker.constant.ConstantInt
|
import com.abbidot.tracker.constant.ConstantInt
|
||||||
import com.abbidot.tracker.constant.ConstantString
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*Created by .yzq on 2024/8/6/006.
|
*Created by .yzq on 2024/8/6/006.
|
||||||
@@ -32,49 +30,31 @@ class ChoosePlanAdapter(
|
|||||||
|
|
||||||
setText(R.id.tv_choose_plan_item_name, item.planName)
|
setText(R.id.tv_choose_plan_item_name, item.planName)
|
||||||
|
|
||||||
val price = if (item.discountedPrice > 0) item.discountedPrice else item.planPrice
|
// val price = if (item.discountedPrice > 0) item.discountedPrice else item.planPrice
|
||||||
getTextView(R.id.tv_choose_plan_item_money).apply {
|
getTextView(R.id.tv_choose_plan_item_money).apply {
|
||||||
text = if (item.mealUnit == ConstantString.PackageUnitMonth) {
|
text = String.format(
|
||||||
String.format(
|
|
||||||
mContext.getString(R.string.txt_money_unit), Utils.formatDecimal(price, 2)
|
|
||||||
)
|
|
||||||
} else {
|
|
||||||
val monthPrice = Utils.formatDecimal(price / (item.period * 12), 2)
|
|
||||||
String.format(mContext.getString(R.string.txt_money_unit), monthPrice)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getTextView(R.id.tv_choose_plan_item_year_money).let {
|
|
||||||
it.text = String.format(
|
|
||||||
mContext.getString(R.string.txt_money_unit),
|
mContext.getString(R.string.txt_money_unit),
|
||||||
Utils.formatDecimal(item.discountedPrice, 2)
|
Utils.formatDecimal(item.planPrice / item.planTimeMonthsCount, 1)
|
||||||
)
|
)
|
||||||
|
|
||||||
it.visibility = if (item.discount > 0) View.VISIBLE
|
|
||||||
else View.GONE
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getTextView(R.id.tv_choose_plan_item_discount_money).let {
|
getTextView(R.id.tv_choose_plan_item_plan_money).text = String.format(
|
||||||
it.text = String.format(
|
mContext.getString(R.string.txt_money_unit), "${item.planPrice}"
|
||||||
mContext.getString(R.string.txt_money_unit),
|
)
|
||||||
Utils.formatDecimal(item.planPrice, 2)
|
|
||||||
)
|
getTextView(R.id.tv_choose_plan_item_billed_money).text = item.billedMode
|
||||||
it.paint.flags = Paint.STRIKE_THRU_TEXT_FLAG
|
|
||||||
it.visibility = if (item.discount > 0) View.VISIBLE
|
|
||||||
else View.GONE
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
getView(R.id.ll_choose_plan_item_discount_percent).let {
|
getView(R.id.ll_choose_plan_item_discount_percent).let {
|
||||||
it.visibility = if (item.discount > 0) View.VISIBLE
|
it.visibility = if (item.popularType == ConstantInt.Type1) View.VISIBLE
|
||||||
else View.GONE
|
else View.INVISIBLE
|
||||||
}
|
|
||||||
getTextView(R.id.tv_choose_plan_item_discount_percent).let {
|
|
||||||
it.text = "${item.discount}%"
|
|
||||||
}
|
}
|
||||||
|
// getTextView(R.id.tv_choose_plan_item_discount_percent).let {
|
||||||
|
// it.text = "${item.discount}%"
|
||||||
|
// }
|
||||||
|
|
||||||
getView(R.id.cv_choose_plan_item_popular).let {
|
getView(R.id.cv_choose_plan_item_popular).let {
|
||||||
if (item.popularType == ConstantInt.Type1) it.visibility = View.VISIBLE
|
if (item.popularType == ConstantInt.Type1) it.visibility = View.GONE
|
||||||
else it.visibility = View.GONE
|
else it.visibility = View.GONE
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,9 +4,9 @@ import android.content.Context
|
|||||||
import android.widget.RelativeLayout
|
import android.widget.RelativeLayout
|
||||||
import com.abbidot.baselibrary.list.BaseRecyclerAdapter
|
import com.abbidot.baselibrary.list.BaseRecyclerAdapter
|
||||||
import com.abbidot.baselibrary.list.RecyclerViewHolder
|
import com.abbidot.baselibrary.list.RecyclerViewHolder
|
||||||
import com.abbidot.baselibrary.util.Utils
|
|
||||||
import com.abbidot.tracker.R
|
import com.abbidot.tracker.R
|
||||||
import com.abbidot.tracker.bean.PackageTypeBean
|
import com.abbidot.tracker.bean.PackageTypeBean
|
||||||
|
import com.abbidot.tracker.constant.ConstantInt
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*Created by .yzq on 2024/3/19/019.
|
*Created by .yzq on 2024/3/19/019.
|
||||||
@@ -32,10 +32,16 @@ class SubscriptionPlanAdapter(
|
|||||||
relativeLayout.setBackgroundResource(0)
|
relativeLayout.setBackgroundResource(0)
|
||||||
// popularCardView.visibility = View.GONE
|
// popularCardView.visibility = View.GONE
|
||||||
}
|
}
|
||||||
holder.setText(R.id.tv_subscribe_plan_item_name, item.name)
|
|
||||||
|
val packageName = when (item.nameCode) {
|
||||||
|
ConstantInt.Type1 -> mContext.getString(R.string.txt_basic)
|
||||||
|
ConstantInt.Type2 -> mContext.getString(R.string.txt_premium)
|
||||||
|
else -> item.name
|
||||||
|
}
|
||||||
|
holder.setText(R.id.tv_subscribe_plan_item_name, packageName)
|
||||||
holder.setText(
|
holder.setText(
|
||||||
R.id.tv_subscribe_plan_item_money,
|
R.id.tv_subscribe_plan_item_money,
|
||||||
String.format(mContext.getString(R.string.txt_money_unit), Utils.formatDecimal( item.price, 2))
|
String.format(mContext.getString(R.string.txt_money_unit), "${item.price}")
|
||||||
)
|
)
|
||||||
// subscription.text =
|
// subscription.text =
|
||||||
// String.format(mContext.getString(R.string.txt_per_year_money), item.subscriptionFee)
|
// String.format(mContext.getString(R.string.txt_per_year_money), item.subscriptionFee)
|
||||||
|
|||||||
@@ -25,7 +25,19 @@ class SubscriptionPlanDetailAdapter(
|
|||||||
checkBox.setOnClickListener {
|
checkBox.setOnClickListener {
|
||||||
checkBox.isChecked = !checkBox.isChecked
|
checkBox.isChecked = !checkBox.isChecked
|
||||||
}
|
}
|
||||||
holder.setText(R.id.tv_subscribe_plan_detail_name, item.title)
|
val titleName = when (item.titleCode) {
|
||||||
|
ConstantInt.Type1 -> mContext.getString(R.string.txt_real_time_tracking)
|
||||||
|
ConstantInt.Type2 -> mContext.getString(R.string.txt_activity_logs)
|
||||||
|
ConstantInt.Type3 -> mContext.getString(R.string.txt_notifications_emergencies)
|
||||||
|
ConstantInt.Type4 -> mContext.getString(R.string.txt_customized_led)
|
||||||
|
5 -> mContext.getString(R.string.txt_bluetooth_radar)
|
||||||
|
6 -> mContext.getString(R.string.txt_geofencing)
|
||||||
|
7 -> mContext.getString(R.string.txt_route_records)
|
||||||
|
8 -> mContext.getString(R.string.txt_family_sharing)
|
||||||
|
9 -> mContext.getString(R.string.txt_customer_support)
|
||||||
|
else -> item.title
|
||||||
|
}
|
||||||
|
holder.setText(R.id.tv_subscribe_plan_detail_name, titleName)
|
||||||
checkBox.isChecked = item.status == ConstantInt.Open
|
checkBox.isChecked = item.status == ConstantInt.Open
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -21,5 +21,8 @@ data class PackageBean(
|
|||||||
var planPrice: Double,
|
var planPrice: Double,
|
||||||
var discount: Int,
|
var discount: Int,
|
||||||
var active: Int,
|
var active: Int,
|
||||||
|
var planTimeMonthsCount: Int,
|
||||||
|
var everyMonthSafeFee: Double,
|
||||||
|
var billedMode: String,
|
||||||
var selected: Boolean
|
var selected: Boolean
|
||||||
) : Parcelable
|
) : Parcelable
|
||||||
|
|||||||
@@ -5,4 +5,4 @@ package com.abbidot.tracker.bean
|
|||||||
* @link
|
* @link
|
||||||
* @description:
|
* @description:
|
||||||
*/
|
*/
|
||||||
data class PackageBenefitsBean(var title: String, var status: Int)
|
data class PackageBenefitsBean(var title: String, var status: Int, var titleCode: Int)
|
||||||
|
|||||||
@@ -10,5 +10,6 @@ data class PackageTypeBean(
|
|||||||
var name: String,
|
var name: String,
|
||||||
var packageId: String,
|
var packageId: String,
|
||||||
var list: MutableList<PackageBenefitsBean>?,
|
var list: MutableList<PackageBenefitsBean>?,
|
||||||
var selected: Boolean
|
var selected: Boolean,
|
||||||
|
val nameCode: Int,
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -50,6 +50,7 @@ data class SubscriptionsOrderBean(
|
|||||||
var username: String,
|
var username: String,
|
||||||
var iccid: String,
|
var iccid: String,
|
||||||
var endTime: Long,
|
var endTime: Long,
|
||||||
|
var planTimeMonthsCount: Int,
|
||||||
var isUpdateOrder: Int = 0//是否是升级订单 1:是 0:否
|
var isUpdateOrder: Int = 0//是否是升级订单 1:是 0:否
|
||||||
) : Parcelable {
|
) : Parcelable {
|
||||||
constructor() : this(
|
constructor() : this(
|
||||||
@@ -93,6 +94,7 @@ data class SubscriptionsOrderBean(
|
|||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
0L,
|
0L,
|
||||||
|
0,
|
||||||
0
|
0
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1302,6 +1302,7 @@ interface INetworkService {
|
|||||||
@Field("customerId") customerId: String,
|
@Field("customerId") customerId: String,
|
||||||
@Field("orderNum") orderNum: String,
|
@Field("orderNum") orderNum: String,
|
||||||
@Field("isUpdateOrder") isUpdateOrder: Int,
|
@Field("isUpdateOrder") isUpdateOrder: Int,
|
||||||
|
@Field("planTimeMonthsCount") planTimeMonthsCount: Int,
|
||||||
@Field("subscriptionId") subscriptionId: String
|
@Field("subscriptionId") subscriptionId: String
|
||||||
): BaseResponse<PayResultBean>
|
): BaseResponse<PayResultBean>
|
||||||
|
|
||||||
@@ -1338,6 +1339,7 @@ interface INetworkService {
|
|||||||
@Field("customerId") customerId: String,
|
@Field("customerId") customerId: String,
|
||||||
@Field("orderNum") orderNum: String,
|
@Field("orderNum") orderNum: String,
|
||||||
@Field("isUpdateOrder") isUpdateOrder: Int,
|
@Field("isUpdateOrder") isUpdateOrder: Int,
|
||||||
|
@Field("planTimeMonthsCount") planTimeMonthsCount: Int,
|
||||||
@Field("subscriptionId") subscriptionId: String
|
@Field("subscriptionId") subscriptionId: String
|
||||||
): BaseResponse<PayResultBean>
|
): BaseResponse<PayResultBean>
|
||||||
|
|
||||||
|
|||||||
@@ -1185,6 +1185,7 @@ object NetworkApi : BaseNetworkApi<INetworkService>(INetworkService.BASE_URL) {
|
|||||||
customerId,
|
customerId,
|
||||||
orderNum,
|
orderNum,
|
||||||
isUpdateOrder,
|
isUpdateOrder,
|
||||||
|
planTimeMonthsCount,
|
||||||
subscriptionId
|
subscriptionId
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -1226,6 +1227,7 @@ object NetworkApi : BaseNetworkApi<INetworkService>(INetworkService.BASE_URL) {
|
|||||||
"",
|
"",
|
||||||
orderNum,
|
orderNum,
|
||||||
isUpdateOrder,
|
isUpdateOrder,
|
||||||
|
planTimeMonthsCount,
|
||||||
subscriptionId
|
subscriptionId
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,21 +9,30 @@ import com.abbidot.baselibrary.constant.MMKVKey
|
|||||||
import com.abbidot.baselibrary.eventbus.XEventBus
|
import com.abbidot.baselibrary.eventbus.XEventBus
|
||||||
import com.abbidot.baselibrary.util.LogUtil
|
import com.abbidot.baselibrary.util.LogUtil
|
||||||
import com.abbidot.baselibrary.util.MMKVUtil
|
import com.abbidot.baselibrary.util.MMKVUtil
|
||||||
|
import com.abbidot.baselibrary.util.Utils
|
||||||
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.bean.PetBean
|
||||||
import com.abbidot.tracker.bean.SubscriptionsOrderBean
|
import com.abbidot.tracker.bean.SubscriptionsOrderBean
|
||||||
import com.abbidot.tracker.constant.ConstantInt
|
import com.abbidot.tracker.constant.ConstantInt
|
||||||
import com.abbidot.tracker.constant.ConstantString
|
import com.abbidot.tracker.constant.ConstantString
|
||||||
import com.abbidot.tracker.constant.GetResultCallback
|
import com.abbidot.tracker.constant.GetResultCallback
|
||||||
import com.abbidot.tracker.databinding.ActivityAddPairedSuccessBinding
|
import com.abbidot.tracker.databinding.ActivityAddPairedSuccessBinding
|
||||||
import com.abbidot.tracker.deprecated.ui.activity.vm.AddTrackerDeviceViewModel
|
import com.abbidot.tracker.deprecated.ui.activity.vm.AddTrackerDeviceViewModel
|
||||||
import com.abbidot.tracker.ui.activity.pet.first.FirstSetPetTypeActivity
|
import com.abbidot.tracker.ui.activity.device.wifi.AddWifiPowerZone1Activity
|
||||||
import com.abbidot.tracker.ui.activity.subscribe.SubscriptionPlanActivity
|
import com.abbidot.tracker.ui.activity.subscribe.SubscriptionPlanActivity
|
||||||
|
import com.abbidot.tracker.util.Util
|
||||||
|
import com.abbidot.tracker.vm.PetInfoViewModel
|
||||||
|
import com.abbidot.tracker.vm.PetRelationViewModel
|
||||||
|
import com.abbidot.tracker.vm.UserProfileViewModel
|
||||||
|
|
||||||
class AddPairedSuccessActivity :
|
class AddPairedSuccessActivity :
|
||||||
BaseActivity<ActivityAddPairedSuccessBinding>(ActivityAddPairedSuccessBinding::inflate) {
|
BaseActivity<ActivityAddPairedSuccessBinding>(ActivityAddPairedSuccessBinding::inflate) {
|
||||||
|
|
||||||
private val mAddTrackerViewModel: AddTrackerDeviceViewModel by viewModels()
|
private val mAddTrackerViewModel: AddTrackerDeviceViewModel by viewModels()
|
||||||
|
private val mPetViewModel: PetInfoViewModel by viewModels()
|
||||||
|
private val mUserProfileViewModel: UserProfileViewModel by viewModels()
|
||||||
|
private val mPetRelationViewModel: PetRelationViewModel by viewModels()
|
||||||
|
|
||||||
private lateinit var mSubscriptionsOrderBean: SubscriptionsOrderBean
|
private lateinit var mSubscriptionsOrderBean: SubscriptionsOrderBean
|
||||||
|
|
||||||
@@ -31,6 +40,7 @@ class AddPairedSuccessActivity :
|
|||||||
private var mDeviceOutId = ""
|
private var mDeviceOutId = ""
|
||||||
private var mDeviceId = ""
|
private var mDeviceId = ""
|
||||||
private var mMac = ""
|
private var mMac = ""
|
||||||
|
private var mPetBean: PetBean? = null
|
||||||
|
|
||||||
override fun getTopBar() = mViewBinding.ilAddPairedSuccessTopBar.titleTopBar
|
override fun getTopBar() = mViewBinding.ilAddPairedSuccessTopBar.titleTopBar
|
||||||
|
|
||||||
@@ -111,17 +121,18 @@ class AddPairedSuccessActivity :
|
|||||||
|
|
||||||
//更新设备绑定状态
|
//更新设备绑定状态
|
||||||
mUpdatePayDeviceStateLiveData.observe(this@AddPairedSuccessActivity) {
|
mUpdatePayDeviceStateLiveData.observe(this@AddPairedSuccessActivity) {
|
||||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
|
||||||
dealRequestResult(it, object : GetResultCallback {
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
override fun onResult(any: Any) {
|
override fun onResult(any: Any) {
|
||||||
MMKVUtil.putInt(MMKVKey.isBindDevice, ConstantInt.isBind)
|
MMKVUtil.putInt(MMKVKey.isBindDevice, ConstantInt.isBind)
|
||||||
XEventBus.post(EventName.RefreshDevice)
|
XEventBus.post(EventName.RefreshDevice)
|
||||||
if (isFirstBind) {
|
if (isFirstBind) {
|
||||||
val intent = Intent(mContext, FirstSetPetTypeActivity::class.java)
|
mUserProfileViewModel.updateMeasureUnit(
|
||||||
intent.putExtra(ConstantString.isFirstBind, isFirstBind)
|
this@AddPairedSuccessActivity, ConstantInt.Type1
|
||||||
startActivityFinish(intent)
|
)
|
||||||
}
|
// val intent = Intent(mContext, FirstSetPetTypeActivity::class.java)
|
||||||
finish()
|
// intent.putExtra(ConstantString.isFirstBind, isFirstBind)
|
||||||
|
// startActivityFinish(intent)
|
||||||
|
} else finish()
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onRequestError(exceptionCode: String?) {
|
override fun onRequestError(exceptionCode: String?) {
|
||||||
@@ -136,6 +147,78 @@ class AddPairedSuccessActivity :
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//默认单位设置
|
||||||
|
mUserProfileViewModel.mUpdateMeasureUnitLiveData.observe(this@AddPairedSuccessActivity) {
|
||||||
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
|
override fun onResult(any: Any) {
|
||||||
|
it.getOrNull()?.apply {
|
||||||
|
MMKVUtil.putInt(MMKVKey.MeasureUnit, ConstantInt.Type1)
|
||||||
|
PetBean().let { pet ->
|
||||||
|
pet.petName = "My Pet"
|
||||||
|
pet.deviceId = mDeviceId
|
||||||
|
pet.petType = ConstantInt.DogPetType
|
||||||
|
pet.gender = ConstantInt.WoMan
|
||||||
|
pet.macID = mMac
|
||||||
|
pet.birthdayDate = "2024-01-01"
|
||||||
|
pet.height = Utils.formatDecimal(Util.inToCm(20.0), 1).toFloat()
|
||||||
|
pet.weight = Utils.formatDecimal(Util.lbsToKg(25.0), 1).toFloat()
|
||||||
|
mPetBean = pet
|
||||||
|
mPetViewModel.addPet(this@AddPairedSuccessActivity, pet)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRequestError(exceptionCode: String?) {
|
||||||
|
super.onRequestError(exceptionCode)
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//添加默认宠物
|
||||||
|
mPetViewModel.mAddPetLiveData.observe(this@AddPairedSuccessActivity) {
|
||||||
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
|
override fun onResult(any: Any) {
|
||||||
|
it.getOrNull()?.let { pet ->
|
||||||
|
mPetBean?.let { petBean ->
|
||||||
|
petBean.petId = pet.petId
|
||||||
|
mPetRelationViewModel.bindPet(
|
||||||
|
this@AddPairedSuccessActivity, petBean.deviceId, petBean.petId
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRequestError(exceptionCode: String?) {
|
||||||
|
super.onRequestError(exceptionCode)
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//绑定默认宠物
|
||||||
|
mPetRelationViewModel.mBindPetLiveData.observe(this@AddPairedSuccessActivity) {
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
|
override fun onResult(any: Any) {
|
||||||
|
XEventBus.post(EventName.RefreshPet)
|
||||||
|
showToast(R.string.txt_bind_success, isFinish = true)
|
||||||
|
mViewBinding.root.postDelayed({
|
||||||
|
MMKVUtil.putInt(MMKVKey.isBindPet, ConstantInt.isBind)
|
||||||
|
mPetBean?.apply {
|
||||||
|
val intent = Intent(mContext, AddWifiPowerZone1Activity::class.java)
|
||||||
|
intent.putExtra(ConstantString.Pet, this)
|
||||||
|
intent.putExtra(ConstantString.isFirstBind, isFirstBind)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
}, 1500)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun onRequestError(exceptionCode: String?) {
|
||||||
|
super.onRequestError(exceptionCode)
|
||||||
|
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type1)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,13 @@ class ChoosePlanActivity :
|
|||||||
if (isUpgrade) {
|
if (isUpgrade) {
|
||||||
mRechargeType = ConstantInt.Type2
|
mRechargeType = ConstantInt.Type2
|
||||||
setTopBarTitle(R.string.txt_upgrade_plan)
|
setTopBarTitle(R.string.txt_upgrade_plan)
|
||||||
} else setTopBarTitle(R.string.txt_choose_your_plan)
|
} else {
|
||||||
|
if (packageTypeName == "Basic") {
|
||||||
|
setTopBarTitle(R.string.txt_basic_plan)
|
||||||
|
} else {
|
||||||
|
setTopBarTitle(R.string.txt_premium_plan)
|
||||||
|
}
|
||||||
|
}
|
||||||
setLeftBackImage(R.drawable.icon_white_back_svg)
|
setLeftBackImage(R.drawable.icon_white_back_svg)
|
||||||
|
|
||||||
mViewBinding.apply {
|
mViewBinding.apply {
|
||||||
|
|||||||
@@ -18,18 +18,22 @@ import com.abbidot.tracker.R
|
|||||||
import com.abbidot.tracker.base.BaseActivity
|
import com.abbidot.tracker.base.BaseActivity
|
||||||
import com.abbidot.tracker.bean.BleTrackDeviceBean
|
import com.abbidot.tracker.bean.BleTrackDeviceBean
|
||||||
import com.abbidot.tracker.bean.PayResultBean
|
import com.abbidot.tracker.bean.PayResultBean
|
||||||
|
import com.abbidot.tracker.bean.PetBean
|
||||||
import com.abbidot.tracker.bean.ReceiveDeviceData
|
import com.abbidot.tracker.bean.ReceiveDeviceData
|
||||||
import com.abbidot.tracker.constant.ConstantInt
|
import com.abbidot.tracker.constant.ConstantInt
|
||||||
import com.abbidot.tracker.constant.ConstantString
|
import com.abbidot.tracker.constant.ConstantString
|
||||||
import com.abbidot.tracker.constant.GetResultCallback
|
import com.abbidot.tracker.constant.GetResultCallback
|
||||||
import com.abbidot.tracker.databinding.ActivityPaymentSuccessBinding
|
import com.abbidot.tracker.databinding.ActivityPaymentSuccessBinding
|
||||||
import com.abbidot.tracker.deprecated.ui.activity.vm.AddTrackerDeviceViewModel
|
import com.abbidot.tracker.deprecated.ui.activity.vm.AddTrackerDeviceViewModel
|
||||||
import com.abbidot.tracker.ui.activity.pet.first.FirstSetPetTypeActivity
|
import com.abbidot.tracker.ui.activity.device.wifi.AddWifiPowerZone1Activity
|
||||||
import com.abbidot.tracker.util.Util
|
import com.abbidot.tracker.util.Util
|
||||||
import com.abbidot.tracker.util.ViewUtil
|
import com.abbidot.tracker.util.ViewUtil
|
||||||
import com.abbidot.tracker.util.bluetooth.SRBleCmdUtil
|
import com.abbidot.tracker.util.bluetooth.SRBleCmdUtil
|
||||||
import com.abbidot.tracker.util.bluetooth.SRBleUtil
|
import com.abbidot.tracker.util.bluetooth.SRBleUtil
|
||||||
import com.abbidot.tracker.vm.ConnectionDeviceViewModel
|
import com.abbidot.tracker.vm.ConnectionDeviceViewModel
|
||||||
|
import com.abbidot.tracker.vm.PetInfoViewModel
|
||||||
|
import com.abbidot.tracker.vm.PetRelationViewModel
|
||||||
|
import com.abbidot.tracker.vm.UserProfileViewModel
|
||||||
import com.clj.fastble.BleManager
|
import com.clj.fastble.BleManager
|
||||||
|
|
||||||
class PaymentSuccessActivity :
|
class PaymentSuccessActivity :
|
||||||
@@ -37,9 +41,13 @@ class PaymentSuccessActivity :
|
|||||||
|
|
||||||
private val mAddTrackerViewModel: AddTrackerDeviceViewModel by viewModels()
|
private val mAddTrackerViewModel: AddTrackerDeviceViewModel by viewModels()
|
||||||
private val mConnectionDeviceViewModel: ConnectionDeviceViewModel by viewModels()
|
private val mConnectionDeviceViewModel: ConnectionDeviceViewModel by viewModels()
|
||||||
|
private val mUserProfileViewModel: UserProfileViewModel by viewModels()
|
||||||
|
private val mPetRelationViewModel: PetRelationViewModel by viewModels()
|
||||||
|
private val mPetViewModel: PetInfoViewModel by viewModels()
|
||||||
|
|
||||||
private var mPayResult: PayResultBean? = null
|
private var mPayResult: PayResultBean? = null
|
||||||
private var mMac = ""
|
private var mMac = ""
|
||||||
|
private var mPetBean: PetBean? = null
|
||||||
|
|
||||||
override fun getTopBar() = null
|
override fun getTopBar() = null
|
||||||
|
|
||||||
@@ -158,6 +166,61 @@ class PaymentSuccessActivity :
|
|||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//默认单位设置
|
||||||
|
mUserProfileViewModel.mUpdateMeasureUnitLiveData.observe(this@PaymentSuccessActivity) {
|
||||||
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
|
override fun onResult(any: Any) {
|
||||||
|
it.getOrNull()?.apply {
|
||||||
|
MMKVUtil.putInt(MMKVKey.MeasureUnit, ConstantInt.Type1)
|
||||||
|
PetBean().let { pet ->
|
||||||
|
pet.petName = "My Pet"
|
||||||
|
pet.deviceId = mPayResult!!.deviceId
|
||||||
|
pet.petType = ConstantInt.DogPetType
|
||||||
|
pet.gender = ConstantInt.WoMan
|
||||||
|
pet.macID=mMac
|
||||||
|
pet.birthdayDate = "2024-01-01"
|
||||||
|
pet.height = Utils.formatDecimal(Util.inToCm(20.0), 1).toFloat()
|
||||||
|
pet.weight = Utils.formatDecimal(Util.lbsToKg(25.0), 1).toFloat()
|
||||||
|
mPetBean = pet
|
||||||
|
mPetViewModel.addPet(this@PaymentSuccessActivity, pet)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//添加默认宠物
|
||||||
|
mPetViewModel.mAddPetLiveData.observe(this@PaymentSuccessActivity) {
|
||||||
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
|
override fun onResult(any: Any) {
|
||||||
|
it.getOrNull()?.let { pet ->
|
||||||
|
mPetBean?.let { petBean ->
|
||||||
|
petBean.petId = pet.petId
|
||||||
|
mPetRelationViewModel.bindPet(
|
||||||
|
this@PaymentSuccessActivity, petBean.deviceId, petBean.petId
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
//绑定默认宠物
|
||||||
|
mPetRelationViewModel.mBindPetLiveData.observe(this@PaymentSuccessActivity) {
|
||||||
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
|
override fun onResult(any: Any) {
|
||||||
|
XEventBus.post(EventName.RefreshPet)
|
||||||
|
showToast(R.string.txt_bind_success, isFinish = true)
|
||||||
|
mViewBinding.root.postDelayed({
|
||||||
|
MMKVUtil.putInt(MMKVKey.isBindPet, ConstantInt.isBind)
|
||||||
|
mPetBean?.apply {
|
||||||
|
val intent = Intent(mContext, AddWifiPowerZone1Activity::class.java)
|
||||||
|
intent.putExtra(ConstantString.Pet, this)
|
||||||
|
intent.putExtra(ConstantString.isFirstBind, true)
|
||||||
|
startActivity(intent)
|
||||||
|
}
|
||||||
|
}, 1500)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -172,12 +235,15 @@ class PaymentSuccessActivity :
|
|||||||
XEventBus.post(EventName.PayBack)
|
XEventBus.post(EventName.PayBack)
|
||||||
mPayResult?.let {
|
mPayResult?.let {
|
||||||
if (it.rechargeType == ConstantInt.Type0) {
|
if (it.rechargeType == ConstantInt.Type0) {
|
||||||
val intent = Intent(mContext, FirstSetPetTypeActivity::class.java)
|
mUserProfileViewModel.updateMeasureUnit(
|
||||||
intent.putExtra(ConstantString.isFirstBind, true)
|
this@PaymentSuccessActivity, ConstantInt.Type1
|
||||||
startActivity(intent)
|
)
|
||||||
}
|
|
||||||
|
// val intent = Intent(mContext, FirstSetPetTypeActivity::class.java)
|
||||||
|
// intent.putExtra(ConstantString.isFirstBind, true)
|
||||||
|
// startActivity(intent)
|
||||||
|
} else finish()
|
||||||
}
|
}
|
||||||
finish()
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -61,7 +61,7 @@ class SubscriptionPlanActivity :
|
|||||||
mPlanAdapter,
|
mPlanAdapter,
|
||||||
2,
|
2,
|
||||||
AppUtils.dpToPx(140),
|
AppUtils.dpToPx(140),
|
||||||
offset = AppUtils.dpToPx(44)
|
offset = AppUtils.dpToPx(66)
|
||||||
)
|
)
|
||||||
|
|
||||||
ViewUtil.instance.setRecyclerViewVerticalLinearLayout(
|
ViewUtil.instance.setRecyclerViewVerticalLinearLayout(
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ class SureSubscriptionPlanActivity :
|
|||||||
private var mOrderBean: SubscriptionsOrderBean? = null
|
private var mOrderBean: SubscriptionsOrderBean? = null
|
||||||
|
|
||||||
//每年的保险服务费用
|
//每年的保险服务费用
|
||||||
private val mInsuranceMoney = 12.90
|
// private val mInsuranceMoney = 12.90
|
||||||
|
|
||||||
//保险总费用
|
//保险总费用
|
||||||
private var mSumInsuranceMoney = 0.0
|
private var mSumInsuranceMoney = 0.0
|
||||||
@@ -88,7 +88,7 @@ class SureSubscriptionPlanActivity :
|
|||||||
val totalDay = if (it.mealUnit == ConstantString.PackageUnitYear) {
|
val totalDay = if (it.mealUnit == ConstantString.PackageUnitYear) {
|
||||||
it.mealPeriod * 365
|
it.mealPeriod * 365
|
||||||
} else {
|
} else {
|
||||||
30
|
30 * it.planTimeMonthsCount
|
||||||
}
|
}
|
||||||
mResidualMoney =
|
mResidualMoney =
|
||||||
((it.totalAmountWithTax - it.tax - it.reactivatePrice) / totalDay) * it.surplusDays
|
((it.totalAmountWithTax - it.tax - it.reactivatePrice) / totalDay) * it.surplusDays
|
||||||
@@ -110,68 +110,94 @@ class SureSubscriptionPlanActivity :
|
|||||||
val nowTimestamp = System.currentTimeMillis()
|
val nowTimestamp = System.currentTimeMillis()
|
||||||
|
|
||||||
mPackageBean?.let { p ->
|
mPackageBean?.let { p ->
|
||||||
|
ilSubscribePlanDetail.tvSureSubscribePlanPer.text = String.format(
|
||||||
|
getString(R.string.txt_month_unit), "${p.planTimeMonthsCount}"
|
||||||
|
)
|
||||||
val renewalString = if (p.mealUnit == ConstantString.PackageUnitYear) {
|
val renewalString = if (p.mealUnit == ConstantString.PackageUnitYear) {
|
||||||
ilSubscribePlanDetail.tvSureSubscribePlanPer.text =
|
// ilSubscribePlanDetail.tvSureSubscribePlanPer.text =
|
||||||
String.format(getString(R.string.txt_year_unit), p.period)
|
// String.format(getString(R.string.txt_year_unit), p.period)
|
||||||
val renewalTimestamp =
|
val renewalTimestamp =
|
||||||
Utils.getAfterHowTimestamp(nowTimestamp, p.period * 365L)
|
Utils.getAfterHowTimestamp(nowTimestamp, p.period * 365L)
|
||||||
val renewalDate =
|
val renewalDate =
|
||||||
Utils.formatTime(renewalTimestamp, Utils.DATE_FORMAT_PATTERN_EN7)
|
Utils.formatTime(renewalTimestamp, Utils.DATE_FORMAT_PATTERN_EN7)
|
||||||
String.format(
|
if (p.period > 1) {
|
||||||
getString(R.string.txt_renewal_year),
|
String.format(
|
||||||
Utils.formatDecimal(p.autoRenewPrice, 2),
|
getString(R.string.txt_renewal_years),
|
||||||
renewalDate
|
"${p.autoRenewPrice}",
|
||||||
)
|
"${p.period}",
|
||||||
|
renewalDate
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
String.format(
|
||||||
|
getString(R.string.txt_renewal_year),
|
||||||
|
"${p.autoRenewPrice}",
|
||||||
|
renewalDate
|
||||||
|
)
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
ilSubscribePlanDetail.tvSureSubscribePlanPer.text =
|
val renewalTimestamp =
|
||||||
String.format(getString(R.string.txt_month_unit), p.period)
|
Utils.getAfterHowTimestamp(nowTimestamp, 30L * p.planTimeMonthsCount)
|
||||||
val renewalTimestamp = Utils.getAfterHowTimestamp(nowTimestamp, 30L)
|
|
||||||
val renewalDate =
|
val renewalDate =
|
||||||
Utils.formatTime(renewalTimestamp, Utils.DATE_FORMAT_PATTERN_EN7)
|
Utils.formatTime(renewalTimestamp, Utils.DATE_FORMAT_PATTERN_EN7)
|
||||||
String.format(
|
if (p.planTimeMonthsCount > 1) {
|
||||||
getString(R.string.txt_renewal_month),
|
String.format(
|
||||||
Utils.formatDecimal(p.autoRenewPrice, 2),
|
getString(R.string.txt_renewal_months),
|
||||||
renewalDate
|
"${p.autoRenewPrice}",
|
||||||
)
|
"${p.planTimeMonthsCount}",
|
||||||
|
renewalDate
|
||||||
|
)
|
||||||
|
} else {
|
||||||
|
String.format(
|
||||||
|
getString(R.string.txt_renewal_month),
|
||||||
|
"${p.autoRenewPrice}",
|
||||||
|
renewalDate
|
||||||
|
)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
ilSubscribePlanDetail.tvSureSubscribePlanUnderused.text = renewalString
|
ilSubscribePlanDetail.tvSureSubscribePlanUnderused.text = renewalString
|
||||||
|
|
||||||
val insuranceMoneyString =
|
|
||||||
"${p.period} x $${Utils.formatDecimal(mInsuranceMoney, 2)}"
|
|
||||||
ilSubscribePlanInsurance.tvSureSubscribePlanInsurancePer.text =
|
|
||||||
insuranceMoneyString
|
|
||||||
|
|
||||||
val packageName = "${p.planName}(${p.planCategory})"
|
val packageName = "${p.planName}(${p.planCategory})"
|
||||||
ilSubscribePlanDetail.tvSureSubscribePlanName.text = packageName
|
ilSubscribePlanDetail.tvSureSubscribePlanName.text = packageName
|
||||||
val price = if (p.discountedPrice > 0.0) p.discountedPrice else p.planPrice
|
val price = p.planPrice
|
||||||
|
// val price = if (p.discountedPrice > 0.0) p.discountedPrice else p.planPrice
|
||||||
val priceString = String.format(
|
val priceString = String.format(
|
||||||
getString(R.string.txt_money_unit), Utils.formatDecimal(price, 2)
|
getString(R.string.txt_money_unit),
|
||||||
|
Utils.formatDecimal(price / p.planTimeMonthsCount, 1)
|
||||||
)
|
)
|
||||||
ilSubscribePlanDetail.tvSureSubscribePlanMoney.text = priceString
|
ilSubscribePlanDetail.tvSureSubscribePlanMoney.text = priceString
|
||||||
|
|
||||||
ViewUtil.instance.addMenuBean(
|
ViewUtil.instance.addMenuBean(
|
||||||
mSummaryAdapter.getData(),
|
mSummaryAdapter.getData(),
|
||||||
p.planName,
|
p.planName,
|
||||||
Utils.formatDecimal(price, 2),
|
"$price",
|
||||||
colorRedId = R.color.data_black_color
|
colorRedId = R.color.data_black_color
|
||||||
)
|
)
|
||||||
mTotalMoney += price
|
mTotalMoney += price
|
||||||
mSumInsuranceMoney =
|
mSumInsuranceMoney =
|
||||||
Utils.formatDecimal(mInsuranceMoney * p.period, 2).toDouble()
|
Utils.formatDecimal(p.everyMonthSafeFee * p.period * 12, 1).toDouble()
|
||||||
ViewUtil.instance.addMenuBean(
|
ViewUtil.instance.addMenuBean(
|
||||||
mSummaryAdapter.getData(),
|
mSummaryAdapter.getData(),
|
||||||
getString(R.string.txt_annual_care_text),
|
getString(R.string.txt_annual_care_text),
|
||||||
Utils.formatDecimal(mSumInsuranceMoney, 2),
|
"$mSumInsuranceMoney",
|
||||||
colorRedId = R.color.data_black_color
|
colorRedId = R.color.data_black_color
|
||||||
)
|
)
|
||||||
mTotalMoney += mSumInsuranceMoney
|
mTotalMoney += mSumInsuranceMoney
|
||||||
|
|
||||||
|
val insuranceMoneyString =
|
||||||
|
String.format(getString(R.string.txt_month_unit), "${p.period * 12}")
|
||||||
|
ilSubscribePlanInsurance.tvSureSubscribePlanInsurancePer.text =
|
||||||
|
insuranceMoneyString
|
||||||
|
ilSubscribePlanInsurance.tvSureSubscribePlanInsurancePerMoney.text =
|
||||||
|
String.format(getString(R.string.txt_money_unit), "${p.everyMonthSafeFee}")
|
||||||
|
ilSubscribePlanInsurance.tvSureSubscribePlanInsuranceMoney.text =
|
||||||
|
String.format(getString(R.string.txt_money_unit), "$mSumInsuranceMoney")
|
||||||
|
|
||||||
if (isUpgrade) {
|
if (isUpgrade) {
|
||||||
mTotalMoney -= mResidualMoney
|
mTotalMoney -= mResidualMoney
|
||||||
ViewUtil.instance.addMenuBean(
|
ViewUtil.instance.addMenuBean(
|
||||||
mSummaryAdapter.getData(),
|
mSummaryAdapter.getData(),
|
||||||
getString(R.string.txt_residual_value),
|
getString(R.string.txt_residual_value),
|
||||||
Utils.formatDecimal(mResidualMoney, 2),
|
Utils.formatDecimal(mResidualMoney, 1),
|
||||||
colorRedId = R.color.red_color5,
|
colorRedId = R.color.red_color5,
|
||||||
isSwitch = true
|
isSwitch = true
|
||||||
)
|
)
|
||||||
@@ -209,8 +235,7 @@ class SureSubscriptionPlanActivity :
|
|||||||
val list = mSummaryAdapter.getData()
|
val list = mSummaryAdapter.getData()
|
||||||
if (isChecked) {
|
if (isChecked) {
|
||||||
MenuTxtBean(
|
MenuTxtBean(
|
||||||
getString(R.string.txt_annual_care_text),
|
getString(R.string.txt_annual_care_text), "$mSumInsuranceMoney"
|
||||||
Utils.formatDecimal(mSumInsuranceMoney, 2)
|
|
||||||
).let {
|
).let {
|
||||||
it.colorRedId = R.color.data_black_color
|
it.colorRedId = R.color.data_black_color
|
||||||
list.add(1, it)
|
list.add(1, it)
|
||||||
@@ -245,15 +270,16 @@ class SureSubscriptionPlanActivity :
|
|||||||
mSubscriptionViewModel.mReactivationFeeLiveData.observe(this) {
|
mSubscriptionViewModel.mReactivationFeeLiveData.observe(this) {
|
||||||
dealRequestResult(it, object : GetResultCallback {
|
dealRequestResult(it, object : GetResultCallback {
|
||||||
override fun onResult(any: Any) {
|
override fun onResult(any: Any) {
|
||||||
it.getOrNull()?.apply {
|
// it.getOrNull()?.apply {
|
||||||
mOrderBean?.reactivatePrice = this
|
// mOrderBean?.reactivatePrice = this
|
||||||
mSummaryAdapter.getData().add(2, MenuTxtBean(
|
// mSummaryAdapter.getData().add(
|
||||||
getString(R.string.txt_reactivation), Utils.formatDecimal(this, 2)
|
// 2, MenuTxtBean(
|
||||||
).apply {
|
// getString(R.string.txt_reactivation), Utils.formatDecimal(this, 1)
|
||||||
colorRedId = R.color.data_black_color
|
// ).apply {
|
||||||
})
|
// colorRedId = R.color.data_black_color
|
||||||
mTotalMoney += this
|
// })
|
||||||
}
|
// mTotalMoney += this
|
||||||
|
// }
|
||||||
updateMoney()
|
updateMoney()
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
@@ -263,14 +289,14 @@ class SureSubscriptionPlanActivity :
|
|||||||
private fun updateMoney() {
|
private fun updateMoney() {
|
||||||
mViewBinding.apply {
|
mViewBinding.apply {
|
||||||
val list = mSummaryAdapter.getData()
|
val list = mSummaryAdapter.getData()
|
||||||
val taxMoney = Utils.formatDecimal(mTaxRate * mTotalMoney, 2).toDouble()
|
val taxMoney = Utils.formatDecimal(mTaxRate * mTotalMoney, 1).toDouble()
|
||||||
mOrderBean?.tax = taxMoney
|
mOrderBean?.tax = taxMoney
|
||||||
list[list.size - 1].menuValue = taxMoney.toString()
|
list[list.size - 1].menuValue = taxMoney.toString()
|
||||||
mTotalWithTaxMoney = taxMoney + mTotalMoney
|
mTotalWithTaxMoney = taxMoney + mTotalMoney
|
||||||
mTotalWithTaxMoney = abs(mTotalWithTaxMoney)
|
mTotalWithTaxMoney = abs(mTotalWithTaxMoney)
|
||||||
ilSubscribePlanSummary.ilSureSubscribePlanTotalLayout.tvSubscribeSummaryItemMoney.text =
|
ilSubscribePlanSummary.ilSureSubscribePlanTotalLayout.tvSubscribeSummaryItemMoney.text =
|
||||||
String.format(
|
String.format(
|
||||||
getString(R.string.txt_money_unit), Utils.formatDecimal(mTotalWithTaxMoney, 2)
|
getString(R.string.txt_money_unit), Utils.formatDecimal(mTotalWithTaxMoney, 1)
|
||||||
)
|
)
|
||||||
mSummaryAdapter.notifyItemRangeChanged(0, list.size)
|
mSummaryAdapter.notifyItemRangeChanged(0, list.size)
|
||||||
|
|
||||||
@@ -303,14 +329,15 @@ class SureSubscriptionPlanActivity :
|
|||||||
mealName = cPlan.planName
|
mealName = cPlan.planName
|
||||||
mealId = cPlan.mealId
|
mealId = cPlan.mealId
|
||||||
mealPeriod = cPlan.period
|
mealPeriod = cPlan.period
|
||||||
|
planTimeMonthsCount = cPlan.planTimeMonthsCount
|
||||||
mealUnit = cPlan.mealUnit
|
mealUnit = cPlan.mealUnit
|
||||||
planCategory = cPlan.planCategory
|
planCategory = cPlan.planCategory
|
||||||
// autoRenewPrice = Utils.formatDecimal(cPlan.autoRenewPrice * mTaxRate, 2).toDouble()
|
// autoRenewPrice = Utils.formatDecimal(cPlan.autoRenewPrice * mTaxRate, 1).toDouble()
|
||||||
autoRenewPrice = cPlan.autoRenewPrice
|
autoRenewPrice = cPlan.autoRenewPrice
|
||||||
mealDesc =
|
mealDesc =
|
||||||
mViewBinding.ilSubscribePlanDetail.tvSureSubscribePlanMoney.text.toString() + mViewBinding.ilSubscribePlanDetail.tvSureSubscribePlanPer.text.toString()
|
mViewBinding.ilSubscribePlanDetail.tvSureSubscribePlanMoney.text.toString() + mViewBinding.ilSubscribePlanDetail.tvSureSubscribePlanPer.text.toString()
|
||||||
}
|
}
|
||||||
totalAmountWithTax = Utils.formatDecimal(mTotalWithTaxMoney, 2).toDouble()
|
totalAmountWithTax = Utils.formatDecimal(mTotalWithTaxMoney, 1).toDouble()
|
||||||
Intent(mContext, PaymentMethodActivity::class.java).let {
|
Intent(mContext, PaymentMethodActivity::class.java).let {
|
||||||
it.putExtra(ConstantString.LkSetMeal, this)
|
it.putExtra(ConstantString.LkSetMeal, this)
|
||||||
it.putExtra(ConstantString.RechargeType, mRechargeType)
|
it.putExtra(ConstantString.RechargeType, mRechargeType)
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ class Util {
|
|||||||
return value * 0.3937
|
return value * 0.3937
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun inToCm(value: Double): Double {
|
fun inToCm(value: Double): Double {
|
||||||
return value * 2.54
|
return value * 2.54
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -165,7 +165,7 @@ class Util {
|
|||||||
return value * 2.2065
|
return value * 2.2065
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun lbsToKg(value: Double): Double {
|
fun lbsToKg(value: Double): Double {
|
||||||
return value * 0.4532
|
return value * 0.4532
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -36,13 +36,13 @@
|
|||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_alignTop="@id/tv_choose_plan_item_name"
|
android:layout_alignTop="@id/tv_choose_plan_item_name"
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:layout_marginEnd="@dimen/dp_16"
|
android:layout_marginEnd="@dimen/dp_18"
|
||||||
android:gravity="center_vertical"
|
android:gravity="center_vertical"
|
||||||
android:orientation="horizontal"
|
android:orientation="horizontal"
|
||||||
android:paddingHorizontal="@dimen/dp_8"
|
android:paddingHorizontal="@dimen/dp_10"
|
||||||
android:paddingVertical="@dimen/dp_2"
|
android:paddingVertical="@dimen/dp_4"
|
||||||
app:qmui_backgroundColor="@color/orange_color4"
|
app:qmui_backgroundColor="@color/select_color2"
|
||||||
app:qmui_radius="@dimen/dp_38">
|
app:qmui_radius="@dimen/dp_18">
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_choose_plan_item_discount_percent"
|
android:id="@+id/tv_choose_plan_item_discount_percent"
|
||||||
@@ -50,11 +50,13 @@
|
|||||||
android:layout_marginEnd="@dimen/dp_4"
|
android:layout_marginEnd="@dimen/dp_4"
|
||||||
android:text="25%"
|
android:text="25%"
|
||||||
android:textSize="@dimen/textSize16"
|
android:textSize="@dimen/textSize16"
|
||||||
|
android:visibility="gone"
|
||||||
app:typeface="@string/roboto_bold_font" />
|
app:typeface="@string/roboto_bold_font" />
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:text="OFF"
|
android:text="@string/txt_popular"
|
||||||
|
android:textColor="@color/select_color"
|
||||||
android:textSize="@dimen/textSize12"
|
android:textSize="@dimen/textSize12"
|
||||||
app:typeface="@string/roboto_bold_font" />
|
app:typeface="@string/roboto_bold_font" />
|
||||||
</com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
|
</com.qmuiteam.qmui.widget.roundwidget.QMUIRoundLinearLayout>
|
||||||
@@ -72,8 +74,8 @@
|
|||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
|
android:layout_alignBaseline="@id/tv_choose_plan_item_money"
|
||||||
android:layout_alignTop="@id/tv_choose_plan_item_money"
|
android:layout_alignTop="@id/tv_choose_plan_item_money"
|
||||||
android:layout_alignBottom="@id/tv_choose_plan_item_money"
|
|
||||||
android:layout_toEndOf="@id/tv_choose_plan_item_money"
|
android:layout_toEndOf="@id/tv_choose_plan_item_money"
|
||||||
android:text="@string/txt_per_month"
|
android:text="@string/txt_per_month"
|
||||||
android:textSize="@dimen/textSize14"
|
android:textSize="@dimen/textSize14"
|
||||||
@@ -81,25 +83,23 @@
|
|||||||
|
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_choose_plan_item_year_money"
|
android:id="@+id/tv_choose_plan_item_billed_money"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_alignTop="@id/tv_choose_plan_item_money"
|
android:layout_alignBaseline="@id/tv_choose_plan_item_money"
|
||||||
android:layout_alignEnd="@id/ll_choose_plan_item_discount_percent"
|
android:layout_alignEnd="@id/ll_choose_plan_item_discount_percent"
|
||||||
android:layout_alignBottom="@id/tv_choose_plan_item_money"
|
android:text="@string/txt_billed_annually"
|
||||||
android:text="@string/txt_money_unit"
|
android:textColor="@color/select_color"
|
||||||
android:textColor="@color/select_color3"
|
android:textSize="@dimen/textSize10" />
|
||||||
android:textSize="@dimen/textSize14" />
|
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_choose_plan_item_discount_money"
|
android:id="@+id/tv_choose_plan_item_plan_money"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_alignTop="@id/tv_choose_plan_item_year_money"
|
android:layout_above="@id/tv_choose_plan_item_billed_money"
|
||||||
android:layout_alignBottom="@id/tv_choose_plan_item_year_money"
|
android:layout_alignEnd="@id/tv_choose_plan_item_billed_money"
|
||||||
android:layout_marginEnd="@dimen/dp_8"
|
|
||||||
android:layout_toStartOf="@id/tv_choose_plan_item_year_money"
|
|
||||||
android:text="@string/txt_money_unit"
|
android:text="@string/txt_money_unit"
|
||||||
android:textColor="@color/select_color3"
|
android:textColor="@color/select_color"
|
||||||
android:textSize="@dimen/textSize14" />
|
android:textSize="@dimen/textSize16"
|
||||||
|
android:textStyle="bold" />
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
|
|
||||||
@@ -111,6 +111,7 @@
|
|||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginStart="@dimen/dp_16"
|
android:layout_marginStart="@dimen/dp_16"
|
||||||
|
android:visibility="gone"
|
||||||
app:cardBackgroundColor="@color/select_color2"
|
app:cardBackgroundColor="@color/select_color2"
|
||||||
app:cardCornerRadius="@dimen/dp_50"
|
app:cardCornerRadius="@dimen/dp_50"
|
||||||
app:cardElevation="@dimen/dp_4">
|
app:cardElevation="@dimen/dp_4">
|
||||||
|
|||||||
@@ -5,11 +5,12 @@
|
|||||||
android:layout_height="wrap_content">
|
android:layout_height="wrap_content">
|
||||||
|
|
||||||
<androidx.cardview.widget.CardView
|
<androidx.cardview.widget.CardView
|
||||||
android:layout_width="@dimen/dp_160"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_marginHorizontal="@dimen/dp_2"
|
android:layout_marginHorizontal="@dimen/dp_2"
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
android:layout_marginBottom="@dimen/dp_2"
|
android:layout_marginBottom="@dimen/dp_2"
|
||||||
|
android:minWidth="@dimen/dp_160"
|
||||||
app:cardBackgroundColor="@color/white"
|
app:cardBackgroundColor="@color/white"
|
||||||
app:cardCornerRadius="@dimen/dp_20"
|
app:cardCornerRadius="@dimen/dp_20"
|
||||||
app:cardElevation="0dp">
|
app:cardElevation="0dp">
|
||||||
@@ -19,12 +20,12 @@
|
|||||||
android:id="@+id/rl_subscribe_plan_shade_item"
|
android:id="@+id/rl_subscribe_plan_shade_item"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:background="@color/transparent">
|
android:background="@color/transparent"
|
||||||
|
android:paddingHorizontal="@dimen/dp_18">
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_subscribe_plan_item_name"
|
android:id="@+id/tv_subscribe_plan_item_name"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_marginHorizontal="@dimen/dp_18"
|
|
||||||
android:layout_marginTop="@dimen/dp_16"
|
android:layout_marginTop="@dimen/dp_16"
|
||||||
android:text="@string/app_name"
|
android:text="@string/app_name"
|
||||||
android:textSize="@dimen/textSize16"
|
android:textSize="@dimen/textSize16"
|
||||||
@@ -46,6 +47,7 @@
|
|||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_below="@id/tv_subscribe_plan_as_low_as"
|
android:layout_below="@id/tv_subscribe_plan_as_low_as"
|
||||||
android:layout_alignStart="@id/tv_subscribe_plan_item_name"
|
android:layout_alignStart="@id/tv_subscribe_plan_item_name"
|
||||||
|
android:layout_marginBottom="@dimen/dp_16"
|
||||||
android:text="@string/txt_money_unit"
|
android:text="@string/txt_money_unit"
|
||||||
android:textColor="@color/select_color"
|
android:textColor="@color/select_color"
|
||||||
android:textSize="@dimen/textSize26"
|
android:textSize="@dimen/textSize26"
|
||||||
@@ -64,9 +66,8 @@
|
|||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_subscribe_plan_item_per_year"
|
android:id="@+id/tv_subscribe_plan_item_per_year"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_below="@id/tv_subscribe_plan_item_money"
|
android:layout_alignBaseline="@id/tv_subscribe_plan_item_money"
|
||||||
android:layout_alignStart="@id/tv_subscribe_plan_item_money"
|
android:layout_toEndOf="@id/tv_subscribe_plan_item_money"
|
||||||
android:layout_marginBottom="@dimen/dp_16"
|
|
||||||
android:text="@string/txt_per_month"
|
android:text="@string/txt_per_month"
|
||||||
android:textColor="@color/select_color3"
|
android:textColor="@color/select_color3"
|
||||||
android:textSize="@dimen/textSize14"
|
android:textSize="@dimen/textSize14"
|
||||||
|
|||||||
@@ -6,7 +6,10 @@
|
|||||||
android:orientation="vertical">
|
android:orientation="vertical">
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
|
android:id="@+id/iv_sure_subscribe_plan_insurance"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
|
android:drawableEnd="@drawable/icon_tip_image_svg"
|
||||||
|
android:drawablePadding="@dimen/dp_4"
|
||||||
android:text="@string/txt_annual_care"
|
android:text="@string/txt_annual_care"
|
||||||
android:textSize="@dimen/textSize16"
|
android:textSize="@dimen/textSize16"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
@@ -19,63 +22,57 @@
|
|||||||
android:paddingHorizontal="@dimen/dp_20"
|
android:paddingHorizontal="@dimen/dp_20"
|
||||||
android:paddingVertical="@dimen/dp_10">
|
android:paddingVertical="@dimen/dp_10">
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
|
||||||
android:id="@+id/tv_sure_subscribe_plan_insurance"
|
|
||||||
style="@style/my_TextView_style_v2"
|
|
||||||
android:text="@string/txt_replace_guarantee"
|
|
||||||
android:textSize="@dimen/textSize14"
|
|
||||||
android:textStyle="bold" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatImageView
|
|
||||||
android:id="@+id/iv_sure_subscribe_plan_insurance"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:layout_alignTop="@id/tv_sure_subscribe_plan_insurance"
|
|
||||||
android:layout_alignBottom="@id/tv_sure_subscribe_plan_insurance"
|
|
||||||
android:layout_marginStart="@dimen/dp_4"
|
|
||||||
android:layout_toEndOf="@id/tv_sure_subscribe_plan_insurance"
|
|
||||||
android:background="@drawable/selector_transparent_pressed"
|
|
||||||
android:src="@drawable/icon_tip_image_svg" />
|
|
||||||
|
|
||||||
<androidx.appcompat.widget.AppCompatCheckBox
|
<androidx.appcompat.widget.AppCompatCheckBox
|
||||||
android:id="@+id/cb_sure_subscribe_insure_switch"
|
android:id="@+id/cb_sure_subscribe_insure_switch"
|
||||||
style="@style/my_checkbox_switch_style"
|
style="@style/my_checkbox_switch_style"
|
||||||
android:layout_alignTop="@id/tv_sure_subscribe_plan_insurance"
|
|
||||||
android:layout_alignParentEnd="true"
|
android:layout_alignParentEnd="true"
|
||||||
android:checked="true" />
|
android:checked="true" />
|
||||||
|
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_sure_subscribe_plan_auto_renew_dec"
|
android:id="@+id/tv_sure_subscribe_plan_insurance"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
|
android:layout_alignTop="@id/cb_sure_subscribe_insure_switch"
|
||||||
|
android:layout_alignBottom="@id/cb_sure_subscribe_insure_switch"
|
||||||
|
android:text="@string/txt_replacement_year"
|
||||||
|
android:textSize="@dimen/textSize14" />
|
||||||
|
|
||||||
|
<View
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="@dimen/dp_1"
|
||||||
android:layout_below="@id/tv_sure_subscribe_plan_insurance"
|
android:layout_below="@id/tv_sure_subscribe_plan_insurance"
|
||||||
android:layout_marginEnd="@dimen/dp_45"
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
android:gravity="start"
|
android:background="@color/block_color" />
|
||||||
android:text="@string/txt_replace_guarantee_dec"
|
|
||||||
android:textSize="@dimen/textSize14"
|
|
||||||
app:lineHeight="@dimen/textSize16"
|
|
||||||
app:typeface="@string/roboto_regular_font" />
|
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_sure_subscribe_plan_insurance_money"
|
android:id="@+id/tv_sure_subscribe_plan_insurance_money"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_below="@id/tv_sure_subscribe_plan_auto_renew_dec"
|
android:layout_below="@id/tv_sure_subscribe_plan_insurance"
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
android:layout_alignParentEnd="true"
|
||||||
|
android:layout_marginTop="@dimen/dp_20"
|
||||||
android:text="@string/txt_money_unit"
|
android:text="@string/txt_money_unit"
|
||||||
android:textColor="@color/select_color"
|
android:textColor="@color/select_color"
|
||||||
android:textSize="@dimen/textSize26"
|
android:textSize="@dimen/textSize16" />
|
||||||
android:textStyle="bold"
|
|
||||||
android:visibility="gone" />
|
|
||||||
|
|
||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_sure_subscribe_plan_insurance_per"
|
android:id="@+id/tv_sure_subscribe_plan_insurance_per_money"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_below="@id/tv_sure_subscribe_plan_auto_renew_dec"
|
android:layout_alignTop="@id/tv_sure_subscribe_plan_insurance_money"
|
||||||
android:layout_marginTop="@dimen/dp_6"
|
android:layout_alignBottom="@id/tv_sure_subscribe_plan_insurance_money"
|
||||||
android:text="1 x $12.9"
|
android:text="@string/txt_money_unit"
|
||||||
android:textColor="@color/select_color"
|
android:textColor="@color/select_color"
|
||||||
android:textSize="@dimen/textSize14"
|
android:textSize="@dimen/textSize14"
|
||||||
app:typeface="@string/roboto_regular_font" />
|
app:typeface="@string/roboto_regular_font" />
|
||||||
|
|
||||||
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
|
android:id="@+id/tv_sure_subscribe_plan_insurance_per"
|
||||||
|
style="@style/my_TextView_style_v2"
|
||||||
|
android:layout_alignBaseline="@id/tv_sure_subscribe_plan_insurance_per_money"
|
||||||
|
android:layout_toEndOf="@id/tv_sure_subscribe_plan_insurance_per_money"
|
||||||
|
android:text="@string/txt_month_unit"
|
||||||
|
android:textSize="@dimen/textSize14"
|
||||||
|
app:typeface="@string/roboto_regular_font" />
|
||||||
|
|
||||||
|
|
||||||
</RelativeLayout>
|
</RelativeLayout>
|
||||||
</androidx.appcompat.widget.LinearLayoutCompat>
|
</androidx.appcompat.widget.LinearLayoutCompat>
|
||||||
@@ -42,6 +42,7 @@
|
|||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
android:layout_below="@id/tv_sure_subscribe_plan_name"
|
android:layout_below="@id/tv_sure_subscribe_plan_name"
|
||||||
android:layout_marginTop="@dimen/dp_10"
|
android:layout_marginTop="@dimen/dp_10"
|
||||||
|
android:layout_marginEnd="@dimen/dp_2"
|
||||||
android:text="@string/txt_money_unit"
|
android:text="@string/txt_money_unit"
|
||||||
android:textColor="@color/select_color"
|
android:textColor="@color/select_color"
|
||||||
android:textStyle="bold" />
|
android:textStyle="bold" />
|
||||||
@@ -49,8 +50,8 @@
|
|||||||
<com.abbidot.tracker.widget.TypefaceTextView
|
<com.abbidot.tracker.widget.TypefaceTextView
|
||||||
android:id="@+id/tv_sure_subscribe_plan_per"
|
android:id="@+id/tv_sure_subscribe_plan_per"
|
||||||
style="@style/my_TextView_style_v2"
|
style="@style/my_TextView_style_v2"
|
||||||
|
android:layout_alignBaseline="@id/tv_sure_subscribe_plan_money"
|
||||||
android:layout_alignTop="@id/tv_sure_subscribe_plan_money"
|
android:layout_alignTop="@id/tv_sure_subscribe_plan_money"
|
||||||
android:layout_alignBottom="@id/tv_sure_subscribe_plan_money"
|
|
||||||
android:layout_toEndOf="@id/tv_sure_subscribe_plan_money"
|
android:layout_toEndOf="@id/tv_sure_subscribe_plan_money"
|
||||||
android:text="@string/txt_per_month"
|
android:text="@string/txt_per_month"
|
||||||
android:textSize="@dimen/textSize14"
|
android:textSize="@dimen/textSize14"
|
||||||
|
|||||||
@@ -676,11 +676,11 @@
|
|||||||
<string name="txt_benefits">Benefits</string>
|
<string name="txt_benefits">Benefits</string>
|
||||||
<string name="txt_monthly_subscription">Monthly Subscription</string>
|
<string name="txt_monthly_subscription">Monthly Subscription</string>
|
||||||
<string name="txt_money_unit">$%s</string>
|
<string name="txt_money_unit">$%s</string>
|
||||||
<string name="txt_per_month">/per month</string>
|
<string name="txt_per_month">/month</string>
|
||||||
<string name="txt_per_year">/per year</string>
|
<string name="txt_per_year">/year</string>
|
||||||
<string name="txt_per_month_money">$%s/per month</string>
|
<string name="txt_per_month_money">$%s/month</string>
|
||||||
<string name="txt_per_year_money">$%s/per year</string>
|
<string name="txt_per_year_money">$%s/year</string>
|
||||||
<string name="txt_popular">Popular</string>
|
<string name="txt_popular">Best value</string>
|
||||||
<string name="txt_confirm_plan">Confirm Your Plan</string>
|
<string name="txt_confirm_plan">Confirm Your Plan</string>
|
||||||
<string name="txt_device_number">Device Number</string>
|
<string name="txt_device_number">Device Number</string>
|
||||||
<string name="txt_terms_conditions_v2">Terms and Conditions</string>
|
<string name="txt_terms_conditions_v2">Terms and Conditions</string>
|
||||||
@@ -941,12 +941,12 @@
|
|||||||
<string name="txt_renewal_month">Renewal: $%s/month on %s</string>
|
<string name="txt_renewal_month">Renewal: $%s/month on %s</string>
|
||||||
<string name="txt_renewal_month1">Renewal:</string>
|
<string name="txt_renewal_month1">Renewal:</string>
|
||||||
<string name="txt_renewal_month2">/month on</string>
|
<string name="txt_renewal_month2">/month on</string>
|
||||||
<string name="txt_annual_care">Annual Care Protection</string>
|
<string name="txt_annual_care">Replacement Coverage</string>
|
||||||
<string name="txt_replace_guarantee_dec">$12.90/year for peace of mind and easy 1-unit replacement annually.</string>
|
<string name="txt_replace_guarantee_dec">$12.90/year for peace of mind and easy 1-unit replacement annually.</string>
|
||||||
<string name="txt_replace_guarantee">Replacement Guarantee</string>
|
<string name="txt_replace_guarantee">Replacement Guarantee</string>
|
||||||
<string name="txt_enter_discount_code">Enter discount code</string>
|
<string name="txt_enter_discount_code">Enter discount code</string>
|
||||||
<string name="txt_check">Check</string>
|
<string name="txt_check">Check</string>
|
||||||
<string name="txt_annual_care_text">Annual Care</string>
|
<string name="txt_annual_care_text">Replacement Coverage</string>
|
||||||
<string name="txt_annual_care_text1">Annual Care: </string>
|
<string name="txt_annual_care_text1">Annual Care: </string>
|
||||||
<string name="txt_ble_connect_fail">Bluetooth connection failed</string>
|
<string name="txt_ble_connect_fail">Bluetooth connection failed</string>
|
||||||
<string name="txt_led_light_set">LED Light Settings</string>
|
<string name="txt_led_light_set">LED Light Settings</string>
|
||||||
@@ -966,7 +966,7 @@
|
|||||||
<string name="txt_expired">Expired</string>
|
<string name="txt_expired">Expired</string>
|
||||||
<string name="txt_upgrade_plan">Upgrade Your Plan</string>
|
<string name="txt_upgrade_plan">Upgrade Your Plan</string>
|
||||||
<string name="txt_residual_value">Residual Value</string>
|
<string name="txt_residual_value">Residual Value</string>
|
||||||
<string name="txt_month_unit">/%s month</string>
|
<string name="txt_month_unit">/month x%s</string>
|
||||||
<string name="txt_auto_subscription_year">(Renew at $%s per year thereafter)</string>
|
<string name="txt_auto_subscription_year">(Renew at $%s per year thereafter)</string>
|
||||||
<string name="txt_auto_subscription_year1">(Renew at </string>
|
<string name="txt_auto_subscription_year1">(Renew at </string>
|
||||||
<string name="txt_auto_subscription_year2">per year thereafter)</string>
|
<string name="txt_auto_subscription_year2">per year thereafter)</string>
|
||||||
@@ -1030,5 +1030,21 @@
|
|||||||
|
|
||||||
<string name="txt_as_low_as">As low as</string>
|
<string name="txt_as_low_as">As low as</string>
|
||||||
<string name="txt_payment_manager">Payment Manager</string>
|
<string name="txt_payment_manager">Payment Manager</string>
|
||||||
|
<string name="txt_billed_annually">Billed annually</string>
|
||||||
|
<string name="txt_basic_plan">Basic Plan</string>
|
||||||
|
<string name="txt_premium_plan">Premium Plan</string>
|
||||||
|
<string name="txt_real_time_tracking">Real-time Tracking</string>
|
||||||
|
<string name="txt_activity_logs">Activity/Resting Logs</string>
|
||||||
|
<string name="txt_notifications_emergencies">Notifications for Emergencies</string>
|
||||||
|
<string name="txt_customized_led">Customized LED</string>
|
||||||
|
<string name="txt_bluetooth_radar">Bluetooth Radar</string>
|
||||||
|
<string name="txt_geofencing">Geofencing</string>
|
||||||
|
<string name="txt_route_records">Route History Records</string>
|
||||||
|
<string name="txt_family_sharing">Family Members Sharing</string>
|
||||||
|
<string name="txt_customer_support">Premium Customer Support</string>
|
||||||
|
|
||||||
|
<string name="txt_renewal_years">Renewal: $%s/%s years on %s</string>
|
||||||
|
<string name="txt_renewal_months">Renewal: $%s/%s months on %s</string>
|
||||||
|
<string name="txt_replacement_year">1 replacement/year, any reason</string>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
Reference in New Issue
Block a user