desc:增加联动开关

main
xiaowusky 1 year ago
parent b57348ad15
commit 322c14db1a

@ -44,11 +44,17 @@
android:roundIcon="@mipmap/ic_launcher_round" android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme"> android:theme="@style/AppTheme">
<activity
android:name=".watcher.ui.LinkSettingActivity"
android:screenOrientation="landscape"
android:exported="false" />
<activity <activity
android:name=".watcher.ui.SensorCalibrationListActivity" android:name=".watcher.ui.SensorCalibrationListActivity"
android:screenOrientation="landscape"
android:exported="false" /> android:exported="false" />
<activity <activity
android:name=".watcher.ui.SensorCalibrationActivity" android:name=".watcher.ui.SensorCalibrationActivity"
android:screenOrientation="landscape"
android:exported="false" /> android:exported="false" />
<service <service

@ -25,6 +25,7 @@ import com.yinuo.safetywatcher.watcher.services.HeartbeatService
import com.yinuo.safetywatcher.watcher.ui.view.ConfirmDialog import com.yinuo.safetywatcher.watcher.ui.view.ConfirmDialog
import com.yinuo.safetywatcher.watcher.utils.BatteryHelper import com.yinuo.safetywatcher.watcher.utils.BatteryHelper
import com.yinuo.safetywatcher.watcher.utils.GPIOUtils import com.yinuo.safetywatcher.watcher.utils.GPIOUtils
import com.yinuo.safetywatcher.watcher.utils.LztekUtil
import com.yinuo.safetywatcher.watcher.utils.RecordHelper import com.yinuo.safetywatcher.watcher.utils.RecordHelper
import com.yinuo.safetywatcher.watcher.utils.SimHelper import com.yinuo.safetywatcher.watcher.utils.SimHelper
import com.yinuo.safetywatcher.watcher.utils.SpeedUtils import com.yinuo.safetywatcher.watcher.utils.SpeedUtils
@ -88,10 +89,17 @@ class HomeActivity : NoOptionsActivity() {
itemPump.setOnClickListener { itemPump.setOnClickListener {
pumpSwitch.performClick() pumpSwitch.performClick()
} }
pumpSwitch.setOnCheckedChangeListener { buttonView, isChecked -> pumpSwitch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) onPumpOpen() else onPumpClose() if (isChecked) onPumpOpen() else onPumpClose()
} }
itemLink.setOnClickListener {
linkSwitch.performClick()
}
linkSwitch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) LztekUtil.openLinkSwitch() else LztekUtil.closeLinkSwitch()
}
itemSetting.postDelayed(500) { itemSetting.postDelayed(500) {
itemSetting.requestFocus() itemSetting.requestFocus()
} }
@ -254,8 +262,10 @@ class HomeActivity : NoOptionsActivity() {
if (builder.toString().isNotEmpty()) { if (builder.toString().isNotEmpty()) {
mBinding.tvWarn.text = builder.toString() mBinding.tvWarn.text = builder.toString()
mBinding.tvWarn.visibility = View.VISIBLE mBinding.tvWarn.visibility = View.VISIBLE
LztekUtil.openLinkI0()
} else { } else {
mBinding.tvWarn.visibility = View.GONE mBinding.tvWarn.visibility = View.GONE
LztekUtil.closeLinkIO()
} }
} }
} }

@ -0,0 +1,63 @@
package com.yinuo.safetywatcher.watcher.ui
import android.view.KeyEvent
import android.view.View
import com.yinuo.safetywatcher.databinding.ActivityLinkSettingBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.utils.LztekUtil
import com.yinuo.safetywatcher.watcher.utils.showIme
import com.yinuo.safetywatcher.watcher.utils.showToast
class LinkSettingActivity : NoOptionsActivity() {
private val mBinding by lazy {
ActivityLinkSettingBinding.inflate(layoutInflater)
}
override fun generateContentView(): View {
return mBinding.root
}
override fun initView() {
mBinding.linkDelay.setText(LztekUtil.getLinkDelay().toString())
setListener()
}
private fun setListener() {
mBinding.linkDelay.setOnKeyListener { _, keyCode, event ->
if (keyCode == KeyEvent.KEYCODE_DPAD_UP) {
if (event.action == KeyEvent.ACTION_DOWN) {
tryFocusBackArea()
return@setOnKeyListener true
}
} else if (keyCode == KeyEvent.KEYCODE_DPAD_DOWN) {
if (event.action == KeyEvent.ACTION_DOWN) {
mBinding.tvSave.requestFocus()
return@setOnKeyListener true
}
} else if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER || keyCode == KeyEvent.KEYCODE_ENTER) {
if (event.action == KeyEvent.ACTION_DOWN) {
mBinding.linkDelay.showIme()
return@setOnKeyListener true
}
}
return@setOnKeyListener false
}
mBinding.tvSave.setOnClickListener {
saveData()
}
}
private fun saveData() {
val toString = mBinding.linkDelay.text.toString()
if (toString.isEmpty()) {
showToast("请输入具体数值!")
return
}
val toInt = toString.toInt()
LztekUtil.setLinkDelay(toInt)
showToast("保存成功")
finish()
}
}

@ -8,6 +8,7 @@ import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySettingBinding import com.yinuo.safetywatcher.databinding.ActivitySettingBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.ui.view.ConfirmDialog import com.yinuo.safetywatcher.watcher.ui.view.ConfirmDialog
import com.yinuo.safetywatcher.watcher.utils.LztekUtil
import com.yinuo.safetywatcher.watcher.utils.SpeedUtils import com.yinuo.safetywatcher.watcher.utils.SpeedUtils
class SettingActivity : NoOptionsActivity() { class SettingActivity : NoOptionsActivity() {
@ -55,12 +56,17 @@ class SettingActivity : NoOptionsActivity() {
startActivity(Intent(this@SettingActivity, SpeedSettingActivity::class.java)) startActivity(Intent(this@SettingActivity, SpeedSettingActivity::class.java))
} }
itemSpeed.visibility = if (speed == 0) View.GONE else View.VISIBLE itemSpeed.visibility = if (speed == 0) View.GONE else View.VISIBLE
itemLink.setOnClickListener {
startActivity(Intent(this@SettingActivity, LinkSettingActivity::class.java))
}
itemLink.visibility = if (!LztekUtil.isLinkSwitchOpen()) View.GONE else View.VISIBLE
itemCloud.setOnClickListener { itemCloud.setOnClickListener {
startActivity(Intent(this@SettingActivity, CloudActivity::class.java)) startActivity(Intent(this@SettingActivity, CloudActivity::class.java))
} }
itemNet.setOnClickListener { itemNet.setOnClickListener {
startActivity(Intent(this@SettingActivity, NetSettingActivity::class.java)) startActivity(Intent(this@SettingActivity, NetSettingActivity::class.java))
} }
itemRecovery.setOnClickListener { itemRecovery.setOnClickListener {
resetFactoryDialog.show(supportFragmentManager, "resetDialog") resetFactoryDialog.show(supportFragmentManager, "resetDialog")
} }

@ -1,13 +1,16 @@
package com.yinuo.safetywatcher.watcher.utils package com.yinuo.safetywatcher.watcher.utils
import android.os.Environment import android.os.Environment
import android.os.StatFs
import com.common.commonlib.CommonApplication import com.common.commonlib.CommonApplication
import com.common.commonlib.utils.NVME_KEYWORDS import com.common.commonlib.utils.MMKVUtils
import com.common.commonlib.utils.StorageUtils import com.common.commonlib.utils.StorageUtils
import com.lztek.toolkit.Lztek import com.lztek.toolkit.Lztek
import com.yinuo.safetywatcher.watcher.constant.STORAGE_WARN_THRESHOLD import com.yinuo.safetywatcher.watcher.constant.STORAGE_WARN_THRESHOLD
import com.yinuo.safetywatcher.watcher.constant.STORAGE_WARN_THRESHOLD_NVME import com.yinuo.safetywatcher.watcher.constant.STORAGE_WARN_THRESHOLD_NVME
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import org.easydarwin.PushHelper import org.easydarwin.PushHelper
object LztekUtil { object LztekUtil {
@ -84,4 +87,46 @@ object LztekUtil {
} }
return false return false
} }
var linkOpen = false
var mLinkDelay = 5
fun openLinkSwitch() {
linkOpen = true
}
fun closeLinkSwitch() {
closeLinkIO()
linkOpen = false
}
fun isLinkSwitchOpen(): Boolean {
return linkOpen
}
fun openLinkI0() {
if (isLinkSwitchOpen()) {
GlobalScope.launch(Dispatchers.IO) {
delay(mLinkDelay * 1000L)
GPIOUtils.setGpioValue(11, 1)
}
}
}
fun closeLinkIO() {
if (isLinkSwitchOpen()) {
GPIOUtils.setGpioValue(11, 0)
}
}
fun getLinkDelay(): Int {
val localValue = MMKVUtils.getInt("link_delay")
mLinkDelay = if (localValue > 0) localValue else 5
return mLinkDelay
}
fun setLinkDelay(delay: Int) {
mLinkDelay = delay
MMKVUtils.put("link_delay", delay)
}
} }

@ -7,43 +7,43 @@
android:id="@+id/surface" android:id="@+id/surface"
android:layout_width="@dimen/_1920dp" android:layout_width="@dimen/_1920dp"
android:layout_height="@dimen/_1080dp" android:layout_height="@dimen/_1080dp"
android:layout_alignParentBottom="true"/> android:layout_alignParentBottom="true" />
<ImageView <ImageView
android:id="@+id/error_view" android:id="@+id/error_view"
android:layout_width="@dimen/_1920dp" android:layout_width="@dimen/_1920dp"
android:layout_height="@dimen/_1080dp" android:layout_height="@dimen/_1080dp"
android:scaleType="centerCrop"
android:layout_alignParentBottom="true" android:layout_alignParentBottom="true"
android:src="@drawable/ic_icon"/> android:scaleType="centerCrop"
android:src="@drawable/ic_icon" />
<ImageView <ImageView
android:id="@+id/tip_View" android:id="@+id/tip_View"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_132dp" android:layout_marginStart="@dimen/_12dp"
android:layout_marginStart="@dimen/_12dp"/> android:layout_marginTop="@dimen/_132dp" />
<LinearLayout <LinearLayout
android:id="@+id/setting_area" android:id="@+id/setting_area"
android:layout_width="@dimen/_288dp" android:layout_width="wrap_content"
android:layout_height="@dimen/_624dp" android:layout_height="@dimen/_712dp"
android:layout_alignParentEnd="true" android:layout_alignParentEnd="true"
android:layout_marginEnd="@dimen/_21dp"
android:layout_marginTop="@dimen/_260dp" android:layout_marginTop="@dimen/_260dp"
android:layout_marginEnd="@dimen/_21dp"
android:background="@color/_242f4d_30" android:background="@color/_242f4d_30"
android:orientation="vertical" android:orientation="vertical"
android:paddingTop="@dimen/_68dp"> android:paddingTop="@dimen/_50dp">
<LinearLayout <LinearLayout
android:id="@+id/item_setting" android:id="@+id/item_setting"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/_88dp" android:layout_height="@dimen/_88dp"
android:gravity="center_vertical"
android:orientation="horizontal"
android:focusedByDefault="true"
android:focusable="true" android:focusable="true"
android:focusedByDefault="true"
android:gravity="center_vertical"
android:nextFocusDown="@id/item_query" android:nextFocusDown="@id/item_query"
android:orientation="horizontal"
android:paddingStart="@dimen/_66dp"> android:paddingStart="@dimen/_66dp">
<ImageView <ImageView
@ -64,9 +64,9 @@
android:id="@+id/item_query" android:id="@+id/item_query"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/_88dp" android:layout_height="@dimen/_88dp"
android:focusable="true"
android:gravity="center_vertical" android:gravity="center_vertical"
android:orientation="horizontal" android:orientation="horizontal"
android:focusable="true"
android:paddingStart="@dimen/_66dp"> android:paddingStart="@dimen/_66dp">
<ImageView <ImageView
@ -149,9 +149,9 @@
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/camera_switch" android:id="@+id/camera_switch"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:checked="false"
android:layout_height="@dimen/_34dp" android:layout_height="@dimen/_34dp"
android:layout_marginStart="@dimen/_13dp" /> android:layout_marginStart="@dimen/_13dp"
android:checked="false" />
</LinearLayout> </LinearLayout>
<LinearLayout <LinearLayout
@ -173,9 +173,34 @@
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/pump_switch" android:id="@+id/pump_switch"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:checked="false"
android:layout_height="@dimen/_34dp" android:layout_height="@dimen/_34dp"
android:layout_marginStart="@dimen/_13dp" /> android:layout_marginStart="@dimen/_13dp"
android:checked="false" />
</LinearLayout>
<LinearLayout
android:id="@+id/item_link"
android:layout_width="wrap_content"
android:layout_height="@dimen/_88dp"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingEnd="@dimen/_50dp"
android:paddingStart="@dimen/_66dp">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/link_switch"
android:textColor="@color/white"
android:textSize="@dimen/_30dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/link_switch"
android:layout_width="wrap_content"
android:layout_height="@dimen/_34dp"
android:layout_marginStart="@dimen/_13dp"
android:checked="false" />
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
@ -183,13 +208,13 @@
android:id="@+id/tv_warn" android:id="@+id/tv_warn"
android:layout_width="@dimen/_536dp" android:layout_width="@dimen/_536dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:padding="@dimen/_12dp" android:layout_centerHorizontal="true"
android:layout_marginTop="220px"
android:background="@drawable/sensor_init_btn_bg"
android:gravity="center" android:gravity="center"
android:minHeight="@dimen/_100dp" android:minHeight="@dimen/_100dp"
android:layout_marginTop="220px" android:padding="@dimen/_12dp"
android:layout_centerHorizontal="true"
android:textSize="@dimen/_30dp"
android:visibility="gone"
android:textColor="@color/white" android:textColor="@color/white"
android:background="@drawable/sensor_init_btn_bg"/> android:textSize="@dimen/_30dp"
android:visibility="gone" />
</RelativeLayout> </RelativeLayout>

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingStart="@dimen/_121dp"
android:paddingTop="@dimen/_61dp">
<TextView
android:id="@+id/tv_max"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/_40dp"
android:text="@string/link_delay_setting"
android:textColor="@color/white"
android:textSize="@dimen/_30dp" />
<EditText
android:id="@+id/link_delay"
android:layout_width="@dimen/_600dp"
android:layout_height="@dimen/_100dp"
android:layout_marginTop="@dimen/_20dp"
android:background="@drawable/cloud_sync_btn_bg"
android:paddingStart="@dimen/_12dp"
android:focusable="true"
android:nextFocusDown="@id/link_delay"
android:inputType="number"
android:textColor="@color/white"
android:textSize="@dimen/_30dp" />
<TextView
android:id="@+id/tv_save"
android:layout_width="@dimen/_160dp"
android:layout_height="@dimen/_80dp"
android:layout_marginTop="@dimen/_40dp"
android:background="@drawable/save_btn_bg"
android:focusable="true"
android:gravity="center"
android:text="@string/save"
android:textColor="@color/white"
android:textSize="@dimen/_30dp" />
</LinearLayout>

@ -201,6 +201,34 @@
android:textSize="@dimen/_36dp" /> android:textSize="@dimen/_36dp" />
</LinearLayout> </LinearLayout>
<View
android:layout_width="match_parent"
android:layout_height="@dimen/_2dp"
android:background="@color/_242f4d" />
<LinearLayout
android:id="@+id/item_link"
android:layout_width="match_parent"
android:layout_height="@dimen/_108dp"
android:focusable="true"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingStart="@dimen/_121dp">
<ImageView
android:layout_width="@dimen/_32dp"
android:layout_height="@dimen/_32dp"
android:src="@mipmap/ic_link" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_21dp"
android:text="@string/link_setting"
android:textColor="@color/white"
android:textSize="@dimen/_36dp" />
</LinearLayout>
<View <View
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="@dimen/_2dp" android:layout_height="@dimen/_2dp"

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

@ -62,4 +62,5 @@
<dimen name="_1080dp">1080px</dimen> <dimen name="_1080dp">1080px</dimen>
<dimen name="_120dp">120px</dimen> <dimen name="_120dp">120px</dimen>
<dimen name="_624dp">624px</dimen> <dimen name="_624dp">624px</dimen>
<dimen name="_712dp">712px</dimen>
</resources> </resources>

@ -94,4 +94,8 @@
<string name="net_off">无网络连接,请稍后再试!</string> <string name="net_off">无网络连接,请稍后再试!</string>
<string name="pump_switch">泵开关</string> <string name="pump_switch">泵开关</string>
<string name="link_switch">联动开关</string>
<string name="link_setting">联动开关设置</string>
<string name="link_delay_setting">联动开关延时,单位:秒</string>
</resources> </resources>

Loading…
Cancel
Save