目录
replace
tv_name.text = it?.ssid?.replace("\"","")
if..else..
tv_name.text =
if (it?.ssid?.toLowerCase(Locale.getDefault())?.contains("klicens") == true)
it.ssid?.replace("\"", "") else "KlicenS"
ARouter跳转形式
ARouter.getInstance().navigation(CameraDeviceService::class.java)
ARouter.getInstance().build(ARouters.KlicenS.CONNECT_DEVICE).withFlags(
Intent.FLAG_ACTIVITY_NEW_TASK
).navigation()
ARouters.KlicenS.EMERGENCY_PICTURE.navigation {
withString(ARouters.KlicenS.EMERGENCY_PICTURE, viewModel.vehicleNotifyMessage?.extra?.dvrId)
withString(
ARouters.KlicenS.EMERGENCY_PICTURE,
viewModel.vehicleNotifyMessage?.extra?.dvrId
)
}
mJumpData?.getParcelable<Target>(ARouters.Account.ExtraKeys.KEY_EXTRA_TARGET)
null 判断
if (ssid.isNullOrEmpty() || ssid.contains("<unknown")) true
过滤
val data = adapter.data.filter {
return@filter it.isCheck == FileEntity.CHECKED
}
map
arrayMapOf("custom" to "1", "cmd" to "3010", "par" to "1")
loading提示
kLoading = showKLoading { }
kLoading?.dismiss()
toast调用
info(getString(R.string.device_disconnect))
打印日志
Logger.e("cmd = ${entity.cmd} ,,, status = ${entity.status}")
when
when (hours) {
ParameterCapability.TIME_LAPSE_VIDEO_1_HOURS -> BuriedPointService.TARGET_SCENE_VIDEO_1
else -> BuriedPointService.TARGET_SCENE_VIDEO_OFF
}
时间控件
// 只能选择到设备的安装时间
TrackPicker.builder {
minMillseconds = minMillsecond
maxMillseconds = maxMillsecond
callback = { startTime, endTime ->
callStatus?.invoke(startTime, endTime)
}
}.showIn(activity ?: return)
Glide 图片加载
Glide.with(context).load(
CameraUtils.getFileThumbnailUrl(
cameraDeviceService.ip.value ?: return,
data.name ?: return
)
CameraUtils.getFileThumbnailUrl(data.name ?: return)
).into(thumbnail)
防止重点
orientation?.clickThrottle {}
Dagger 调用
@Route(path = ARouters.KlicenS.KLICENSGALLERY)
class KlicenGallaryActivity : InjectedActivity(R.layout.activity_klicen_gallary) {
@Inject
lateinit var viewModel: KlicenGallaryViewModel
override fun inject() {
DaggerKlicenGallaryActivityComponent.builder()
.coreComponent(coreComponent())
.create(this)
.inject(this)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
setSupportActionBar(toolbar)
}
}
launch
if (oldData.isNullOrEmpty()) {
loadStateOfGetWishList.value = LoadState.LoadError(Throwable("test"))
return@launch
}
Dialog提示
KAlertDialog.show(this) {
message = "开启缩时录影将会消耗车辆电瓶电量,请谨慎使用"
positiveText = "我知道了"
}.onPositiveButtonClick {
it.dismiss()
}.show()
get()
private val userId: String
get() = getAService<AccountDataService>()?.userId?.toString() ?: "-1"
埋点
itemView.root_view_right.clickThrottleBuriedPoint
repeat循环
repeat(14) {
val item = VehicleServiceItem("Title $it", "Exp $it", "", "", "")
data.add(item)
}
ActivityManager
if (KActivityManager.isNotMainActivity(fragment.activity)) {
fragment.activity?.finish()
}
延迟加载
delay(2000)
layout_scroll?.postDelayed({
if ((tv_update_content?.lineCount ?: 0) >= 6) {
}
}, 1000)
runCatch
runCatch{
}.onFailure{
}
登录拦截
//需要登录
if (!(loginState?.value ?: LoginState.LOGOUT).isLoggedIn) {
//未登录,跳转登录
ARouters.Account.LOGIN.navigation()
return@onImgClick
}
水纹点击效果
android:background="?attr/selectableItemBackgroundBorderless"