desc:topbar icon

main
xiaowusky 2 years ago
parent 4b5e7c0feb
commit ac25a7dd6f

@ -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)
}

@ -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)
}
}

@ -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)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/battery_0"
android:maxLevel="10"
android:minLevel="0" />
<item
android:drawable="@drawable/battery_20"
android:maxLevel="20"
android:minLevel="11" />
<item
android:drawable="@drawable/battery_40"
android:maxLevel="40"
android:minLevel="21" />
<item
android:drawable="@drawable/battery_60"
android:maxLevel="60"
android:minLevel="41" />
<item
android:drawable="@drawable/battery_80"
android:maxLevel="80"
android:minLevel="61" />
<item
android:drawable="@drawable/battery_100"
android:maxLevel="100"
android:minLevel="81" />
</level-list>

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/net_1"
android:maxLevel="20"
android:minLevel="0" />
<item
android:drawable="@drawable/net_2"
android:maxLevel="40"
android:minLevel="21" />
<item
android:drawable="@drawable/net_3"
android:maxLevel="60"
android:minLevel="41" />
<item
android:drawable="@drawable/net_4"
android:maxLevel="80"
android:minLevel="61" />
<item
android:drawable="@drawable/net_5"
android:maxLevel="100"
android:minLevel="81" />
</level-list>

@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<level-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/wifi_1" android:minLevel="0" android:maxLevel="33"/>
<item android:drawable="@drawable/wifi_2" android:minLevel="34" android:maxLevel="66"/>
<item android:drawable="@drawable/wifi_3" android:minLevel="67" android:maxLevel="100"/>
</level-list>

@ -15,7 +15,7 @@
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_height="@dimen/_40dp"
android:layout_marginStart="@dimen/_31dp"
android:src="@mipmap/ic_back" />
@ -52,24 +52,26 @@
<ImageView
android:id="@+id/battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_50dp"
android:layout_height="@dimen/_27dp"
android:layout_marginStart="@dimen/_40dp"
android:src="@mipmap/ic_setting" />
android:src="@drawable/battery"/>
<ImageView
android:id="@+id/wifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_37dp"
android:layout_height="@dimen/_27dp"
android:layout_marginStart="@dimen/_40dp"
android:src="@mipmap/ic_setting" />
android:src="@drawable/wifi"
android:visibility="gone"/>
<ImageView
android:id="@+id/four_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_width="@dimen/_33dp"
android:layout_height="@dimen/_33dp"
android:layout_marginStart="@dimen/_40dp"
android:src="@mipmap/ic_setting" />
android:src="@drawable/net"
android:visibility="gone"/>
<Space
android:layout_width="@dimen/_36dp"

@ -29,4 +29,7 @@
<dimen name="_50dp">50px</dimen>
<dimen name="_186dp">186px</dimen>
<dimen name="_90dp">90px</dimen>
<dimen name="_33dp">33px</dimen>
<dimen name="_37dp">37px</dimen>
<dimen name="_27dp">27px</dimen>
</resources>

@ -14,7 +14,7 @@
<string name="sensor_setting">传感器设置</string>
<string name="cloud">云平台</string>
<string name="nei_setting">网络参数设置</string>
<string name="recovery_setting">传感器回复出厂设置</string>
<string name="recovery_setting">复出厂设置</string>
<string name="sync_sensor_txt">同步传感器数据</string>
<string name="sync_warn_txt">同步报警数据</string>
<string name="sync_video_txt">同步视频</string>

@ -11,7 +11,7 @@ project.ext {
]
versions = [
compileSdkVersion : 33,
compileSdkVersion : 31,
buildToolsVersion : "33.0.3",
minSdkVersion : 24,
targetSdkVersion : 28,

Loading…
Cancel
Save