From 841ed264dc3997b6a3464aff0c92e2d431ee147f Mon Sep 17 00:00:00 2001 From: xiaowusky Date: Mon, 29 May 2023 17:15:34 +0800 Subject: [PATCH] =?UTF-8?q?desc:=E5=91=8A=E8=AD=A6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 4 ++ .../safetywatcher/watcher/CloudActivity.kt | 9 ++- .../safetywatcher/watcher/HomeActivity.kt | 8 ++- .../safetywatcher/watcher/SettingActivity.kt | 13 +++-- .../safetywatcher/watcher/WarnDataActivity.kt | 42 ++++++++++++++ .../watcher/base/BaseActivity.kt | 31 +++++++++-- .../watcher/base/NoOptionsActivity.kt | 14 +++++ .../safetywatcher/watcher/utils/SimHelper.kt | 2 +- .../watcher/view/CommonTopBar.kt | 52 ++++++++++++++++++ app/src/main/res/layout/activity_cloud.xml | 1 + app/src/main/res/layout/activity_warndata.xml | 6 ++ app/src/main/res/layout/layout_topbar.xml | 21 ++++--- app/src/main/res/mipmap-hdpi/op_bg.png | Bin 0 -> 596 bytes app/src/main/res/mipmap-mdpi/op_bg.png | Bin 0 -> 357 bytes app/src/main/res/mipmap-xhdpi/op_bg.png | Bin 0 -> 765 bytes app/src/main/res/mipmap-xxhdpi/op_bg.png | Bin 0 -> 1446 bytes app/src/main/res/values/dimens.xml | 2 + app/src/main/res/values/strings.xml | 2 + 18 files changed, 186 insertions(+), 21 deletions(-) create mode 100644 app/src/main/java/com/yinuo/safetywatcher/watcher/WarnDataActivity.kt create mode 100644 app/src/main/java/com/yinuo/safetywatcher/watcher/base/NoOptionsActivity.kt create mode 100644 app/src/main/res/layout/activity_warndata.xml create mode 100644 app/src/main/res/mipmap-hdpi/op_bg.png create mode 100644 app/src/main/res/mipmap-mdpi/op_bg.png create mode 100644 app/src/main/res/mipmap-xhdpi/op_bg.png create mode 100644 app/src/main/res/mipmap-xxhdpi/op_bg.png 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