Merge tag '1.1.1' into develop
tag 1.1.1
diff --git a/app/build.gradle b/app/build.gradle
index 3debf66..08a41f1 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -40,7 +40,7 @@
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
- signingConfig signingConfigs.release
+ signingConfig signingConfigs.sign
}
debug {
signingConfig signingConfigs.sign
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 39de86e..2b2575c 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/ConsumeActivity.kt
@@ -23,10 +23,7 @@
import com.supwisdom.entity.PeriodFixPayRecord
import com.supwisdom.entity.ReversalFlag
import com.supwisdom.entity.TransdtlUnionRecord
-import com.supwisdom.utils.CommonUtil
-import com.supwisdom.utils.DateUtil
-import com.supwisdom.utils.PublicDef
-import com.supwisdom.utils.SoundUtil
+import com.supwisdom.utils.*
import com.supwisdom.view.DialogPurchase
import java.util.*
import java.util.concurrent.locks.ReentrantLock
@@ -39,6 +36,7 @@
@Suppress("DEPRECATION")
@SuppressLint("NewApi")
class ConsumeActivity : BaseActivity(), IConsumeView {
+ private val TAG = "ConsumeActivity"
private lateinit var amountTxt: TextView
private lateinit var presenter: ConsumePresenter
private lateinit var vLinkstat: TextView
@@ -60,6 +58,7 @@
private val pos = SPApplication.getInstance().getPos()
private var beepManager: BeepManager? = null
private val scanLock = ReentrantLock()
+ private var appreboottime: Long = 0
@Volatile
private var cardPaying = false
@@ -189,6 +188,17 @@
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
if (event.action == KeyEvent.ACTION_DOWN) {
presenter.resetOperationTime()
+ if (event.keyCode == KeyEvent.KEYCODE_DPAD_UP) {
+ //F2 连续按重启app
+ val tt = System.currentTimeMillis()
+ if (tt - appreboottime < PublicDef.APP_REBOOT_GAP) {
+ LogUtil.i(TAG, "设备双击F2,待机界面重启APP!!")
+ CommonUtil.restartAPP(this)
+ } else {
+ appreboottime = tt
+ }
+ return super.dispatchKeyEvent(event)
+ }
when (payMode) {
PayMode.FIXPAY -> fixInputPay(event.keyCode)
PayMode.HOTKEY -> hotkeyInputPay(event.keyCode)
@@ -447,7 +457,7 @@
}
private fun parsePeriodFixPay() {
- val nowtime = DateUtil.getNowTimeNoFormat().substring(0, 4)
+ val nowtime = DateUtil.getTimeHHmm()
periodFixPayList?.forEach {
if (it.beginTime!! <= nowtime && nowtime < it.endTime!!) {
if (payMode != PayMode.FIXPAY || amount != it.amount) {
@@ -688,7 +698,8 @@
return try {
CommonUtil.YuanToFen(
java.lang.Double.parseDouble(
- amountTxt.text.toString().trim { it <= ' ' })
+ amountTxt.text.toString()
+ )
)
} catch (ex: Exception) {
ex.printStackTrace()
@@ -708,7 +719,7 @@
}
} else {
//限制消费金额<10000
- if (str.length < 4) {
+ if (str.length < 5) {
amountTxt.text = "$str$value"
}
}
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
index bcbf64e..f7ed535 100644
--- a/app/src/main/java/com/supwisdom/activities/consume/bean/ScreenSaverBean.kt
+++ b/app/src/main/java/com/supwisdom/activities/consume/bean/ScreenSaverBean.kt
@@ -1,11 +1,12 @@
-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 //是否屏保
+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 //是否屏保
+ var gcTime = 0L //ms
}
\ 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 6ebab3c..20791e7 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
@@ -15,37 +15,49 @@
import com.supwisdom.service.EpayApiImpl
import com.supwisdom.utils.*
import org.apache.http.HttpStatus
+import java.util.concurrent.locks.ReentrantLock
/**
** create by zzq on 2019/7/25
** @desc 刷卡消费
**/
-class CardPayService constructor(private val iConsumeView: IConsumeView, private val handler: Handler) {
+class CardPayService constructor(
+ private val iConsumeView: IConsumeView,
+ private val handler: Handler
+) {
private val TAG = "CardPayService"
private val pos = SPApplication.getInstance().getPos()
private val runnable = CardPayRunnable()
private val consumeApi = ConsumeApi()
+
@Volatile
private var isExist = false
+
@Volatile
private var clickStat = ClickStat.INIT
+
@Volatile
private var amount: Int = 0
+
@Volatile
private var payQueryConfirm = false
var isFixMode = false
private var thread: Thread? = null
private var cardBean: CardBean? = null
+
/**
* 防止定额连续消费
*/
private val lastPayBean = LastPayBean()
+ private val lock = ReentrantLock()
+
@Volatile
private var operation = false
private val screenSaverBean = ScreenSaverBean()
init {
screenSaverBean.operationTime = System.currentTimeMillis()
+ screenSaverBean.gcTime = screenSaverBean.operationTime
}
fun start() {
@@ -63,23 +75,32 @@
}
fun clickNoPay() {
+ lock.lock()
clickStat = ClickStat.INIT
amount = 0
+ lock.unlock()
}
fun clickToPay(amount: Int) {
+ lock.lock()
clickStat = ClickStat.PAY
this.amount = amount
+ lock.unlock()
}
fun clickToReverse(amount: Int) {
+ lock.lock()
clickStat = ClickStat.REVERSE
this.amount = amount
+ lock.unlock()
}
fun clickToInterrupt() {
+ lock.lock()
clickStat = ClickStat.INIT
+ this.amount = 0
payQueryConfirm = false
+ lock.unlock()
}
fun resetOperationTime() {
@@ -118,6 +139,10 @@
when (clickStat) {
ClickStat.PAY -> {
try {
+ lock.lock()
+ if (clickStat != ClickStat.PAY) {
+ throw CardPayInterruptError("支付状态已改变")
+ }
doConsume()
} catch (ex: CardPayFailError) {
sendMsg(PublicDef.MSG_CARD_PAY_FAIL, getErrorInfo(ex.message))
@@ -130,14 +155,23 @@
+ "exception=${CommonUtil.getExceptionStack(ex)}"
)
sendMsg(PublicDef.MSG_CARD_PAY_FAIL, getErrorInfo("程序异常"))
+ } finally {
+ clickStat = ClickStat.INIT
+ lock.unlock()
}
- clickStat = ClickStat.INIT
}
ClickStat.REVERSE -> {
try {
+ lock.lock()
+ if (clickStat != ClickStat.REVERSE) {
+ throw CardPayInterruptError("支付状态已改变")
+ }
doReverse()
} catch (ex: CardPayCancelFailError) {
- sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getRvsErrorInfo(ex.message))
+ sendMsg(
+ PublicDef.MSG_CARD_REVERSE_FAIL,
+ getRvsErrorInfo(ex.message)
+ )
} catch (ex: Exception) {
ex.printStackTrace()
LogUtil.d(
@@ -145,8 +179,10 @@
+ "exception=${CommonUtil.getExceptionStack(ex)}"
)
sendMsg(PublicDef.MSG_CARD_REVERSE_FAIL, getRvsErrorInfo("程序异常"))
+ } finally {
+ clickStat = ClickStat.INIT
+ lock.unlock()
}
- clickStat = ClickStat.INIT
}
ClickStat.INIT -> {
if (SPApplication.getInstance().isOnline() && !onlineBalance) {
@@ -180,18 +216,19 @@
)
if (resp != null && resp.retcode == HttpStatus.SC_OK) {
try {
- val retBean = GsonUtil.GsonToBean(resp.retjson!!, CardAccountRetBean::class.java)
+ val retBean =
+ GsonUtil.GsonToBean(resp.retjson!!, CardAccountRetBean::class.java)
if (retBean.retcode == PublicDef.SUCCESS) {
cardBean!!.username = retBean.username
cardBean!!.userid = retBean.userid
cardBean!!.balance = retBean.balance
- when {
- "normal" == retBean.status -> cardBean!!.cardstatus = CardStatus.NORMAL
- "expire" == retBean.status -> cardBean!!.cardstatus = CardStatus.EXPIRE
- "lost" == retBean.status -> cardBean!!.cardstatus = CardStatus.LOCK
- "logout" == retBean.status -> cardBean!!.cardstatus = CardStatus.LOGOUT
- "frozen" == retBean.status -> cardBean!!.cardstatus = CardStatus.FROZEN
- "lock" == retBean.status -> cardBean!!.cardstatus = CardStatus.LOST
+ when (retBean.status) {
+ "normal" -> cardBean!!.cardstatus = CardStatus.NORMAL
+ "expire" -> cardBean!!.cardstatus = CardStatus.EXPIRE
+ "lost" -> cardBean!!.cardstatus = CardStatus.LOCK
+ "logout" -> cardBean!!.cardstatus = CardStatus.LOGOUT
+ "frozen" -> cardBean!!.cardstatus = CardStatus.FROZEN
+ "lock" -> cardBean!!.cardstatus = CardStatus.LOST
}
}
} catch (ex: Exception) {
@@ -207,22 +244,63 @@
screenSaverBean.operationTime = tt
screenSaverBean.operationFlag = true
}
- if (tt > screenSaverBean.operationTime &&
+ 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")
+ val screenCtl = pos.getControlPara(PublicDef.CONTROL_SCREEN_PROTECT)
+ if (screenCtl?.paraval != null && "1" == screenCtl.paraval) {
+ screenSaverBean.flag = true
+ sendMsg(PublicDef.MSG_SCREEN_SAVER, "on")
+ }
+ val rebootCtl = pos.getControlPara(PublicDef.CONTROL_REBOOT_ENABLE)
+ if (rebootCtl?.paraval != null && "1" == rebootCtl.paraval) {
+ val nowtime = DateUtil.getNowTimeNoFormat()
+ /**
+ * 凌晨1点-3点判断做设备重启
+ */
+ if (nowtime > "010000" && nowtime < "030000") {
+ val ctlRecord = pos.getControlPara(PublicDef.CONTROL_REBOOT_DATE)
+ val nowdate = DateUtil.getNowDateNoFormat()
+ if (ctlRecord?.paraval == null || ctlRecord.paraval != nowdate) {
+ LogUtil.i(TAG, "设备已自动重启")
+ pos.replaceControlPara(ControlParaRecord().apply {
+ this.paraname = PublicDef.CONTROL_REBOOT_DATE
+ this.paraval = nowdate
+ })
+ CommonUtil.restartDevice(iConsumeView.getActivity())
+ }
+ }
+ }
} else {
if (screenSaverBean.operationFlag && screenSaverBean.flag) {
screenSaverBean.flag = false
sendMsg(PublicDef.MSG_SCREEN_SAVER, "off")
}
}
+ if (SPApplication.getInstance().isSynoCodeActive()) {
+ if (tt < screenSaverBean.gcTime ||
+ tt - screenSaverBean.gcTime > PublicDef.APP_GC_SYNO_PERIOD
+ ) {
+// LogUtil.d(TAG, "app auto do gc!!!!!!!!!!!!")
+// Log.e(TAG, "app auto do gc!!!!!!!!!!!!")
+ screenSaverBean.gcTime = tt
+ CommonUtil.GC()
+ }
+ } else {
+ if (tt < screenSaverBean.gcTime ||
+ tt - screenSaverBean.gcTime > PublicDef.APP_GC_PERIOD
+ ) {
+// LogUtil.d(TAG, "app auto do gc!!!!!!!!!!!!")
+// Log.e(TAG, "app auto do gc!!!!!!!!!!!!")
+ screenSaverBean.gcTime = tt
+ CommonUtil.GC()
+ }
+ }
}
private fun showCardUserInfo() {
@@ -327,7 +405,10 @@
}
}
- private fun checkOnlineReverseVaild(unionRecord: TransdtlUnionRecord, record: TransdtlOnlineRecord) {
+ private fun checkOnlineReverseVaild(
+ unionRecord: TransdtlUnionRecord,
+ record: TransdtlOnlineRecord
+ ) {
if (record.cardphyid != cardBean!!.cardphyid) {
throw CardPayCancelFailError("该卡不是最后消费")
}
@@ -353,7 +434,10 @@
}
}
- private fun checkOfflineReverseVaild(unionRecord: TransdtlUnionRecord, record: TransdtlOfflineRecord) {
+ private fun checkOfflineReverseVaild(
+ unionRecord: TransdtlUnionRecord,
+ record: TransdtlOfflineRecord
+ ) {
if (record.cardphyid != cardBean!!.cardphyid) {
throw CardPayCancelFailError("该卡不是最后消费")
}
@@ -418,7 +502,10 @@
/**
* 手动取消交易
*/
- LogUtil.e(TAG, "manual cancel pay,cardphyid=[${onlRecord.cardphyid}],billno=[${onlRecord.billno}]")
+ LogUtil.e(
+ TAG,
+ "manual cancel pay,cardphyid=[${onlRecord.cardphyid}],billno=[${onlRecord.billno}]"
+ )
throw CardPayInterruptError("交易取消")
}
@@ -526,7 +613,8 @@
}
val whiteRecord =
- pos.getWhiteList(offRecord.cardphyid!!, offRecord.cardno!!) ?: throw CardPayFailError("卡无权限")
+ pos.getWhiteList(offRecord.cardphyid!!, offRecord.cardno!!)
+ ?: throw CardPayFailError("卡无权限")
when (whiteRecord.status) {
"normal" -> {
@@ -539,7 +627,11 @@
else -> throw CardPayFailError("卡状态:${whiteRecord.status}")
}
- val payamt = pos.getTransdtlOfflineAmt(offRecord.transdate!!, offRecord.cardno!!, offRecord.cardphyid!!)
+ val payamt = pos.getTransdtlOfflineAmt(
+ offRecord.transdate!!,
+ offRecord.cardno!!,
+ offRecord.cardphyid!!
+ )
if ((payamt + offRecord.payamt) > sysRecord.maxDayOfflineAmt) {
throw CardPayFailError("已离线交易" + String.format("%.02f元", payamt / 100.0f))
}
diff --git a/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt b/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
index c3a16c7..fc78d1c 100644
--- a/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/syspara/SysparaActivity.kt
@@ -68,6 +68,18 @@
} else {
kvMap[index++] = ControlParaRecord("晟元扫码>>", "关闭")
}
+ var ctl = pos.getControlPara(PublicDef.CONTROL_REBOOT_ENABLE)
+ if (ctl?.paraval == "1") {
+ kvMap[index++] = ControlParaRecord("凌晨重启>>", "开启")
+ } else {
+ kvMap[index++] = ControlParaRecord("凌晨重启>>", "关闭")
+ }
+ ctl = pos.getControlPara(PublicDef.CONTROL_SCREEN_PROTECT)
+ if (ctl?.paraval == "1") {
+ kvMap[index++] = ControlParaRecord("设备屏保>>", "开启")
+ } else {
+ kvMap[index++] = ControlParaRecord("设备屏保>>", "关闭")
+ }
kvMap[index++] = ControlParaRecord("成功显时间>>", "${sysRecord.sucShowtime}s")
kvMap[index++] = ControlParaRecord("失败显时间>>", "${sysRecord.failShowtime}s")
kvMap[index++] = ControlParaRecord("联机流水号>>", pos.getTransdtlOnlineMaxSeqno().toString())
diff --git a/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt b/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
index dec3a26..da6eee5 100644
--- a/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
+++ b/app/src/main/java/com/supwisdom/service/EpayApiImpl.kt
@@ -115,6 +115,28 @@
"max_day_offline_amt" -> record.maxDayOfflineAmt = it.paraval!!.toInt()
"communicate_time" -> record.commTime = it.paraval!!.toInt()
"syno_code" -> record.synoCode = it.paraval == "1"
+ "reboot_enable" -> {
+ /**
+ * 设备凌晨自重启 1--开启
+ */
+ pos.replaceControlPara(
+ ControlParaRecord(
+ PublicDef.CONTROL_REBOOT_ENABLE,
+ it.paraval ?: "0"
+ )
+ )
+ }
+ "screen_protect" -> {
+ /**
+ * 设备长时间待机时屏保 1--开启
+ */
+ pos.replaceControlPara(
+ ControlParaRecord(
+ PublicDef.CONTROL_SCREEN_PROTECT,
+ it.paraval ?: "0"
+ )
+ )
+ }
}
}
if (record.heatBeat == 0) {
diff --git a/app/src/main/java/com/supwisdom/service/SynoCodeService.kt b/app/src/main/java/com/supwisdom/service/SynoCodeService.kt
index c39bb27..4eae1ef 100644
--- a/app/src/main/java/com/supwisdom/service/SynoCodeService.kt
+++ b/app/src/main/java/com/supwisdom/service/SynoCodeService.kt
@@ -33,7 +33,7 @@
val posid = CommonUtil.getSerialNumber()
var resp = getRegisterStatus(posid) ?: return BaseResp(PublicDef.ERROR, "获取设备注册状态超时")
if (resp.retcode != HttpURLConnection.HTTP_OK) {
- return BaseResp(resp.retcode, resp.retmsg)
+ return BaseResp(resp.retcode, "获取注册状态失败:${resp.retcode},${resp.retmsg}")
}
val registerStatusRetBean =
GsonUtil.GsonToBean(resp.retjson!!, EpaySynoRegisterStatusRetBean::class.java)
@@ -42,7 +42,7 @@
resp = registerDevice(posid, PublicDef.SCHOOL_NO)
?: return BaseResp(PublicDef.ERROR, "注册设备超时")
if (resp.retcode != HttpURLConnection.HTTP_OK) {
- return BaseResp(resp.retcode, resp.retmsg)
+ return BaseResp(resp.retcode, "注册失败:${resp.retcode},${resp.retmsg}")
}
return BaseResp(PublicDef.ERROR, "等待后台授权")
}
@@ -53,7 +53,7 @@
"activated" -> {
resp = getActiveStatus(posid) ?: return BaseResp(PublicDef.ERROR, "下载激活文件超时")
if (resp.retcode != HttpURLConnection.HTTP_OK) {
- return BaseResp(resp.retcode, resp.retmsg)
+ return BaseResp(resp.retcode, "下载激活文件失败:${resp.retcode},${resp.retmsg}")
}
val activeRetBean =
GsonUtil.GsonToBean(resp.retjson!!, EpaySynoActiveRetBean::class.java)
@@ -85,7 +85,7 @@
val resp = activeDevice(CommonUtil.getSerialNumber(), UrlBase64.encode(licenseByte))
?: return BaseResp(PublicDef.ERROR, "上传激活文件超时")
if (resp.retcode != HttpURLConnection.HTTP_OK) {
- return BaseResp(PublicDef.ERROR, resp.retmsg)
+ return BaseResp(PublicDef.ERROR, "上传激活文件失败:${resp.retcode},${resp.retmsg}")
}
return BaseResp(PublicDef.SUCCESS, "上传激活文件成功")
}
diff --git a/app/src/main/java/com/supwisdom/utils/CommonUtil.kt b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
index 119217b..0e7cc2e 100644
--- a/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
@@ -12,10 +12,12 @@
import android.net.Uri
import android.os.Build
import android.os.PowerManager
+import android.os.Process
import android.provider.Settings
import android.view.WindowManager
import android.widget.EditText
import com.supwisdom.activities.SPApplication
+import com.supwisdom.activities.splash.SplashActivity
import okhttp3.internal.and
import java.io.File
import java.io.FileOutputStream
@@ -311,4 +313,33 @@
}
return ""
}
+
+ /**
+ * 手动GC
+ */
+ fun GC() {
+ Runtime.getRuntime().gc()
+ }
+
+ /**
+ * 重启整个APP
+ *
+ * @param context
+ */
+ fun restartAPP(context: Context) {
+// val intent = Intent(context, SplashActivity::class.java)
+// intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
+// context.startActivity(intent)
+// Process.killProcess(Process.myPid())
+ }
+
+ /**
+ * 重启设备
+ *
+ * @param context
+ */
+ fun restartDevice(context: Context) {
+ val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager
+ pm.reboot(null)
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/DateUtil.kt b/app/src/main/java/com/supwisdom/utils/DateUtil.kt
index 0430400..c8a358d 100644
--- a/app/src/main/java/com/supwisdom/utils/DateUtil.kt
+++ b/app/src/main/java/com/supwisdom/utils/DateUtil.kt
@@ -16,6 +16,7 @@
private val FORMAT_yyMMddHHmmss2 =
org.apache.commons.lang3.time.FastDateFormat.getInstance("yy-MM-dd HH:mm:ss")
private val FORMAT_HHmmss = org.apache.commons.lang3.time.FastDateFormat.getInstance("HHmmss")
+ private val FORMAT_HHmm = org.apache.commons.lang3.time.FastDateFormat.getInstance("HHmm")
private val FORMAT_MMdd = org.apache.commons.lang3.time.FastDateFormat.getInstance("MMdd")
private val FORMAT_MM_dd = org.apache.commons.lang3.time.FastDateFormat.getInstance("MM-dd")
private val FORMAT_yyyyMMddHHmmss =
@@ -111,16 +112,15 @@
}
}
+ fun getTimeHHmm(): String {
+ return FORMAT_HHmm.format(Date())
+ }
+
/**
* @return MM-dd
*/
fun getDate_MMdd(): String? {
- try {
- return FORMAT_MM_dd.format(Date())
- } catch (e: Exception) {
- e.printStackTrace()
- }
- return null
+ return FORMAT_MM_dd.format(Date())
}
/**
@@ -149,12 +149,7 @@
* @return
*/
fun getNowDateTime(dateStr: String): Date? {
- try {
- return FORMAT_yyyy_MM_dd.parse(dateStr)
- } catch (e: ParseException) {
- e.printStackTrace()
- }
- return null
+ return FORMAT_yyyy_MM_dd.parse(dateStr)
}
/**
@@ -206,12 +201,7 @@
* @return yyyyMMdd
*/
fun getNowDateNoFormat(date: Date): String? {
- try {
- return FORMAT_yyyyMMdd.format(date)
- } catch (e: Exception) {
- e.printStackTrace()
- }
- return null
+ return FORMAT_yyyyMMdd.format(date)
}
/**
diff --git a/app/src/main/java/com/supwisdom/utils/PublicDef.kt b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
index 2ddbf96..9a6db16 100644
--- a/app/src/main/java/com/supwisdom/utils/PublicDef.kt
+++ b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
@@ -82,6 +82,9 @@
const val CODE_SAME_FORBID_TIME: Long = 10 * 1000
const val CAMERA_FIX_PAY_PERIOD: Long = 30 * 60 * 1000
+ const val APP_GC_PERIOD: Long = 10 * 60 * 1000
+ const val APP_GC_SYNO_PERIOD: Long = 6 * 60 * 60 * 1000
+ const val APP_REBOOT_GAP: Long = 500
/**
* 本地全局控制参数
@@ -90,7 +93,9 @@
const val CONTROL_OFFLINE_DAY_DISABLE = "offdaydisable"
const val CONTROL_DEBUG_ENABLE = "debugenable"
const val CONTROL_SYNOCODE_ACTIVE = "synocodeactive"
-
+ const val CONTROL_REBOOT_ENABLE = "rebootenable"
+ const val CONTROL_REBOOT_DATE = "rebootdate"
+ const val CONTROL_SCREEN_PROTECT = "screenprotect"
/**
* 消费冲正时限
*/
diff --git a/app/src/main/java/com/supwisdom/view/DialogPurchase.kt b/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
index 4566945..874260e 100644
--- a/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
+++ b/app/src/main/java/com/supwisdom/view/DialogPurchase.kt
@@ -41,6 +41,7 @@
private val waitTime = 60
private var syPreview: Preview? = null
private var payQueryConfirm = false
+ private var appreboottime: Long = 0
var codePayingNoCancelEnable = false
var codePaying = false
var isFixPay = false
@@ -171,6 +172,17 @@
override fun dispatchKeyEvent(event: KeyEvent): Boolean {
if (event.action == KeyEvent.ACTION_DOWN) {
+ if (event.keyCode == KeyEvent.KEYCODE_DPAD_UP) {
+ //F2 连续按重启app
+ val tt = System.currentTimeMillis()
+ if (tt - appreboottime < PublicDef.APP_REBOOT_GAP) {
+ LogUtil.i(TAG, "设备双击F2,支付界面重启APP!!")
+ CommonUtil.restartAPP(context)
+ } else {
+ appreboottime = tt
+ }
+ return super.dispatchKeyEvent(event)
+ }
if (codePayingNoCancelEnable) {
return super.dispatchKeyEvent(event)
}