diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SimHelper.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SimHelper.kt index 7002f8c..92b61df 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SimHelper.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/SimHelper.kt @@ -24,16 +24,14 @@ object SimHelper { if (intent?.action.equals("android.intent.action.SIM_STATE_CHANGED")) { val tm = context!!.getSystemService(Service.TELEPHONY_SERVICE) as TelephonyManager mSimState = tm.simState + callbacks.forEach { + it.onEnable(mSimState == TelephonyManager.SIM_STATE_READY) + } } Log.i( this@SimHelper.javaClass.name, - "onReceive action = ${intent?.action}, mSimState = $mSimState, mRssi = $mRssi" + "onReceive action = ${intent?.action}, mSimState = $mSimState" ) - callbacks.forEach { - it.onLevel( - mSimState == TelephonyManager.SIM_STATE_READY, mRssi - ) - } } } @@ -45,22 +43,20 @@ object SimHelper { private fun watchSimRssi(context: Context) { val tm = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager //获取指定卡槽的信号强度 - val info = getNewerSlotSubscriptionInfo(context, 0) - info?.let { - val mTelephonyManagerForSubscriptionId = - tm.createForSubscriptionId(info!!.subscriptionId) - mTelephonyManagerForSubscriptionId.listen(object : PhoneStateListener() { - override fun onSignalStrengthsChanged(signalStrength: SignalStrength) { - super.onSignalStrengthsChanged(signalStrength) - mRssi = signalStrength.level - callbacks.forEach { - it.onLevel( - mSimState == TelephonyManager.SIM_STATE_READY, mRssi - ) - } +// val mTelephonyManagerForSubscriptionId = +// tm.createForSubscriptionId(SubscriptionManager.getDefaultSubscriptionId()) + tm.listen(object : PhoneStateListener() { + override fun onSignalStrengthsChanged(signalStrength: SignalStrength) { + super.onSignalStrengthsChanged(signalStrength) + mRssi = signalStrength.level + callbacks.forEach { + it.onLevel(mRssi) } - }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS) - } + Log.i( + this@SimHelper.javaClass.name, "onSignalStrengthsChanged mRssi = $mRssi" + ) + } + }, PhoneStateListener.LISTEN_SIGNAL_STRENGTHS) } private fun watchSimState(context: Context) { @@ -71,7 +67,10 @@ object SimHelper { fun addCallBack(callBack: OnSimLevelCallback) { callbacks.add(callBack) if (mSimState != -1) { - callBack.onLevel(mSimState == TelephonyManager.SIM_STATE_READY, mRssi) + callBack.onEnable(mSimState == TelephonyManager.SIM_STATE_READY) + } + if (mRssi != -1) { + callBack.onLevel(mRssi) } } @@ -85,7 +84,8 @@ object SimHelper { } interface OnSimLevelCallback { - fun onLevel(enable: Boolean, level: Int) + fun onEnable(enable: Boolean) + fun onLevel(level: Int) } diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/WifiHelper.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/WifiHelper.kt index d61d4c7..46a28e7 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/WifiHelper.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/utils/WifiHelper.kt @@ -17,19 +17,20 @@ object WifiHelper { if (intent?.action.equals(WifiManager.WIFI_STATE_CHANGED_ACTION)) { val wifiState = intent?.getIntExtra(WifiManager.EXTRA_WIFI_STATE, -1) mWifiState = wifiState!! + callbacks.forEach { + it.onEnable(mWifiState == WifiManager.WIFI_STATE_ENABLED) + } } else if (intent?.action.equals(WifiManager.RSSI_CHANGED_ACTION)) { val rssi = intent?.getIntExtra(WifiManager.EXTRA_NEW_RSSI, -1) mRssi = WifiManager.calculateSignalLevel(rssi!!, 5) + callbacks.forEach { + it.onLevel(mRssi) + } } Log.i( this@WifiHelper.javaClass.name, "onReceive action = ${intent?.action}, wifiState = $mWifiState, mRssi = $mRssi" ) - callbacks.forEach { - it.onLevel( - mWifiState == WifiManager.WIFI_STATE_ENABLED, mRssi - ) - } } } @@ -46,7 +47,10 @@ object WifiHelper { fun addCallBack(callBack: OnWifiLevelCallback) { callbacks.add(callBack) if (mWifiState != -1) { - callBack.onLevel(mWifiState == WifiManager.WIFI_STATE_ENABLED, mRssi) + callBack.onEnable(mWifiState == WifiManager.WIFI_STATE_ENABLED) + } + if (mRssi != -1) { + callBack.onLevel(mRssi) } } @@ -60,6 +64,7 @@ object WifiHelper { } interface OnWifiLevelCallback { - fun onLevel(enable: Boolean, level: Int) + fun onEnable(enable: Boolean) + fun onLevel(level: Int) } } \ No newline at end of file diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/view/CommonTopBar.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/view/CommonTopBar.kt index 6a21283..47ff2d2 100644 --- a/app/src/main/java/com/yinuo/safetywatcher/watcher/view/CommonTopBar.kt +++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/view/CommonTopBar.kt @@ -43,6 +43,11 @@ class CommonTopBar : LinearLayout { } } + // 默认满信号 + mBinding?.battery?.setImageLevel(100) + mBinding?.wifi?.setImageLevel(100) + mBinding?.fourG?.setImageLevel(100) + post { // watch battery watchBattery() @@ -54,7 +59,7 @@ class CommonTopBar : LinearLayout { private val batteryCallback = object : BatteryHelper.OnBatteryLevelCallback { override fun onLevel(level: Int) { Log.i(this@CommonTopBar.javaClass.name, "batteryCallback onLevel = $level") - mBinding?.battery?.visibility = if (level > 80) VISIBLE else GONE + mBinding?.battery?.setImageLevel(level) } } @@ -63,17 +68,20 @@ class CommonTopBar : LinearLayout { } private val wifiCallback = object : WifiHelper.OnWifiLevelCallback { - override fun onLevel(enable: Boolean, level: Int) { - Log.i( - this@CommonTopBar.javaClass.name, - "wifiCallback onEnable = $enable , level = $level" - ) + override fun onEnable(enable: Boolean) { + Log.i(this@CommonTopBar.javaClass.name, "wifiCallback onEnable = $enable") if (enable) { mBinding?.wifi?.visibility = VISIBLE } else { mBinding?.wifi?.visibility = GONE } } + + override fun onLevel(level: Int) { + Log.i(this@CommonTopBar.javaClass.name, "wifiCallback onLevel = $level") + val showLevel = (level + 1) * 20 + mBinding?.wifi?.setImageLevel(showLevel) + } } private fun watchWifi() { @@ -82,17 +90,20 @@ class CommonTopBar : LinearLayout { private val simCallback = object : SimHelper.OnSimLevelCallback { - override fun onLevel(enable: Boolean, level: Int) { - Log.i( - this@CommonTopBar.javaClass.name, - "simCallback onEnable = $enable , level = $level" - ) + override fun onEnable(enable: Boolean) { + Log.i(this@CommonTopBar.javaClass.name, "simCallback onEnable = $enable") if (enable) { mBinding?.fourG?.visibility = VISIBLE } else { mBinding?.fourG?.visibility = GONE } } + + override fun onLevel(level: Int) { + Log.i(this@CommonTopBar.javaClass.name, "simCallback onLevel = $level") + val showLevel = (level + 1) * 20 + mBinding?.fourG?.setImageLevel(showLevel) + } } private fun watchSim() { @@ -138,11 +149,12 @@ class CommonTopBar : LinearLayout { class Option(val type: Int, val title: String) - private var mOpListener:OpClickListener?=null + private var mOpListener: OpClickListener? = null - fun setOpClickListener(opClickListener: OpClickListener){ + fun setOpClickListener(opClickListener: OpClickListener) { mOpListener = opClickListener; } + interface OpClickListener { fun onClick(type: Int, target: View) } diff --git a/app/src/main/res/drawable-hdpi/battery_0.png b/app/src/main/res/drawable-hdpi/battery_0.png new file mode 100644 index 0000000..0a05c18 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_0.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_100.png b/app/src/main/res/drawable-hdpi/battery_100.png new file mode 100644 index 0000000..1a87a2e Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_100.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_20.png b/app/src/main/res/drawable-hdpi/battery_20.png new file mode 100644 index 0000000..8fe1d6f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_20.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_40.png b/app/src/main/res/drawable-hdpi/battery_40.png new file mode 100644 index 0000000..e0f5b52 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_40.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_60.png b/app/src/main/res/drawable-hdpi/battery_60.png new file mode 100644 index 0000000..af5f1c1 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_60.png differ diff --git a/app/src/main/res/drawable-hdpi/battery_80.png b/app/src/main/res/drawable-hdpi/battery_80.png new file mode 100644 index 0000000..33a52af Binary files /dev/null and b/app/src/main/res/drawable-hdpi/battery_80.png differ diff --git a/app/src/main/res/drawable-hdpi/net_1.png b/app/src/main/res/drawable-hdpi/net_1.png new file mode 100644 index 0000000..3511870 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/net_1.png differ diff --git a/app/src/main/res/drawable-hdpi/net_2.png b/app/src/main/res/drawable-hdpi/net_2.png new file mode 100644 index 0000000..d6db46f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/net_2.png differ diff --git a/app/src/main/res/drawable-hdpi/net_3.png b/app/src/main/res/drawable-hdpi/net_3.png new file mode 100644 index 0000000..388d08c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/net_3.png differ diff --git a/app/src/main/res/drawable-hdpi/net_4.png b/app/src/main/res/drawable-hdpi/net_4.png new file mode 100644 index 0000000..0b99d7d Binary files /dev/null and b/app/src/main/res/drawable-hdpi/net_4.png differ diff --git a/app/src/main/res/drawable-hdpi/net_5.png b/app/src/main/res/drawable-hdpi/net_5.png new file mode 100644 index 0000000..43415f0 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/net_5.png differ diff --git a/app/src/main/res/drawable-hdpi/wifi_1.png b/app/src/main/res/drawable-hdpi/wifi_1.png new file mode 100644 index 0000000..66b5988 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/wifi_1.png differ diff --git a/app/src/main/res/drawable-hdpi/wifi_2.png b/app/src/main/res/drawable-hdpi/wifi_2.png new file mode 100644 index 0000000..fdd5908 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/wifi_2.png differ diff --git a/app/src/main/res/drawable-hdpi/wifi_3.png b/app/src/main/res/drawable-hdpi/wifi_3.png new file mode 100644 index 0000000..b29f6ad Binary files /dev/null and b/app/src/main/res/drawable-hdpi/wifi_3.png differ diff --git a/app/src/main/res/drawable/battery.xml b/app/src/main/res/drawable/battery.xml new file mode 100644 index 0000000..c6899c2 --- /dev/null +++ b/app/src/main/res/drawable/battery.xml @@ -0,0 +1,28 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/net.xml b/app/src/main/res/drawable/net.xml new file mode 100644 index 0000000..d2f45b6 --- /dev/null +++ b/app/src/main/res/drawable/net.xml @@ -0,0 +1,23 @@ + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/drawable/wifi.xml b/app/src/main/res/drawable/wifi.xml new file mode 100644 index 0000000..2b61f58 --- /dev/null +++ b/app/src/main/res/drawable/wifi.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/layout_topbar.xml b/app/src/main/res/layout/layout_topbar.xml index e6d001e..7806f65 100644 --- a/app/src/main/res/layout/layout_topbar.xml +++ b/app/src/main/res/layout/layout_topbar.xml @@ -15,7 +15,7 @@ @@ -52,24 +52,26 @@ + android:src="@drawable/battery"/> + android:src="@drawable/wifi" + android:visibility="gone"/> + android:src="@drawable/net" + android:visibility="gone"/> 50px 186px 90px + 33px + 37px + 27px \ 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 d752ae9..ce1f488 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -14,7 +14,7 @@ 传感器设置 云平台 网络参数设置 - 传感器回复出厂设置 + 恢复出厂设置 同步传感器数据 同步报警数据 同步视频 diff --git a/buildCommon/commonLibConfig.gradle b/buildCommon/commonLibConfig.gradle index 5ef6240..2892488 100644 --- a/buildCommon/commonLibConfig.gradle +++ b/buildCommon/commonLibConfig.gradle @@ -11,7 +11,7 @@ project.ext { ] versions = [ - compileSdkVersion : 33, + compileSdkVersion : 31, buildToolsVersion : "33.0.3", minSdkVersion : 24, targetSdkVersion : 28,