diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index bcfa1cb..e001ab0 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -46,6 +46,10 @@
android:name=".watcher.CloudActivity"
android:exported="false"
android:screenOrientation="landscape"/>
+
? {
+ val ops = mutableListOf()
+ ops.add(CommonTopBar.Option(0, getString(R.string.search)))
+ ops.add(CommonTopBar.Option(1, getString(R.string.export)))
+ return ops
+ }
+
+ override fun getTopBarTitle(): String? {
+ return getString(R.string.warn_data)
+ }
+
+ override fun generateContentView(): View {
+ return mBinding.root
+ }
+
+ override fun initView() {
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt
index 0ce017b..1e946e5 100644
--- a/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/base/BaseActivity.kt
@@ -4,6 +4,7 @@ import android.os.Bundle
import android.view.View
import androidx.appcompat.app.AppCompatActivity
import com.yinuo.safetywatcher.databinding.ActivityBaseBinding
+import com.yinuo.safetywatcher.watcher.view.CommonTopBar
abstract class BaseActivity : AppCompatActivity() {
@@ -16,12 +17,32 @@ abstract class BaseActivity : AppCompatActivity() {
setContentView(baseBinding.root)
baseBinding.container.addView(generateContentView())
initView()
+ setTopBar()
}
- open abstract fun generateContentView(): View
- abstract fun initView()
-
- fun setTitle(title: String) {
- baseBinding.topBar.setTitle(title)
+ private fun setTopBar() {
+ val title = getTopBarTitle()
+ title?.let {
+ baseBinding.topBar.setTitle(it)
+ }
+ val options = getOptions()
+ options?.let {
+ baseBinding.topBar.setOptions(it)
+ baseBinding.topBar.setOpClickListener(object : CommonTopBar.OpClickListener {
+ override fun onClick(type: Int, target: View) {
+ onOptionClick(type, target)
+ }
+ })
+ }
}
+
+ abstract fun onOptionClick(type: Int, target: View)
+
+ abstract fun getOptions(): List?
+
+ abstract fun getTopBarTitle(): String?
+
+ abstract fun generateContentView(): View
+
+ abstract fun initView()
}
\ No newline at end of file
diff --git a/app/src/main/java/com/yinuo/safetywatcher/watcher/base/NoOptionsActivity.kt b/app/src/main/java/com/yinuo/safetywatcher/watcher/base/NoOptionsActivity.kt
new file mode 100644
index 0000000..445632d
--- /dev/null
+++ b/app/src/main/java/com/yinuo/safetywatcher/watcher/base/NoOptionsActivity.kt
@@ -0,0 +1,14 @@
+package com.yinuo.safetywatcher.watcher.base
+
+import android.view.View
+import com.yinuo.safetywatcher.watcher.view.CommonTopBar
+
+abstract class NoOptionsActivity : BaseActivity() {
+ override fun getOptions(): List? {
+ return null
+ }
+
+ override fun onOptionClick(type: Int, target: View) {
+
+ }
+}
\ No newline at end of file
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..bf4a914 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
@@ -45,7 +45,7 @@ object SimHelper {
private fun watchSimRssi(context: Context) {
val tm = context.getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
//获取指定卡槽的信号强度
- val info = getNewerSlotSubscriptionInfo(context, 0)
+ val info = getNewerSlotSubscriptionInfo(context, 1)
info?.let {
val mTelephonyManagerForSubscriptionId =
tm.createForSubscriptionId(info!!.subscriptionId)
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 d2bb3df..6a21283 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
@@ -2,10 +2,17 @@ package com.yinuo.safetywatcher.watcher.view
import android.app.Activity
import android.content.Context
+import android.graphics.Color
import android.util.AttributeSet
import android.util.Log
+import android.util.TypedValue
+import android.view.Gravity
import android.view.LayoutInflater
+import android.view.View
import android.widget.LinearLayout
+import android.widget.Space
+import android.widget.TextView
+import androidx.appcompat.content.res.AppCompatResources
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.LayoutTopbarBinding
import com.yinuo.safetywatcher.watcher.utils.BatteryHelper
@@ -97,6 +104,51 @@ class CommonTopBar : LinearLayout {
mBinding?.title?.text = title
}
+ //------------------------options----------------------------------------
+
+ private val opLayoutParams by lazy {
+ LinearLayout.LayoutParams(132, 55)
+ }
+ private val opSpaceLayoutParams by lazy {
+ LinearLayout.LayoutParams(60, 1)
+ }
+
+ private val opClickListener by lazy {
+ OnClickListener {
+ mOpListener?.onClick(it.tag as Int, it)
+ }
+ }
+
+ fun setOptions(list: List