快捷键消费
diff --git a/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt b/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
index 4e0d932..e7399e5 100644
--- a/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
+++ b/app/src/main/java/com/supwisdom/activities/consumeMode/ConsumeModeActivity.kt
@@ -4,6 +4,8 @@
import android.os.Bundle
import android.os.CountDownTimer
import android.view.KeyEvent
+import android.view.View
+import android.widget.LinearLayout
import android.widget.TextView
import com.supwisdom.R
import com.supwisdom.activities.BaseActivity
@@ -21,6 +23,7 @@
**/
class ConsumeModeActivity : BaseActivity() {
private lateinit var vPayamt: TextView
+ private lateinit var llHotList: LinearLayout
private val pos = SPApplication.getInstance().getPos()
private var keyActive = true
private var shoppwdPass = false
@@ -30,10 +33,28 @@
super.onCreate(savedInstanceState)
this.setContentView(R.layout.activity_consume_mode)
initView()
+ initData()
+ }
+
+ private fun initData() {
+
}
private fun initView() {
vPayamt = findViewById<TextView>(R.id.tv_consume_mode_payamt)
+ llHotList = findViewById<LinearLayout>(R.id.ll_hot_list)
+ this.findViewById<TextView>(R.id.tv_hot_add).setOnClickListener {
+ val item = View.inflate(this, R.layout.item_hotkey_pay, null)
+ item.findViewById<TextView>(R.id.tv_hot_del).setOnClickListener {
+ llHotList.removeView(item)
+ }
+ val key = item.findViewById<TextView>(R.id.tv_hot_key)
+ key.text = "${llHotList.childCount + 1}"
+ llHotList.addView(item)
+ }
+ this.findViewById<TextView>(R.id.tv_hot_save).setOnClickListener {
+ finish()
+ }
}
private fun checkShopPwd(keyCode: Int) {
@@ -98,10 +119,9 @@
KeyEvent.KEYCODE_7,
KeyEvent.KEYCODE_8,
KeyEvent.KEYCODE_9 -> addValueToEdit(keyCode - KeyEvent.KEYCODE_0)
- KeyEvent.KEYCODE_DEL ->
- //cancel
- delValueToEdit()
- KeyEvent.KEYCODE_POUND, KeyEvent.KEYCODE_PERIOD -> addDotToEdit()
+ KeyEvent.KEYCODE_DEL -> delValueToEdit()
+ KeyEvent.KEYCODE_POUND,
+ KeyEvent.KEYCODE_PERIOD -> addDotToEdit()
KeyEvent.KEYCODE_ENTER -> {
pos.replaceControlPara(PublicDef.CONTROL_FIXAMT, getFixAmount())
jumpActivity(MenuActivity::class.java)
diff --git a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
index 5182e5f..f94037d 100644
--- a/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
+++ b/app/src/main/java/com/supwisdom/db/BeanPropEnum.kt
@@ -108,4 +108,9 @@
status,
upflag
}
+
+ enum class HotkeyPay {
+ key,
+ amount
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/DBParaHelper.kt b/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
index d2fd01f..c8e37aa 100644
--- a/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
+++ b/app/src/main/java/com/supwisdom/db/DBParaHelper.kt
@@ -13,12 +13,13 @@
class DBParaHelper private constructor(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
companion object {
private val DB_NAME = "db_para"
- private val VERSION = 2
+ private val VERSION = 3
val TABLE_NAME_SYSPARA = "tb_syspara"
val TABLE_NAME_DYNAMICPARA = "tb_dynamicpara"
val TABLE_NAME_CONTROLPARA = "tb_controlpara"
val TABLE_NAME_WHITELIST = "tb_whitelist"
+ val TABLE_NAME_HOTKEY = "tb_hotkey"
private var instance: DBParaHelper? = null
fun getInstance(context: Context): DBParaHelper {
@@ -37,6 +38,10 @@
/**
* SQL for create table
*/
+ private val CREATE_TABLE_NAME_HOTKEY = ("create table IF NOT EXISTS "
+ + TABLE_NAME_HOTKEY + " ( "
+ + BeanPropEnum.HotkeyPay.key + " integer primary key,"
+ + BeanPropEnum.HotkeyPay.amount + " integer)")
private val CREATE_TABLE_NAME_WHITELIST = ("create table IF NOT EXISTS "
+ TABLE_NAME_WHITELIST + " ( "
+ BeanPropEnum.WhiteList.cardphyid + " varchar(32),"
@@ -92,6 +97,7 @@
db.execSQL(CREATE_TABLE_NAME_DYNAMICPARA)
db.execSQL(CREATE_TABLE_NAME_CONTROLPARA)
db.execSQL(CREATE_TABLE_NAME_WHITELIST)
+ db.execSQL(CREATE_TABLE_NAME_HOTKEY)
}
override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
@@ -99,6 +105,9 @@
if (oldVersion < 2 && newVersion >= 2) {
db.execSQL("alter table $TABLE_NAME_SYSPARA add column ${BeanPropEnum.Syspara.maxDayOfflineAmt} integer")
}
+ if (oldVersion < 3 && newVersion >= 3) {
+ db.execSQL(CREATE_TABLE_NAME_HOTKEY)
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt b/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt
new file mode 100644
index 0000000..3826967
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/db/HotkeyPayDao.kt
@@ -0,0 +1,98 @@
+package com.supwisdom.db
+
+import android.content.ContentValues
+import android.content.Context
+import android.database.Cursor
+import com.supwisdom.entity.HotKeyPayRecord
+import java.util.concurrent.locks.Lock
+
+/**
+ ** create by zzq on 2019/9/4
+ ** @desc
+ **/
+class HotkeyPayDao constructor(context: Context) {
+ private val dbHelper = DBParaHelper.getInstance(context)
+ private val TABLE = DBParaHelper.TABLE_NAME_HOTKEY
+
+ fun getLock(): Lock {
+ return dbHelper.getLock()
+ }
+
+ fun replace(record: HotKeyPayRecord): Boolean {
+ val db = dbHelper.readableDatabase
+ val values = getContentValues(record)
+ try {
+ db.beginTransaction()
+ if (db.replace(TABLE, null, values) > 0) {
+ db.setTransactionSuccessful()
+ return true
+ }
+ } finally {
+ db.endTransaction()
+ }
+ return false
+ }
+
+ fun save(list: List<HotKeyPayRecord>): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ list.forEach {
+ val values = getContentValues(it)
+ if (db.insert(TABLE, null, values) <= 0) {
+ return false
+ }
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ fun get(): List<HotKeyPayRecord>? {
+ val db = dbHelper.readableDatabase
+ var cursor: Cursor? = null
+ try {
+ cursor = db.query(TABLE, null, null, null, null, null, null)
+ val list = ArrayList<HotKeyPayRecord>()
+ while (cursor != null && cursor.moveToNext()) {
+ list.add(getRecord(cursor))
+ }
+ return list
+ } finally {
+ cursor?.close()
+ }
+ }
+
+ fun clear(): Boolean {
+ val db = dbHelper.writableDatabase
+ try {
+ db.beginTransaction()
+ if (db.delete(TABLE, null, null) < 0) {
+ return false
+ }
+ db.setTransactionSuccessful()
+ return true
+ } finally {
+ db.endTransaction()
+ }
+ }
+
+ private fun getRecord(cursor: Cursor): HotKeyPayRecord {
+ val record = HotKeyPayRecord()
+ record.key = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.key.toString()))
+ record.amount = cursor.getInt(cursor.getColumnIndex(BeanPropEnum.HotkeyPay.amount.toString()))
+ return record
+ }
+
+ private fun getContentValues(record: HotKeyPayRecord): ContentValues {
+ val values = ContentValues()
+ values.put(BeanPropEnum.HotkeyPay.key.toString(), record.key)
+ values.put(BeanPropEnum.HotkeyPay.amount.toString(), record.amount)
+ return values
+ }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/Pos.kt b/app/src/main/java/com/supwisdom/db/Pos.kt
index 660f201..00ae522 100644
--- a/app/src/main/java/com/supwisdom/db/Pos.kt
+++ b/app/src/main/java/com/supwisdom/db/Pos.kt
@@ -17,6 +17,7 @@
private var sysRecord: SysParaRecord? = null
private val controlParaDao = ControlParaDao(context)
private val whiteListDao = WhiteListDao(context)
+ private val hotkeyPayDao = HotkeyPayDao(context)
private val transdtlOnlineDao = TransdtlOnlineDao(sdContext)
private val transdtlOfflineDao = TransdtlOfflineDao(sdContext)
private val transdtlUnionDao = TransdtlUnionDao(sdContext)
@@ -54,6 +55,24 @@
return cfgRecord
}
+ fun saveHotkeyPay(list: List<HotKeyPayRecord>): Boolean {
+ try {
+ hotkeyPayDao.getLock().lock()
+ return hotkeyPayDao.save(list)
+ } finally {
+ hotkeyPayDao.getLock().unlock()
+ }
+ }
+
+ fun getHotkeyPay(): List<HotKeyPayRecord>? {
+ try {
+ hotkeyPayDao.getLock().lock()
+ return hotkeyPayDao.get()
+ } finally {
+ hotkeyPayDao.getLock().unlock()
+ }
+ }
+
fun replaceControlPara(record: ControlParaRecord): Boolean {
try {
controlParaDao.getLock().lock()
@@ -278,7 +297,7 @@
fun getTransdtlOfflineAmt(date: String, cardno: String, cardphyid: String): Int {
try {
transdtlOfflineDao.getLock().lock()
- return transdtlOfflineDao.getOfflineAmt(date,cardno,cardphyid)
+ return transdtlOfflineDao.getOfflineAmt(date, cardno, cardphyid)
} finally {
transdtlOfflineDao.getLock().unlock()
}
diff --git a/app/src/main/java/com/supwisdom/entity/HotKeyPayRecord.kt b/app/src/main/java/com/supwisdom/entity/HotKeyPayRecord.kt
new file mode 100644
index 0000000..4d8bb24
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/entity/HotKeyPayRecord.kt
@@ -0,0 +1,11 @@
+package com.supwisdom.entity
+
+/**
+ ** create by zzq on 2019/9/5
+ ** @desc
+ **/
+class HotKeyPayRecord {
+ var key: Int = 0
+ var amount: Int = 0
+
+}
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_consume_mode.xml b/app/src/main/res/layout/activity_consume_mode.xml
index e738ecb..3ec88c5 100644
--- a/app/src/main/res/layout/activity_consume_mode.xml
+++ b/app/src/main/res/layout/activity_consume_mode.xml
@@ -7,38 +7,104 @@
<TextView
style="@style/head_title_text_style"
android:text="消费模式"/>
-
- <TextView
- android:layout_width="match_parent"
+ <RadioGroup
android:layout_height="wrap_content"
- android:padding="10dp"
- android:text="none-普通消费\n值-定额消费\n单位(元)"
- android:textColor="@color/light_blue2"
- android:textSize="20sp"/>
-
- <LinearLayout
android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="horizontal">
-
+ android:orientation="vertical">
+ <RadioButton
+ android:id="@+id/rb_normal_mode"
+ android:text="普通消费"
+ style="@style/consume_mode_rb_style"
+ android:checked="true"/>
+ <RadioButton
+ android:id="@+id/rb_fix_mode"
+ android:text="定额消费"
+ style="@style/consume_mode_rb_style"/>
+ <RadioButton
+ android:id="@+id/rb_hot_mode"
+ android:text="快捷消费"
+ style="@style/consume_mode_rb_style"/>
+ </RadioGroup>
+ <LinearLayout
+ android:id="@+id/ll_fix_mode"
+ android:visibility="gone"
+ android:orientation="vertical"
+ android:padding="10dp"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
<TextView
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:padding="10dp"
- android:text="金额: "
- android:textColor="@color/light_blue2"
- android:textSize="30sp"/>
-
- <TextView
- android:id="@+id/tv_consume_mode_payamt"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:maxLength="6"
- android:padding="10dp"
- android:text="0"
+ android:text="定额消费(单位:元)"
android:textColor="@color/light_blue2"
- android:textSize="30sp"/>
- </LinearLayout>
+ android:textSize="20sp"/>
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:orientation="horizontal">
+
+ <TextView
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:text="金额: "
+ android:textColor="@color/light_blue2"
+ android:textSize="30sp"/>
+
+ <TextView
+ android:id="@+id/tv_consume_mode_payamt"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:maxLength="8"
+ android:text="0"
+ android:textColor="@color/light_blue2"
+ android:textSize="30sp"/>
+ </LinearLayout>
+ </LinearLayout>
+ <LinearLayout
+ android:id="@+id/ll_hot_mode"
+ android:orientation="vertical"
+ android:padding="10dp"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="快捷消费(单位:元)"
+ android:textColor="@color/light_blue2"
+ android:textSize="20sp"/>
+ <LinearLayout
+ android:orientation="horizontal"
+ android:gravity="center"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content">
+ <TextView
+ android:id="@+id/tv_hot_save"
+ android:textSize="25sp"
+ android:text="保存"
+ android:background="@drawable/corner_bg_gray"
+ android:padding="10dp"
+ android:textColor="@color/light_blue2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+ <TextView
+ android:id="@+id/tv_hot_add"
+ android:textSize="25sp"
+ android:text="添加"
+ android:layout_marginLeft="100dp"
+ android:background="@drawable/corner_bg_gray"
+ android:padding="10dp"
+ android:textColor="@color/light_blue2"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"/>
+ </LinearLayout>
+
+ <LinearLayout
+ android:id="@+id/ll_hot_list"
+ android:layout_width="match_parent"
+ android:orientation="vertical"
+ android:layout_height="match_parent"/>
+
+ </LinearLayout>
</LinearLayout>
</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/item_hotkey_pay.xml b/app/src/main/res/layout/item_hotkey_pay.xml
new file mode 100644
index 0000000..7ba2b51
--- /dev/null
+++ b/app/src/main/res/layout/item_hotkey_pay.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
+ android:orientation="horizontal"
+ android:background="@color/white"
+ android:layout_width="match_parent"
+ android:weightSum="5"
+ android:layout_marginTop="10dp"
+ android:layout_height="match_parent">
+ <TextView
+ android:layout_height="wrap_content"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:text="快捷键: "
+ android:textColor="@color/light_blue2"
+ android:textSize="25sp"/>
+ <TextView
+ android:id="@+id/tv_hot_key"
+ android:layout_height="wrap_content"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:text="1"
+ android:textColor="@color/cl_red"
+ android:textSize="25sp"/>
+ <EditText
+ android:id="@+id/tv_hot_amount"
+ android:layout_height="wrap_content"
+ android:layout_width="0dp"
+ android:inputType="numberDecimal"
+ android:layout_weight="2"
+ android:maxLines="1"
+ android:text="0"
+ android:textColor="@color/light_blue2"
+ android:textSize="25sp"/>
+ <TextView
+ android:id="@+id/tv_hot_del"
+ android:layout_height="wrap_content"
+ android:layout_width="0dp"
+ android:layout_weight="1"
+ android:text="删除"
+ android:layout_marginLeft="10dp"
+ android:gravity="center"
+ android:padding="10dp"
+ android:background="@drawable/corner_bg_gray"
+ android:textColor="@color/light_blue2"
+ android:textSize="25sp"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
index 123c964..d85e0af 100644
--- a/app/src/main/res/values/styles.xml
+++ b/app/src/main/res/values/styles.xml
@@ -426,7 +426,12 @@
<item name="android:textColor">@color/black</item>
<item name="android:gravity">center</item>
</style>
-
+ <style name="consume_mode_rb_style">
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:textSize">25sp</item>
+ <item name="android:textColor">@color/light_blue2</item>
+ </style>
<style name="consume_pay_way_text_style">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">match_parent</item>