1.适配g30和g40
2.国内经纬度自定义用户位置图标,国外经纬度使用谷歌地图自带的用户位置图标
@@ -30,7 +30,7 @@ android {
|
||||
targetSdkVersion 35
|
||||
versionCode 2110
|
||||
// versionName "2.1.10"
|
||||
versionName "2.1.10-Beta5"
|
||||
versionName "2.1.10-Beta6"
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ class HomePetTrackMenuAdapter(
|
||||
}
|
||||
|
||||
override fun convert(holder: BaseViewHolder, item: MenuTxtBean) {
|
||||
val position = getItemPosition(item)
|
||||
// val position = getItemPosition(item)
|
||||
val qMUICommonItemView =
|
||||
holder.getView<QMUICommonListItemView>(R.id.tracker_manage_setting_item).apply {
|
||||
ViewUtil.instance.showQMUICommonListItemView(
|
||||
@@ -55,12 +55,21 @@ class HomePetTrackMenuAdapter(
|
||||
setTextColor(ContextCompat.getColor(context, tColor))
|
||||
}
|
||||
qMUICommonItemView.setOnClickListener {
|
||||
when (position) {
|
||||
0 -> mHomeTrackFragment.goPetDataActivity(LedLightActivity::class.java)
|
||||
1 -> mHomeTrackFragment.goMapDeviceDataActivity(TrackingDurationSetActivity::class.java)
|
||||
2 -> mHomeTrackFragment.goMapDeviceDataActivity(LiveDurationSetActivity::class.java)
|
||||
3 -> mHomeTrackFragment.firmwareCheckUpdate()
|
||||
4 -> {
|
||||
when (item.menuName) {
|
||||
context.getString(R.string.tracker_manage_led) -> mHomeTrackFragment.goPetDataActivity(
|
||||
LedLightActivity::class.java
|
||||
)
|
||||
|
||||
context.getString(R.string.tracker_manage_set_duration) -> mHomeTrackFragment.goMapDeviceDataActivity(
|
||||
TrackingDurationSetActivity::class.java
|
||||
)
|
||||
|
||||
context.getString(R.string.txt_live_duration) -> mHomeTrackFragment.goMapDeviceDataActivity(
|
||||
LiveDurationSetActivity::class.java
|
||||
)
|
||||
|
||||
context.getString(R.string.txt_firmware_version) -> mHomeTrackFragment.firmwareCheckUpdate()
|
||||
context.getString(R.string.txt_power_off) -> {
|
||||
if (item.type == ConstantInt.SpecialType) return@setOnClickListener
|
||||
mHomeTrackFragment.goPetDataActivity(PowerOffActivity::class.java)
|
||||
}
|
||||
|
||||
@@ -12,6 +12,7 @@ import com.abbidot.tracker.constant.ConstantInt
|
||||
import com.abbidot.tracker.ui.activity.device.AddNewTracker1Activity
|
||||
import com.abbidot.tracker.ui.activity.device.MyTrackerV2Activity
|
||||
import com.abbidot.tracker.ui.activity.pet.PetProfileActivity
|
||||
import com.abbidot.tracker.util.Util
|
||||
import com.abbidot.tracker.util.ViewUtil
|
||||
import com.qmuiteam.qmui.widget.QMUIRadiusImageView
|
||||
|
||||
@@ -100,6 +101,7 @@ class MyTrackerV2Adapter(
|
||||
trackerImageView.visibility = View.VISIBLE
|
||||
trackerName.visibility = View.VISIBLE
|
||||
|
||||
trackerImageView.setImageResource(Util.getDeviceTypeImage(item.deviceType))
|
||||
trackerName.text = item.deviceOutId
|
||||
val battery = "${item.batteryCapacity} "
|
||||
batteryTextView.text = battery
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.abbidot.baselibrary.list.BaseRecyclerAdapter
|
||||
import com.abbidot.baselibrary.list.RecyclerViewHolder
|
||||
import com.abbidot.tracker.R
|
||||
import com.abbidot.tracker.bean.DeviceBean
|
||||
import com.abbidot.tracker.util.Util
|
||||
|
||||
/**
|
||||
*Created by .yzq on 2025/12/19/周五.
|
||||
@@ -39,6 +40,8 @@ class ScanDeviceAdapter(
|
||||
holder.getView(R.id.ld_add_new_tracker3_connect_state).visibility =
|
||||
if (item.conState == ConState.CONNECTING) View.VISIBLE
|
||||
else View.GONE
|
||||
holder.getImageView(R.id.iv_add_new_tracker3_device_image)
|
||||
.setImageResource(Util.getDeviceTypeImage(item.type))
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -19,27 +19,46 @@ import kotlinx.parcelize.Parcelize
|
||||
@Entity(tableName = MyDatabase.DeviceTableName, primaryKeys = ["deviceOutId", "deviceId"])
|
||||
@Parcelize
|
||||
data class DeviceBean(//@PrimaryKey(autoGenerate = true) var id: Long,//autoGenerate = true 自动增长分配ID
|
||||
@ColumnInfo @DeviceType var type: Int,//设备类型
|
||||
@ColumnInfo var deviceName: String,
|
||||
@ColumnInfo var deviceOutId: String,
|
||||
@ColumnInfo var deviceId: String,
|
||||
@ColumnInfo var shared: Int, //0=没有分享,1=是授权分享的
|
||||
@ColumnInfo var batteryCapacity: Int,
|
||||
@ColumnInfo var ledSwitch: Int,
|
||||
@ColumnInfo @ConState var conState: Int,//连接状态
|
||||
@ColumnInfo var macId: String,
|
||||
@ColumnInfo var deviceInfoId: String,
|
||||
@ColumnInfo var surplusDays: Int,
|
||||
@ColumnInfo var gnssSignal: Int,
|
||||
@ColumnInfo var lteSignal: Int,
|
||||
@ColumnInfo var turnOff: Int,
|
||||
@ColumnInfo var lightMode: Int,
|
||||
@Ignore var pet: PetBean?) : BaseDiffBean(), Parcelable {
|
||||
@ColumnInfo @DeviceType var type: Int,//设备类型
|
||||
@ColumnInfo var deviceName: String,
|
||||
@ColumnInfo var deviceOutId: String,
|
||||
@ColumnInfo var deviceId: String,
|
||||
@ColumnInfo var shared: Int, //0=没有分享,1=是授权分享的
|
||||
@ColumnInfo var batteryCapacity: Int,
|
||||
@ColumnInfo var ledSwitch: Int,
|
||||
@ColumnInfo @ConState var conState: Int,//连接状态
|
||||
@ColumnInfo var macId: String,
|
||||
@ColumnInfo var deviceInfoId: String,
|
||||
@ColumnInfo var surplusDays: Int,
|
||||
@ColumnInfo var gnssSignal: Int,
|
||||
@ColumnInfo var lteSignal: Int,
|
||||
@ColumnInfo var turnOff: Int,
|
||||
@ColumnInfo var lightMode: Int,
|
||||
@Ignore var deviceType: Int,
|
||||
@Ignore var pet: PetBean?
|
||||
) : BaseDiffBean(), Parcelable {
|
||||
// 如果某个实体中有您不想保留的字段,则可以使用 @Ignore 为这些字段添加注释
|
||||
|
||||
//设置空的构造方法
|
||||
constructor() : this(DeviceType.TYPE_ONE, "", "", "", 0, 0, 0, ConState.DISCONNECTED, "", "", 0,
|
||||
0, 0, 0, 0, null)
|
||||
constructor() : this(
|
||||
DeviceType.TYPE_ONE,
|
||||
"",
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
ConState.DISCONNECTED,
|
||||
"",
|
||||
"",
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
null
|
||||
)
|
||||
|
||||
override fun isSameObject(other: Any): Boolean {
|
||||
val oldItem = other as DeviceBean
|
||||
|
||||
@@ -35,6 +35,7 @@ data class MapDeviceBean(
|
||||
var wifiZones: MutableList<WiFiZoneBean>?,
|
||||
var startTime: String,
|
||||
var endTime: String,
|
||||
var deviceType: Int,
|
||||
var canShowBattery: Boolean,
|
||||
var isCloseBattery: Boolean,
|
||||
var isCloseMsg: Boolean
|
||||
@@ -69,6 +70,7 @@ data class MapDeviceBean(
|
||||
null,
|
||||
"",
|
||||
"",
|
||||
1,
|
||||
false,
|
||||
false,
|
||||
false
|
||||
|
||||
@@ -31,13 +31,14 @@ data class PetBean(
|
||||
var deviceOutId: String,
|
||||
var macID: String,
|
||||
var mealType: Int,
|
||||
var deviceType: Int,
|
||||
var availableOrder: Int,//判断套餐是否可用或过期,1是可用 0不可用
|
||||
var deviceId: String
|
||||
) : Parcelable, BaseDiffBean() {
|
||||
constructor() : this(
|
||||
"", "", "", "", 0, 1, MMKVUtil.getString(MMKVKey.UserId), "", 0, Utils.formatTime(
|
||||
System.currentTimeMillis(), Utils.DATE_FORMAT_PATTERN_CN
|
||||
), "", 0f, 0f, "", "", "", 1, 1, ""
|
||||
), "", 0f, 0f, "", "", "", 1, 1, 1, ""
|
||||
)
|
||||
|
||||
override fun isSameObject(other: Any): Boolean {
|
||||
|
||||
@@ -3,7 +3,6 @@ package com.abbidot.tracker.ui.activity.device
|
||||
import android.content.Intent
|
||||
import android.view.View
|
||||
import androidx.activity.viewModels
|
||||
import coil.load
|
||||
import com.abbidot.baselibrary.constant.EventName
|
||||
import com.abbidot.baselibrary.eventbus.XEventBus
|
||||
import com.abbidot.tracker.R
|
||||
@@ -36,7 +35,7 @@ class AddNewTracker1Activity :
|
||||
}
|
||||
|
||||
mViewBinding.apply {
|
||||
ivChargePowerOnGif.load(R.drawable.charge_power_on)
|
||||
// ivChargePowerOnGif.load(R.drawable.charge_power_on)
|
||||
|
||||
if (!isFirstBind) {
|
||||
tvChargePowerOnBackLoginBtn.visibility = View.GONE
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.abbidot.tracker.base.BaseActivity
|
||||
import com.abbidot.tracker.base.BaseDialog
|
||||
import com.abbidot.tracker.bean.BleTrackDeviceBean
|
||||
import com.abbidot.tracker.bean.DeviceBean
|
||||
import com.abbidot.tracker.constant.ConstantInt
|
||||
import com.abbidot.tracker.constant.ConstantString
|
||||
import com.abbidot.tracker.constant.GetResultCallback
|
||||
import com.abbidot.tracker.databinding.ActivityAddNewTracker3Binding
|
||||
@@ -40,6 +41,7 @@ class AddNewTracker3Activity :
|
||||
private var mDeviceId = ""
|
||||
private var mDeviceOutId = ""
|
||||
private var mConBleMac = ""
|
||||
private var mType = ConstantInt.Type1
|
||||
|
||||
private lateinit var mScanDeviceAdapter: ScanDeviceAdapter
|
||||
|
||||
@@ -68,6 +70,7 @@ class AddNewTracker3Activity :
|
||||
notifyItemRangeChanged(0, it.size)
|
||||
mDeviceOutId = it[pos].deviceOutId
|
||||
mConBleMac = it[pos].macId
|
||||
mType = it[pos].type
|
||||
mTrackerSetViewModel.bindDevice(
|
||||
this@AddNewTracker3Activity, mDeviceOutId
|
||||
)
|
||||
@@ -97,6 +100,7 @@ class AddNewTracker3Activity :
|
||||
val intent = Intent(mContext, AddPairedSuccessActivity::class.java)
|
||||
intent.putExtra(ConstantString.DeviceOutId, mDeviceOutId)
|
||||
intent.putExtra(ConstantString.isFirstBind, isFirstBind)
|
||||
intent.putExtra(ConstantString.Type, mType)
|
||||
intent.putExtra(ConstantString.DeviceId, mDeviceId)
|
||||
intent.putExtra(ConstantString.Mac, ble.mac)
|
||||
startActivity(intent)
|
||||
@@ -186,14 +190,19 @@ class AddNewTracker3Activity :
|
||||
LogUtil.d("onScanning....$bleDevice")
|
||||
bleDevice?.apply {
|
||||
if (null != name && name.contains(SRBleUtil.instance.trackDeviceBleStartName)) {
|
||||
val start = 45
|
||||
val end = start + 6
|
||||
val subArray = scanRecord.sliceArray(start until end)
|
||||
val subArray = getManufacturerInfo(scanRecord)
|
||||
LogUtil.e("截取后的外显id广播=${HexUtil.formatHexString(subArray, true)}")
|
||||
val deviceOutId = subArray.decodeToString()
|
||||
var typeName = ""
|
||||
subArray?.let {
|
||||
typeName = it.decodeToString()
|
||||
}
|
||||
DeviceBean().let {
|
||||
it.deviceOutId = deviceOutId
|
||||
it.type = getDeviceType(typeName)
|
||||
it.deviceOutId =
|
||||
name.substring(SRBleUtil.instance.trackDeviceBleStartName.length)
|
||||
.trim()
|
||||
it.macId = mac
|
||||
it.deviceName = name
|
||||
mScanDeviceAdapter.getData().let { list ->
|
||||
ViewUtil.instance.viewShow(mViewBinding.rvAddNewTracker3DeviceList)
|
||||
list.add(it)
|
||||
@@ -211,6 +220,44 @@ class AddNewTracker3Activity :
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取查找设备类型
|
||||
*/
|
||||
private fun getManufacturerInfo(scanRecord: ByteArray): ByteArray? {
|
||||
var index = 0
|
||||
while (index < scanRecord.size) {
|
||||
val length = scanRecord[index].toInt() and 0xFF
|
||||
if (length == 0) break
|
||||
val typeIndex = index + 1
|
||||
val dataStart = index + 2
|
||||
val dataLength = length - 1
|
||||
val dataEndExclusive = dataStart + dataLength
|
||||
if (typeIndex >= scanRecord.size || dataEndExclusive > scanRecord.size) {
|
||||
return null
|
||||
}
|
||||
val type = scanRecord[typeIndex].toInt() and 0xFF
|
||||
if (type == 0xFF) {
|
||||
val data = scanRecord.copyOfRange(dataStart, dataEndExclusive)
|
||||
if (data.size < 2) return null
|
||||
// val companyId = (data[0].toInt() and 0xFF) or ((data[1].toInt() and 0xFF) shl 8)
|
||||
val payload = data.copyOfRange(2, data.size)
|
||||
return payload
|
||||
}
|
||||
index += (length + 1)
|
||||
}
|
||||
return null
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设备类型
|
||||
*/
|
||||
private fun getDeviceType(typeName: String): Int {
|
||||
return when (typeName) {
|
||||
"G40" -> ConstantInt.Type2
|
||||
else -> ConstantInt.Type1
|
||||
}
|
||||
}
|
||||
|
||||
private fun scanFinished() {
|
||||
mAnimatorSet?.cancel()
|
||||
mViewBinding.ivAddNewTracker3RefreshBtn.isEnabled = true
|
||||
|
||||
@@ -51,6 +51,7 @@ class AddPairedSuccessActivity :
|
||||
private var mDeviceOutId = ""
|
||||
private var mDeviceId = ""
|
||||
private var mMac = ""
|
||||
private var mType = ConstantInt.Type1
|
||||
private var mPetBean: PetBean? = null
|
||||
|
||||
//判断设备可用套餐状态
|
||||
@@ -66,6 +67,7 @@ class AddPairedSuccessActivity :
|
||||
isFirstBind = getBoolean(ConstantString.isFirstBind, false)
|
||||
mDeviceId = getString(ConstantString.DeviceId, "")
|
||||
mMac = getString(ConstantString.Mac, "")
|
||||
mType = getInt(ConstantString.Type, ConstantInt.Type1)
|
||||
mDeviceOutId = getString(ConstantString.DeviceOutId, "")
|
||||
}
|
||||
|
||||
@@ -73,6 +75,7 @@ class AddPairedSuccessActivity :
|
||||
|
||||
mViewBinding.apply {
|
||||
tvPairSuccessDeviceOutId.text = mDeviceOutId
|
||||
ivPairSuccessDeviceImage.setImageResource(Util.getDeviceTypeImage(mType))
|
||||
setOnClickListenerViews(btnPairSuccessActivate)
|
||||
}
|
||||
setButtonEnabled(mViewBinding.btnPairSuccessActivate, ConstantInt.Type0)
|
||||
|
||||
@@ -708,6 +708,29 @@ class LiveActivityV3 : BaseActivity<ActivityLiveV3Binding>(ActivityLiveV3Binding
|
||||
}
|
||||
|
||||
mViewBinding.let {
|
||||
if (deviceType == ConstantInt.Type2) {
|
||||
it.ilLiveV2BluetoothFindDevice.ilLiveV2RadarLightSwitch.tvDeviceLightSwitchTitle.text =
|
||||
getString(R.string.txt_light)
|
||||
it.ilLiveV2BluetoothFindDevice.ilLiveV2RadarLightSwitch.tvDeviceLightSwitchTitle.setCompoundDrawablesWithIntrinsicBounds(
|
||||
R.drawable.icon_light_svg, 0, 0, 0
|
||||
)
|
||||
it.ilLiveV2OperateLayout.ilLiveV2DataLightSwitch.tvDeviceLightSwitchTitle.text =
|
||||
getString(R.string.txt_light)
|
||||
it.ilLiveV2OperateLayout.ilLiveV2DataLightSwitch.tvDeviceLightSwitchTitle.setCompoundDrawablesWithIntrinsicBounds(
|
||||
R.drawable.icon_light_svg, 0, 0, 0
|
||||
)
|
||||
} else {
|
||||
it.ilLiveV2BluetoothFindDevice.ilLiveV2RadarLightSwitch.tvDeviceLightSwitchTitle.text =
|
||||
getString(R.string.txt_tone)
|
||||
it.ilLiveV2BluetoothFindDevice.ilLiveV2RadarLightSwitch.tvDeviceLightSwitchTitle.setCompoundDrawablesWithIntrinsicBounds(
|
||||
R.drawable.icon_sound_image, 0, 0, 0
|
||||
)
|
||||
it.ilLiveV2OperateLayout.ilLiveV2DataLightSwitch.tvDeviceLightSwitchTitle.text =
|
||||
getString(R.string.txt_tone)
|
||||
it.ilLiveV2OperateLayout.ilLiveV2DataLightSwitch.tvDeviceLightSwitchTitle.setCompoundDrawablesWithIntrinsicBounds(
|
||||
R.drawable.icon_sound_image, 0, 0, 0
|
||||
)
|
||||
}
|
||||
isLedOpen = ledSwitch == ConstantInt.Open
|
||||
it.ilLiveV2OperateLayout.ilLiveV2DataLightSwitch.cbDeviceLightSwitch.isChecked =
|
||||
isLedOpen
|
||||
|
||||
@@ -91,6 +91,7 @@ class HomeTrackFragment :
|
||||
//是否是dfu的返回的
|
||||
private var isDFUCallback = false
|
||||
private var mFirmwareBean: FirmwareBean? = null
|
||||
private var isSwitchPet = true
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
@@ -102,7 +103,7 @@ class HomeTrackFragment :
|
||||
override fun initData() {
|
||||
mViewBinding.apply {
|
||||
root.setBackgroundResource(R.color.transparent)
|
||||
addListData()
|
||||
addStateListData()
|
||||
mHomePetTrackStateAdapter =
|
||||
HomePetTrackStateAdapter(mContext!!, mTrackStateList).apply {
|
||||
setOnItemClickListener(object : BaseRecyclerAdapter.OnItemClickListener {
|
||||
@@ -219,7 +220,7 @@ class HomeTrackFragment :
|
||||
// }
|
||||
}
|
||||
|
||||
getPetTrackerInfoData()
|
||||
getPetTrackerInfoData(isSwitchPet)
|
||||
}
|
||||
|
||||
private fun getHomeV2Activity(): HomeV2Activity? {
|
||||
@@ -287,6 +288,7 @@ class HomeTrackFragment :
|
||||
// LogUtil.e("蓝牙连接,不使用接口数据更新状态")
|
||||
// } else {
|
||||
// }
|
||||
addMenuListData()
|
||||
setStateData(data)
|
||||
setZoneData(data)
|
||||
}
|
||||
@@ -319,10 +321,18 @@ class HomeTrackFragment :
|
||||
mFirmwareBean = this
|
||||
mFirmwareBean?.mac = mBleTrackDeviceBean?.mac!!
|
||||
|
||||
val localVersion = mTrackMenuList[3].menuValue
|
||||
if (mDeviceDFUViewModel.checkVersionUpdate(localVersion, version)) {
|
||||
mTrackMenuList[3].isSwitch = true
|
||||
mTrackMenuAdapter.notifyItemChanged(3)
|
||||
findItem(
|
||||
mTrackMenuList, getString(R.string.txt_firmware_version)
|
||||
)?.let { m ->
|
||||
val localVersion = m.menuValue
|
||||
if (mDeviceDFUViewModel.checkVersionUpdate(localVersion, version)) {
|
||||
m.isSwitch = true
|
||||
mTrackMenuAdapter.notifyItemChanged(
|
||||
findIndexOf(
|
||||
mTrackMenuList, getString(R.string.txt_firmware_version)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -382,45 +392,18 @@ class HomeTrackFragment :
|
||||
}
|
||||
}
|
||||
|
||||
fun getPetTrackerInfoData() {
|
||||
fun getPetTrackerInfoData(switchPet: Boolean = false) {
|
||||
isSwitchPet = switchPet
|
||||
getHomeV2Activity()?.let {
|
||||
it.getPet()?.apply {
|
||||
|
||||
mTrackMenuList[1].menuValue = ""
|
||||
mTrackMenuList[2].menuValue = ""
|
||||
mTrackMenuList[4].menuValue = ""
|
||||
if (isSwitchPet) {
|
||||
isSwitchPet = false
|
||||
mTrackMenuAdapter.notifyItemRangeRemoved(0, mTrackMenuList.size)
|
||||
mTrackMenuList.clear()
|
||||
}
|
||||
|
||||
mTrackerInfoViewModel.getPetTrackerInfo(it, deviceId)
|
||||
|
||||
getBleTrackDeviceBean(false)?.let { ble ->
|
||||
if (BleManager.getInstance().isConnected(macID)) {
|
||||
//获取固件版本号
|
||||
if (null == mFirmwareBean) {
|
||||
SRBleUtil.instance.writeData(
|
||||
ble.bleDevice, SRBleCmdUtil.instance.getFirmwareVersion()
|
||||
)
|
||||
} else {
|
||||
//只有新的设备,回到这个界面才去检查dfu
|
||||
if (mFirmwareBean?.mac != ble.mac) {
|
||||
mTrackMenuList[3].menuValue = ""
|
||||
mTrackMenuList[3].isSwitch = false
|
||||
SRBleUtil.instance.writeData(
|
||||
ble.bleDevice, SRBleCmdUtil.instance.getFirmwareVersion()
|
||||
)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mFirmwareBean = null
|
||||
mTrackMenuList[3].menuValue = ""
|
||||
mTrackMenuList[3].isSwitch = false
|
||||
}
|
||||
}
|
||||
if (null == mBleTrackDeviceBean) {
|
||||
mFirmwareBean = null
|
||||
mTrackMenuList[3].menuValue = ""
|
||||
mTrackMenuList[3].isSwitch = false
|
||||
}
|
||||
mTrackMenuAdapter.notifyItemRangeChanged(1, 4)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -441,11 +424,11 @@ class HomeTrackFragment :
|
||||
}
|
||||
}
|
||||
|
||||
private fun addListData() {
|
||||
private fun addStateListData() {
|
||||
mTrackStateList = mutableListOf()
|
||||
mFencesList = mutableListOf()
|
||||
mZoneList = mutableListOf()
|
||||
|
||||
mTrackMenuList = mutableListOf()
|
||||
ViewUtil.instance.addMenuBean(
|
||||
mTrackStateList,
|
||||
getString(R.string.tracker_manage_set_network),
|
||||
@@ -485,21 +468,73 @@ class HomeTrackFragment :
|
||||
imageResId = R.drawable.icon_light_svg,
|
||||
type = ConstantInt.SpecialType
|
||||
)
|
||||
}
|
||||
|
||||
mTrackMenuList = mutableListOf()
|
||||
ViewUtil.instance.addMenuBean(mTrackMenuList, getString(R.string.tracker_manage_led))
|
||||
ViewUtil.instance.addMenuBean(
|
||||
mTrackMenuList, getString(R.string.tracker_manage_set_duration)
|
||||
)
|
||||
ViewUtil.instance.addMenuBean(mTrackMenuList, getString(R.string.txt_live_duration))
|
||||
ViewUtil.instance.addMenuBean(
|
||||
mTrackMenuList,
|
||||
getString(R.string.txt_firmware_version),
|
||||
menuType = MultipleEntity.IMG_TEXT_IMG
|
||||
)
|
||||
ViewUtil.instance.addMenuBean(
|
||||
mTrackMenuList, getString(R.string.txt_power_off)
|
||||
// menuType = MultipleEntity.IMG_TEXT//, menuType = MultipleEntity.TEXT_NAME
|
||||
private fun addMenuListData() {
|
||||
mMapDeviceBean?.apply {
|
||||
if (mTrackMenuList.size == 0) {
|
||||
if (deviceType == ConstantInt.Type1) {
|
||||
ViewUtil.instance.addMenuBean(
|
||||
mTrackMenuList, getString(R.string.tracker_manage_led)
|
||||
)
|
||||
}
|
||||
ViewUtil.instance.addMenuBean(
|
||||
mTrackMenuList, getString(R.string.tracker_manage_set_duration)
|
||||
)
|
||||
ViewUtil.instance.addMenuBean(mTrackMenuList, getString(R.string.txt_live_duration))
|
||||
ViewUtil.instance.addMenuBean(
|
||||
mTrackMenuList,
|
||||
getString(R.string.txt_firmware_version),
|
||||
menuType = MultipleEntity.IMG_TEXT_IMG
|
||||
)
|
||||
if (deviceType == ConstantInt.Type1) {
|
||||
ViewUtil.instance.addMenuBean(mTrackMenuList, getString(R.string.txt_power_off))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
getBleTrackDeviceBean(false)?.let { ble ->
|
||||
if (BleManager.getInstance().isConnected(ble.mac)) {
|
||||
//获取固件版本号
|
||||
if (null == mFirmwareBean) {
|
||||
SRBleUtil.instance.writeData(
|
||||
ble.bleDevice, SRBleCmdUtil.instance.getFirmwareVersion()
|
||||
)
|
||||
} else {
|
||||
//只有新的设备,回到这个界面才去检查dfu
|
||||
if (mFirmwareBean?.mac != ble.mac) {
|
||||
findItem(
|
||||
mTrackMenuList, getString(R.string.txt_firmware_version)
|
||||
)?.let { m ->
|
||||
m.menuValue = ""
|
||||
m.isSwitch = false
|
||||
}
|
||||
SRBleUtil.instance.writeData(
|
||||
ble.bleDevice, SRBleCmdUtil.instance.getFirmwareVersion()
|
||||
)
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mFirmwareBean = null
|
||||
findItem(mTrackMenuList, getString(R.string.txt_firmware_version))?.let { m ->
|
||||
m.menuValue = ""
|
||||
m.isSwitch = false
|
||||
}
|
||||
}
|
||||
}
|
||||
if (null == mBleTrackDeviceBean) {
|
||||
mFirmwareBean = null
|
||||
findItem(mTrackMenuList, getString(R.string.txt_firmware_version))?.let { m ->
|
||||
m.menuValue = ""
|
||||
m.isSwitch = false
|
||||
}
|
||||
}
|
||||
mTrackMenuAdapter.notifyItemChanged(
|
||||
findIndexOf(
|
||||
mTrackMenuList, getString(R.string.txt_firmware_version)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@@ -534,6 +569,7 @@ class HomeTrackFragment :
|
||||
val endTime = "${getString(R.string.txt_end_time)}:$eTime"
|
||||
val id = "ID:$deviceOutId"
|
||||
mViewBinding.let {
|
||||
it.ivHomePetTrackPetHead.setImageResource(Util.getDeviceTypeImage(deviceType))
|
||||
it.tvHomePetTrackPetStartTime.text = startTime
|
||||
it.tvHomePetTrackPetEndTime.text = endTime
|
||||
it.tvHomePetTrackId.text = id
|
||||
@@ -604,17 +640,19 @@ class HomeTrackFragment :
|
||||
setLedControlState(mapDeviceBean)
|
||||
|
||||
mTrackMenuList.let {
|
||||
it[1].menuValue =
|
||||
findItem(it, getString(R.string.tracker_manage_set_duration))?.menuValue =
|
||||
(gnssInterval / 60).toString() + getString(R.string.data_active_unit_min)
|
||||
it[2].menuValue =
|
||||
findItem(it, getString(R.string.txt_live_duration))?.menuValue =
|
||||
(liveTime / 60).toString() + getString(R.string.data_active_unit_min)
|
||||
it[4].type =
|
||||
if (powerSwitch == ConstantInt.Type3 || powerSwitch == ConstantInt.Type0) ConstantInt.SpecialType
|
||||
else ConstantInt.Type0
|
||||
it[4].menuValue = when (powerSwitch) {
|
||||
ConstantInt.Type0 -> getString(R.string.tracker_manage_set_led_off)
|
||||
ConstantInt.Type1 -> getString(R.string.tracker_manage_set_led_on)
|
||||
else -> ""
|
||||
findItem(it, getString(R.string.txt_power_off))?.let { menu ->
|
||||
menu.type =
|
||||
if (powerSwitch == ConstantInt.Type3 || powerSwitch == ConstantInt.Type0) ConstantInt.SpecialType
|
||||
else ConstantInt.Type0
|
||||
menu.menuValue = when (powerSwitch) {
|
||||
ConstantInt.Type0 -> getString(R.string.tracker_manage_set_led_off)
|
||||
ConstantInt.Type1 -> getString(R.string.tracker_manage_set_led_on)
|
||||
else -> ""
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -625,15 +663,48 @@ class HomeTrackFragment :
|
||||
}
|
||||
}
|
||||
|
||||
mTrackMenuAdapter.notifyItemRangeChanged(1, mTrackMenuList.size)
|
||||
mTrackMenuAdapter.notifyItemRangeChanged(
|
||||
findIndexOf(
|
||||
mTrackMenuList, getString(R.string.tracker_manage_set_duration)
|
||||
), mTrackMenuList.size
|
||||
)
|
||||
mHomePetTrackStateAdapter.notifyItemRangeChanged(0, mTrackStateList.size)
|
||||
}
|
||||
|
||||
private fun findItem(list: MutableList<MenuTxtBean>, name: String): MenuTxtBean? {
|
||||
var menuTxt: MenuTxtBean? = null
|
||||
for (l in list) {
|
||||
if (name == l.menuName) {
|
||||
menuTxt = l
|
||||
break
|
||||
}
|
||||
}
|
||||
return menuTxt
|
||||
}
|
||||
|
||||
private fun findIndexOf(list: MutableList<MenuTxtBean>, name: String): Int {
|
||||
var index = 0
|
||||
for (i in 0 until list.size) {
|
||||
if (name == list[i].menuName) {
|
||||
index = i
|
||||
break
|
||||
}
|
||||
}
|
||||
return index
|
||||
}
|
||||
|
||||
private fun setLedControlState(mapDeviceBean: MapDeviceBean) {
|
||||
mapDeviceBean.apply {
|
||||
//是否超时上报
|
||||
val isTimeoutReport = Util.isTimeoutReport(updateTime)
|
||||
mTrackStateList[5].let {
|
||||
if (deviceType == ConstantInt.Type1) {
|
||||
it.imageId = R.drawable.icon_light_svg
|
||||
it.menuName = getString(R.string.txt_light)
|
||||
} else {
|
||||
it.imageId = R.drawable.icon_sound_image
|
||||
it.menuName = getString(R.string.txt_tone)
|
||||
}
|
||||
it.colorRedId = R.color.orange_color3
|
||||
it.type = if (SRBleUtil.instance.isMacConnect(deviceMacId)) {
|
||||
ConstantInt.Type0
|
||||
@@ -698,8 +769,9 @@ class HomeTrackFragment :
|
||||
// mDFUStateAdapter = DFUStateAdapter(mContext!!, null)
|
||||
// mTrackerDFUStateDialog = TrackerDFUStateDialog(mContext!!, mDFUStateAdapter)
|
||||
// }
|
||||
val localVersion = mTrackMenuList[3].menuValue
|
||||
if (mDeviceDFUViewModel.checkVersionUpdate(localVersion, version)) {
|
||||
findItem(mTrackMenuList, getString(R.string.txt_firmware_version))?.let {
|
||||
val localVersion = it.menuValue
|
||||
if (mDeviceDFUViewModel.checkVersionUpdate(localVersion, version)) {
|
||||
// mTrackerDFUStateDialog?.apply {
|
||||
// show()
|
||||
// setContent(message)
|
||||
@@ -711,21 +783,22 @@ class HomeTrackFragment :
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
if (null == mDFUNewDialogDialog) mDFUNewDialogDialog = DFUNewDialog(mContext!!)
|
||||
mDFUNewDialogDialog?.apply {
|
||||
show()
|
||||
startDfuState(version) {
|
||||
if (TextUtils.isEmpty(firmwareUrl)) {
|
||||
showToast(R.string.txt_no_down_url)
|
||||
} else {
|
||||
mDownLoadFileViewModel.downLoadFile(
|
||||
mContext, fileName, firmwareUrl
|
||||
)
|
||||
if (null == mDFUNewDialogDialog) mDFUNewDialogDialog = DFUNewDialog(mContext!!)
|
||||
mDFUNewDialogDialog?.apply {
|
||||
show()
|
||||
startDfuState(version) {
|
||||
if (TextUtils.isEmpty(firmwareUrl)) {
|
||||
showToast(R.string.txt_no_down_url)
|
||||
} else {
|
||||
mDownLoadFileViewModel.downLoadFile(
|
||||
mContext, fileName, firmwareUrl
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
showToast(R.string.txt_latest_version)
|
||||
}
|
||||
} else {
|
||||
showToast(R.string.txt_latest_version)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -765,6 +838,15 @@ class HomeTrackFragment :
|
||||
colorRedId = R.color.orange_color3
|
||||
mHomePetTrackStateAdapter.notifyItemChanged(4)
|
||||
}
|
||||
findItem(mTrackMenuList, getString(R.string.txt_firmware_version))?.let { m ->
|
||||
m.menuValue = ""
|
||||
m.isSwitch = false
|
||||
mTrackMenuAdapter.notifyItemChanged(
|
||||
findIndexOf(
|
||||
mTrackMenuList, getString(R.string.txt_firmware_version)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
//dfu升级成功 重新连接返回
|
||||
if (isDFUCallback) {
|
||||
@@ -785,9 +867,15 @@ class HomeTrackFragment :
|
||||
if (data2 == 0) {
|
||||
val strVersion = String(data.sliceArray(3..11))
|
||||
LogUtil.e("设备固件版本号:$strVersion")
|
||||
mTrackMenuList[3].menuValue = strVersion
|
||||
mTrackMenuList[3].isSwitch = false
|
||||
mTrackMenuAdapter.notifyItemChanged(3)
|
||||
findItem(mTrackMenuList, getString(R.string.txt_firmware_version))?.let {
|
||||
it.menuValue = strVersion
|
||||
it.isSwitch = false
|
||||
mTrackMenuAdapter.notifyItemChanged(
|
||||
findIndexOf(
|
||||
mTrackMenuList, getString(R.string.txt_firmware_version)
|
||||
)
|
||||
)
|
||||
}
|
||||
mDeviceDFUViewModel.getFirmware()
|
||||
mBleTrackDeviceBean?.apply {
|
||||
SRBleUtil.instance.writeData(
|
||||
@@ -835,13 +923,24 @@ class HomeTrackFragment :
|
||||
mMapDeviceBean?.let { ble ->
|
||||
mTrackerSetViewModel.turnOff(ble.deviceServerId)
|
||||
}
|
||||
mTrackMenuList[1].menuValue = ""
|
||||
mTrackMenuList[2].menuValue = ""
|
||||
mTrackMenuList[3].menuValue = ""
|
||||
//取消红点显示
|
||||
mTrackMenuList[3].isSwitch = false
|
||||
mTrackMenuList[4].menuValue = ConstantInt.Close.toString()
|
||||
mTrackMenuAdapter.notifyItemRangeChanged(1, 4)
|
||||
findItem(mTrackMenuList, getString(R.string.txt_firmware_version))?.let {
|
||||
it.menuValue = ""
|
||||
//取消红点显示
|
||||
it.isSwitch = false
|
||||
mTrackMenuAdapter.notifyItemChanged(
|
||||
findIndexOf(
|
||||
mTrackMenuList, getString(R.string.txt_firmware_version)
|
||||
)
|
||||
)
|
||||
}
|
||||
findItem(mTrackMenuList, getString(R.string.txt_power_off))?.let {
|
||||
it.menuValue = ConstantInt.Close.toString()
|
||||
mTrackMenuAdapter.notifyItemChanged(
|
||||
findIndexOf(
|
||||
mTrackMenuList, getString(R.string.txt_power_off)
|
||||
)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.abbidot.tracker.ui.fragment.map.googlemap
|
||||
|
||||
import android.Manifest
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.content.pm.PackageManager
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Point
|
||||
import android.location.Location
|
||||
@@ -9,6 +11,7 @@ import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.core.app.ActivityCompat
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import com.abbidot.baselibrary.constant.MMKVKey
|
||||
@@ -373,14 +376,31 @@ abstract class BaseGoogleMapFragment :
|
||||
}
|
||||
|
||||
fun setUserMarker() {
|
||||
mUserLatLng?.let {
|
||||
if (null == mUserMarker) {
|
||||
mUserMarker = addImageMarker(it, R.drawable.pic_avatar_df)
|
||||
} else {
|
||||
if (it.latitude == mUserMarker!!.position.latitude && it.longitude == mUserMarker!!.position.longitude) {
|
||||
if (MMKVUtil.getBoolean(MMKVKey.isGpsToGCJ02)) {
|
||||
mUserLatLng?.let {
|
||||
if (null == mUserMarker) {
|
||||
mUserMarker = addImageMarker(it, R.drawable.icon_user_location_image)
|
||||
} else {
|
||||
mUserMarker?.remove()
|
||||
mUserMarker = addImageMarker(it, R.drawable.pic_avatar_df)
|
||||
if (it.latitude == mUserMarker!!.position.latitude && it.longitude == mUserMarker!!.position.longitude) {
|
||||
} else {
|
||||
mUserMarker?.remove()
|
||||
mUserMarker = addImageMarker(it, R.drawable.icon_user_location_image)
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
mGoogleMap?.apply {
|
||||
if (!isMyLocationEnabled) {
|
||||
//检测权限,开启用户的当前位置https://developers.google.cn/maps/documentation/android-sdk/location?hl=zh-cn
|
||||
if (ActivityCompat.checkSelfPermission(
|
||||
mContext!!, Manifest.permission.ACCESS_FINE_LOCATION
|
||||
) == PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(
|
||||
mContext!!, Manifest.permission.ACCESS_COARSE_LOCATION
|
||||
) == PackageManager.PERMISSION_GRANTED
|
||||
) {
|
||||
//启用“我的位置”图层。
|
||||
isMyLocationEnabled = true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -200,7 +200,7 @@ class PetV2Fragment : BaseFragment<FragmentPetV2Binding>(FragmentPetV2Binding::i
|
||||
)
|
||||
|
||||
(mFragments[0] as HomePetFragment).getPetAllInfoData()
|
||||
(mFragments[1] as HomeTrackFragment).getPetTrackerInfoData()
|
||||
(mFragments[1] as HomeTrackFragment).getPetTrackerInfoData(true)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -837,6 +837,12 @@ class Util {
|
||||
fun getMapTypeSp() = MMKVUtil.getInt(MMKVKey.MapType, ConstantInt.Type0)
|
||||
fun getShowFenceSp() = MMKVUtil.getBoolean(MMKVKey.ShowFence, true)
|
||||
|
||||
fun getDeviceTypeImage(type: Int): Int {
|
||||
return when (type) {
|
||||
ConstantInt.Type2 -> R.drawable.icon_tracker_g40
|
||||
else -> R.drawable.icon_tracker_device_small
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -38,7 +38,7 @@ import java.util.UUID
|
||||
class SRBleUtil private constructor() {
|
||||
|
||||
//track设备蓝牙的开头名字
|
||||
val trackDeviceBleStartName = "Pet_"
|
||||
val trackDeviceBleStartName = "AB_"
|
||||
|
||||
//是否正在连接蓝牙设备
|
||||
var isBleConnecting = false
|
||||
|
||||
BIN
app/src/main/res/drawable-xhdpi/icon_pair_tracker_image.png
Normal file
|
After Width: | Height: | Size: 1.5 KiB |
BIN
app/src/main/res/drawable-xhdpi/icon_sound_image.png
Normal file
|
After Width: | Height: | Size: 391 B |
BIN
app/src/main/res/drawable-xhdpi/icon_tracker_g40.png
Normal file
|
After Width: | Height: | Size: 33 KiB |
BIN
app/src/main/res/drawable-xhdpi/icon_user_location_image.png
Normal file
|
After Width: | Height: | Size: 770 B |
BIN
app/src/main/res/drawable-xxhdpi/icon_pair_tracker_image.png
Normal file
|
After Width: | Height: | Size: 3.1 KiB |
BIN
app/src/main/res/drawable-xxhdpi/icon_sound_image.png
Normal file
|
After Width: | Height: | Size: 539 B |
BIN
app/src/main/res/drawable-xxhdpi/icon_tracker_g40.png
Normal file
|
After Width: | Height: | Size: 63 KiB |
BIN
app/src/main/res/drawable-xxhdpi/icon_user_location_image.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
app/src/main/res/drawable-xxxhdpi/icon_pair_tracker_image.png
Normal file
|
After Width: | Height: | Size: 4.6 KiB |
BIN
app/src/main/res/drawable-xxxhdpi/icon_sound_image.png
Normal file
|
After Width: | Height: | Size: 734 B |
BIN
app/src/main/res/drawable-xxxhdpi/icon_tracker_g40.png
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
app/src/main/res/drawable-xxxhdpi/icon_user_location_image.png
Normal file
|
After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 33 KiB |
@@ -26,18 +26,17 @@
|
||||
android:layout_marginTop="@dimen/dp_24"
|
||||
android:background="@drawable/shape24_white_bg"
|
||||
android:paddingHorizontal="@dimen/dp_22"
|
||||
android:paddingBottom="@dimen/dp_56">
|
||||
android:paddingVertical="@dimen/dp_40">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_charge_power_on_gif"
|
||||
android:layout_width="@dimen/dp_255"
|
||||
android:layout_height="@dimen/dp_170"
|
||||
android:layout_centerHorizontal="true" />
|
||||
<!-- <androidx.appcompat.widget.AppCompatImageView-->
|
||||
<!-- android:id="@+id/iv_charge_power_on_gif"-->
|
||||
<!-- android:layout_width="@dimen/dp_255"-->
|
||||
<!-- android:layout_height="@dimen/dp_170"-->
|
||||
<!-- android:layout_centerHorizontal="true" />-->
|
||||
|
||||
<com.abbidot.tracker.widget.TypefaceTextView
|
||||
android:id="@+id/tv_charge_power_on_step_one"
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:layout_below="@id/iv_charge_power_on_gif"
|
||||
android:text="@string/txt_step_one"
|
||||
android:textColor="@color/select_color3"
|
||||
android:textSize="@dimen/textSize12"
|
||||
@@ -58,7 +57,7 @@
|
||||
android:id="@+id/tv_charge_power_on_step_two"
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:layout_below="@id/tv_charge_power_on_step_one"
|
||||
android:layout_marginTop="@dimen/dp_44"
|
||||
android:layout_marginTop="@dimen/dp_38"
|
||||
android:text="@string/txt_step_two"
|
||||
android:textColor="@color/select_color3"
|
||||
android:textSize="@dimen/textSize12"
|
||||
|
||||
@@ -36,26 +36,13 @@
|
||||
android:gravity="center_vertical"
|
||||
android:orientation="horizontal">
|
||||
|
||||
<View
|
||||
android:id="@+id/v_add_new_tracker3_solid_view"
|
||||
android:layout_width="@dimen/dp_20"
|
||||
android:layout_height="@dimen/dp_1"
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="@dimen/dp_20" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="@dimen/dp_160"
|
||||
android:layout_height="@dimen/dp_160"
|
||||
android:layout_alignTop="@id/v_add_new_tracker3_solid_view"
|
||||
android:layout_alignEnd="@id/v_add_new_tracker3_solid_view"
|
||||
android:src="@drawable/icon_pair_tracker_image1" />
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:layout_width="@dimen/dp_160"
|
||||
android:layout_height="@dimen/dp_160"
|
||||
android:layout_alignStart="@id/v_add_new_tracker3_solid_view"
|
||||
android:layout_alignTop="@id/v_add_new_tracker3_solid_view"
|
||||
android:src="@drawable/icon_pair_tracker_image2" />
|
||||
android:layout_marginTop="@dimen/dp_24"
|
||||
android:src="@drawable/icon_pair_tracker_image" />
|
||||
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
@@ -63,7 +50,7 @@
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_alignParentEnd="true"
|
||||
android:layout_marginTop="@dimen/dp_200"
|
||||
android:layout_marginTop="@dimen/dp_140"
|
||||
android:layout_marginEnd="@dimen/dp_18"
|
||||
android:src="@drawable/icon_refresh" />
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
android:layout_height="@dimen/dp_200"
|
||||
android:layout_gravity="center_horizontal"
|
||||
android:layout_marginTop="@dimen/dp_30"
|
||||
android:src="@drawable/icon_pair_tracker_image2" />
|
||||
android:src="@drawable/icon_pair_tracker_image" />
|
||||
|
||||
<com.abbidot.tracker.widget.VerifyEditText
|
||||
android:id="@+id/vet_add_new_tracker4_edit_text"
|
||||
|
||||
@@ -21,15 +21,16 @@
|
||||
android:orientation="vertical">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_pair_success_device_image"
|
||||
android:layout_width="@dimen/dp_130"
|
||||
android:layout_height="@dimen/dp_90"
|
||||
android:layout_height="@dimen/dp_100"
|
||||
android:layout_marginTop="@dimen/dp_50"
|
||||
android:src="@drawable/icon_tracker_device_small" />
|
||||
|
||||
<com.abbidot.tracker.widget.TypefaceTextView
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_marginTop="@dimen/dp_28"
|
||||
android:layout_marginTop="@dimen/dp_18"
|
||||
android:layout_marginBottom="@dimen/dp_8"
|
||||
android:text="@string/txt_id_number"
|
||||
android:textColor="@color/select_color3"
|
||||
@@ -67,11 +68,11 @@
|
||||
android:id="@+id/il_pair_success_bluetooth_tips"
|
||||
layout="@layout/layout_ble_connect_state"
|
||||
android:layout_width="wrap_content"
|
||||
android:visibility="invisible"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_above="@id/btn_payment_success_continue"
|
||||
android:layout_centerHorizontal="true"
|
||||
android:layout_marginTop="@dimen/dp_38" />
|
||||
android:layout_marginTop="@dimen/dp_38"
|
||||
android:visibility="invisible" />
|
||||
|
||||
<com.abbidot.tracker.widget.TypefaceButton
|
||||
android:id="@+id/btn_pair_success_activate"
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
android:id="@+id/switch_only_google_map"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="@dimen/dp_38"
|
||||
android:layout_marginBottom="@dimen/dp_2"
|
||||
android:layout_marginBottom="@dimen/dp_6"
|
||||
android:background="@drawable/selector_shape6_gray_bg_pressed"
|
||||
app:qmui_accessory_type="switcher" />
|
||||
|
||||
|
||||
@@ -19,9 +19,8 @@
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_home_pet_track_pet_head"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="@dimen/dp_80"
|
||||
android:src="@drawable/icon_tracker_device_small" />
|
||||
android:layout_width="@dimen/dp_80"
|
||||
android:layout_height="@dimen/dp_80" />
|
||||
|
||||
<com.abbidot.tracker.widget.TypefaceTextView
|
||||
android:id="@+id/tv_home_pet_track_id"
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
<com.abbidot.tracker.widget.TypefaceTextView
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:layout_width="0dp"
|
||||
android:id="@+id/tv_device_light_switch_title"
|
||||
android:layout_weight="1"
|
||||
android:drawableStart="@drawable/icon_light_svg"
|
||||
android:text="@string/txt_light"
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
android:paddingHorizontal="@dimen/dp_30">
|
||||
|
||||
<androidx.appcompat.widget.AppCompatImageView
|
||||
android:id="@+id/iv_add_new_tracker3_device_image"
|
||||
android:layout_width="@dimen/dp_24"
|
||||
android:layout_height="@dimen/dp_24"
|
||||
android:layout_marginEnd="@dimen/dp_10"
|
||||
@@ -17,8 +18,7 @@
|
||||
android:id="@+id/tv_add_new_tracker3_device_out_id_item"
|
||||
style="@style/my_TextView_style_v2"
|
||||
android:text="a0c0c1"
|
||||
android:textAllCaps="true"
|
||||
android:textSize="@dimen/textSize20"
|
||||
android:textSize="@dimen/textSize18"
|
||||
app:typeface="@string/roboto_regular_font" />
|
||||
|
||||
<View
|
||||
|
||||
@@ -1068,5 +1068,6 @@
|
||||
<string name="txt_locating">Locating…</string>
|
||||
<string name="txt_auto_subscription_years">(Renew at $%s/%s years thereafter)</string>
|
||||
<string name="txt_auto_subscription_months">(Renew at $%s/%s months thereafter)</string>
|
||||
<string name="txt_tone">Tone</string>
|
||||
|
||||
</resources>
|
||||