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