desc:告警数据界面

main
xiaowusky 2 years ago
parent ccf804bdf8
commit 841ed264dc

@ -46,6 +46,10 @@
android:name=".watcher.CloudActivity"
android:exported="false"
android:screenOrientation="landscape"/>
<activity
android:name=".watcher.WarnDataActivity"
android:exported="false"
android:screenOrientation="landscape"/>
<activity
android:name=".MainActivity"
android:exported="false"

@ -1,14 +1,19 @@
package com.yinuo.safetywatcher.watcher
import android.view.View
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityCloudBinding
import com.yinuo.safetywatcher.watcher.base.BaseActivity
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
class CloudActivity : BaseActivity() {
class CloudActivity : NoOptionsActivity() {
private val mBinding: ActivityCloudBinding by lazy {
ActivityCloudBinding.inflate(layoutInflater)
}
override fun getTopBarTitle(): String? {
return getString(R.string.cloud)
}
override fun generateContentView(): View {
return mBinding.root
}

@ -5,17 +5,21 @@ import android.os.Build
import android.view.View
import androidx.annotation.RequiresApi
import com.yinuo.safetywatcher.databinding.ActivityHomeBinding
import com.yinuo.safetywatcher.watcher.base.BaseActivity
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
import com.yinuo.safetywatcher.watcher.utils.BatteryHelper
import com.yinuo.safetywatcher.watcher.utils.SimHelper
import com.yinuo.safetywatcher.watcher.utils.WifiHelper
class HomeActivity : BaseActivity() {
class HomeActivity : NoOptionsActivity() {
private val mBinding: ActivityHomeBinding by lazy {
ActivityHomeBinding.inflate(layoutInflater)
}
override fun getTopBarTitle(): String? {
return null;
}
override fun generateContentView(): View {
return mBinding.root
}

@ -4,25 +4,30 @@ import android.content.Intent
import android.view.View
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivitySettingBinding
import com.yinuo.safetywatcher.watcher.base.BaseActivity
import com.yinuo.safetywatcher.watcher.base.NoOptionsActivity
class SettingActivity : BaseActivity() {
class SettingActivity : NoOptionsActivity() {
private val mBinding: ActivitySettingBinding by lazy {
ActivitySettingBinding.inflate(layoutInflater)
}
override fun getTopBarTitle(): String? {
return getString(R.string.setting)
}
override fun generateContentView(): View {
return mBinding.root
}
override fun initView() {
setTitle(getString(R.string.setting))
mBinding.apply {
itemTime.setOnClickListener { }
itemLight.setOnClickListener { }
itemQuery.setOnClickListener { }
itemWraning.setOnClickListener { }
itemWraning.setOnClickListener {
startActivity(Intent(this@SettingActivity, WarnDataActivity::class.java))
}
itemSensor.setOnClickListener { }
itemCloud.setOnClickListener {
startActivity(Intent(this@SettingActivity, CloudActivity::class.java))

@ -0,0 +1,42 @@
package com.yinuo.safetywatcher.watcher
import android.util.Log
import android.view.View
import com.yinuo.safetywatcher.R
import com.yinuo.safetywatcher.databinding.ActivityWarndataBinding
import com.yinuo.safetywatcher.watcher.base.BaseActivity
import com.yinuo.safetywatcher.watcher.view.CommonTopBar
class WarnDataActivity : BaseActivity() {
private val mBinding: ActivityWarndataBinding by lazy {
ActivityWarndataBinding.inflate(layoutInflater)
}
override fun onOptionClick(type: Int, target: View) {
Log.i("cyy", "type = $type")
if (0 == type) {
} else if (1 == type) {
}
}
override fun getOptions(): List<CommonTopBar.Option>? {
val ops = mutableListOf<CommonTopBar.Option>()
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() {
}
}

@ -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<CommonTopBar.Option>?
abstract fun getTopBarTitle(): String?
abstract fun generateContentView(): View
abstract fun initView()
}

@ -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<CommonTopBar.Option>? {
return null
}
override fun onOptionClick(type: Int, target: View) {
}
}

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

@ -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<Option>) {
list.forEachIndexed { index, option ->
val opView = TextView(context)
opView.text = option.title
opView.gravity = Gravity.CENTER
opView.setTextColor(Color.WHITE)
opView.setTextSize(TypedValue.COMPLEX_UNIT_PX, 30f)
opView.tag = option.type
opView.background = AppCompatResources.getDrawable(context, R.mipmap.op_bg)
opView.setOnClickListener(opClickListener)
mBinding?.opsContainer?.addView(opView, opLayoutParams)
if (index != list.size - 1) {
mBinding?.opsContainer?.addView(Space(context), opSpaceLayoutParams)
}
}
}
class Option(val type: Int, val title: String)
private var mOpListener:OpClickListener?=null
fun setOpClickListener(opClickListener: OpClickListener){
mOpListener = opClickListener;
}
interface OpClickListener {
fun onClick(type: Int, target: View)
}
//------------------------options----------------------------------------
override fun onDetachedFromWindow() {
super.onDetachedFromWindow()
BatteryHelper.removeCallback(batteryCallback)

@ -12,6 +12,7 @@
android:background="@drawable/cloud_sync_btn_bg"
android:gravity="center"
android:text="@string/sync_sensor_txt"
android:layout_marginTop="@dimen/_186dp"
android:textColor="@color/white"
android:textSize="@dimen/_30dp" />

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
</LinearLayout>

@ -30,6 +30,13 @@
</LinearLayout>
<LinearLayout
android:id="@+id/ops_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingStart="@dimen/_90dp"
android:orientation="horizontal" />
<Space
android:layout_width="0dp"
android:layout_height="1px"
@ -38,34 +45,34 @@
<TextClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/_30dp"
android:format12Hour="hh.mm a"
android:format24Hour="HH.mm a"
android:textColor="@color/white"
android:format24Hour ="HH.mm a"
android:format12Hour ="hh.mm a"/>
android:textSize="@dimen/_30dp" />
<ImageView
android:id="@+id/battery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_40dp"
android:src="@mipmap/ic_setting"/>
android:src="@mipmap/ic_setting" />
<ImageView
android:id="@+id/wifi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_40dp"
android:src="@mipmap/ic_setting"/>
android:src="@mipmap/ic_setting" />
<ImageView
android:id="@+id/four_g"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/_40dp"
android:src="@mipmap/ic_setting"/>
android:src="@mipmap/ic_setting" />
<Space
android:layout_width="@dimen/_36dp"
android:layout_height="match_parent"/>
android:layout_height="match_parent" />
</LinearLayout>

Binary file not shown.

After

Width:  |  Height:  |  Size: 596 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 357 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 765 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

@ -27,4 +27,6 @@
<dimen name="_340dp">340px</dimen>
<dimen name="_100dp">100px</dimen>
<dimen name="_50dp">50px</dimen>
<dimen name="_186dp">186px</dimen>
<dimen name="_90dp">90px</dimen>
</resources>

@ -19,6 +19,8 @@
<string name="sync_once_txt">一键同步</string>
<string name="search">搜索</string>
<string name="export">导出</string>
<string-array name="excel_column">
<item>时间</item>
<item>属性</item>

Loading…
Cancel
Save