diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index f0ca2c5..da55d0e 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -44,11 +44,17 @@
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
+
+ pumpSwitch.setOnCheckedChangeListener { _, isChecked ->
if (isChecked) onPumpOpen() else onPumpClose()
}
+ itemLink.setOnClickListener {
+ linkSwitch.performClick()
+ }
+ linkSwitch.setOnCheckedChangeListener { _, isChecked ->
+ if (isChecked) LztekUtil.openLinkSwitch() else LztekUtil.closeLinkSwitch()
+ }
+
itemSetting.postDelayed(500) {
itemSetting.requestFocus()
}
@@ -254,8 +262,10 @@ class HomeActivity : NoOptionsActivity() {
if (builder.toString().isNotEmpty()) {
mBinding.tvWarn.text = builder.toString()
mBinding.tvWarn.visibility = View.VISIBLE
+ LztekUtil.openLinkI0()
} else {
mBinding.tvWarn.visibility = View.GONE
+ LztekUtil.closeLinkIO()
}
}
}
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/LinkSettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/LinkSettingActivity.kt
new file mode 100644
index 0000000..8f5acd9
--- /dev/null
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/LinkSettingActivity.kt
@@ -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()
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt
index 7115ec1..41762b3 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/ui/SettingActivity.kt
@@ -8,6 +8,7 @@ import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySettingBinding
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.ui.view.ConfirmDialog
+import com.yinuo.safetywatcher.watcher.utils.LztekUtil
import com.yinuo.safetywatcher.watcher.utils.SpeedUtils
class SettingActivity : NoOptionsActivity() {
@@ -55,12 +56,17 @@ class SettingActivity : NoOptionsActivity() {
startActivity(Intent(this@SettingActivity, SpeedSettingActivity::class.java))
}
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 {
startActivity(Intent(this@SettingActivity, CloudActivity::class.java))
}
itemNet.setOnClickListener {
startActivity(Intent(this@SettingActivity, NetSettingActivity::class.java))
}
+
itemRecovery.setOnClickListener {
resetFactoryDialog.show(supportFragmentManager, "resetDialog")
}
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt
index 33fd227..f15aded 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/LztekUtil.kt
@@ -1,13 +1,16 @@
package com.yinuo.safetywatcher.watcher.utils
import android.os.Environment
-import android.os.StatFs
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.lztek.toolkit.Lztek
import com.yinuo.safetywatcher.watcher.constant.STORAGE_WARN_THRESHOLD
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
object LztekUtil {
@@ -84,4 +87,46 @@ object LztekUtil {
}
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)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
index 159f2a0..2fbbdc4 100644
--- a/app/src/main/res/layout/activity_home.xml
+++ b/app/src/main/res/layout/activity_home.xml
@@ -7,43 +7,43 @@
android:id="@+id/surface"
android:layout_width="@dimen/_1920dp"
android:layout_height="@dimen/_1080dp"
- android:layout_alignParentBottom="true"/>
+ android:layout_alignParentBottom="true" />
+ android:scaleType="centerCrop"
+ android:src="@drawable/ic_icon" />
+ android:layout_marginStart="@dimen/_12dp"
+ android:layout_marginTop="@dimen/_132dp" />
+ android:paddingTop="@dimen/_50dp">
+ android:layout_marginStart="@dimen/_13dp"
+ android:checked="false" />
+ android:layout_marginStart="@dimen/_13dp"
+ android:checked="false" />
+
+
+
+
+
+
+
@@ -183,13 +208,13 @@
android:id="@+id/tv_warn"
android:layout_width="@dimen/_536dp"
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:minHeight="@dimen/_100dp"
- android:layout_marginTop="220px"
- android:layout_centerHorizontal="true"
- android:textSize="@dimen/_30dp"
- android:visibility="gone"
+ android:padding="@dimen/_12dp"
android:textColor="@color/white"
- android:background="@drawable/sensor_init_btn_bg"/>
+ android:textSize="@dimen/_30dp"
+ android:visibility="gone" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_link_setting.xml b/app/src/main/res/layout/activity_link_setting.xml
new file mode 100644
index 0000000..00f5de0
--- /dev/null
+++ b/app/src/main/res/layout/activity_link_setting.xml
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_setting.xml b/app/src/main/res/layout/activity_setting.xml
index cbd4453..70f1268 100644
--- a/app/src/main/res/layout/activity_setting.xml
+++ b/app/src/main/res/layout/activity_setting.xml
@@ -201,6 +201,34 @@
android:textSize="@dimen/_36dp" />
+
+
+
+
+
+
+
+
+
1080px
120px
624px
+ 712px
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index aa876e3..fae5dff 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -94,4 +94,8 @@
无网络连接,请稍后再试!
泵开关
+ 联动开关
+
+ 联动开关设置
+ 联动开关延时,单位:秒