1.订阅套餐新ui:增加套餐描述;修改价格区底色;Best 用皇冠图标代替;
2.新增Initializing Device界面 3.校对新增多语言字符
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
package com.abbidot.tracker.adapter
|
||||
|
||||
import android.content.Context
|
||||
import android.content.res.ColorStateList
|
||||
import android.text.TextUtils
|
||||
import android.view.View
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.graphics.toColorInt
|
||||
import com.abbidot.baselibrary.list.BaseRecyclerAdapter
|
||||
import com.abbidot.baselibrary.list.RecyclerViewHolder
|
||||
import com.abbidot.baselibrary.util.Utils
|
||||
@@ -9,6 +13,8 @@ import com.abbidot.tracker.R
|
||||
import com.abbidot.tracker.bean.PackageBean
|
||||
import com.abbidot.tracker.constant.ConstantInt
|
||||
import com.abbidot.tracker.constant.ConstantString
|
||||
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundButtonDrawable
|
||||
import com.qmuiteam.qmui.widget.roundwidget.QMUIRoundRelativeLayout
|
||||
|
||||
/**
|
||||
*Created by .yzq on 2024/8/6/006.
|
||||
@@ -51,6 +57,10 @@ class ChoosePlanAdapter(
|
||||
|
||||
|
||||
getView(R.id.ll_choose_plan_item_discount_percent).let {
|
||||
it.visibility = if (item.popularType == ConstantInt.Type1) View.INVISIBLE
|
||||
else View.INVISIBLE
|
||||
}
|
||||
getView(R.id.iv_choose_plan_item_popular_image).let {
|
||||
it.visibility = if (item.popularType == ConstantInt.Type1) View.VISIBLE
|
||||
else View.INVISIBLE
|
||||
}
|
||||
@@ -62,6 +72,44 @@ class ChoosePlanAdapter(
|
||||
if (item.popularType == ConstantInt.Type1) it.visibility = View.GONE
|
||||
else it.visibility = View.GONE
|
||||
}
|
||||
|
||||
(getView(R.id.rl_choose_plan_item_price) as QMUIRoundRelativeLayout).let {
|
||||
(it.background as QMUIRoundButtonDrawable).let { drawable ->
|
||||
val bgColor = if (TextUtils.isEmpty(item.bottomBgColor)) {
|
||||
ContextCompat.getColor(mContext, R.color.tracker_manage_bg_color)
|
||||
} else {
|
||||
item.bottomBgColor.toColorInt()
|
||||
}
|
||||
drawable.setBgData(ColorStateList.valueOf(bgColor))
|
||||
}
|
||||
}
|
||||
|
||||
getTextView(R.id.tv_choose_plan_item_power).let {
|
||||
it.visibility = if (item.list.isNullOrEmpty()) View.GONE
|
||||
else {
|
||||
var str = getManyLanguageLimitDec(item.listTitleCode)
|
||||
if (TextUtils.isEmpty(str)) {
|
||||
for (i in 0 until item.list!!.size) {
|
||||
val packageDec = item.list!![i]
|
||||
str += "${i + 1}.${packageDec.title}"
|
||||
if (i != item.list!!.size - 1) {
|
||||
str += "\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
it.text = str
|
||||
View.VISIBLE
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun getManyLanguageLimitDec(nameCode: Int): String {
|
||||
return when (nameCode) {
|
||||
ConstantInt.Type1 -> mContext.getString(R.string.txt_package_permission1)
|
||||
ConstantInt.Type2 -> mContext.getString(R.string.txt_package_permission2)
|
||||
ConstantInt.Type3 -> mContext.getString(R.string.txt_package_permission3)
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -24,5 +24,9 @@ data class PackageBean(
|
||||
var planTimeMonthsCount: Int,
|
||||
var everyMonthSafeFee: Double,
|
||||
var billedMode: String,
|
||||
var selected: Boolean
|
||||
var selected: Boolean,
|
||||
var bottomBgColor: String,
|
||||
var listTitleCode: Int,
|
||||
var planNameCode: Int,
|
||||
var list: MutableList<PackageBenefitsBean>?
|
||||
) : Parcelable
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package com.abbidot.tracker.bean
|
||||
|
||||
import android.os.Parcelable
|
||||
import kotlinx.parcelize.Parcelize
|
||||
|
||||
/**
|
||||
*Created by .yzq on 2024/9/5/005.
|
||||
* @link
|
||||
* @description:
|
||||
*/
|
||||
data class PackageBenefitsBean(var title: String, var status: Int, var titleCode: Int)
|
||||
@Parcelize
|
||||
data class PackageBenefitsBean(var title: String, var status: Int, var titleCode: Int) : Parcelable
|
||||
|
||||
@@ -98,11 +98,9 @@ class UserProfileActivity :
|
||||
ilUserProfileEmailLayout.ivInputRepresentImage
|
||||
)
|
||||
|
||||
mUploadImageUrl = MMKVUtil.getString(MMKVKey.HeadUrl)
|
||||
// mUploadImageUrl = MMKVUtil.getString(MMKVKey.HeadUrl)
|
||||
ViewUtil.instance.imageLoadUrl(
|
||||
ilUserProfileHeadLayout.ilPetProfileHead.appHeadImage,
|
||||
mUploadImageUrl,
|
||||
R.drawable.pic_avatar_df
|
||||
ilUserProfileHeadLayout.ilPetProfileHead.appHeadImage, "", R.drawable.pic_avatar_df
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.abbidot.tracker.ui.activity.device
|
||||
|
||||
import android.content.Intent
|
||||
import com.abbidot.tracker.R
|
||||
import com.abbidot.tracker.base.BaseActivity
|
||||
import com.abbidot.tracker.bean.PetBean
|
||||
import com.abbidot.tracker.constant.ConstantInt
|
||||
import com.abbidot.tracker.constant.ConstantString
|
||||
import com.abbidot.tracker.databinding.ActivityInitializingDeviceBinding
|
||||
import com.abbidot.tracker.ui.activity.device.wifi.AddWifiPowerZone1Activity
|
||||
import com.abbidot.tracker.util.Util
|
||||
|
||||
class InitializingDeviceActivity :
|
||||
BaseActivity<ActivityInitializingDeviceBinding>(ActivityInitializingDeviceBinding::inflate) {
|
||||
|
||||
private var mPetBean: PetBean? = null
|
||||
private var isFirstBind = false
|
||||
private var mDeviceType = ConstantInt.Type1
|
||||
|
||||
override fun getTopBar() = null
|
||||
|
||||
override fun initData() {
|
||||
super.initData()
|
||||
|
||||
intent.extras?.apply {
|
||||
isFirstBind = getBoolean(ConstantString.isFirstBind, false)
|
||||
mPetBean = Util.getParcelableAdaptive(intent, ConstantString.Pet, PetBean::class.java)
|
||||
mDeviceType = getInt(ConstantString.Type, ConstantInt.Type1)
|
||||
}
|
||||
|
||||
mViewBinding.apply {
|
||||
val str = if (mDeviceType == ConstantInt.Type2) {
|
||||
tvPaySuccessInitDeviceDec.setText(R.string.txt_init_g40_dec)
|
||||
ivInitDeviceFlashImage.setImageResource(R.drawable.icon_init_g40_flash_image)
|
||||
String.format(getString(R.string.txt_init_device_tip), "1-5")
|
||||
} else String.format(getString(R.string.txt_init_device_tip), "15-20")
|
||||
tvPaySuccessInitDeviceTip.text = str
|
||||
|
||||
btnPaySuccessInitDeviceNext.setOnClickListener {
|
||||
val intent = Intent(mContext, AddWifiPowerZone1Activity::class.java)
|
||||
intent.putExtra(ConstantString.Pet, mPetBean)
|
||||
intent.putExtra(ConstantString.isFirstBind, isFirstBind)
|
||||
startActivityFinish(intent)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun leftBackOnClick() {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -25,7 +25,7 @@ import com.abbidot.tracker.constant.ConstantString
|
||||
import com.abbidot.tracker.constant.GetResultCallback
|
||||
import com.abbidot.tracker.databinding.ActivityPaymentSuccessBinding
|
||||
import com.abbidot.tracker.deprecated.ui.activity.vm.AddTrackerDeviceViewModel
|
||||
import com.abbidot.tracker.ui.activity.device.wifi.AddWifiPowerZone1Activity
|
||||
import com.abbidot.tracker.ui.activity.device.InitializingDeviceActivity
|
||||
import com.abbidot.tracker.util.Util
|
||||
import com.abbidot.tracker.util.ViewUtil
|
||||
import com.abbidot.tracker.util.bluetooth.SRBleCmdUtil
|
||||
@@ -221,9 +221,12 @@ class PaymentSuccessActivity :
|
||||
mViewBinding.root.postDelayed({
|
||||
MMKVUtil.putInt(MMKVKey.isBindPet, ConstantInt.isBind)
|
||||
mPetBean?.apply {
|
||||
val intent = Intent(mContext, AddWifiPowerZone1Activity::class.java)
|
||||
val intent = Intent(mContext, InitializingDeviceActivity::class.java)
|
||||
intent.putExtra(ConstantString.Pet, this)
|
||||
intent.putExtra(ConstantString.isFirstBind, true)
|
||||
mPayResult?.let { p ->
|
||||
intent.putExtra(ConstantString.Type, p.deviceType)
|
||||
}
|
||||
startActivity(intent)
|
||||
}
|
||||
}, 1500)
|
||||
|
||||
@@ -113,11 +113,11 @@ class HomeMapGoogleMapFragmentV3 : BaseGoogleMapFragment() {
|
||||
layout.tvPetLocationUpdateTimeFormat.visibility =
|
||||
if (powerSwitch == ConstantInt.Type2) View.GONE
|
||||
else {
|
||||
if (Util.isTimeoutReport(updateTime, gnssInterval)) {
|
||||
if (Util.isTimeoutReport(latLonUpdateTime, gnssInterval)) {
|
||||
layout.tvPetLocationUpdateTimeFormat.text = String.format(
|
||||
getString(R.string.txt_location_ago),
|
||||
Utils.getTimeDifference(
|
||||
updateTime * 1000, System.currentTimeMillis()
|
||||
latLonUpdateTime * 1000, System.currentTimeMillis()
|
||||
)
|
||||
)
|
||||
View.VISIBLE
|
||||
|
||||
@@ -48,6 +48,7 @@ import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import androidx.viewpager2.widget.ViewPager2
|
||||
import coil.load
|
||||
import coil.request.CachePolicy
|
||||
import coil.transform.Transformation
|
||||
import com.abbidot.baselibrary.constant.ConState
|
||||
import com.abbidot.baselibrary.constant.MMKVKey
|
||||
@@ -86,6 +87,7 @@ import com.qmuiteam.qmui.alpha.QMUIAlphaImageButton
|
||||
import com.qmuiteam.qmui.util.QMUIDisplayHelper
|
||||
import com.qmuiteam.qmui.widget.dialog.QMUIBottomSheet.BottomListSheetBuilder
|
||||
import com.qmuiteam.qmui.widget.grouplist.QMUICommonListItemView
|
||||
import okhttp3.internal.http2.Header
|
||||
import java.util.Calendar
|
||||
|
||||
|
||||
@@ -641,10 +643,19 @@ class ViewUtil private constructor() {
|
||||
error(errorImageResId)
|
||||
//淡入淡出的动画时间
|
||||
// crossfade(2000)
|
||||
// memoryCachePolicy(CachePolicy.ENABLED)//设置内存的缓存策略
|
||||
// diskCachePolicy(CachePolicy.ENABLED)//设置磁盘的缓存策略
|
||||
// networkCachePolicy(CachePolicy.ENABLED)//设置网络的缓存策略
|
||||
// OkHttpClient.Builder().cache(CoilUtils.createDefaultCache(context))
|
||||
diskCachePolicy(CachePolicy.ENABLED)//设置磁盘的缓存策略
|
||||
memoryCachePolicy(CachePolicy.ENABLED)//设置内存的缓存策略
|
||||
networkCachePolicy(CachePolicy.ENABLED)//设置网络的缓存策略
|
||||
// val okHttpCache = Cache(
|
||||
// context.cacheDir.resolve("okhttp_cache"), 50 * 1024 * 1024L
|
||||
// )
|
||||
// OkHttpClient.Builder().cache(okHttpCache)
|
||||
|
||||
// 请求优先 WebP 更小更快
|
||||
Header("Accept", "image/webp,image/jpeg;q=0.8")
|
||||
if (imageView.width > 0 && imageView.height > 0) {
|
||||
size(imageView.width, imageView.height)// 按View实际大小解码
|
||||
}
|
||||
transformations(transformations.toList())
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user