半小时屏保
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index ed48cb0..bf5d0b9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,10 +33,6 @@
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permission android:name="android.permission.WAKE_LOCK"/>
- <!--写时钟权限-->
- <uses-permission
- android:name="android.permission.WRITE_SETTINGS"
- serviceandroid:ignore="ProtectedPermissions"/>
<uses-permission
android:name="android.permission.WRITE_SECURE_SETTINGS"
serviceandroid:ignore="ProtectedPermissions"/>
diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
index 0e959eb..3a336af 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
@@ -173,6 +173,7 @@
@SuppressLint("SetTextI18n")
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
if (event.action == KeyEvent.ACTION_DOWN) {
+ presenter.resetOperationTime()
when (payMode) {
PayMode.FIXPAY -> fixInputPay(event.keyCode)
PayMode.HOTKEY -> hotkeyInputPay(event.keyCode)
@@ -305,6 +306,14 @@
}
}
+ override fun screenSaver(flag: Boolean) {
+ if (flag) {
+ CommonUtil.setAppBrightness(this, PublicDef.SCREEN_SAVER_BRIGHTNESS)
+ } else {
+ CommonUtil.setAppBrightness(this, PublicDef.SCREEN_NORMAL_BRIGHTNESS)
+ }
+ }
+
private var lastshowtime: String? = null
override fun clearUserInfo(datetime: String) {
if (!isBackRunning) {
diff --git a/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt b/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
index 6c5d277..4c8340c 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumePresenter.kt
@@ -44,23 +44,24 @@
PublicDef.MSG_CARD_PAY_QUERY -> iConsumeView.showConsumeQuery(msg.obj as String)
PublicDef.MSG_CARD_PAY_FAIL -> {
val ret = msg.obj as CardUserInfoBean
- LogUtil.d(TAG, "pay fail,reason=${ret.retmsg}")
+ LogUtil.d(TAG, "pay fail,reason=$ret")
iConsumeView.showConsumeFail(ret)
}
PublicDef.MSG_PAYING_INTERRUPT -> {
val ret = msg.obj as CardUserInfoBean
- LogUtil.d(TAG, "pay interrupt,reason=${ret.retmsg}")
+ LogUtil.d(TAG, "pay interrupt,reason=$ret")
iConsumeView.showConsumeInterrupt(ret)
}
PublicDef.MSG_CARD_REVERSE_FAIL -> {
val ret = msg.obj as CardUserInfoBean
- LogUtil.d(TAG, "reverse fail,reason=${ret.retmsg}")
+ LogUtil.d(TAG, "reverse fail,reason=$ret")
iConsumeView.showReverseFail(msg.obj as CardUserInfoBean)
}
PublicDef.MSG_CARD_REVERSE_SUC -> iConsumeView.showReverseSuc(msg.obj as CardUserInfoBean)
PublicDef.MSG_USER_INFO_SHOW -> iConsumeView.showUserInfo(msg.obj as CardUserInfoBean)
PublicDef.MSG_USER_INFO_CLEAR -> iConsumeView.clearUserInfo(msg.obj as String)
PublicDef.MSG_LINK_STATUS -> iConsumeView.refreshLinkStatus(msg.obj as Boolean)
+ PublicDef.MSG_SCREEN_SAVER -> iConsumeView.screenSaver((msg.obj as String) == "on")
}
}
}
@@ -90,6 +91,10 @@
cardPayService.clickToInterrupt()
}
+ fun resetOperationTime() {
+ cardPayService.resetOperationTime()
+ }
+
fun setFixMode(isFixMode: Boolean) {
cardPayService.isFixMode = isFixMode
codePayService.isFixMode = isFixMode
diff --git a/app/src/main/java/com/supwisdom/activities/consume/IConsumeView.kt b/app/src/main/java/com/supwisdom/activities/consume/IConsumeView.kt
index 3ac4df7..3561af7 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/IConsumeView.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/IConsumeView.kt
@@ -38,4 +38,6 @@
* 是否正在刷卡支付
*/
fun cardPayingStatus(isPaying: Boolean)
+
+ fun screenSaver(flag: Boolean)
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt b/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
index 047d57b..286b664 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/bean/CardUserInfoBean.kt
@@ -21,6 +21,10 @@
var transdate: String? = null
var transtime: String? = null
var payway: String? = null //card,code
+
+ override fun toString(): String {
+ return "name=$username,cardno=$cardno,amount=$amount,payway=$payway,retcode=$retcode,retmsg=$retmsg"
+ }
}
enum class CardStatus(val desc: String) {
diff --git a/app/src/main/java/com/supwisdom/activities/consume/bean/ScreenSaverBean.kt b/app/src/main/java/com/supwisdom/activities/consume/bean/ScreenSaverBean.kt
new file mode 100644
index 0000000..bcbf64e
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/activities/consume/bean/ScreenSaverBean.kt
@@ -0,0 +1,11 @@
+package com.supwisdom.activities.consume.bean
+
+/**
+ ** create by zzq on 2019/11/5
+ ** @desc 屏保参数
+ **/
+class ScreenSaverBean {
+ var operationTime = 0L //ms
+ var operationFlag = false //是否操作
+ var flag = false //是否屏保
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
index b00585f..5266df9 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/mode/CardPayService.kt
@@ -39,7 +39,14 @@
/**
* 防止定额连续消费
*/
- private var lastPayBean = LastPayBean()
+ private val lastPayBean = LastPayBean()
+ @Volatile
+ private var operation = false
+ private val screenSaverBean = ScreenSaverBean()
+
+ init {
+ screenSaverBean.operationTime = System.currentTimeMillis()
+ }
fun start() {
isExist = false
@@ -75,6 +82,10 @@
payQueryConfirm = false
}
+ fun resetOperationTime() {
+ operation = true
+ }
+
private inner class CardPayRunnable : Runnable {
private lateinit var onlRecord: TransdtlOnlineRecord
private lateinit var onlRvsRecord: TransdtlOnlineRecord
@@ -89,9 +100,9 @@
override fun run() {
while (!isExist) {
iConsumeView.cardPayingStatus(false)
+ checkShowScreen()
if (iConsumeView.isBackRunning()) {
CommonUtil.doSleep(1000)
- doClear()
continue
}
CommonUtil.doSleep(100)
@@ -188,6 +199,31 @@
}
}
+ private fun checkShowScreen() {
+ val tt = System.currentTimeMillis()
+ if (operation) {
+ operation = false
+ screenSaverBean.operationTime = tt
+ screenSaverBean.operationFlag = true
+ }
+ if (tt > screenSaverBean.operationTime &&
+ tt - screenSaverBean.operationTime > PublicDef.SCREEN_SAVER_GAP
+ ) {
+ /**
+ * 连续半小时无操作屏保
+ */
+ screenSaverBean.operationTime = tt
+ screenSaverBean.flag = true
+ screenSaverBean.operationFlag = false
+ sendMsg(PublicDef.MSG_SCREEN_SAVER, "on")
+ } else {
+ if (screenSaverBean.operationFlag && screenSaverBean.flag) {
+ screenSaverBean.flag = false
+ sendMsg(PublicDef.MSG_SCREEN_SAVER, "off")
+ }
+ }
+ }
+
private fun showCardUserInfo() {
val info = CardUserInfoBean(PublicDef.SUCCESS, "账户信息")
if (cardBean!!.username != cardBean!!.cardNo) {
diff --git a/app/src/main/java/com/supwisdom/utils/CommonUtil.kt b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
index 917f39c..253a752 100644
--- a/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
@@ -5,6 +5,7 @@
import android.annotation.SuppressLint
import android.app.Activity
import android.app.ActivityManager
+import android.content.ContentResolver
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
@@ -12,6 +13,7 @@
import android.os.Build
import android.os.PowerManager
import android.provider.Settings
+import android.view.WindowManager
import android.widget.EditText
import com.supwisdom.activities.SPApplication
import java.io.File
@@ -191,4 +193,95 @@
else -> " "
}
}
+
+ /**
+ * @param activity
+ * @param brightness [1-255]
+ * @desc 根据亮度值修改当前window亮度
+ */
+ fun setAppBrightness(activity: Activity, brightness: Int) {
+ val window = activity.window
+ val lp = window.attributes
+ if (brightness == -1) {
+ if (lp.screenBrightness < 0) {
+ /**
+ * 已经是正常亮度
+ */
+ return
+ }
+ lp.screenBrightness = WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE
+ } else {
+ if (lp.screenBrightness > 0) {
+ /**
+ * 已经屏保亮度
+ */
+ return
+ }
+// stopAutoBrightness(activity)
+ lp.screenBrightness = (if (brightness <= 0) 1 else brightness) / 255f
+ }
+ window.attributes = lp
+ /**
+ * 生效?
+ */
+// getActivityBrightness(activity)
+ }
+
+ /**
+ * 获取当前activity的屏幕亮度
+ *
+ * @param activity 当前的activity对象
+ * @return 亮度值范围为0-0.1f,如果为-1.0,则亮度与全局同步。
+ */
+ private fun getActivityBrightness(activity: Activity): Float {
+ val localWindow = activity.window
+ val params = localWindow.attributes
+ return params.screenBrightness
+ }
+
+ /**
+ * 判断是否开启了自动亮度调节
+ * *
+ * * @param aContext
+ * * @return
+ *
+ */
+ private fun isAutoBrightness(aContentResolver: ContentResolver): Boolean {
+ try {
+ return Settings.System.getInt(
+ aContentResolver,
+ Settings.System.SCREEN_BRIGHTNESS_MODE
+ ) == Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
+ } catch (e: Settings.SettingNotFoundException) {
+ e.printStackTrace()
+ }
+
+ return false
+ }
+
+ /**
+ * 停止自动亮度调节
+ *
+ * @param activity
+ */
+ private fun stopAutoBrightness(activity: Activity) {
+ Settings.System.putInt(
+ activity.contentResolver,
+ Settings.System.SCREEN_BRIGHTNESS_MODE,
+ Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
+ )
+ }
+
+ /**
+ * 开启亮度自动调节
+ *
+ * @param activity
+ */
+ private fun startAutoBrightness(activity: Activity) {
+ Settings.System.putInt(
+ activity.contentResolver,
+ Settings.System.SCREEN_BRIGHTNESS_MODE,
+ Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/PublicDef.kt b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
index 140f9a8..18c7074 100644
--- a/app/src/main/java/com/supwisdom/utils/PublicDef.kt
+++ b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
@@ -33,8 +33,15 @@
const val MSG_LINK_STATUS = 19
const val MSG_PAYING_QUERY = 20
const val MSG_PAYING_INTERRUPT = 21
+ const val MSG_SCREEN_SAVER = 22
/*************************不能重复*****************************/
/**
+ * 屏保亮度
+ */
+ const val SCREEN_SAVER_BRIGHTNESS = 1
+ const val SCREEN_NORMAL_BRIGHTNESS = -1
+ const val SCREEN_SAVER_GAP: Long = 30 * 60 * 1000
+ /**
* 卡消费标志(1 byte)
*/
/*high 4 bit*/