diff --git a/app/.gitignore b/app/.gitignore
new file mode 100644
index 0000000..796b96d
--- /dev/null
+++ b/app/.gitignore
@@ -0,0 +1 @@
+/build
diff --git a/app/build.gradle b/app/build.gradle
new file mode 100644
index 0000000..3881173
--- /dev/null
+++ b/app/build.gradle
@@ -0,0 +1,72 @@
+plugins {
+    id 'com.gladed.androidgitversion' version '0.4.9'
+}
+apply plugin: 'com.android.application'
+apply plugin: 'kotlin-android'
+apply plugin: 'kotlin-android-extensions'
+
+android {
+    compileSdkVersion 28
+    defaultConfig {
+        applicationId "com.supwisdom.posa711dali"
+        minSdkVersion 22
+        targetSdkVersion 28
+        versionCode 1
+        versionName "1.0"
+        ndk {
+            abiFilters "arm64-v8a"
+        }
+        multiDexEnabled true
+    }
+    signingConfigs {
+        release {
+            storeFile file("$rootDir/keys-app.jks")
+            storePassword "123456"
+            keyAlias "sup"
+            keyPassword "123456"
+        }
+    }
+    buildTypes {
+        release {
+            minifyEnabled false
+            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
+        }
+    }
+    compileOptions {
+        sourceCompatibility 1.8
+        targetCompatibility 1.8
+    }
+    packagingOptions {
+        exclude 'META-INF/DEPENDENCIES'
+        exclude 'META-INF/LICENSE'
+        exclude 'META-INF/LICENSE.txt'
+        exclude 'META-INF/license.txt'
+        exclude 'META-INF/NOTICE'
+        exclude 'META-INF/NOTICE.txt'
+        exclude 'META-INF/notice.txt'
+        exclude 'META-INF/ASL2.0'
+    }
+}
+
+dependencies {
+//    implementation fileTree(dir: 'libs', include: ['*.jar'])
+    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
+    implementation 'com.android.support:appcompat-v7:28.0.0'
+    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
+    testImplementation 'junit:junit:4.12'
+    androidTestImplementation 'com.android.support.test:runner:1.0.2'
+    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
+
+    compile 'com.alibaba:fastjson:1.1.70.android'
+    compile 'com.nineoldandroids:parent:2.4.0'
+    compile 'com.squareup.okhttp3:okhttp:3.10.0'
+    compile 'net.java.dev.jna:jna:4.5.0@aar'
+    compile 'com.koushikdutta.async:androidasync:2.2.1'
+    compile group: 'com.android.support', name: 'recyclerview-v7', version: '28.0.0'
+    compile 'org.apache.commons:commons-lang3:3.7'
+    compile 'com.android.support:multidex:1.0.3'
+    compile 'org.jetbrains.kotlin:kotlin-reflect:1.3.41'
+    compile 'org.springframework.android:spring-android-core:1.0.1.RELEASE'
+    compile files('libs/apache-httpcomponents-httpcore.jar')
+    compile files('libs/zxinglibsl.jar')
+}
diff --git a/app/libs/apache-httpcomponents-httpcore.jar b/app/libs/apache-httpcomponents-httpcore.jar
new file mode 100644
index 0000000..a357c07
--- /dev/null
+++ b/app/libs/apache-httpcomponents-httpcore.jar
Binary files differ
diff --git a/app/libs/zxinglibsl.jar b/app/libs/zxinglibsl.jar
new file mode 100644
index 0000000..c645c93
--- /dev/null
+++ b/app/libs/zxinglibsl.jar
Binary files differ
diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro
new file mode 100644
index 0000000..f1b4245
--- /dev/null
+++ b/app/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+#   http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+#   public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
diff --git a/app/src/androidTest/java/com/supwisdom/ExampleInstrumentedTest.kt b/app/src/androidTest/java/com/supwisdom/ExampleInstrumentedTest.kt
new file mode 100644
index 0000000..2aff141
--- /dev/null
+++ b/app/src/androidTest/java/com/supwisdom/ExampleInstrumentedTest.kt
@@ -0,0 +1,24 @@
+package com.supwisdom
+
+import android.support.test.InstrumentationRegistry
+import android.support.test.runner.AndroidJUnit4
+
+import org.junit.Test
+import org.junit.runner.RunWith
+
+import org.junit.Assert.*
+
+/**
+ * Instrumented test, which will execute on an Android device.
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+@RunWith(AndroidJUnit4::class)
+class ExampleInstrumentedTest {
+    @Test
+    fun useAppContext() {
+        // Context of the app under test.
+        val appContext = InstrumentationRegistry.getTargetContext()
+        assertEquals("com.supwisdom", appContext.packageName)
+    }
+}
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
new file mode 100644
index 0000000..6830380
--- /dev/null
+++ b/app/src/main/AndroidManifest.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+          xmlns:serviceandroid="http://schemas.android.com/tools"
+          package="com.supwisdom"
+          android:sharedUserId="android.uid.system">
+
+    <uses-permission android:name="android.permission.VIBRATE"/>
+    <uses-permission
+            android:name="android.permission.WRITE_SETTINGS"
+            serviceandroid:ignore="ProtectedPermissions"/>
+    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
+    <uses-permission
+            android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"
+            serviceandroid:ignore="ProtectedPermissions"/>
+    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.INTERNET"/>
+    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
+    <uses-permission android:name="android.permission.CAMERA"/>
+    <uses-permission android:name="android.permission.NFC"/>
+    <uses-permission android:name="android.permission.READ_PROFILE"/>
+    <uses-permission android:name="android.permission.RECEIVE_USER_PRESENT"/>
+    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
+    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
+    <uses-permission android:name="android.permission.RECORD_AUDIO"/>
+    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
+    <uses-permission android:name="com.android.launcher.permission.UNINSTALL_SHORTCUT"/>
+    <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/>
+    <uses-permission android:name="android.permission.AUTHENTICATE_ACCOUNTS"/>
+    <uses-permission android:name="android.permission.USE_CREDENTIALS"/>
+    <uses-permission android:name="android.permission.FLASHLIGHT"/>
+    <uses-permission android:name="android.permission.WEITE_EXTERNAL_STORAGE"/>
+    <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"/>
+
+    <uses-feature android:name="android.hardware.camera"/>
+    <uses-feature android:name="android.hardware.camera.autofocus"/>
+
+    <uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>
+    <uses-permission
+            android:name="android.permission.READ_LOGS"
+            serviceandroid:ignore="ProtectedPermissions"/>
+
+    <application
+            android:name=".activities.SPApplication"
+            android:allowBackup="true"
+            android:icon="@drawable/app_logo"
+            android:label="@string/app_name"
+            android:persistent="false"
+            android:supportsRtl="true"
+            android:theme="@android:style/Theme.NoTitleBar.Fullscreen">
+        <activity
+                android:name=".activities.splash.SplashActivity"
+                android:launchMode="singleTask"
+                android:screenOrientation="portrait">
+            <intent-filter>
+                <action android:name="android.intent.action.MAIN"/>
+
+                <!--<category android:name="android.intent.category.HOME" />-->
+                <category android:name="android.intent.category.DEFAULT"/>
+                <category android:name="android.intent.category.LAUNCHER"/>
+            </intent-filter>
+            <intent-filter>
+                <action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"/>
+            </intent-filter>
+
+            <meta-data
+                    android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"
+                    android:resource="@xml/device_filter"/>
+        </activity>
+
+        <service android:name=".activities.ServiceDemo">
+            <intent-filter>
+                <category android:name="android.intent.category.default"/>
+            </intent-filter>
+        </service>
+
+        <!--<activity-->
+        <!--android:name=".activities.consume.WaitActivity"-->
+        <!--android:label="@string/title_activity_consume"-->
+        <!--android:launchMode="singleInstance"/>-->
+
+    </application>
+
+</manifest>
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/CrashHandler.kt b/app/src/main/java/com/supwisdom/activities/CrashHandler.kt
new file mode 100644
index 0000000..c400b57
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/activities/CrashHandler.kt
@@ -0,0 +1,136 @@
+package com.supwisdom.activities
+
+import android.content.Context
+import android.content.pm.PackageManager
+import android.os.Build
+import android.os.Looper
+import com.supwisdom.dcpos.utils.CommonUtil
+import com.supwisdom.dcpos.view.ToastUtil
+import com.supwisdom.utils.AppExitUtil
+import com.supwisdom.utils.DateUtil
+import com.supwisdom.utils.FileUtil
+import com.supwisdom.utils.ThreadPool
+import java.io.PrintWriter
+import java.io.StringWriter
+import java.util.HashMap
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+class CrashHandler : Thread.UncaughtExceptionHandler {
+    private var context: Context? = null
+    private var mDefaultHandler: Thread.UncaughtExceptionHandler? = null
+    private val info = HashMap<String, String>()
+
+    companion object {
+        private var INSTANCE: CrashHandler? = null
+
+        fun getInstance(): CrashHandler {
+            if (INSTANCE == null) {
+                synchronized(CrashHandler::class) {
+                    if (INSTANCE == null) {
+                        INSTANCE = CrashHandler()
+                    }
+                }
+            }
+            return INSTANCE!!
+        }
+    }
+
+    fun init(context: Context) {
+        this.context = context
+        // 获取系统默认的 UncaughtException 处理器
+        mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler()
+        // 设置该 CrashHandler 为程序的默认处理器
+        Thread.setDefaultUncaughtExceptionHandler(this)
+    }
+
+    override fun uncaughtException(thread: Thread, ex: Throwable) {
+        if (!handleException(ex) && mDefaultHandler != null) {
+            // 如果自定义的没有处理则让系统默认的异常处理器来处理
+            mDefaultHandler!!.uncaughtException(thread, ex)
+        } else {
+            AppExitUtil.exit()
+        }
+    }
+
+    /**
+     * 自定义错误处理,收集错误信息 发送错误报告等操作均在此完成.
+     *
+     * @param ex 异常信息
+     * @return true 如果处理了该异常信息;否则返回false.
+     */
+    private fun handleException(ex: Throwable?): Boolean {
+//        CommonUtil.showBar(context!!)
+        ThreadPool.getShortPool().execute(Runnable {
+            CommonUtil.doSleep(500)
+            Looper.prepare()
+            ToastUtil.show(context!!, "很抱歉,程序运行异常")
+            Looper.loop()
+        })
+        if (ex == null) {
+            return false
+        }
+        // 收集设备参数信息
+        collectDeviceInfo()
+        // 保存日志文件
+        saveCrashInfo2File(ex)
+        return true
+    }
+
+    /**
+     * 收集设备参数信息
+     */
+
+    private fun collectDeviceInfo() {
+        try {
+            val pm = context!!.packageManager// 获得包管理器
+            val pi = pm.getPackageInfo(
+                context!!.packageName,
+                PackageManager.GET_ACTIVITIES
+            )// 得到该应用的信息，即主Activity
+            if (pi != null) {
+                info["versionName"] = pi.versionName ?: "null"
+                info["versionCode"] = pi.versionCode.toString()
+            }
+        } catch (e: PackageManager.NameNotFoundException) {
+            e.printStackTrace()
+        }
+
+        val fields = Build::class.java.declaredFields// 反射机制
+        for (field in fields) {
+            try {
+                field.isAccessible = true
+                info[field.name] = field.get("").toString()
+            } catch (e: IllegalArgumentException) {
+                e.printStackTrace()
+            } catch (e: IllegalAccessException) {
+                e.printStackTrace()
+            }
+        }
+    }
+
+    private fun saveCrashInfo2File(ex: Throwable): Boolean {
+        val sb = StringBuffer()
+        sb.append("\r\n crash time :").append(DateUtil.getNowTime()).append("\r\n")
+        for ((key, value) in info) {
+            sb.append("$key=$value\r\n")
+        }
+        val writer = StringWriter()
+        val pw = PrintWriter(writer)
+        ex.printStackTrace(pw)
+        var cause: Throwable? = ex.cause
+        // 循环着把所有的异常信息写入writer中
+        while (cause != null) {
+            cause.printStackTrace(pw)
+            cause = cause.cause
+        }
+        pw.close()// 记得关闭
+        val result = writer.toString()
+        sb.append(result)
+        // 保存文件
+        FileUtil.writeCrashFile(sb.toString())
+        return true
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/SPApplication.kt b/app/src/main/java/com/supwisdom/activities/SPApplication.kt
new file mode 100644
index 0000000..06040ca
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/activities/SPApplication.kt
@@ -0,0 +1,13 @@
+package com.supwisdom.activities
+
+import android.support.multidex.MultiDexApplication
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+class SPApplication: MultiDexApplication() {
+    override fun onCreate() {
+        super.onCreate()
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/activities/ServiceDemo.kt b/app/src/main/java/com/supwisdom/activities/ServiceDemo.kt
new file mode 100644
index 0000000..c0bc6b1
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/activities/ServiceDemo.kt
@@ -0,0 +1,15 @@
+package com.supwisdom.activities
+
+import android.app.Service
+import android.content.Intent
+import android.os.IBinder
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+class ServiceDemo : Service() {
+    override fun onBind(intent: Intent): IBinder? {
+        return null
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/AppExitUtil.kt b/app/src/main/java/com/supwisdom/utils/AppExitUtil.kt
new file mode 100644
index 0000000..d9f3f3a
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/AppExitUtil.kt
@@ -0,0 +1,53 @@
+package com.supwisdom.utils
+
+import android.app.Activity
+import java.util.*
+
+/**
+ * @author zzq
+ * @date 2018/3/20.
+ * @version 1.0.1
+ * @desc : activity管理
+ */
+object AppExitUtil {
+    private val acys = HashSet<Activity>()
+
+    fun add(acy: Activity) {
+        acys.add(acy)
+    }
+
+    fun remove(acy: Activity) {
+        acys.remove(acy)
+        if (!acy.isFinishing) {
+            acy.finish()
+        }
+        if (acys.size == 0) {
+            killprocess()
+        }
+    }
+
+    fun exit() {
+        val iter = acys.iterator()
+        val arrs = arrayOfNulls<Activity>(acys.size)
+        var i = 0
+        while (iter.hasNext()) {
+            arrs[i] = iter.next()
+            i += 1
+        }
+        acys.clear()
+        for (j in arrs.indices) {
+            if (arrs[j] != null && !arrs[j]!!.isFinishing) {
+                arrs[j]!!.finish()
+                arrs[j] = null
+            }
+        }
+        killprocess()
+    }
+
+    private fun killprocess() {
+        ThreadPool.getShortPool().execute(Runnable {
+            CommonUtil.doSleep(2000)
+            android.os.Process.killProcess(android.os.Process.myPid())
+        })
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/CommonUtil.kt b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
new file mode 100644
index 0000000..2f3e62b
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/CommonUtil.kt
@@ -0,0 +1,117 @@
+@file:Suppress("DEPRECATION")
+
+package com.supwisdom.utils
+
+import android.annotation.SuppressLint
+import android.app.Activity
+import android.content.Context
+import android.content.Intent
+import android.content.pm.PackageManager
+import android.net.Uri
+import android.os.Build
+import android.os.PowerManager
+import android.provider.Settings
+import java.io.File
+import java.io.FileOutputStream
+
+/**
+ * @author zzq
+ * @date 2018/5/9.
+ * @version 1.0.1
+ * @desc  公共类
+ */
+object CommonUtil {
+    fun doSleep(ms: Long) {
+        try {
+            Thread.sleep(ms)
+        } catch (e: InterruptedException) {
+            e.printStackTrace()
+        }
+    }
+
+    fun YuanToFen(yuan: Double): Int {
+        return Math.round(yuan * 100).toInt()
+    }
+
+    fun upgrade(context: Context, filename: String) {
+        val intent = Intent(Intent.ACTION_VIEW)
+        val uri = Uri.fromFile(File(filename))
+        intent.setDataAndType(uri, "application/vnd.android.package-archive")
+        (context as Activity).startActivityForResult(intent, 0)
+    }
+
+    /*优化a811扫码*/
+    fun writeLinnuuxParams() {
+        try {
+            val fos = FileOutputStream("/sys/module/gc0308/parameters/exposure")
+            fos.write("20".toByteArray())
+            fos.close()
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+    }
+
+    /**
+     * get App versionName
+     *
+     * @param context
+     * @return
+     */
+    fun getVersionName(context: Context): String {
+        try {
+            val packageManager = context.packageManager
+            val packageInfo = packageManager.getPackageInfo(context.packageName, 0)
+            return packageInfo.versionName
+        } catch (e: PackageManager.NameNotFoundException) {
+            e.printStackTrace()
+            return "error:" + e.message
+        }
+
+    }
+
+    /**
+     * 跳转网络设置页；
+     */
+    fun startNetSetting(context: Context) {
+        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+            context.startActivity(Intent(Settings.ACTION_SETTINGS))
+        } else {
+            context.startActivity(Intent(Settings.ACTION_WIRELESS_SETTINGS))
+        }
+    }
+
+    /**
+     * 唤醒屏幕
+     */
+    fun acquireWakeLock(context: Context) {
+        /*FULL_WAKE_LOCK：保持CPU 运转，保持屏幕高亮显示，键盘灯也保持亮度
+          ACQUIRE_CAUSES_WAKEUP：强制使屏幕亮起，这种锁主要针对一些必须通知用户的操作.
+          ON_AFTER_RELEASE：当锁被释放时，保持屏幕亮起一段时间*/
+        try {
+            val pm = context.getSystemService(Context.POWER_SERVICE) as PowerManager
+            @SuppressLint("InvalidWakeLockTag") val wakeLock = pm.newWakeLock(
+                PowerManager.ON_AFTER_RELEASE
+                        or PowerManager.ACQUIRE_CAUSES_WAKEUP
+                        or PowerManager.FULL_WAKE_LOCK, "Tag"
+            )
+            wakeLock.acquire()
+            wakeLock.release()
+        } catch (ex: Exception) {
+            ex.printStackTrace()
+        }
+
+    }
+
+    fun getPasswordStar(len: Int): String {
+        return when (len) {
+            0 -> " "
+            1 -> "*"
+            2 -> "**"
+            3 -> "***"
+            4 -> "****"
+            5 -> "*****"
+            6 -> "******"
+            else -> " "
+        }
+    }
+}
\ 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
new file mode 100644
index 0000000..8354b4a
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/DateUtil.kt
@@ -0,0 +1,481 @@
+package com.supwisdom.utils
+
+import java.text.ParseException
+import java.util.*
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+object DateUtil {
+    private val FORMAT_yyyyMMdd = org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyyMMdd")
+    private val FORMAT_yyMMddHHmmss = org.apache.commons.lang3.time.FastDateFormat.getInstance("yyMMddHHmmss")
+    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_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 = org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyyMMddHHmmss")
+    private val FORMAT_yyyyMMddHHmm = org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyyMMddHHmm")
+    private val FORMAT_MMddHHmmyy = org.apache.commons.lang3.time.FastDateFormat.getInstance("MMddHHmmyy")
+    private val FORMAT_yyyy_MM_dd_HH_mm_ss =
+        org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss")
+    private val FORMAT_yyyy_MM_dd_HH_mm_ss_SSS =
+        org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyy-MM-dd HH:mm:ss.SSS")
+    private val FORMAT_HH_mm_ss_SSS = org.apache.commons.lang3.time.FastDateFormat.getInstance("HHmmssSSS")
+    private val FORMAT_yyyy_MM_dd_HH_mm = org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyy-MM-dd HH:mm")
+    private val FORMAT_yyyy_MM_dd = org.apache.commons.lang3.time.FastDateFormat.getInstance("yyyy-MM-dd")
+    private val FORMAT_HH_mm_ss = org.apache.commons.lang3.time.FastDateFormat.getInstance("HH:mm:ss")
+    private val FORMAT_HH_mm = org.apache.commons.lang3.time.FastDateFormat.getInstance("HH:mm")
+
+    /**
+     * @return yyyy-MM-dd HH:mm:ss
+     */
+    fun getNow(): String {
+        return FORMAT_yyyy_MM_dd_HH_mm_ss.format(Date())
+    }
+
+    /**
+     * @return yyyy-MM-dd HH:mm:ss.SSS
+     */
+    fun getNow5(): String {
+        return FORMAT_yyyy_MM_dd_HH_mm_ss_SSS.format(Date())
+    }
+
+    /**
+     * @return yyyy-MM-dd HH:mm
+     */
+    fun getNow4(): String {
+        return FORMAT_yyyy_MM_dd_HH_mm.format(Date())
+    }
+
+    /**
+     * @return yyMMddHHmmss
+     */
+    fun getNow2(): String {
+        return FORMAT_yyMMddHHmmss.format(Date())
+    }
+
+    /**
+     * @param dateTime yyyyMMddHHmmss
+     * @return yyyyMMdd.HHmmss
+     */
+    fun getNow4(dateTime: String): String? {
+        try {
+            val str1 = dateTime.substring(0, 8)
+            val str2 = dateTime.substring(8)
+            return "$str1.$str2"
+        } catch (ex: Exception) {
+            ex.printStackTrace()
+        }
+        return null
+    }
+
+    /**
+     * @return yy-MM-dd HH:mm:ss
+     */
+    fun getNow3(): String {
+        return FORMAT_yyMMddHHmmss2.format(Date())
+    }
+
+    /**
+     * @return yyyy-MM-dd HH:mm:ss
+     */
+    fun getDateTimeFormat(date: Date): String {
+        return FORMAT_yyyy_MM_dd_HH_mm_ss.format(date)
+    }
+
+    /**
+     * @return yyyy-MM-dd HH:mm:ss
+     */
+    fun getDateTimeFormat(timeInMillis: Long?): String {
+        return FORMAT_yyyy_MM_dd_HH_mm_ss.format(timeInMillis)
+    }
+
+    /**
+     * @param datetime yyyyMMddHHmmss
+     * @return yyyy-MM-dd HH:mm:ss
+     */
+    fun getNowDatetimeFromNoFormat(datetime: String): String {
+        try {
+            return datetime.substring(0, 4) + "-" +
+                    datetime.substring(4, 6) + "-" +
+                    datetime.substring(6, 8) + " " +
+                    datetime.substring(8, 10) + ":" +
+                    datetime.substring(10, 12) + ":" +
+                    datetime.substring(12)
+        } catch (ex: Exception) {
+        }
+        return ""
+    }
+
+    /**
+     * @param datetime yyyyMMddHHmm
+     * @return yyyy-MM-dd HH:mm
+     */
+    fun getNowDatetimeFromNoFormat3(datetime: String): String {
+        try {
+            return datetime.substring(0, 4) + "-" +
+                    datetime.substring(4, 6) + "-" +
+                    datetime.substring(6, 8) + " " +
+                    datetime.substring(8, 10) + ":" +
+                    datetime.substring(10)
+        } catch (ex: Exception) {
+        }
+        return ""
+    }
+
+    /**
+     * @param datetime yyyyMMddHHmmss
+     * @return yy-MM-dd HH:mm:ss
+     */
+    fun getNowDatetimeFromNoFormat2(datetime: String): String {
+        try {
+            return datetime.substring(2, 4) + "-" +
+                    datetime.substring(4, 6) + "-" +
+                    datetime.substring(6, 8) + " " +
+                    datetime.substring(8, 10) + ":" +
+                    datetime.substring(10, 12) + ":" +
+                    datetime.substring(12)
+        } catch (ex: Exception) {
+        }
+        return ""
+    }
+
+    /**
+     * @param date yyyyMMdd
+     * @return yyyy-MM-dd
+     */
+    fun getNowDateFromNoFormat(date: String): String {
+        try {
+            return date.substring(0, 4) + "-" +
+                    date.substring(4, 6) + "-" +
+                    date.substring(6, 8)
+        } catch (ex: Exception) {
+        }
+        return ""
+    }
+
+    /**
+     * @param date yyyy-MM-dd HH:mm:ss
+     * @return yyyyMMddHHmmss
+     */
+    fun getNowDateFromNoFormat2(date: String): String {
+        return date.replace("-", "")
+            .replace(" ", "")
+            .replace(":", "")
+    }
+
+
+    /**
+     * @return HH:mm:ss
+     */
+    fun getNowTimeWithArg(date: Date): String? {
+        try {
+            return FORMAT_HH_mm_ss.format(date)
+        } catch (e: Exception) {
+            return null
+        }
+    }
+
+    /**
+     * @param time HHmm
+     * @return HH:mm
+     */
+    fun formatTime(time: String): String {
+        try {
+            val sb = StringBuilder()
+            sb.append(time.substring(0, 2)).append(":")
+                .append(time.substring(2, 4))
+            return sb.toString()
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+        return ""
+    }
+
+    /**
+     * @return MMdd
+     */
+    fun getDateMMdd(): String? {
+        try {
+            return FORMAT_MMdd.format(Date())
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+        return null
+    }
+
+    /**
+     * @return MM-dd
+     */
+    fun getDate_MMdd(): String? {
+        try {
+            return FORMAT_MM_dd.format(Date())
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+        return null
+    }
+
+    /**
+     * @return yyyy-MM-dd
+     */
+    fun getNowDate(): String {
+        return FORMAT_yyyy_MM_dd.format(Date())
+    }
+
+    /**
+     * @return yyyy-MM-dd
+     */
+    fun getNowDate2(date: Date): String? {
+        try {
+            return FORMAT_yyyy_MM_dd.format(date)
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+        return null
+    }
+
+    /**
+     * @param dateStr yyyy-MM-dd
+     * @return
+     */
+    fun getNowDate(dateStr: String): Date? {
+        try {
+            return FORMAT_yyyy_MM_dd.parse(dateStr)
+        } catch (e: ParseException) {
+            e.printStackTrace()
+        }
+        return null
+    }
+
+    /**
+     * @return HHmmssSSS
+     */
+    fun getNowTime1(): String {
+        return FORMAT_HH_mm_ss_SSS.format(Date())
+    }
+
+    /**
+     * @return HH:mm:ss
+     */
+    fun getNowTime(): String {
+        return FORMAT_HH_mm_ss.format(Date())
+    }
+
+    /**
+     * @return format
+     */
+    fun getDayofWeek(offsetWeek: Int, dayOfWeek: Int, format: String): String {
+        val cal = Calendar.getInstance()
+        // n为推迟的周数，1本周，-1向前推迟一周，2下周，依次类推
+        val retday: String
+        cal.add(Calendar.DATE, offsetWeek * 7)
+        cal.set(Calendar.DAY_OF_WEEK, dayOfWeek)
+        retday = org.apache.commons.lang3.time.FastDateFormat.getInstance(format).format(cal.time)
+        return retday
+    }
+
+    /**
+     * 计算超时时间，精确到毫秒
+     *
+     * @param milliSeconds
+     * @return L
+     */
+    fun getExpireTime(milliSeconds: Long): Long {
+        return Date().time + milliSeconds
+    }
+
+    /**
+     * @return yyyyMMddHHmmss
+     */
+    fun getNowDateTimeNoFormat(): String {
+        return FORMAT_yyyyMMddHHmmss.format(Date())
+    }
+
+    /**
+     * @return yyyyMMdd
+     */
+    fun getNowDateNoFormat(): String {
+        return FORMAT_yyyyMMdd.format(Date())
+    }
+
+    /**
+     * @param date
+     * @return yyyyMMdd
+     */
+    fun getNowDateNoFormat(date: Date): String? {
+        try {
+            return FORMAT_yyyyMMdd.format(date)
+        } catch (e: Exception) {
+            e.printStackTrace()
+        }
+        return null
+    }
+
+    /**
+     * @return HHmmss
+     */
+    fun getNowTimeNoFormat(): String {
+        return FORMAT_HHmmss.format(Date())
+    }
+
+    /**
+     * @param datetime yyyyMMddHHmmss
+     * @return ms
+     * @desc 将日期格式的字符串转换为长整型
+     */
+    fun dateFormatConvertToLong(datetime: String): Long {
+        try {
+            return FORMAT_yyyyMMddHHmmss.parse(datetime).time
+        } catch (ex: ParseException) {
+            return 0L
+        }
+    }
+
+    /**
+     * @param time ms
+     * @return yyyyMMddHHmmss
+     * @desc 将长整型数字转换为日期格式的字符串
+     */
+    fun dateLongConvertToFormat(time: Long): String {
+        return if (time > 0L) {
+            FORMAT_yyyyMMddHHmmss.format(Date(time))
+        } else ""
+    }
+
+    /**
+     * @param time ms
+     * @return MMddHHmmyy
+     * @desc 将长整型数字转换为日期格式的字符串
+     */
+    fun dateLongConvertToFormat2(time: Long): String {
+        return if (time > 0L) {
+            FORMAT_MMddHHmmyy.format(Date(time))
+        } else ""
+    }
+
+    /**
+     * @param datetime yyyy-MM-dd HH:mm:ss
+     * @return
+     * @desc 将日期格式的字符串转换为长整型
+     */
+    fun dateFormatConvertToDate(datetime: String): Date? {
+        try {
+            return FORMAT_yyyy_MM_dd_HH_mm_ss.parse(datetime)
+        } catch (ex: ParseException) {
+            return null
+        }
+    }
+
+    /**
+     * @param daynum 天数
+     * @return 返回当前日期的第 daynum 天前的日期  yyyyMMdd
+     */
+    fun getDayDateNoFormatBefore(daynum: Int): String {
+        val calendar = Calendar.getInstance()
+        calendar.add(Calendar.DATE, -daynum)
+        return FORMAT_yyyyMMdd.format(calendar.time)
+    }
+
+    /**
+     * 获得指定日期的前一天
+     *
+     * @param specifiedDay yyyyMMdd
+     * @return yyyyMMdd
+     */
+    fun getSpecifiedDayBefore(specifiedDay: String): String {
+        try {
+            val c = Calendar.getInstance()
+            val date = FORMAT_yyyyMMdd.parse(specifiedDay)
+            c.time = date
+            val day = c.get(Calendar.DATE)
+            c.set(Calendar.DATE, day - 1)
+            return FORMAT_yyyyMMdd.format(c.time)
+        } catch (e: ParseException) {
+            return ""
+        }
+    }
+
+    /**
+     * 获得指定日期的前一天
+     *
+     * @param dayBefore 往前推迟的天数
+     * @return Date
+     */
+    fun getSomeDayBefore(dayBefore: Int): Date {
+        val c = Calendar.getInstance()
+        c.add(Calendar.DAY_OF_MONTH, -dayBefore)
+        return c.time
+    }
+
+    /**
+     * 获得指定日期的后一天
+     *
+     * @param specifiedDay yyyyMMdd
+     * @return yyyyMMdd
+     */
+    fun getSpecifiedDayAfter(specifiedDay: String): String {
+        try {
+            val c = Calendar.getInstance()
+            val date = FORMAT_yyyyMMdd.parse(specifiedDay)
+            c.time = date
+            val day = c.get(Calendar.DATE)
+            c.set(Calendar.DATE, day + 1)
+            return FORMAT_yyyyMMdd.format(c.time)
+        } catch (e: ParseException) {
+            return ""
+        }
+    }
+
+    /**
+     * 获得指定日期的后一天
+     *
+     * @param specifiedDay yyyy-MM-dd
+     * @return yyyy-MM-dd
+     */
+    fun getSpecifiedDayAfter1(specifiedDay: String): String {
+        try {
+            val c = Calendar.getInstance()
+            val date = FORMAT_yyyy_MM_dd.parse(specifiedDay)
+            c.time = date
+            val day = c.get(Calendar.DATE)
+            c.set(Calendar.DATE, day + 1)
+            return FORMAT_yyyy_MM_dd.format(c.time)
+        } catch (e: ParseException) {
+            return ""
+        }
+    }
+
+    /**
+     * 分钟转化为未来时间yyyyMMddHHmm
+     *
+     * @param minute 分钟数
+     * @return yyyyMMddHHmm
+     */
+    fun format2FutureTime(minute: Int): String {
+        val calendar = Calendar.getInstance()
+        calendar.add(Calendar.MINUTE, minute)
+        return FORMAT_yyyyMMddHHmm.format(calendar.time)
+    }
+
+    /**
+     * @return yyyyMMddHHmm
+     */
+    fun getNowDateTimeFormat(): String {
+        return FORMAT_yyyyMMddHHmm.format(Date())
+    }
+
+    /**
+     * @param datetime yyyyMMddHHmm
+     * @return 毫秒数
+     */
+    fun formatDateTime(datetime: String): Long {
+        try {
+            return FORMAT_yyyyMMddHHmm.parse(datetime).time
+        } catch (ex: Exception) {
+            ex.printStackTrace()
+        }
+        return 0
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/FileUtil.kt b/app/src/main/java/com/supwisdom/utils/FileUtil.kt
new file mode 100644
index 0000000..bf18ee0
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/FileUtil.kt
@@ -0,0 +1,142 @@
+package com.supwisdom.utils
+
+import android.os.Environment
+import java.io.*
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+object FileUtil {
+    private val ROOT_DIR = "/YueXiao/pos/"
+    private val ROOT_PRIVATE_DIR = "/supwisdom/"
+    private val CACHE_FILE_DIR = ROOT_DIR + "cache/"
+    private val CRASH_FILE_DIR = ROOT_DIR + "crash/"
+    private val CRASH_FILE_PRE = "crash-"
+    private val LOG_FILE_DIR = ROOT_DIR + "log/"
+    private val LOG_FILE_PRE = "log-"
+    private val DTL_FILE_DIR = ROOT_DIR + "dtl/"
+    private val DTL_FILE_PRE = "dtl-"
+
+    fun getUpdateFile(fileName: String): File? {
+        return createFile(CACHE_FILE_DIR, fileName)
+    }
+
+    fun getCfgFile(fileName: String): File? {
+        return createFile(ROOT_PRIVATE_DIR, fileName)
+    }
+
+    fun getCfgFileStream(fileName: String): InputStream? {
+        if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
+            val rootFile = File(Environment.getExternalStorageDirectory().toString() + ROOT_PRIVATE_DIR)
+            if (!rootFile.exists()) {
+                return null
+            }
+            val retFile = File(rootFile, fileName)
+            if (retFile.exists()) {
+                try {
+                    return FileInputStream(retFile)
+                } catch (e: FileNotFoundException) {
+                    e.printStackTrace()
+                }
+
+            }
+        }
+        return null
+    }
+
+    fun removeDtlFile(beforeday: Int) {
+        removeFile(DTL_FILE_DIR, DTL_FILE_PRE, beforeday)
+    }
+
+    fun removeLogFile(beforeday: Int) {
+        removeFile(LOG_FILE_DIR, LOG_FILE_PRE, beforeday)
+    }
+
+    fun removeCrashFile(beforeday: Int) {
+        removeFile(CRASH_FILE_DIR, CRASH_FILE_PRE, beforeday)
+    }
+
+
+    fun writeDtlFile(msg: String) {
+        val pathfile = DTL_FILE_DIR + DTL_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
+        writeFile(pathfile, msg, true)
+    }
+
+    fun writeCrashFile(msg: String) {
+        val pathfile = CRASH_FILE_DIR + CRASH_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
+        writeFile(pathfile, msg, true)
+    }
+
+    fun writeLogFile(msg: String) {
+        val pathfile = LOG_FILE_DIR + LOG_FILE_PRE + DateUtil.getNowDateNoFormat() + ".txt"
+        writeFile(pathfile, msg, true)
+    }
+
+    private fun writeFile(targetPath: String, msg: String, append: Boolean) {
+        if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
+            val targetFile = File(Environment.getExternalStorageDirectory().toString() + targetPath)
+            if (!targetFile.parentFile.exists()) {
+                targetFile.parentFile.mkdirs()
+            }
+            try {
+                val osw = OutputStreamWriter(
+                    FileOutputStream(targetFile, append), "utf-8"
+                )
+                try {
+                    osw.write(msg)
+                    osw.write("</br>\n")
+                    osw.flush()
+                    osw.close()
+                } catch (e: IOException) {
+                    e.printStackTrace()
+                }
+
+            } catch (e1: UnsupportedEncodingException) {
+                e1.printStackTrace()
+            } catch (e1: FileNotFoundException) {
+                e1.printStackTrace()
+            }
+
+        }
+    }
+
+    private fun removeFile(targetPath: String, prefile: String, beforeday: Int) {
+        if (Environment.MEDIA_MOUNTED == Environment.getExternalStorageState()) {
+            val rootFile = File(Environment.getExternalStorageDirectory().toString() + targetPath)
+            if (!rootFile.exists()) {
+                return
+            }
+            val logname = prefile + DateUtil.getDayDateNoFormatBefore(beforeday) + ".txt"
+            val files = rootFile.listFiles()
+            for (file in files!!) {
+                val fullfilename = file.absolutePath
+                val filename = fullfilename.substring(fullfilename.lastIndexOf('/') + 1)
+                if (filename.startsWith(prefile) && filename.endsWith(".txt")) {
+                    if (filename.compareTo(logname) < 0) {
+                        file.delete()
+                    }
+                }
+            }
+        }
+    }
+
+    private fun createFile(path: String, fileName: String): File? {
+        if (android.os.Environment.MEDIA_MOUNTED == android.os.Environment.getExternalStorageState()) {
+            val rootFile = File(Environment.getExternalStorageDirectory().toString() + path)
+            if (!rootFile.exists()) {
+                rootFile.mkdirs()
+            }
+            val retFile = File(rootFile, fileName)
+            if (!retFile.exists()) {
+                try {
+                    retFile.createNewFile()
+                } catch (e: IOException) {
+                    return null
+                }
+            }
+            return retFile
+        }
+        return null
+    }
+}
\ 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
new file mode 100644
index 0000000..372f8a7
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/PublicDef.kt
@@ -0,0 +1,159 @@
+package com.supwisdom.utils
+
+/**
+ * @author zzq
+ * @date 2018/4/26.
+ * @version 1.0.1
+ * @desc  APP module常量定义
+ */
+object PublicDef {
+    /**
+     * 错误码
+     */
+    const val SUCCESS = 0
+    const val ERROR = 1
+    /**
+     * 商户默认密码 111111
+     * 维护默认密码 914387
+     */
+    const val PASSWD_SHOP_DEFAULT = "111111"
+    const val PASSWD_ADMIN_DEFAULT = "914387"
+
+    /**************************************************************/
+    /*************************handler 状态码***********************/
+    /*************************不能重复*****************************/
+    /**
+     * @desc 刷卡消费
+     */
+    const val MSG_CARD_USER_INFO_CLEAR = 10
+    const val MSG_CARD_USER_INFO_SHOW = 11
+    const val MSG_CARD_READ_AGAIN = 12
+    const val MSG_CARD_PASSWORD_CHECK = 13
+    const val MSG_CARD_PAY_SUCCESS = 14
+    const val MSG_CARD_PAY_FAIL = 15
+    const val MSG_CARD_PAYING_HINT = 16
+    const val MSG_CARD_REVERSE_SUCCESS = 17
+    const val MSG_CARD_REVERSE_FAIL = 18
+    const val MSG_HOME_CLEAR = 19
+
+    const val MSG_QRCODE_PASSWORD_CHECK = 20
+    const val MSG_QRCODE_PAY_SUCCESS = 21
+    const val MSG_QRCODE_PAY_FAIL = 22
+    const val MSG_QRCODE_REVERSE_SUCCESS = 23
+    const val MSG_QRCODE_REVERSE_FAIL = 24
+    const val MSG_QRCODE_PAYING_HINT = 25
+
+    const val MSG_GOODS_UPDATE = 26
+    const val MSG_LINK_STATUS_UPDATE = 27
+    const val MSG_PHONE_BILL_UPDATE = 28
+
+    const val MSG_ORDER_HISTORY_SHOW = 29
+    const val MSG_ORDER_PHONE_SHOW = 30
+    const val MSG_ORDER_WEIGH_WEIGHT = 31
+
+    const val MSG_ORDINARY_REFRESH_LASTORDER = 32
+    const val MSG_NO_CARD_PAY_SUCCESS = 33
+    const val MSG_PRINT_ERROR = 34
+    const val MSG_PRINT = 35
+
+    const val MSG_TAKE_NOTIFY_SUC = 45
+    const val MSG_TAKE_NOTIFY_FAIL = 46
+    /**
+     * dialog 创建类型
+     */
+    const val DIALOG_TYPE_PHONE_BILL_HINT = 3 //在线订单提醒弹窗
+    const val DIALOG_TYPE_ORDERX_HISTORY_BILL = 4 //服务器点餐模式历史订单
+    const val DIALOG_TYPE_NSD_CONFIG = 5 //NSD 参数配置列表
+    /**
+     * 点餐界面显示模式
+     */
+    const val ORDER_VIEW_SHOW_PIC4 = 1 //2列
+    const val ORDER_VIEW_SHOW_PIC9 = 2 //3列
+    const val ORDER_VIEW_SHOW_PIC16 = 3//4列
+    const val ORDER_VIEW_SHOW_PIC20 = 4//5列
+    const val ORDER_VIEW_SHOW_PIC25 = 5//5列
+    const val ORDER_VIEW_SHOW_PIC30 = 6//5列
+    const val ORDER_VIEW_SHOW_SIMPLE35 = 7//5列
+    const val ORDER_VIEW_SHOW_SIMPLE40 = 8//5列
+    const val ORDER_VIEW_SHOW_SIMPLE45 = 9//5列
+    const val ORDER_VIEW_SHOW_SIMPLE50 = 10//5列
+    const val ORDER_VIEW_SHOW_SIMPLE55 = 11//5列
+    const val ORDER_VIEW_SHOW_SIMPLE60 = 12//5列
+    /**
+     *点餐界面可点单份菜品最大数量
+     */
+    const val SHOW_FOOD_ONCE_SOLD_MAXNUM = 9
+    /**
+     *点餐界面历史流水最大数量
+     */
+    const val SHOW_FOOD_CLIENT_HISTORY_MAXNUM = 15
+    const val SHOW_FOOD_WAITER_HISTORY_MAXNUM = 50
+    /**
+     * 点餐菜品对应菜品ID
+     */
+    const val Food_Zhcn_MiFan = "米饭"
+    const val Food_MiFan = "110200000014"
+    /**
+     * 菜品启用状态
+     */
+    const val FOOD_ENABLE = "A"
+    const val FOOD_DISABLE = "C"
+    /**
+     * 点餐背景图配色
+     */
+    const val COLOR_BG_0 = 0
+    const val COLOR_BG_1 = 1
+    const val COLOR_BG_2 = 2
+    const val COLOR_BG_3 = 3
+    const val COLOR_BG_4 = 4
+    const val COLOR_BG_5 = 5
+    const val COLOR_BG_6 = 6
+    const val COLOR_BG_7 = 7
+    const val COLOR_BG_8 = 8
+    const val COLOR_BG_9 = 9
+
+    /**
+     * 寻卡间隔
+     */
+    const val FIND_CARD_GAP = 200L
+
+
+    /**
+     * 包间点餐(ms)
+     */
+    const val ROOM_ANIMATION_BUTTON_GAP: Long = 600
+    /**
+     *反扫二维码间隔(ms)
+     */
+    const val ORDER_QRCODE_GAP: Long = 5000
+    /**
+     * 点餐模式
+     */
+    const val ORDER_MODE_CLIENT_POPULAR = "clientPopular" //用户大众模式
+    const val ORDER_MODE_WAITER_POPULAR = "waiterPopular" //服务员大众模式
+    const val ORDER_MODE_CALL_POPULAR = "callPopular" //叫号模式
+    const val ORDER_MODE_PRIVATE_ROOM = "privateRoom" //包间模式
+
+
+    /**
+     * 包间模式参数key
+     */
+    const val ARG_ROOM_ID = "roomId"
+    const val ARG_ROOM_NAME = "roomName"
+    const val ARG_ROOM_BILLNO = "roomBillno"
+
+    const val SYSPROP_NAVIBAR = "persist.sys.hidenavibar"
+
+    const val PRINT_FOOD_ALL = 0
+    const val PRINT_FOOD_HUN = 1
+    const val PRINT_FOOD_SU = 2
+    const val BG_SERVICE_NAME = "com.supwisdom.dcpos.service.BackgroundTaskService"
+
+
+    /**
+     * 人脸识别常量
+     */
+    const val KEY_EXTRA_BUNDLE = "key_extra_bundle"
+    const val KEY_EXTRA_AMT = "key_extra_amt"
+    const val KEY_BUNDLE_FACEDATA = "key_bundle_facedata"
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/ThreadPool.kt b/app/src/main/java/com/supwisdom/utils/ThreadPool.kt
new file mode 100644
index 0000000..eab9150
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/ThreadPool.kt
@@ -0,0 +1,170 @@
+package com.supwisdom.utils
+
+import java.util.concurrent.Executors
+import java.util.concurrent.LinkedBlockingQueue
+import java.util.concurrent.ThreadPoolExecutor
+import java.util.concurrent.TimeUnit
+
+/**
+ ** create by zzq on 2019/7/23
+ ** @desc
+ **/
+object ThreadPool {
+    private val DEFAULT_SINGLE_POOL_NAME = "DEFAULT_SINGLE_POOL_NAME"
+
+    private var mLongPool: ThreadPoolProxy? = null
+    private var mShortPool: ThreadPoolProxy? = null
+    private var mDownloadPool: ThreadPoolProxy? = null
+    private val mMap = hashMapOf<String, ThreadPoolProxy>()
+
+    /**
+     * 获取下载线程
+     */
+    fun getDownloadPool(): ThreadPoolProxy {
+        if (mDownloadPool == null) {
+            synchronized(ThreadPool::class.java) {
+                if (mDownloadPool == null) {
+                    //获取CPU核数
+                    val num = Runtime.getRuntime().availableProcessors()
+                    val corePoolSize = num + 1
+                    val maximumPoolSize = 2 * num + 1
+                    mDownloadPool = ThreadPoolProxy(corePoolSize, maximumPoolSize, 1L)
+                }
+            }
+        }
+        return mDownloadPool!!
+    }
+
+    /**
+     * 获取一个用于执行长耗时任务的线程池，避免和短耗时任务处在同一个队列而阻塞了重要的短耗时任务，通常用来联网操作
+     */
+
+    fun getLongPool(): ThreadPoolProxy {
+        if (mLongPool == null) {
+            synchronized(ThreadPool::class.java) {
+                if (mLongPool == null) {
+                    //获取CPU核数
+                    val num = Runtime.getRuntime().availableProcessors()
+                    val corePoolSize = num + 1
+                    val maximumPoolSize = 2 * num + 1
+                    mLongPool = ThreadPoolProxy(corePoolSize, maximumPoolSize, 1L)
+                }
+            }
+        }
+        return mLongPool!!
+    }
+
+    /**
+     * 获取一个用于执行短耗时任务的线程池，避免因为和耗时长的任务处在同一个队列而长时间得不到执行，通常用来执行本地的IO/SQL
+     */
+    fun getShortPool(): ThreadPoolProxy {
+        if (mShortPool == null) {
+            synchronized(ThreadPool::class.java) {
+                if (mShortPool == null) {
+                    //获取CPU核数
+                    val num = Runtime.getRuntime().availableProcessors()
+                    val corePoolSize = num + 1
+                    val maximumPoolSize = 2 * num + 1
+                    mShortPool = ThreadPoolProxy(corePoolSize, maximumPoolSize, 1L)
+                }
+            }
+        }
+        return mShortPool!!
+    }
+
+    /**
+     * 获取一个单线程池，所有任务将会被按照加入的顺序执行，免除了同步开销的问题
+     */
+    fun getSinglePool(): ThreadPoolProxy {
+        return getSinglePool(DEFAULT_SINGLE_POOL_NAME)
+    }
+
+    /**
+     * 获取一个单线程池，所有任务将会被按照加入的顺序执行，免除了同步开销的问题
+     */
+    fun getSinglePool(name: String): ThreadPoolProxy {
+        synchronized(ThreadPool::class.java) {
+            var singlePool: ThreadPoolProxy? = mMap[name]
+            if (singlePool == null) {
+                singlePool = ThreadPoolProxy(1, 1, 1L)
+                mMap[name] = singlePool
+            }
+            return singlePool
+        }
+    }
+
+    class ThreadPoolProxy constructor(
+        private val mCorePoolSize: Int,
+        private val mMaximumPoolSize: Int,
+        private val mKeepAliveTime: Long
+    ) {
+        private var mPool: ThreadPoolExecutor? = null
+
+        /**
+         * 执行任务，当线程池处于关闭，将会重新创建新的线程池
+         */
+        @Synchronized
+        fun execute(run: Runnable) {
+            if (mPool == null || mPool!!.isShutdown) {
+                //参数说明
+                //当线程池中的线程小于mCorePoolSize，直接创建新的线程加入线程池执行任务
+                //当线程池中的线程数目等于mCorePoolSize，将会把任务放入任务队列BlockingQueue中
+                //当BlockingQueue中的任务放满了，将会创建新的线程去执行，
+                //但是当总线程数大于mMaximumPoolSize时，将会抛出异常，交给RejectedExecutionHandler处理
+                //mKeepAliveTime是线程执行完任务后，且队列中没有可以执行的任务，存活的时间，后面的参数是时间单位
+                //ThreadFactory是每次创建新的线程工厂
+                mPool = ThreadPoolExecutor(
+                    mCorePoolSize,
+                    mMaximumPoolSize,
+                    mKeepAliveTime,
+                    TimeUnit.MILLISECONDS,
+                    LinkedBlockingQueue(),
+                    Executors.defaultThreadFactory(),
+                    ThreadPoolExecutor.AbortPolicy()
+                )
+            }
+            mPool!!.execute(run)
+        }
+
+        /**
+         * 取消线程池中某个还未执行的任务
+         */
+        @Synchronized
+        fun cancel(run: Runnable) {
+            if (mPool != null && (!mPool!!.isShutdown || mPool!!.isTerminating)) {
+                mPool!!.queue.remove(run)
+            }
+        }
+
+        /**
+         * 取消线程池中某个还未执行的任务
+         */
+        @Synchronized
+        operator fun contains(run: Runnable): Boolean {
+            return if (mPool != null && (!mPool!!.isShutdown || mPool!!.isTerminating)) {
+                mPool!!.queue.contains(run)
+            } else {
+                false
+            }
+        }
+
+        /**
+         * 立刻关闭线程池，并且正在执行的任务也将会被中断
+         */
+        fun stop() {
+            if (mPool != null && (!mPool!!.isShutdown || mPool!!.isTerminating)) {
+                mPool!!.shutdownNow()
+            }
+        }
+
+        /**
+         * 平缓关闭单任务线程池，但是会确保所有已经加入的任务都将会被执行完毕才关闭
+         */
+        @Synchronized
+        fun shutdown() {
+            if (mPool != null && (!mPool!!.isShutdown || mPool!!.isTerminating)) {
+                mPool!!.shutdownNow()
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/utils/Util.kt b/app/src/main/java/com/supwisdom/utils/Util.kt
new file mode 100644
index 0000000..e9fb0df
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/utils/Util.kt
@@ -0,0 +1,167 @@
+package com.supwisdom.utils
+
+import java.lang.Exception
+import java.util.regex.Pattern
+
+/**
+ * @author zzq
+ * @date 2018/3/20.
+ * @version 1.0.1
+ * @desc  TODO
+ */
+fun ByteArray.encodeHex(): String {
+    val res = StringBuilder()
+    forEach {
+        res.append("%02X".format(it.toInt() and 0xFF))
+    }
+    return res.toString()
+}
+
+fun String.decodeHex(): ByteArray {
+    if (this.isEmpty() || this.length % 2 != 0) {
+        throw Exception("不合法的数据")
+    }
+    return (0 until this.length step 2).map {
+        val v = this.substring(it, it + 2).toInt(16)
+        (v and 0xFF).toByte()
+    }.toByteArray()
+}
+
+fun String.encodeBCD(): ByteArray {
+    if (this.isEmpty() || this.length % 2 != 0) {
+        throw Exception("不合法的数据")
+    }
+    return (0 until this.length step 2).map {
+        val d = this.substring(it, it + 2)
+        val b1 = d[0].toInt() - 0x30
+        val b2 = d[1].toInt() - 0x30
+        if (b1 !in 0..9 || b2 !in 0..9) {
+            throw Exception("不合法的BCD格式数据<$this>")
+        }
+        ((b1.shl(4) or b2) and 0xFF).toByte()
+    }.toByteArray()
+}
+
+fun ByteArray.decodeBCD(): String {
+    return joinToString(separator = "") {
+        val b1 = it.unsignedToInt().shr(4)
+        val b2 = it.unsignedToInt() and 0x0F
+        if (b1 !in 0..9 || b2 !in 0..9) {
+            throw Exception("不合法的数据")
+        }
+        "%01d%01d".format(b1, b2)
+    }
+}
+
+fun byteArrayTohex(data: ByteArray, startPos: Int, byteLength: Int): String {
+    val res = StringBuilder()
+    data.forEachIndexed { index, s ->
+        if (index >= startPos && index < startPos + byteLength) {
+            res.append("%02X".format(s.unsignedToInt() and 0xFF))
+        }
+    }
+    return res.toString()
+}
+
+fun Byte.unsignedToInt(): Int {
+    return this.toInt() and 0xFF
+}
+
+fun Byte.unsignedToLong(): Long {
+    return this.toLong() and 0xFF
+}
+
+fun byteArrayToIntLe(data: ByteArray, startPos: Int, byteLength: Int): Int {
+    var res = 0
+    data.forEachIndexed { index, s ->
+        if (index >= startPos && index < startPos + byteLength) {
+            res = res or (s.unsignedToInt() shl ((index - startPos) shl 3))
+        }
+    }
+    return res
+}
+
+fun byteArrayToIntBe(data: ByteArray, startPos: Int, byteLength: Int): Int {
+    var res = 0
+    data.forEachIndexed { index, s ->
+        if (index >= startPos && index < startPos + byteLength) {
+            res = (res shl 8) or s.unsignedToInt()
+        }
+    }
+    return res
+}
+
+fun byteArrayToLongBe(data: ByteArray, startPos: Int, byteLength: Int): Long {
+    var res: Long = 0
+    data.forEachIndexed { index, s ->
+        if (index >= startPos && index < startPos + byteLength) {
+            res = (res shl 8) or s.toLong()
+        }
+    }
+    return res
+}
+
+fun byteArrayToLongLe(data: ByteArray): Long {
+    var res: Long = 0
+    data.forEachIndexed { index, s ->
+        res = res or ((s.toLong() and 0xFF) shl (index shl 3))
+    }
+    return res
+}
+
+
+fun intBeToByteArray(value: Int, byteLen: Int = 4): ByteArray {
+    if (byteLen !in 1..4) {
+        throw Exception("数据长度错误")
+    }
+    val res = "%08X".format(value).decodeHex()
+    return res.copyOfRange(4 - byteLen, 4)
+}
+
+fun intBeToByteArray(value: Int, data: ByteArray, startPos: Int, byteLen: Int) {
+    if (byteLen !in 1..4) {
+        throw Exception("数据长度错误")
+    }
+    val res = "%08X".format(value).decodeHex()
+    (startPos until startPos + byteLen).forEach {
+        data[it] = res[4 - byteLen + it - startPos]
+    }
+
+}
+
+fun longBeToByteArray(value: Long, byteLen: Int = 4): ByteArray {
+    if (byteLen !in 1..8) {
+        throw Exception("数据长度错误")
+    }
+    val res = ByteArray(8) { 0x00 }
+    (0..7).forEach {
+        res[it] = ((value shr ((7 - it) shl 3)) and 0xFF).toByte()
+    }
+    return res.copyOfRange(8 - byteLen, 8)
+}
+
+fun intLeToByteArray(value: Int, byteLen: Int = 4): ByteArray {
+    if (byteLen !in 1..4) {
+        throw Exception("数据长度错误")
+    }
+    val res = ByteArray(4) { 0x00 }
+    (0..3).forEach {
+        res[it] = ((value shr (it shl 3)) and 0xFF).toByte()
+    }
+    return res.copyOfRange(0, byteLen)
+}
+
+fun intLeToByteArray(value: Int, data: ByteArray, startPos: Int, byteLen: Int) {
+    if (byteLen !in 1..4) {
+        throw Exception("数据长度错误")
+    }
+    (0..3).forEach {
+        data[it + startPos] = ((value shr (it shl 3)) and 0xFF).toByte()
+    }
+}
+
+/**验证IP格式*/
+fun verifyIpFormat(ip: String): Boolean {
+    val pattern = Pattern.compile("")
+    return pattern.matcher(ip).matches()
+}
diff --git a/app/src/main/java/com/supwisdom/view/DialogBase.kt b/app/src/main/java/com/supwisdom/view/DialogBase.kt
new file mode 100644
index 0000000..bb6d40b
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/view/DialogBase.kt
@@ -0,0 +1,47 @@
+package com.supwisdom.view
+
+import android.app.Activity
+import android.app.Dialog
+import android.content.Context
+import com.supwisdom.R
+
+/**
+ * @author zzq
+ * @date 2018/6/7
+ * @desc 基类dialog
+ */
+open class DialogBase constructor(context: Context) : Dialog(context, R.style.FloatingDialog) {
+    private val ctx = context
+
+    override fun show() {
+        if (ctx is Activity) {
+            if (!ctx.isFinishing) {
+                //防止activity处于销毁状态
+                //android.view.WindowManager$BadTokenException: Unable to add window
+                // -- token android.os.BinderProxy@41b43ec0 is not valid; is your activity running
+                super.show()
+            }
+        } else {
+//            val activity = (ctx as ContextWrapper).baseContext as Activity
+//            if (!activity.isFinishing) {
+            //防止activity处于销毁状态
+            //android.view.WindowManager$BadTokenException: Unable to add window
+            // -- token android.os.BinderProxy@41b43ec0 is not valid; is your activity running
+            super.show()
+//            }
+        }
+    }
+
+    override fun dismiss() {
+        if (ctx is Activity) {
+            if (!ctx.isFinishing) {
+                super.dismiss()
+            }
+        } else {
+//            val activity = (ctx as ContextWrapper).baseContext as Activity
+//            if (!activity.isFinishing) {
+            super.dismiss()
+//            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/view/ListViewUtil.kt b/app/src/main/java/com/supwisdom/view/ListViewUtil.kt
new file mode 100644
index 0000000..cef2581
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/view/ListViewUtil.kt
@@ -0,0 +1,43 @@
+package com.supwisdom.view
+
+import android.widget.ListView
+
+/**
+ * @author zzq
+ * @date 2018/5/9.
+ * @version 1.0.1
+ * @desc  动态测量adapter listview的高度
+ */
+object ListViewUtil {
+    fun setListViewHeightBasedOnChildren(listView: ListView) {
+        val listAdapter = listView.adapter ?: return
+
+        var totalHeight = 0
+        for (i in 0 until listAdapter.count) {
+            val listItem = listAdapter.getView(i, null, listView)
+            listItem.measure(0, 0)
+            totalHeight += listItem.measuredHeight
+        }
+
+        val params = listView.layoutParams
+        params.height = totalHeight + listView.dividerHeight * (listAdapter.count - 1)
+        listView.layoutParams = params
+    }
+
+    fun getListViewHeightBasedOnChildren(listView: ListView): Int {
+        val listAdapter = listView.adapter
+        var totalHeight = 0
+        for (i in 0 until listAdapter.count) {
+            val listItem = listAdapter.getView(i, null, listView)
+            listItem.measure(0, 0)
+            totalHeight += listItem.measuredHeight
+        }
+        return totalHeight + listView.dividerHeight * (listAdapter.count - 1)
+    }
+
+    fun setListViewHeight(listView: ListView, height: Int) {
+        val params = listView.layoutParams
+        params.height = height
+        listView.layoutParams = params
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/view/RecyclerViewUtil.kt b/app/src/main/java/com/supwisdom/view/RecyclerViewUtil.kt
new file mode 100644
index 0000000..58d4fa2
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/view/RecyclerViewUtil.kt
@@ -0,0 +1,26 @@
+package com.supwisdom.view
+
+import android.graphics.Rect
+import android.support.v7.widget.RecyclerView
+import android.view.View
+
+/**
+ * @author zzq
+ * @date 2018/6/21
+ * @desc TODO
+ */
+class RecyclerViewUtil {
+    class ItemDecoration constructor(top: Int, bottom: Int, left: Int, right: Int) : RecyclerView.ItemDecoration() {
+        private val top = top
+        private val bottom = bottom
+        private val left = left
+        private val right = right
+        override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) {
+            super.getItemOffsets(outRect, view, parent, state)
+            outRect!!.top = top
+            outRect.left = left
+            outRect.bottom = bottom
+            outRect.right = right
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/view/ToastUtil.kt b/app/src/main/java/com/supwisdom/view/ToastUtil.kt
new file mode 100644
index 0000000..7d82257
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/view/ToastUtil.kt
@@ -0,0 +1,86 @@
+package com.supwisdom.view
+
+import android.annotation.SuppressLint
+import android.content.Context
+import android.os.CountDownTimer
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.widget.TextView
+import android.widget.Toast
+import com.supwisdom.R
+
+/**
+ * @author zzq
+ * @date 2018/3/20.
+ * @version 1.0.1
+ * @desc  界面操作提示
+ */
+@SuppressLint("StaticFieldLeak")
+object ToastUtil {
+    private var toast: Toast? = null
+    private var toastText: TextView? = null
+    private var counter: CountDownTimer? = null
+
+    private var toast1: Toast? = null
+    private var toastText1: TextView? = null
+
+    fun show(context: Context, msg: String) {
+        if (toast1 == null) {
+            toast1 = Toast(context)
+            val view = LayoutInflater.from(context).inflate(R.layout.toast_util, null)
+            toastText1 = view.findViewById(R.id.toasttext) as TextView
+            toast1!!.setGravity(Gravity.CENTER, 0, 0)
+            toast1!!.duration = Toast.LENGTH_SHORT
+            toast1!!.view = view
+        }
+        toastText1!!.text = msg
+        toast1!!.show()
+    }
+
+    fun show(context: Context, msg: String, listener: ShowListener?) {
+        if (toast == null) {
+            toast = Toast(context)
+            val view = LayoutInflater.from(context).inflate(R.layout.toast_util, null)
+
+            toastText = view.findViewById(R.id.toasttext) as TextView
+            toast!!.setGravity(Gravity.CENTER, 0, 0)
+            toast!!.duration = Toast.LENGTH_LONG
+            toast!!.view = view
+        }
+        toastText!!.text = msg
+        toast!!.show()
+        if (counter == null) {
+            counter = object : CountDownTimer(2000, 200) {
+                override fun onTick(millisUntilFinished: Long) {
+
+                }
+
+                override fun onFinish() {
+                    listener?.callback()
+                    toast!!.cancel()
+                }
+            }
+        } else {
+            counter!!.cancel()
+            counter = object : CountDownTimer(2000, 200) {
+                override fun onTick(millisUntilFinished: Long) {
+
+                }
+
+                override fun onFinish() {
+                    listener?.callback()
+                    toast!!.cancel()
+                }
+            }
+        }
+        counter!!.start()
+    }
+
+    fun cancel() {
+        toast!!.cancel()
+    }
+
+    interface ShowListener {
+        fun callback()
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/jniLibs/arm64-v8a/libalipay_code_verify.so b/app/src/main/jniLibs/arm64-v8a/libalipay_code_verify.so
new file mode 100644
index 0000000..8437590
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libalipay_code_verify.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libauxScreen.so b/app/src/main/jniLibs/arm64-v8a/libauxScreen.so
new file mode 100644
index 0000000..01741bf
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libauxScreen.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libcrypto.so b/app/src/main/jniLibs/arm64-v8a/libcrypto.so
new file mode 100644
index 0000000..e4841ff
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libcrypto.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libiccV108.so b/app/src/main/jniLibs/arm64-v8a/libiccV108.so
new file mode 100644
index 0000000..608edea
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libiccV108.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libiccV110.so b/app/src/main/jniLibs/arm64-v8a/libiccV110.so
new file mode 100644
index 0000000..c2ef8cc
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libiccV110.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libiccV115.so b/app/src/main/jniLibs/arm64-v8a/libiccV115.so
new file mode 100644
index 0000000..61635a1
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libiccV115.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libiccV116.so b/app/src/main/jniLibs/arm64-v8a/libiccV116.so
new file mode 100644
index 0000000..c2ef8cc
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libiccV116.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libpiccV108.so b/app/src/main/jniLibs/arm64-v8a/libpiccV108.so
new file mode 100644
index 0000000..c62695a
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libpiccV108.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libpiccV115.so b/app/src/main/jniLibs/arm64-v8a/libpiccV115.so
new file mode 100644
index 0000000..df17f28
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libpiccV115.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libpiccV116.so b/app/src/main/jniLibs/arm64-v8a/libpiccV116.so
new file mode 100644
index 0000000..df17f28
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libpiccV116.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libserial_port.so b/app/src/main/jniLibs/arm64-v8a/libserial_port.so
new file mode 100644
index 0000000..7cd1a8a
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libserial_port.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libssl.so b/app/src/main/jniLibs/arm64-v8a/libssl.so
new file mode 100644
index 0000000..cea745d
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libssl.so
Binary files differ
diff --git a/app/src/main/jniLibs/arm64-v8a/libswbarcode.so b/app/src/main/jniLibs/arm64-v8a/libswbarcode.so
new file mode 100644
index 0000000..f7c2d94
--- /dev/null
+++ b/app/src/main/jniLibs/arm64-v8a/libswbarcode.so
Binary files differ
diff --git a/app/src/main/jniLibs/armeabi-v7a/libalipay_code_verify.so b/app/src/main/jniLibs/armeabi-v7a/libalipay_code_verify.so
new file mode 100644
index 0000000..2419998
--- /dev/null
+++ b/app/src/main/jniLibs/armeabi-v7a/libalipay_code_verify.so
Binary files differ
diff --git a/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new file mode 100644
index 0000000..6348baa
--- /dev/null
+++ b/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:aapt="http://schemas.android.com/aapt"
+        android:width="108dp"
+        android:height="108dp"
+        android:viewportHeight="108"
+        android:viewportWidth="108">
+    <path
+            android:fillType="evenOdd"
+            android:pathData="M32,64C32,64 38.39,52.99 44.13,50.95C51.37,48.37 70.14,49.57 70.14,49.57L108.26,87.69L108,109.01L75.97,107.97L32,64Z"
+            android:strokeColor="#00000000"
+            android:strokeWidth="1">
+        <aapt:attr name="android:fillColor">
+            <gradient
+                    android:endX="78.5885"
+                    android:endY="90.9159"
+                    android:startX="48.7653"
+                    android:startY="61.0927"
+                    android:type="linear">
+                <item
+                        android:color="#44000000"
+                        android:offset="0.0"/>
+                <item
+                        android:color="#00000000"
+                        android:offset="1.0"/>
+            </gradient>
+        </aapt:attr>
+    </path>
+    <path
+            android:fillColor="#FFFFFF"
+            android:fillType="nonZero"
+            android:pathData="M66.94,46.02L66.94,46.02C72.44,50.07 76,56.61 76,64L32,64C32,56.61 35.56,50.11 40.98,46.06L36.18,41.19C35.45,40.45 35.45,39.3 36.18,38.56C36.91,37.81 38.05,37.81 38.78,38.56L44.25,44.05C47.18,42.57 50.48,41.71 54,41.71C57.48,41.71 60.78,42.57 63.68,44.05L69.11,38.56C69.84,37.81 70.98,37.81 71.71,38.56C72.44,39.3 72.44,40.45 71.71,41.19L66.94,46.02ZM62.94,56.92C64.08,56.92 65,56.01 65,54.88C65,53.76 64.08,52.85 62.94,52.85C61.8,52.85 60.88,53.76 60.88,54.88C60.88,56.01 61.8,56.92 62.94,56.92ZM45.06,56.92C46.2,56.92 47.13,56.01 47.13,54.88C47.13,53.76 46.2,52.85 45.06,52.85C43.92,52.85 43,53.76 43,54.88C43,56.01 43.92,56.92 45.06,56.92Z"
+            android:strokeColor="#00000000"
+            android:strokeWidth="1"/>
+</vector>
diff --git a/app/src/main/res/drawable/anonymous.jpg b/app/src/main/res/drawable/anonymous.jpg
new file mode 100644
index 0000000..9e4672e
--- /dev/null
+++ b/app/src/main/res/drawable/anonymous.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/bcg.png b/app/src/main/res/drawable/bcg.png
new file mode 100644
index 0000000..1664e83
--- /dev/null
+++ b/app/src/main/res/drawable/bcg.png
Binary files differ
diff --git a/app/src/main/res/drawable/bg_dps_corner.xml b/app/src/main/res/drawable/bg_dps_corner.xml
new file mode 100644
index 0000000..9236194
--- /dev/null
+++ b/app/src/main/res/drawable/bg_dps_corner.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ee1"/>
+    <corners android:radius="8dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#e22221"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/big_progress_bg.xml b/app/src/main/res/drawable/big_progress_bg.xml
new file mode 100644
index 0000000..55134ec
--- /dev/null
+++ b/app/src/main/res/drawable/big_progress_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:drawable="@drawable/loading_white"
+    android:fromDegrees="0"
+    android:interpolator="@android:anim/cycle_interpolator"
+    android:pivotX="50%"
+    android:pivotY="50%"
+    android:toDegrees="1440" />
diff --git a/app/src/main/res/drawable/btn_cancel_selector.xml b/app/src/main/res/drawable/btn_cancel_selector.xml
new file mode 100644
index 0000000..5543cba
--- /dev/null
+++ b/app/src/main/res/drawable/btn_cancel_selector.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_focused="true" android:state_pressed="false">
+        <shape>
+            <solid android:color="#cccccc" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+    <item android:state_selected="true">
+        <shape>
+            <solid android:color="#bfbfbf" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+    <item android:state_pressed="true">
+        <shape>
+            <solid android:color="#bfbfbf" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+    <item android:state_pressed="false">
+        <shape>
+            <solid android:color="#cccccc" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_num_selector.xml b/app/src/main/res/drawable/btn_num_selector.xml
new file mode 100644
index 0000000..498dc49
--- /dev/null
+++ b/app/src/main/res/drawable/btn_num_selector.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_focused="true" android:state_pressed="false">
+        <shape>
+            <solid android:color="#fff" />
+            <corners android:radius="8.0dip" />
+            <stroke android:width="1.0dip" android:color="#DEDBDE" />
+        </shape>
+    </item>
+    <item android:state_selected="true">
+        <shape>
+            <solid android:color="#bfbfbf" />
+            <corners android:radius="8.0dip" />
+            <stroke android:width="1.0dip" android:color="#DEDBDE" />
+        </shape>
+    </item>
+    <item android:state_pressed="true">
+        <shape>
+            <solid android:color="#bfbfbf" />
+            <corners android:radius="8.0dip" />
+            <stroke android:width="1.0dip" android:color="#DEDBDE" />
+        </shape>
+    </item>
+    <item android:state_pressed="false">
+        <shape>
+            <solid android:color="#fff" />
+            <corners android:radius="8.0dip" />
+            <stroke android:width="1.0dip" android:color="#DEDBDE" />
+        </shape>
+    </item>
+
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_ok_selector.xml b/app/src/main/res/drawable/btn_ok_selector.xml
new file mode 100644
index 0000000..8ee6c40
--- /dev/null
+++ b/app/src/main/res/drawable/btn_ok_selector.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_focused="true" android:state_pressed="false">
+        <shape>
+            <solid android:color="#08ae9e" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+    <item android:state_selected="true">
+        <shape>
+            <solid android:color="#08a191" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+    <item android:state_pressed="true">
+        <shape>
+            <solid android:color="#08a191" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+    <item android:state_pressed="false">
+        <shape>
+            <solid android:color="#08ae9e" />
+            <corners android:radius="8.0dip" />
+        </shape>
+    </item>
+
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_ok_selector_nocorner.xml b/app/src/main/res/drawable/btn_ok_selector_nocorner.xml
new file mode 100644
index 0000000..4cdb60c
--- /dev/null
+++ b/app/src/main/res/drawable/btn_ok_selector_nocorner.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_focused="true" android:state_pressed="false">
+        <shape>
+            <solid android:color="#08ae9e" />
+        </shape>
+    </item>
+    <item android:state_selected="true">
+        <shape>
+            <solid android:color="#08a191" />
+        </shape>
+    </item>
+    <item android:state_pressed="true">
+        <shape>
+            <solid android:color="#08a191" />
+        </shape>
+    </item>
+    <item android:state_pressed="false">
+        <shape>
+            <solid android:color="#08ae9e" />
+        </shape>
+    </item>
+
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/btn_ok_white_selector.xml b/app/src/main/res/drawable/btn_ok_white_selector.xml
new file mode 100644
index 0000000..1db82f7
--- /dev/null
+++ b/app/src/main/res/drawable/btn_ok_white_selector.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+
+    <item android:state_focused="true" android:state_pressed="false">
+        <shape>
+            <solid android:color="#fff" />
+        </shape>
+    </item>
+    <item android:state_selected="true">
+        <shape>
+            <solid android:color="#fff4f4f4" />
+        </shape>
+    </item>
+    <item android:state_pressed="true">
+        <shape>
+            <solid android:color="#fff4f4f4" />
+        </shape>
+    </item>
+    <item android:state_pressed="false">
+        <shape>
+            <solid android:color="#fff" />
+        </shape>
+    </item>
+
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg.xml b/app/src/main/res/drawable/corner_bg.xml
new file mode 100644
index 0000000..40c5b82
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#80ffffff" />
+    <corners android:radius="8dip" />
+    <stroke
+        android:width="1.0dip"
+        android:color="#ffc5c5c5" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_1.xml b/app/src/main/res/drawable/corner_bg_1.xml
new file mode 100644
index 0000000..e6721a9
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_1.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#e0e0e0e0" />
+    <corners android:radius="8dip" />
+    <stroke
+        android:width="1.0dip"
+        android:color="#80ffffff" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_dialog.xml b/app/src/main/res/drawable/corner_bg_dialog.xml
new file mode 100644
index 0000000..2276ba2
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_dialog.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#e6e6e6"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#e6e6e6"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_dps_crashbtn_focus.xml b/app/src/main/res/drawable/corner_bg_dps_crashbtn_focus.xml
new file mode 100644
index 0000000..1108b54
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_dps_crashbtn_focus.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#7e1508"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#721307"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_dps_crashbtn_normal.xml b/app/src/main/res/drawable/corner_bg_dps_crashbtn_normal.xml
new file mode 100644
index 0000000..7b7d04f
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_dps_crashbtn_normal.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#e24c17"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#cc4616"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_gray.xml b/app/src/main/res/drawable/corner_bg_gray.xml
new file mode 100644
index 0000000..a198688
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_gray.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/light_gray" />
+    <corners android:radius="8dip" />
+    <stroke
+        android:width="1.0dip"
+        android:color="@color/light_gray" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_keyboard_focus.xml b/app/src/main/res/drawable/corner_bg_keyboard_focus.xml
new file mode 100644
index 0000000..0f93672
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_keyboard_focus.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#807c7c"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#807c7c"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_keyboard_normal.xml b/app/src/main/res/drawable/corner_bg_keyboard_normal.xml
new file mode 100644
index 0000000..7732d4b
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_keyboard_normal.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#ffffff"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#ffffff"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_order_count_green.xml b/app/src/main/res/drawable/corner_bg_order_count_green.xml
new file mode 100644
index 0000000..fe44a58
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_order_count_green.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/light_green"/>
+    <corners android:radius="30dip"/>
+    <!--<stroke-->
+        <!--android:width="1.0dip"-->
+        <!--android:color="@color/light_green"/>-->
+    <gradient
+        android:angle="90"
+        android:endColor="@color/light_green2"
+        android:startColor="@color/light_green1"/>
+    <padding
+        android:bottom="1dp"
+        android:left="1dp"
+        android:right="1dp"
+        android:top="1dp"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_order_red.xml b/app/src/main/res/drawable/corner_bg_order_red.xml
new file mode 100644
index 0000000..5fa9c71
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_order_red.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+       android:shape="rectangle">
+    <corners android:radius="30dip"/>
+    <!--<stroke-->
+        <!--android:width="1.0dip"-->
+        <!--android:color="@color/cl_red"/>-->
+    <gradient
+        android:angle="90"
+        android:endColor="@color/cl_red"
+        android:startColor="@color/light_purple1"/>
+    <padding
+        android:bottom="1dp"
+        android:left="1dp"
+        android:right="1dp"
+        android:top="1dp"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_ordinary_consume_focus.xml b/app/src/main/res/drawable/corner_bg_ordinary_consume_focus.xml
new file mode 100644
index 0000000..0f93672
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_ordinary_consume_focus.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#807c7c"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#807c7c"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_ordinary_consume_green.xml b/app/src/main/res/drawable/corner_bg_ordinary_consume_green.xml
new file mode 100644
index 0000000..d644a75
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_ordinary_consume_green.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#E3EFFF"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#E3EFFF"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_ordinary_consume_normal.xml b/app/src/main/res/drawable/corner_bg_ordinary_consume_normal.xml
new file mode 100644
index 0000000..19b5879
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_ordinary_consume_normal.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#e0e0e0e0"/>
+    <corners android:radius="12dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="#e0e0e0e0"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_qrcode_hint.xml b/app/src/main/res/drawable/corner_bg_qrcode_hint.xml
new file mode 100644
index 0000000..4f37389
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_qrcode_hint.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/orange1" />
+    <corners android:radius="30dip" />
+    <!--<stroke-->
+        <!--android:width="1.0dip"-->
+        <!--android:color="@color/cl_red" />-->
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_simple_order.xml b/app/src/main/res/drawable/corner_bg_simple_order.xml
new file mode 100644
index 0000000..3fd3f7e
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_simple_order.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/light_green"/>
+    <corners android:radius="30dip"/>
+    <stroke
+        android:width="0.5dip"
+        android:color="@color/cl_red"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_simple_order_1.xml b/app/src/main/res/drawable/corner_bg_simple_order_1.xml
new file mode 100644
index 0000000..a33bba1
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_simple_order_1.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/light_yellow_3"/>
+    <corners android:radius="8dip"/>
+    <stroke
+        android:width="1.0dip"
+        android:color="@color/light_yellow_3"/>
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_simple_order_2.xml b/app/src/main/res/drawable/corner_bg_simple_order_2.xml
new file mode 100644
index 0000000..10191d2
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_simple_order_2.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/order_food_list_bak" />
+    <corners android:radius="8dip" />
+    <stroke
+        android:width="1.0dip"
+        android:color="@color/order_food_list_bak" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/corner_bg_white.xml b/app/src/main/res/drawable/corner_bg_white.xml
new file mode 100644
index 0000000..48324a8
--- /dev/null
+++ b/app/src/main/res/drawable/corner_bg_white.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@android:color/white" />
+    <corners android:radius="8dip" />
+    <stroke
+        android:width="1.0dip"
+        android:color="@android:color/white" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/dps_crash_selector.xml b/app/src/main/res/drawable/dps_crash_selector.xml
new file mode 100644
index 0000000..fa50427
--- /dev/null
+++ b/app/src/main/res/drawable/dps_crash_selector.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/corner_bg_dps_crashbtn_focus" android:state_selected="true"/>
+    <item android:drawable="@drawable/corner_bg_dps_crashbtn_focus" android:state_pressed="true"/>
+    <item android:drawable="@drawable/corner_bg_dps_crashbtn_normal"/>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/food_corner_bg.xml b/app/src/main/res/drawable/food_corner_bg.xml
new file mode 100644
index 0000000..5c1aca5
--- /dev/null
+++ b/app/src/main/res/drawable/food_corner_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="#999999" />
+    <corners android:radius="8dip" />
+    <stroke
+        android:width="1.0dip"
+        android:color="#999999" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/fudan_logo.png b/app/src/main/res/drawable/fudan_logo.png
new file mode 100644
index 0000000..1a53460
--- /dev/null
+++ b/app/src/main/res/drawable/fudan_logo.png
Binary files differ
diff --git a/app/src/main/res/drawable/fudan_logo2.png b/app/src/main/res/drawable/fudan_logo2.png
new file mode 100644
index 0000000..350562b
--- /dev/null
+++ b/app/src/main/res/drawable/fudan_logo2.png
Binary files differ
diff --git a/app/src/main/res/drawable/ic_launcher_background.xml b/app/src/main/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..a0ad202
--- /dev/null
+++ b/app/src/main/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:height="108dp"
+        android:width="108dp"
+        android:viewportHeight="108"
+        android:viewportWidth="108">
+    <path android:fillColor="#008577"
+          android:pathData="M0,0h108v108h-108z"/>
+    <path android:fillColor="#00000000" android:pathData="M9,0L9,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,0L19,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,0L29,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,0L39,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,0L49,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,0L59,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,0L69,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,0L79,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M89,0L89,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M99,0L99,108"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,9L108,9"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,19L108,19"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,29L108,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,39L108,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,49L108,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,59L108,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,69L108,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,79L108,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,89L108,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M0,99L108,99"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,29L89,29"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,39L89,39"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,49L89,49"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,59L89,59"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,69L89,69"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M19,79L89,79"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M29,19L29,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M39,19L39,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M49,19L49,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M59,19L59,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M69,19L69,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+    <path android:fillColor="#00000000" android:pathData="M79,19L79,89"
+          android:strokeColor="#33FFFFFF" android:strokeWidth="0.8"/>
+</vector>
diff --git a/app/src/main/res/drawable/item_pressed_selector.xml b/app/src/main/res/drawable/item_pressed_selector.xml
new file mode 100644
index 0000000..d1e814b
--- /dev/null
+++ b/app/src/main/res/drawable/item_pressed_selector.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@android:color/darker_gray" android:state_pressed="true"/>
+    <item android:drawable="@android:color/darker_gray" android:state_focused="true"/>
+    <item android:drawable="@android:color/white" android:state_enabled="true"/>
+    <item android:drawable="@android:color/white"/>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/minus_btn_selector.xml b/app/src/main/res/drawable/minus_btn_selector.xml
new file mode 100644
index 0000000..5f5ba45
--- /dev/null
+++ b/app/src/main/res/drawable/minus_btn_selector.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_selected="true" android:drawable="@drawable/minus_click" />
+    <item android:state_pressed="true" android:drawable="@drawable/minus_click" />
+    <item android:drawable="@drawable/corner_bg_order_red" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/order_clear_selector.xml b/app/src/main/res/drawable/order_clear_selector.xml
new file mode 100644
index 0000000..f10f556
--- /dev/null
+++ b/app/src/main/res/drawable/order_clear_selector.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_focused="true" android:state_pressed="false" android:drawable="@drawable/order_clear_normal" />
+    <item android:state_selected="true" android:drawable="@drawable/order_clear_focus" />
+    <item android:state_pressed="true" android:drawable="@drawable/order_clear_focus" />
+    <item android:state_pressed="false" android:drawable="@drawable/order_clear_normal" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/order_pay_selector.xml b/app/src/main/res/drawable/order_pay_selector.xml
new file mode 100644
index 0000000..4c123ac
--- /dev/null
+++ b/app/src/main/res/drawable/order_pay_selector.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:state_selected="true" android:drawable="@drawable/order_purchase_focus" />
+    <item android:state_pressed="true" android:drawable="@drawable/order_purchase_focus" />
+    <item android:drawable="@drawable/order_purchase_normal" />
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/pay_ret_dialog_bg.xml b/app/src/main/res/drawable/pay_ret_dialog_bg.xml
new file mode 100644
index 0000000..705a8f3
--- /dev/null
+++ b/app/src/main/res/drawable/pay_ret_dialog_bg.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<shape android:shape="rectangle"
+  xmlns:android="http://schemas.android.com/apk/res/android">
+    <solid android:color="@color/viewfinder_mask" />
+    <corners android:radius="6.0dip" />
+</shape>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/progress_bg.xml b/app/src/main/res/drawable/progress_bg.xml
new file mode 100644
index 0000000..55134ec
--- /dev/null
+++ b/app/src/main/res/drawable/progress_bg.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+    android:drawable="@drawable/loading_white"
+    android:fromDegrees="0"
+    android:interpolator="@android:anim/cycle_interpolator"
+    android:pivotX="50%"
+    android:pivotY="50%"
+    android:toDegrees="1440" />
diff --git a/app/src/main/res/drawable/progress_horizontal.xml b/app/src/main/res/drawable/progress_horizontal.xml
new file mode 100644
index 0000000..8014563
--- /dev/null
+++ b/app/src/main/res/drawable/progress_horizontal.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
+
+<item
+    android:id="@android:id/background"
+    android:drawable="@color/pos_theme_color">
+</item>
+<item android:id="@android:id/secondaryProgress">
+  <scale
+      android:drawable="@color/light_gray"
+      android:scaleWidth="100%" />
+</item>
+<item android:id="@android:id/progress">
+  <scale
+      android:drawable="@color/cl_red"
+      android:scaleWidth="100%" />
+</item>
+
+</layer-list>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/purchase_cardagain.jpg b/app/src/main/res/drawable/purchase_cardagain.jpg
new file mode 100644
index 0000000..ae09d7f
--- /dev/null
+++ b/app/src/main/res/drawable/purchase_cardagain.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/purchase_cardread.jpg b/app/src/main/res/drawable/purchase_cardread.jpg
new file mode 100644
index 0000000..5ab9972
--- /dev/null
+++ b/app/src/main/res/drawable/purchase_cardread.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/purchase_fail.jpg b/app/src/main/res/drawable/purchase_fail.jpg
new file mode 100644
index 0000000..68c4cb9
--- /dev/null
+++ b/app/src/main/res/drawable/purchase_fail.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/purchase_suc.jpg b/app/src/main/res/drawable/purchase_suc.jpg
new file mode 100644
index 0000000..f39ebdb
--- /dev/null
+++ b/app/src/main/res/drawable/purchase_suc.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/qr_none320.png b/app/src/main/res/drawable/qr_none320.png
new file mode 100644
index 0000000..99b9039
--- /dev/null
+++ b/app/src/main/res/drawable/qr_none320.png
Binary files differ
diff --git a/app/src/main/res/drawable/select_bg_keyboard.xml b/app/src/main/res/drawable/select_bg_keyboard.xml
new file mode 100644
index 0000000..83ae4c5
--- /dev/null
+++ b/app/src/main/res/drawable/select_bg_keyboard.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/corner_bg_keyboard_normal" android:state_selected="true"/>
+    <item android:drawable="@drawable/corner_bg_keyboard_normal" android:state_pressed="true"/>
+    <item android:drawable="@drawable/corner_bg_keyboard_focus"/>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/select_ordinary_consume.xml b/app/src/main/res/drawable/select_ordinary_consume.xml
new file mode 100644
index 0000000..e44edf1
--- /dev/null
+++ b/app/src/main/res/drawable/select_ordinary_consume.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item android:drawable="@drawable/corner_bg_ordinary_consume_focus" android:state_selected="true"/>
+    <item android:drawable="@drawable/corner_bg_ordinary_consume_focus" android:state_pressed="true"/>
+    <item android:drawable="@drawable/corner_bg_ordinary_consume_normal"/>
+</selector>
\ No newline at end of file
diff --git a/app/src/main/res/drawable/shape_image_border.xml b/app/src/main/res/drawable/shape_image_border.xml
new file mode 100644
index 0000000..6d801b9
--- /dev/null
+++ b/app/src/main/res/drawable/shape_image_border.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<layer-list xmlns:android="http://schemas.android.com/apk/res/android"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content">
+    <!-- Bottom 2dp Shadow -->
+    <item>
+
+        <shape android:shape="rectangle">
+
+            <solid android:color="#BBB"/>
+
+            <corners android:radius="7dp"/>
+        </shape>
+    </item>
+
+    <!-- White Top color -->
+    <item android:bottom="3px">
+
+        <shape android:shape="rectangle">
+
+            <solid android:color="#FFF"/>
+
+            <corners android:radius="7dp"/>
+
+            <padding
+                android:bottom="5dp"
+                android:left="5dp"
+                android:right="5dp"
+                android:top="5dp"/>
+        </shape>
+    </item>
+</layer-list>
diff --git a/app/src/main/res/drawable/toast_cry.jpg b/app/src/main/res/drawable/toast_cry.jpg
new file mode 100644
index 0000000..6c54f93
--- /dev/null
+++ b/app/src/main/res/drawable/toast_cry.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/toast_doubt.jpg b/app/src/main/res/drawable/toast_doubt.jpg
new file mode 100644
index 0000000..1ed3097
--- /dev/null
+++ b/app/src/main/res/drawable/toast_doubt.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/toast_smile.jpg b/app/src/main/res/drawable/toast_smile.jpg
new file mode 100644
index 0000000..b74ff81
--- /dev/null
+++ b/app/src/main/res/drawable/toast_smile.jpg
Binary files differ
diff --git a/app/src/main/res/drawable/wireless_off.png b/app/src/main/res/drawable/wireless_off.png
new file mode 100644
index 0000000..c9e117e
--- /dev/null
+++ b/app/src/main/res/drawable/wireless_off.png
Binary files differ
diff --git a/app/src/main/res/drawable/wireless_on.png b/app/src/main/res/drawable/wireless_on.png
new file mode 100644
index 0000000..61a9506
--- /dev/null
+++ b/app/src/main/res/drawable/wireless_on.png
Binary files differ
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
new file mode 100644
index 0000000..980638c
--- /dev/null
+++ b/app/src/main/res/layout/activity_main.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<android.support.constraint.ConstraintLayout
+        xmlns:android="http://schemas.android.com/apk/res/android"
+        xmlns:tools="http://schemas.android.com/tools"
+        xmlns:app="http://schemas.android.com/apk/res-auto"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        tools:context=".MainActivity">
+
+    <TextView
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="Hello World!"
+            app:layout_constraintBottom_toBottomOf="parent"
+            app:layout_constraintLeft_toLeftOf="parent"
+            app:layout_constraintRight_toRightOf="parent"
+            app:layout_constraintTop_toTopOf="parent"/>
+
+</android.support.constraint.ConstraintLayout>
\ No newline at end of file
diff --git a/app/src/main/res/layout/toast_util.xml b/app/src/main/res/layout/toast_util.xml
new file mode 100644
index 0000000..0524e5b
--- /dev/null
+++ b/app/src/main/res/layout/toast_util.xml
@@ -0,0 +1,17 @@
+<?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"
+              android:orientation="vertical">
+
+    <TextView
+        android:id="@+id/toasttext"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        android:background="@drawable/corner_bg"
+        android:padding="30dp"
+        android:text="测试"
+        android:textColor="@color/black"
+        android:textSize="200dp"
+        android:textStyle="bold"/>
+</LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000..bbd3e02
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background"/>
+    <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
new file mode 100644
index 0000000..bbd3e02
--- /dev/null
+++ b/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+    <background android:drawable="@drawable/ic_launcher_background"/>
+    <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+</adaptive-icon>
\ No newline at end of file
diff --git a/app/src/main/res/mipmap-hdpi/bill_lastdtl.png b/app/src/main/res/mipmap-hdpi/bill_lastdtl.png
new file mode 100644
index 0000000..de03aa0
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/bill_lastdtl.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/default_photo.png b/app/src/main/res/mipmap-hdpi/default_photo.png
new file mode 100644
index 0000000..ca377a9
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/default_photo.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher.png b/app/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000..898f3ed
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
new file mode 100644
index 0000000..dffca36
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/pay_with_bar.png b/app/src/main/res/mipmap-hdpi/pay_with_bar.png
new file mode 100644
index 0000000..9c1f31a
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/pay_with_bar.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/pay_with_card.png b/app/src/main/res/mipmap-hdpi/pay_with_card.png
new file mode 100644
index 0000000..1b2d929
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/pay_with_card.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/pay_with_scan.png b/app/src/main/res/mipmap-hdpi/pay_with_scan.png
new file mode 100644
index 0000000..afc2bb1
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/pay_with_scan.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/pay_with_virtualcard.png b/app/src/main/res/mipmap-hdpi/pay_with_virtualcard.png
new file mode 100644
index 0000000..f8cf8a6
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/pay_with_virtualcard.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/scan_default_photo.jpg b/app/src/main/res/mipmap-hdpi/scan_default_photo.jpg
new file mode 100644
index 0000000..34adcad
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/scan_default_photo.jpg
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/shop_logo.png b/app/src/main/res/mipmap-hdpi/shop_logo.png
new file mode 100644
index 0000000..79ba1ec
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/shop_logo.png
Binary files differ
diff --git a/app/src/main/res/mipmap-hdpi/show_card_info.png b/app/src/main/res/mipmap-hdpi/show_card_info.png
new file mode 100644
index 0000000..c622914
--- /dev/null
+++ b/app/src/main/res/mipmap-hdpi/show_card_info.png
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher.png b/app/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000..64ba76f
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-mdpi/ic_launcher_round.png b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
new file mode 100644
index 0000000..dae5e08
--- /dev/null
+++ b/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher.png b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000..e5ed465
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..14ed0af
--- /dev/null
+++ b/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000..b0907ca
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..d8ae031
--- /dev/null
+++ b/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000..2c18de9
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
new file mode 100644
index 0000000..beed3cd
--- /dev/null
+++ b/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files differ
diff --git a/app/src/main/res/raw/beep.ogg b/app/src/main/res/raw/beep.ogg
new file mode 100644
index 0000000..1419947
--- /dev/null
+++ b/app/src/main/res/raw/beep.ogg
Binary files differ
diff --git a/app/src/main/res/raw/card_passwd.wav b/app/src/main/res/raw/card_passwd.wav
new file mode 100644
index 0000000..f53ffb4
--- /dev/null
+++ b/app/src/main/res/raw/card_passwd.wav
Binary files differ
diff --git a/app/src/main/res/raw/consume_fail.wav b/app/src/main/res/raw/consume_fail.wav
new file mode 100644
index 0000000..37905b9
--- /dev/null
+++ b/app/src/main/res/raw/consume_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/consume_suc.wav b/app/src/main/res/raw/consume_suc.wav
new file mode 100644
index 0000000..29dba78
--- /dev/null
+++ b/app/src/main/res/raw/consume_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/dps_fail.wav b/app/src/main/res/raw/dps_fail.wav
new file mode 100644
index 0000000..3dd255e
--- /dev/null
+++ b/app/src/main/res/raw/dps_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/dps_feeamt_suc.wav b/app/src/main/res/raw/dps_feeamt_suc.wav
new file mode 100644
index 0000000..976f337
--- /dev/null
+++ b/app/src/main/res/raw/dps_feeamt_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/dps_login_fail.wav b/app/src/main/res/raw/dps_login_fail.wav
new file mode 100644
index 0000000..cc7f082
--- /dev/null
+++ b/app/src/main/res/raw/dps_login_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/dps_login_suc.wav b/app/src/main/res/raw/dps_login_suc.wav
new file mode 100644
index 0000000..f93d948
--- /dev/null
+++ b/app/src/main/res/raw/dps_login_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/dps_suc.wav b/app/src/main/res/raw/dps_suc.wav
new file mode 100644
index 0000000..7fc83cf
--- /dev/null
+++ b/app/src/main/res/raw/dps_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/eastcompeace_a711.json b/app/src/main/res/raw/eastcompeace_a711.json
new file mode 100644
index 0000000..c768ceb
--- /dev/null
+++ b/app/src/main/res/raw/eastcompeace_a711.json
@@ -0,0 +1,16 @@
+{
+  "desc": "东信和平(哈工程)",
+  "manufactory": "eastcompeace",
+  "fingerprint": [
+    {
+      "fingerprint": "127880B0024D540081",
+      "offset": 4,
+      "defaultRootKey": "00000000000000000000000000000000"
+    },
+    {
+      "fingerprint": "057880B002",
+      "offset": 4,
+      "defaultRootKey": "00000000000000000000000000000000"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/app/src/main/res/raw/epaycard.cfg b/app/src/main/res/raw/epaycard.cfg
new file mode 100644
index 0000000..c55ad32
--- /dev/null
+++ b/app/src/main/res/raw/epaycard.cfg
@@ -0,0 +1,122 @@
+{
+  "version": "1.0",
+  "custname": "supwisdom",
+  "id": "com.supwisdom.epaycard.cpucard.a711",
+  "desc": "新开普A711读卡器",
+  "issue_date": "20171221",
+  "custom_version": "v1.0",
+  "authcode": "08712016070002",
+  "atr_pretend": true,
+  "support_platform": [
+    "linux"
+  ],
+  "expire_date": "20300517",
+  "cardtype": [
+    {
+      "name": "SupCpuCardType",
+      "class": "com.supwisdom.epaycard.impl.SupCpuCardtype",
+      "psamcard": "sup_psamcard",
+      "keymachine": "SupKeyMachine",
+      "debug": false,
+      "fingerprint": [
+        {
+          "initializer": "com.supwisdom.epaycard.impl.FM201810Initializer",
+          "config": [
+            "classpath:res/raw/fmcos_a711.json"
+          ]
+        },
+        {
+          "config": [
+            "classpath:fingerprint/goldpac_e711.json"
+          ],
+          "initializer": "com.supwisdom.epaycard.impl.GoldPacCardInitializer"
+        }
+      ]
+    },
+    {
+      "name": "SupCpuCardTypeWithoutMac",
+      "class": "com.supwisdom.epaycard.impl.SupCardtypeRWOM",
+      "psamcard": "sup_psamcard",
+      "keymachine": "SupKeyMachine",
+      "debug": false,
+      "fingerprint": [
+        {
+          "config": [
+            "classpath:res/raw/eastcompeace_a711.json"
+          ],
+          "initializer": "com.supwisdom.epaycard.impl.GoldPacCardInitializer"
+        }
+      ]
+    },
+    {
+      "name": "SupM1Cardtype",
+      "class": "com.supwisdom.epaycard.impl.SupM1CardType",
+      "psamcard": "sup_psamcard",
+      "keymachine": "SupKeyMachine",
+      "keyalg": "normal2",
+      "version": 2008,
+      "water_packet": 6,
+      "minsect": 0,
+      "maxsect": 6,
+      "init_sections": [
+        1,
+        2,
+        4,
+        5,
+        6
+      ],
+      "debug": false
+    }
+  ],
+  "reader": [
+    {
+      "name": "a711_reader",
+      "class": "com.supwisdom.epaycard.android.A711Reader",
+      "picc_req_times": 1,
+      "rf_interval": 100,
+      "rf_timeout": 300,
+      "debug": false
+    }
+  ],
+  "psamcard": [
+    {
+      "name": "sup_psamcard",
+      "reader": "a711_reader",
+      "keymachine": "SupKeyMachine",
+      "class": "com.supwisdom.epaycard.impl.SupPsamCard",
+      "debug": false,
+      "max_sect_len": 48,
+      "fingerprint": [
+        {
+          "manufactory": "einolda",
+          "fingerprint": "FFFF",
+          "max_block": 56,
+          "offset": 4,
+          "default": true
+        },
+        {
+          "manufactory": "broadstar",
+          "fingerprint": "4253",
+          "offset": 5,
+          "defaultRootKey": "57415443484441544154696D65434F53"
+        }
+      ]
+    }
+  ],
+  "keymachine": [
+    {
+      "name": "SupKeyMachine",
+      "reader": "a711_reader",
+      "debug": false,
+      "class": "com.supwisdom.epaycard.impl.SupKeyCard"
+    }
+  ],
+  "water_setting_card": [
+    {
+      "name": "sup_watercard",
+      "reader": "a711_reader",
+      "keymachine": "SupKeyMachine",
+      "class": "com.supwisdom.epaycard.impl.SupWaterSettingCard"
+    }
+  ]
+}
diff --git a/app/src/main/res/raw/epaycard_hit.cfg b/app/src/main/res/raw/epaycard_hit.cfg
new file mode 100644
index 0000000..7b99201
--- /dev/null
+++ b/app/src/main/res/raw/epaycard_hit.cfg
@@ -0,0 +1,101 @@
+{
+  "version": "1.0",
+  "custname": "supwisdom",
+  "id": "com.supwisdom.epaycard.cpucard.a711",
+  "desc": "新开普A711读卡器",
+  "issue_date": "20171221",
+  "custom_version": "v1.0",
+  "authcode": "08712016070002",
+  "atr_pretend": true,
+  "support_platform": [
+    "linux"
+  ],
+  "expire_date": "20300517",
+  "cardtype": [
+    {
+      "name": "SupCpuCardTypeWithoutMac",
+      "class": "com.supwisdom.epaycard.impl.SupCardtypeRWOM",
+      "psamcard": "sup_psamcard",
+      "keymachine": "SupKeyMachine",
+      "debug": false,
+      "fingerprint": [
+        {
+          "config": [
+            "classpath:res/raw/eastcompeace_a711.json"
+          ],
+          "initializer": "com.supwisdom.epaycard.impl.GoldPacCardInitializer"
+        }
+      ]
+    },
+    {
+      "name": "SupM1Cardtype",
+      "class": "com.supwisdom.epaycard.impl.SupM1CardType",
+      "psamcard": "sup_psamcard",
+      "keymachine": "SupKeyMachine",
+      "keyalg": "normal2",
+      "version": 2008,
+      "water_packet": 6,
+      "minsect": 0,
+      "maxsect": 6,
+      "init_sections": [
+        1,
+        2,
+        4,
+        5,
+        6
+      ],
+      "debug": false
+    }
+  ],
+  "reader": [
+    {
+      "name": "a711_reader",
+      "class": "com.supwisdom.epaycard.android.A711Reader",
+      "picc_req_times": 1,
+      "rf_interval": 100,
+      "rf_timeout": 300,
+      "debug": false
+    }
+  ],
+  "psamcard": [
+    {
+      "name": "sup_psamcard",
+      "reader": "a711_reader",
+      "keymachine": "SupKeyMachine",
+      "class": "com.supwisdom.epaycard.impl.SupPsamCard",
+      "debug": false,
+      "max_sect_len": 48,
+      "fingerprint": [
+        {
+          "manufactory": "einolda",
+          "fingerprint": "FFFF",
+          "max_block": 56,
+          "offset": 4,
+          "default": true
+        },
+        {
+          "manufactory": "broadstar",
+          "fingerprint": "4253",
+          "offset": 5,
+          "defaultRootKey": "57415443484441544154696D65434F53"
+        }
+      ]
+    }
+  ],
+  "keymachine": [
+    {
+      "name": "SupKeyMachine",
+      "reader": "a711_reader",
+      "debug": false,
+      "class": "com.supwisdom.epaycard.impl.SupKeyCard"
+    }
+  ],
+  "water_setting_card": [
+    {
+      "name": "sup_watercard",
+      "reader": "a711_reader",
+      "keymachine": "SupKeyMachine",
+      "class": "com.supwisdom.epaycard.impl.SupWaterSettingCard"
+    }
+  ]
+}
diff --git a/app/src/main/res/raw/fmcos_a711.json b/app/src/main/res/raw/fmcos_a711.json
new file mode 100644
index 0000000..20035ee
--- /dev/null
+++ b/app/src/main/res/raw/fmcos_a711.json
@@ -0,0 +1,11 @@
+{
+  "desc" : "FM1208卡",
+  "manufactory" :"fmcos1208",
+  "fingerprint" : [
+    {
+      "fingerprint": "20900000000000",
+      "offset": 0,
+      "defaultRootKey": "FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/app/src/main/res/raw/gatein_fail.wav b/app/src/main/res/raw/gatein_fail.wav
new file mode 100644
index 0000000..0de1b71
--- /dev/null
+++ b/app/src/main/res/raw/gatein_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/gatein_suc.wav b/app/src/main/res/raw/gatein_suc.wav
new file mode 100644
index 0000000..56b106c
--- /dev/null
+++ b/app/src/main/res/raw/gatein_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/gateout_fail.wav b/app/src/main/res/raw/gateout_fail.wav
new file mode 100644
index 0000000..4b2c39c
--- /dev/null
+++ b/app/src/main/res/raw/gateout_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/gateout_suc.wav b/app/src/main/res/raw/gateout_suc.wav
new file mode 100644
index 0000000..e04a659
--- /dev/null
+++ b/app/src/main/res/raw/gateout_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/goldpac_a711.json b/app/src/main/res/raw/goldpac_a711.json
new file mode 100644
index 0000000..20a5f2d
--- /dev/null
+++ b/app/src/main/res/raw/goldpac_a711.json
@@ -0,0 +1,16 @@
+{
+  "desc" : "金邦达卡",
+  "manufactory" :"goldpac",
+  "fingerprint" : [
+    {
+      "fingerprint": "80318066",
+      "offset": 2,
+      "defaultRootKey": "00000000000000000000000000000000"
+    },
+    {
+      "fingerprint": "057880A002",
+      "offset": 4,
+      "defaultRootKey": "00000000000000000000000000000000"
+    }
+  ]
+}
\ No newline at end of file
diff --git a/app/src/main/res/raw/key_add.wav b/app/src/main/res/raw/key_add.wav
new file mode 100644
index 0000000..8fe2703
--- /dev/null
+++ b/app/src/main/res/raw/key_add.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_clear.wav b/app/src/main/res/raw/key_clear.wav
new file mode 100644
index 0000000..3c29559
--- /dev/null
+++ b/app/src/main/res/raw/key_clear.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_dot.wav b/app/src/main/res/raw/key_dot.wav
new file mode 100644
index 0000000..69232dc
--- /dev/null
+++ b/app/src/main/res/raw/key_dot.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_eight.wav b/app/src/main/res/raw/key_eight.wav
new file mode 100644
index 0000000..484f755
--- /dev/null
+++ b/app/src/main/res/raw/key_eight.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_enter.wav b/app/src/main/res/raw/key_enter.wav
new file mode 100644
index 0000000..5386f86
--- /dev/null
+++ b/app/src/main/res/raw/key_enter.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_ffour.wav b/app/src/main/res/raw/key_ffour.wav
new file mode 100644
index 0000000..6b94cb9
--- /dev/null
+++ b/app/src/main/res/raw/key_ffour.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_five.wav b/app/src/main/res/raw/key_five.wav
new file mode 100644
index 0000000..830e234
--- /dev/null
+++ b/app/src/main/res/raw/key_five.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_fone.wav b/app/src/main/res/raw/key_fone.wav
new file mode 100644
index 0000000..59adfde
--- /dev/null
+++ b/app/src/main/res/raw/key_fone.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_four.wav b/app/src/main/res/raw/key_four.wav
new file mode 100644
index 0000000..5580975
--- /dev/null
+++ b/app/src/main/res/raw/key_four.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_fthree.wav b/app/src/main/res/raw/key_fthree.wav
new file mode 100644
index 0000000..1291d25
--- /dev/null
+++ b/app/src/main/res/raw/key_fthree.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_ftwo.wav b/app/src/main/res/raw/key_ftwo.wav
new file mode 100644
index 0000000..07fd91c
--- /dev/null
+++ b/app/src/main/res/raw/key_ftwo.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_nine.wav b/app/src/main/res/raw/key_nine.wav
new file mode 100644
index 0000000..7013cb5
--- /dev/null
+++ b/app/src/main/res/raw/key_nine.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_one.wav b/app/src/main/res/raw/key_one.wav
new file mode 100644
index 0000000..3b998f3
--- /dev/null
+++ b/app/src/main/res/raw/key_one.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_seven.wav b/app/src/main/res/raw/key_seven.wav
new file mode 100644
index 0000000..e5226ce
--- /dev/null
+++ b/app/src/main/res/raw/key_seven.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_six.wav b/app/src/main/res/raw/key_six.wav
new file mode 100644
index 0000000..2e25469
--- /dev/null
+++ b/app/src/main/res/raw/key_six.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_three.wav b/app/src/main/res/raw/key_three.wav
new file mode 100644
index 0000000..ad00780
--- /dev/null
+++ b/app/src/main/res/raw/key_three.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_two.wav b/app/src/main/res/raw/key_two.wav
new file mode 100644
index 0000000..56fc1de
--- /dev/null
+++ b/app/src/main/res/raw/key_two.wav
Binary files differ
diff --git a/app/src/main/res/raw/key_zero.wav b/app/src/main/res/raw/key_zero.wav
new file mode 100644
index 0000000..4fd1864
--- /dev/null
+++ b/app/src/main/res/raw/key_zero.wav
Binary files differ
diff --git a/app/src/main/res/raw/login_fail.wav b/app/src/main/res/raw/login_fail.wav
new file mode 100644
index 0000000..3e901c7
--- /dev/null
+++ b/app/src/main/res/raw/login_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/login_suc.wav b/app/src/main/res/raw/login_suc.wav
new file mode 100644
index 0000000..70a4ee2
--- /dev/null
+++ b/app/src/main/res/raw/login_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/pay_fail.wav b/app/src/main/res/raw/pay_fail.wav
new file mode 100644
index 0000000..85dbb67
--- /dev/null
+++ b/app/src/main/res/raw/pay_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/pay_suc.wav b/app/src/main/res/raw/pay_suc.wav
new file mode 100644
index 0000000..e0e8945
--- /dev/null
+++ b/app/src/main/res/raw/pay_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/query_fail.wav b/app/src/main/res/raw/query_fail.wav
new file mode 100644
index 0000000..4532286
--- /dev/null
+++ b/app/src/main/res/raw/query_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/query_suc.wav b/app/src/main/res/raw/query_suc.wav
new file mode 100644
index 0000000..d156756
--- /dev/null
+++ b/app/src/main/res/raw/query_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/reversal_done.wav b/app/src/main/res/raw/reversal_done.wav
new file mode 100644
index 0000000..72804bb
--- /dev/null
+++ b/app/src/main/res/raw/reversal_done.wav
Binary files differ
diff --git a/app/src/main/res/raw/reversal_fail.wav b/app/src/main/res/raw/reversal_fail.wav
new file mode 100644
index 0000000..2e314be
--- /dev/null
+++ b/app/src/main/res/raw/reversal_fail.wav
Binary files differ
diff --git a/app/src/main/res/raw/reversal_suc.wav b/app/src/main/res/raw/reversal_suc.wav
new file mode 100644
index 0000000..61f1c8a
--- /dev/null
+++ b/app/src/main/res/raw/reversal_suc.wav
Binary files differ
diff --git a/app/src/main/res/raw/scan_beep.ogg b/app/src/main/res/raw/scan_beep.ogg
new file mode 100644
index 0000000..1419947
--- /dev/null
+++ b/app/src/main/res/raw/scan_beep.ogg
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_eight.wav b/app/src/main/res/raw/sound_key_eight.wav
new file mode 100644
index 0000000..82d8b26
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_eight.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_five.wav b/app/src/main/res/raw/sound_key_five.wav
new file mode 100644
index 0000000..b35596c
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_five.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_four.wav b/app/src/main/res/raw/sound_key_four.wav
new file mode 100644
index 0000000..f56c4ee
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_four.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_nine.wav b/app/src/main/res/raw/sound_key_nine.wav
new file mode 100644
index 0000000..20722db
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_nine.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_one.wav b/app/src/main/res/raw/sound_key_one.wav
new file mode 100644
index 0000000..faf8bdb
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_one.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_seven.wav b/app/src/main/res/raw/sound_key_seven.wav
new file mode 100644
index 0000000..9baaafc
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_seven.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_six.wav b/app/src/main/res/raw/sound_key_six.wav
new file mode 100644
index 0000000..cb4b14e
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_six.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_three.wav b/app/src/main/res/raw/sound_key_three.wav
new file mode 100644
index 0000000..354a26d
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_three.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_two.wav b/app/src/main/res/raw/sound_key_two.wav
new file mode 100644
index 0000000..87898f3
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_two.wav
Binary files differ
diff --git a/app/src/main/res/raw/sound_key_zero.wav b/app/src/main/res/raw/sound_key_zero.wav
new file mode 100644
index 0000000..be4f0cb
--- /dev/null
+++ b/app/src/main/res/raw/sound_key_zero.wav
Binary files differ
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
new file mode 100644
index 0000000..dae37ff
--- /dev/null
+++ b/app/src/main/res/values/colors.xml
@@ -0,0 +1,106 @@
+<resources>
+
+    <color name="black_overlay">#66000000</color>
+    <color name="btn_light_blue">#5bc0de</color>
+    <color name="light_gray">#ffa2a2a2</color>
+    <color name="light_gray1">#cdcdcd</color>
+    <color name="light_green">#46d608</color>
+    <color name="light_green1">#83f800</color>
+    <color name="light_green2">#05a910</color>
+    <color name="light_blue1">#00bb9c</color>
+    <color name="light_purple">#ed07d0</color>
+    <color name="light_purple1">#f57cc3</color>
+    <color name="light_purple2">#b20469</color>
+    <color name="light_blue">#7899c4</color>
+    <color name="light_yellow">#e1cb28</color>
+    <color name="light_yellow_2">#ffffe928</color>
+    <color name="light_yellow_3">#fffe9f</color>
+    <color name="light_black">#424652</color>
+    <color name="white_gray">#f9f9f9</color>
+    <color name="white">#FFFFFF</color>
+    <color name="pwdColor">#999999</color>
+    <color name="password_hint">#666666</color>
+    <color name="orange">#FD7201</color>
+    <color name="orange1">#FF6600</color>
+    <color name="black">#000</color>
+    <color name="blue">#0c0de1</color>
+    <color name="dark_blue1">#13227a</color>
+    <color name="light_blue2">#2D95E0</color>
+    <color name="dark_blue">#0E1C36</color>
+    <color name="lit_light_gray">#23292E</color>
+    <color name="light_gray_white">#EEEEEE</color>
+    <color name="result_view">#b0000000</color>
+    <color name="viewfinder_mask">#60000000</color>
+    <color name="possible_result_points">#c0ffff00</color>
+    <color name="key_btn_color">#EEEEEE</color>
+    <color name="cl_red">#FF0000</color>
+    <color name="pos_theme_color">#08ae9e</color>
+    <color name="consume_caption">#434343</color>
+    <color name="consume_font">#666666</color>
+    <color name="consume_background">#f3f3f3</color>
+    <color name="main_back_consume_normal">#F15D5D</color>
+    <color name="main_back_consume_click">#E55A5A</color>
+    <color name="main_back_online_deposit_normal">#7E62F8</color>
+    <color name="main_back_online_deposit_click">#785EEB</color>
+    <color name="main_back_device_manage_normal">#7E62F8</color>
+    <color name="main_back_device_manage_click">#785EEB</color>
+    <!--<color custname="main_back_cancel_consume_normal">#25A3B3</color>-->
+    <!--<color custname="main_back_cancel_consume_click">#2396A6</color>-->
+    <color name="main_back_query_revenue_normal">#999999</color>
+    <!--<color custname="main_back_query_revenue_click">#85A629</color>-->
+    <color name="main_back_library_normal">#8EB32C</color>
+    <color name="main_back_library_click">#85A629</color>
+    <color name="main_back_manual_auth_normal">#8EB32C</color>
+    <color name="main_back_manual_auth_click">#85A629</color>
+    <color name="bk_set_block">#F3F3F3</color>
+    <!--<color custname="main_back_update_blacklist_normal">#7E62F8</color>-->
+    <!--<color custname="main_back_update_blacklist_click">#785EEB</color>-->
+    <color name="main_back_update_blacklist_normal">#F28923</color>
+    <color name="main_back_update_blacklist_click">#F28923</color>
+    <color name="main_back_online_order_normal">#F28923</color>
+    <color name="main_back_online_order_click">#F28923</color>
+    <color name="main_back_transdtl_normal">#20A193</color>
+    <color name="main_back_transdtl_click">#1E9486</color>
+    <!--<color custname="main_back_test_net_normal">#F15D5D</color>-->
+    <!--<color custname="main_back_test_net_click">#E55A5A</color>-->
+    <color name="main_back_test_net_normal">#F15D5D</color>
+    <color name="main_back_test_net_click">#E55A5A</color>
+
+    <color name="main_back_query_para_normal">#20A193</color>
+    <color name="main_back_query_para_click">#1E9486</color>
+    <!--<color custname="main_back_device_manage_normal">#2f87d2</color>-->
+    <!--<color custname="main_back_device_manage_click">#2b7dc4</color>-->
+    <color name="main_online_bak">#f1f1f1</color>
+    <color name="main_offline_font">#888888</color>
+    <!--启用界面-->
+    <color name="enable_text_font_color">#333333</color>
+    <color name="enable_devphyid_edit_font_color">#666666</color>
+    <color name="enable_bak">#f1f1f1</color>
+    <color name="enable_step_doing">#333333</color>
+    <color name="enable_step_fail">#ff0000</color>
+    <color name="enable_step_success">#8fccc6</color>
+    <!--设置界面-->
+    <color name="main_divide_line">#e8e8e8</color>
+    <color name="set_menu_bak_normal">#f3f3f3</color>
+    <color name="set_menu_bak_focus">#e4e4e4</color>
+    <color name="set_menu_words">#333333</color>
+    <color name="rf_words_info">#666666</color>
+    <color name="pos_theme_font_color">#333333</color>
+    <!--查询界面下一页按钮的颜色-->
+    <color name="query_next_btn_focus">#08a191</color>
+    <color name="query_next_btn_normal">#08ae9e</color>
+    <!--点餐-->
+    <color name="order_food_list_bak">#fffece</color>
+    <color name="order_picture_food_price">#434343</color>
+    <color name="order_picture_dec">#333333</color>
+    <color name="order_left_count_one">#434343</color>
+    <color name="order_left_count_over_two">#ff0000</color>
+    <color name="order_count_price_col">#ff6a00</color>
+    <color name="order_picture_price_bak">#80161616</color>
+    <color name="order_dec_btn_normal">#333333</color>
+    <color name="order_dec_btn_focus">#FF9900</color>
+    <color name="order_picture_history">#999999</color>
+    <color name="bak_order">#eeeeee</color>
+    <color name="query_font_color">#ffffff</color>
+    <color name="query_background_color">#eeeeee</color>
+</resources>
diff --git a/app/src/main/res/values/dimens.xml b/app/src/main/res/values/dimens.xml
new file mode 100644
index 0000000..6b58d35
--- /dev/null
+++ b/app/src/main/res/values/dimens.xml
@@ -0,0 +1,309 @@
+<resources>
+    <!-- Example customization of dimensions originally defined in res/values/dimens.xml
+         (such as screen margins) for screens with more than 820dp of available width. This
+         would include 7" and 10" devices in landscape (~960dp and ~1280dp respectively). -->
+    <dimen name="activity_horizontal_margin">64dp</dimen>
+    <!--dimen custname="activity_horizontal_margin">16dp</dimen-->
+    <dimen name="activity_vertical_margin">16dp</dimen>
+    <dimen name="key_text_size">100sp</dimen>
+    <!--密码界面-->
+    <dimen name="password_margin_horizontal">10dip</dimen>
+    <dimen name="password_margin_vertical">1dip</dimen>
+    <dimen name="password_left_width">320dip</dimen>
+    <dimen name="password_left_obj_gap">10dip</dimen>
+    <dimen name="password_left_word_margin_top">50dip</dimen>
+    <dimen name="password_hint_size">50sp</dimen>
+    <dimen name="password_char_size">80sp</dimen>
+    <dimen name="password_pwd_char_margin_top">-13dip</dimen>
+    <!--密码界面下-->
+    <dimen name="password_right_btn_margin">20dip</dimen>
+    <dimen name="password_right_margin_left">50dip</dimen>
+    <dimen name="password_pwd_size">110dip</dimen>
+    <dimen name="password_pwd_inner_size">102dip</dimen>
+    <dimen name="password_pwd_inner_length">4dip</dimen>
+    <dimen name="password_btn_size">150dip</dimen>
+    <dimen name="password_right_margin_top">30dip</dimen>
+
+    <!--消费界面左-->
+    <dimen name="consume_left_middle_height">241dip</dimen>
+    <dimen name="consume_waiting_margin_left">18dip</dimen>
+    <dimen name="consume_waiting_margin_top">104dip</dimen>
+    <dimen name="consume_waiting_size">19sp</dimen>
+    <dimen name="consume_left_middle_line_height">52dip</dimen>
+    <dimen name="consume_left_middle_line_margin_left">18dip</dimen>
+    <dimen name="consume_left_middle_line_margin_top">18dip</dimen>
+    <dimen name="consume_caption_width">78dip</dimen>
+    <dimen name="consume_caption_size">19sp</dimen>
+    <dimen name="consume_left_down_height">62dip</dimen>
+    <dimen name="consume_left_down_words_margin_left">18dip</dimen>
+    <dimen name="consume_left_down_words_margin_top">12dip</dimen>
+    <dimen name="consume_amount_margin_top">12dip</dimen>
+    <dimen name="consume_title_size">22sp</dimen>
+    <dimen name="consume_amount_size">21sp</dimen>
+    <dimen name="consume_left_width">250dip</dimen>
+    <!--消费界面右-->
+    <dimen name="consume_right_margin_left">12dip</dimen>
+    <dimen name="consume_right_line_height">67dip</dimen>
+    <dimen name="consume_key_button_width">128dip</dimen>
+    <dimen name="consume_right_down_btn_width">181dip</dimen>
+    <dimen name="main_words_size">20sp</dimen>
+    <dimen name="main_caption_size">26sp</dimen>
+    <dimen name="main_top_caption_indent">10dip</dimen>
+    <dimen name="main_icon_marginRight">27dip</dimen>
+    <dimen name="main_icon_marginBottom">45dip</dimen>
+    <!---普通消费界面-->
+    <dimen name="consume_ordinary_key_height">580dp</dimen>
+    <!--主界面-->
+    <dimen name="main_top_height">485dip</dimen>
+    <dimen name="main_top_line_height">241.5dip</dimen>
+    <dimen name="main_bottom_line_height">119.75dip</dimen>
+    <dimen name="main_bottom_icon_size">49dip</dimen>
+    <dimen name="main_transdtl_icon_size">41dip</dimen>
+    <dimen name="main_words_margin">26dip</dimen>
+    <dimen name="main_top_icon_size">100dip</dimen>
+    <dimen name="main_divide_horizontal">2dip</dimen>
+    <dimen name="main_divide_vertical">2dip</dimen>
+    <dimen name="main_online_height">69dip</dimen>
+    <dimen name="main_online_img_size">40dip</dimen>
+    <dimen name="main_online_font_size">22sp</dimen>
+    <dimen name="main_online_gap">39dip</dimen>
+    <!--主界面上-->
+    <dimen name="main_top_img_margin_top">38dip</dimen>
+    <dimen name="main_query_revenue_margin_big">29dip</dimen>
+    <dimen name="main_query_revenue_margin_title">248dip</dimen>
+    <dimen name="main_query_revenue_margin_giant">88dip</dimen>
+    <dimen name="main_query_revenue_words_gap_vertical">4dip</dimen>
+    <!--主界面上左-->
+    <dimen name="main_top_left_width">508.67dip</dimen>
+    <dimen name="main_transdtl_width">508.67dip</dimen>
+    <dimen name="main_button_width">253.33dip</dimen>
+    <dimen name="main_transdtl_hint_margin_left">156dip</dimen>
+    <dimen name="main_transdtl_hint_margin_top">98dip</dimen>
+    <dimen name="main_trussdtl_hint_margin_top">138dip</dimen>
+    <dimen name="main_transdtl_icon_marginBottom">10dip</dimen>
+    <dimen name="main_transdtl_icon_marginRight">142dip</dimen>
+    <dimen name="main_transdtl_words_marginBottom">10dip</dimen>
+    <dimen name="main_transdtl_words_marginRight">40dip</dimen>
+    <!--主界面底部-->
+    <dimen name="main_bottom_icon_margin_top">38dip</dimen>
+    <dimen name="main_bottom_icon_margin_left">8dip</dimen>
+    <dimen name="main_bottom_words_margin_left">23dip</dimen>
+    <dimen name="main_upd_blacklist_words_margin_left">15dip</dimen>
+    <dimen name="main_bottom_words_margin_top">48dip</dimen>
+    <!--查询界面-->
+    <dimen name="query_title_height">55dip</dimen>
+    <dimen name="query_thick_line_width">3dip</dimen>
+    <dimen name="query_thick_line_height">18dip</dimen>
+    <dimen name="query_content_height">55dip</dimen>
+    <dimen name="query_line_margin_top">3dip</dimen>
+    <dimen name="query_words_margin_left">144dip</dimen>
+    <dimen name="query_words_size">26sp</dimen>
+    <dimen name="query_icon_margin_left">12dip</dimen>
+    <dimen name="query_title_margin_left">6dip</dimen>
+    <dimen name="query_half_width">320dip</dimen>
+    <dimen name="query_right_block_margin_top">6dip</dimen>
+    <!--查询界面翻页按钮-->
+    <dimen name="query_turn_page_words_margin_left">6dip</dimen>
+    <dimen name="query_turn_page_btn_size">25dip</dimen>
+    <dimen name="query_turn_page_btn_margin_left">220dip</dimen>
+    <dimen name="query_prev_margin_top">230dip</dimen>
+    <!--消费流水界面-->
+    <dimen name="revenue_btn_size">35dp</dimen>
+    <dimen name="revenue_serch_text_size">30dp</dimen>
+    <dimen name="revenue_list_size">25dp</dimen>
+    <dimen name="revenue_item_size">22dp</dimen>
+    <!--设置界面通用-->
+    <dimen name="set_menu_height">100dip</dimen>
+    <dimen name="set_menu_text_size">30sp</dimen>
+    <dimen name="set_block_words_margin_left">12dip</dimen>
+    <dimen name="set_block_words_width">360dip</dimen>
+    <dimen name="set_arrow_size">19dip</dimen>
+    <dimen name="set_block_width">300dip</dimen>
+    <dimen name="set_block_margin_top">35dip</dimen>
+    <dimen name="set_block_margin_bottom">35dip</dimen>
+
+    <!--恢复出厂界面-->
+    <dimen name="rf_middle_btn_width">108dip</dimen>
+    <dimen name="rf_middle_btn_height">49dip</dimen>
+    <dimen name="rf_middle_words_height">117dip</dimen>
+    <dimen name="rf_words_size">25sp</dimen>
+    <dimen name="rf_middle_btn_margin_bottom">18dip</dimen>
+    <dimen name="rf_progress_bar_height">3dip</dimen>
+    <dimen name="rf_progress_bar_width">481dip</dimen>
+    <!--启用界面-->
+    <dimen name="enable_devphyid_line_inner_gap">15dip</dimen>
+    <dimen name="enable_title_text_size">32sp</dimen>
+    <dimen name="enable_devphyid_font_size">28sp</dimen>
+    <dimen name="enable_devphyid_line_gap">20dip</dimen>
+    <dimen name="enable_devphyid_btn_margin_top">50dip</dimen>
+    <dimen name="enable_devphyid_line_margin_top">80dip</dimen>
+    <dimen name="enable_devphyid_text_width">110dip</dimen>
+    <dimen name="enable_devphyid_edit_width">560dip</dimen>
+    <dimen name="enable_confirm_width">100dip</dimen>
+    <dimen name="enable_confirm_height">50dip</dimen>
+    <dimen name="enable_devphyid_middle_width">668dip</dimen>
+    <dimen name="enable_devphyid_middle_height">660dip</dimen>
+    <dimen name="enable_devphyid_margin_top">70dip</dimen>
+    <dimen name="enable_devphyid_middle_margin_top">20dip</dimen>
+    <dimen name="enable_btn_width">150dip</dimen>
+    <dimen name="enable_btn_height">80dip</dimen>
+    <dimen name="enable_devphyid_btn_gap">150dip</dimen>
+    <!--启用步骤页面-->
+    <dimen name="enable_step_text_size">26sp</dimen>
+    <dimen name="enable_step_line_margin_top">35dip</dimen>
+    <dimen name="enable_step_line_gap">32dip</dimen>
+    <dimen name="enable_step_words_margin_left">20dip</dimen>
+    <dimen name="enable_step_middle_width">668dip</dimen>
+    <dimen name="enable_step_middle_height">660dip</dimen>
+    <dimen name="enable_auth_btn_margin_top">520dip</dimen>
+    <dimen name="enable_auth_text_margin_top">360dip</dimen>
+    <!--设置通讯参数界面-->
+    <dimen name="set_server_line_height">120dip</dimen>
+    <dimen name="set_server_middle_width">600dip</dimen>
+    <dimen name="set_server_middle_height">570dip</dimen>
+    <dimen name="set_server_btn_width">150dip</dimen>
+    <dimen name="set_server_btn_height">60dip</dimen>
+    <dimen name="set_server_btns_text_size">22sp</dimen>
+    <dimen name="set_server_btn_margin_right">100dip</dimen>
+    <!--所有界面的返回按钮-->
+    <dimen name="all_back_line_height">72dip</dimen>
+    <dimen name="all_back_img_size">45dip</dimen>
+    <dimen name="all_back_word_width">115dip</dimen>
+    <dimen name="all_back_word_height">58dip</dimen>
+    <dimen name="all_back_word_margin_left">5dip</dimen>
+    <dimen name="all_back_words_size">30sp</dimen>
+    <dimen name="all_back_img_padtop">60dp</dimen>
+    <dimen name="all_back_img_padleft">20dp</dimen>
+    <!--本地控制参数-->
+    <dimen name="control_para_gap">20dp</dimen>
+    <dimen name="control_para_text_size">28dp</dimen>
+    <!--行间间隔-->
+    <dimen name="line_divide">20dp</dimen>
+    <!--点餐上-->
+    <dimen name="order_picture_section_line_height">252dip</dimen>
+    <dimen name="order_picture_out_width">184dip</dimen>
+    <dimen name="order_picture_inner_width">183dip</dimen>
+    <dimen name="order_picture_inner_height">196dip</dimen>
+    <dimen name="order_picture_simple_inner_width">252dip</dimen>
+    <dimen name="order_picture_simple_inner_height18">135dip</dimen>
+    <dimen name="order_picture_simple_inner_height21">115dip</dimen>
+    <dimen name="order_picture_simple_inner_height24">100dip</dimen>
+    <dimen name="order_picture_simple_inner_height27">90dip</dimen>
+    <dimen name="order_picture_simple_inner_height30">80dip</dimen>
+    <dimen name="order_picture_inner_margin">5dip</dimen>
+    <dimen name="order_picture_out_margin">2dip</dimen>
+    <dimen name="order_picture_price_margin_left">5dip</dimen>
+    <dimen name="order_picture_price_left_width">100dip</dimen>
+    <dimen name="order_picture_big_price_text_size">40sp</dimen>
+    <dimen name="order_picture_price_text_size">28sp</dimen>
+    <dimen name="order_picture_dec_text_size">20sp</dimen>
+    <dimen name="order_zoom_btn_width">57dip</dimen>
+    <dimen name="order_zoom_btn_height">67dip</dimen>
+    <dimen name="order_picture_count_text_size">28sp</dimen>
+    <dimen name="order_picture_section_height">830dip</dimen>
+    <dimen name="order_picture_food_name_height">57dip</dimen>
+    <dimen name="order_order_num_control_btn_size">55dip</dimen>
+    <dimen name="order_purchase_count_margin">10dip</dimen>
+    <dimen name="order_picture_text_si">10dip</dimen>
+    <!--点餐下-->
+    <dimen name="order_food_count_pack_margin_left">20dip</dimen>
+    <dimen name="order_food_name_margin_left">5dip</dimen>
+    <dimen name="order_down_height">200dip</dimen>
+    <dimen name="order_food_name_width">150dip</dimen>
+    <dimen name="order_food_count_width">50dip</dimen>
+    <dimen name="order_food_count_pack_width">170dip</dimen>
+    <dimen name="order_down_btn_text">45sp</dimen>
+    <dimen name="order_down_btn_margin_top">45dip</dimen>
+    <dimen name="order_down_gap">10dip</dimen>
+    <dimen name="order_down_left_width">324dip</dimen>
+    <dimen name="order_list_item_text_size">24sp</dimen>
+    <dimen name="order_total_price_text_size">48sp</dimen>
+    <dimen name="order_clear_btn_width">132dip</dimen>
+    <dimen name="order_clear_btn_height">100dip</dimen>
+    <dimen name="order_purchase_btn_width">216dip</dimen>
+    <dimen name="order_list_item_height">38dip</dimen>
+    <dimen name="order_purchase_btn_height">100dip</dimen>
+    <dimen name="order_total_price_margin_top">20dip</dimen>
+    <dimen name="order_picture_text_size1">30dip</dimen>
+    <dimen name="order_picture_text_size2">35dip</dimen>
+    <dimen name="order_picture_text_size3">40dip</dimen>
+    <!--点餐等待-->
+    <dimen name="order_purchase_star_gap">20dip</dimen>
+    <dimen name="order_purchase_title_height">100dip</dimen>
+    <dimen name="order_purchase_star_height">100dip</dimen>
+    <dimen name="order_wait_purchase_width">650dip</dimen>
+    <dimen name="order_wait_purchase_height">500dip</dimen>
+    <!--普通消费弹窗-->
+    <dimen name="ordinary_consume_home_width">600dip</dimen>
+    <dimen name="ordinary_consume_home_height">450dip</dimen>
+    <dimen name="ordinary_consume_text_size">40sp</dimen>
+    <dimen name="ordinary_consume_uint_size">30dp</dimen>
+    <!--点餐大图-->
+    <dimen name="order_big_picture_price_margin_left">25dip</dimen>
+    <dimen name="order_big_picture_margin_top">70dip</dimen>
+    <dimen name="order_add_food_btn_size">60dip</dimen>
+    <dimen name="order_big_picture_out_width">670dip</dimen>
+    <dimen name="order_big_picture_out_height">562dip</dimen>
+    <dimen name="order_big_picture_inner_width">654dip</dimen>
+    <dimen name="order_big_picture_inner_height">457dip</dimen>
+    <dimen name="order_big_picture_inner_margin">8dip</dimen>
+    <dimen name="order_big_picture_text">50sp</dimen>
+    <dimen name="order_big_picture_food_info_height">119dip</dimen>
+    <dimen name="order_big_picture_food_info_height_half">59dip</dimen>
+    <dimen name="order_big_picture_close_btn_size">75dip</dimen>
+    <dimen name="order_big_picture_confirm_btn_width">200dip</dimen>
+    <dimen name="order_big_picture_confirm_btn_height">75dip</dimen>
+    <dimen name="order_big_picture_confirm_btn_margin_left">170dip</dimen>
+    <dimen name="order_big_picture_count_width">140dip</dimen>
+    <dimen name="order_big_picture_count_height">70dip</dimen>
+    <dimen name="order_big_picture_price_width">200dip</dimen>
+    <dimen name="order_big_picture_dec_margin_left">150dip</dimen>
+    <dimen name="order_picture_history_text_size">12sp</dimen>
+    <dimen name="order_picture_minus_height">43dip</dimen>
+    <dimen name="order_picture_minus_width">80dip</dimen>
+    <dimen name="order_picture_minus_margin_right">6dip</dimen>
+    <dimen name="main_bottom_button_width">381dip</dimen>
+    <!--悬浮密码界面-->
+    <dimen name="float_password_margin_horizontal">5dip</dimen>
+    <dimen name="float_password_margin_vertical">1dip</dimen>
+    <dimen name="float_password_left_width">160dip</dimen>
+    <dimen name="float_password_left_obj_gap">5dip</dimen>
+    <dimen name="float_password_left_word_margin_top">25dip</dimen>
+    <dimen name="float_password_hint_size">35sp</dimen>
+    <dimen name="float_password_char_size">40sp</dimen>
+    <dimen name="float_password_pwd_char_margin_top">-7dip</dimen>
+    <!--悬浮密码界面下-->
+    <dimen name="float_password_right_btn_margin">20dip</dimen>
+    <dimen name="float_password_right_margin_left">25dip</dimen>
+    <dimen name="float_password_pwd_size">70dip</dimen>
+    <dimen name="float_password_pwd_inner_size">70dip</dimen>
+    <dimen name="float_password_pwd_inner_length">2dip</dimen>
+    <dimen name="float_password_btn_size">100dip</dimen>
+    <dimen name="float_password_right_margin_top">15dip</dimen>
+    <!--充值界面-->
+    <dimen name="deposit_userinfo_gap">20dp</dimen>
+    <dimen name="deposit_text_gap">15dp</dimen>
+    <dimen name="deposit_text_size">30sp</dimen>
+    <dimen name="deposit_item_size">20sp</dimen>
+    <dimen name="deposit_bg_crash_width">200dp</dimen>
+    <dimen name="deposit_bg_crash_height">80dp</dimen>
+    <dimen name="deposit_crash_size">50dp</dimen>
+    <dimen name="deposit_dialog_width">300dp</dimen>
+    <dimen name="deposit_dialog_size">40dp</dimen>
+    <dimen name="deposit_shopname_text_size_small">28sp</dimen>
+    <dimen name="deposit_shopname_text_size_normal">35sp</dimen>
+    <!--支付界面-->
+    <dimen name="pay_text_pad_size">10dp</dimen>
+    <dimen name="pay_text_marginleft">30dp</dimen>
+    <dimen name="pay_module_top_size">10dp</dimen>
+    <dimen name="pay_text_size">35sp</dimen>
+    <dimen name="pay_text_title_size">25sp</dimen>
+    <!--待机界面-->
+    <dimen name="consume_text_pad_size">10dp</dimen>
+    <dimen name="consume_text_size">25sp</dimen>
+    <dimen name="consume_text_size1">30sp</dimen>
+    <dimen name="consume_text_size2">30sp</dimen>
+    <dimen name="consume_text_pad_size1">5dp</dimen>
+    <dimen name="consume_shopname_text_size_middle">28sp</dimen>
+    <dimen name="consume_shopname_text_size_normal">35sp</dimen>
+</resources>
diff --git a/app/src/main/res/values/ids.xml b/app/src/main/res/values/ids.xml
new file mode 100644
index 0000000..056a511
--- /dev/null
+++ b/app/src/main/res/values/ids.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?><!--
+ Copyright (C) 2008 ZXing authors
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+<resources>
+    <!-- Messages IDs -->
+    <item name="auto_focus" type="id" />
+    <item name="decode" type="id" />
+    <item name="decode_failed" type="id" />
+    <item name="jump_to_read_card" type="id" />
+    <item name="decode_succeeded" type="id" />
+    <item name="encode_failed" type="id" />
+    <item name="encode_succeeded" type="id" />
+    <item name="launch_product_query" type="id" />
+    <item name="quit" type="id" />
+    <item name="restart_preview" type="id" />
+    <item name="return_scan_result" type="id" />
+    <item name="search_book_contents_failed" type="id" />
+    <item name="search_book_contents_succeeded" type="id" />
+
+
+    <item name="gridview" type="id" />
+    <item name="webview" type="id" />
+
+    <item name="about_version_code" type="id" />
+    <item name="split" type="id" />
+
+</resources>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
new file mode 100644
index 0000000..44fc515
--- /dev/null
+++ b/app/src/main/res/values/strings.xml
@@ -0,0 +1,136 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+
+    <string name="app_name">消费POS机</string>
+    <string name="title_activity_base">基类</string>
+    <string name="action_settings">设置</string>
+    <string name="title_activity_main">主界面</string>
+    <string name="title_activity_psam">操作psam卡</string>
+    <string name="title_activity_readcard">读卡</string>
+    <string name="title_activity_mode">模式</string>
+    <string name="title_activity_init">初始化</string>
+    <string name="title_activity_load">加载</string>
+    <string name="title_activity_comm">通讯</string>
+    <string name="title_activity_control">控制参数</string>
+    <string name="title_activity_consumecancel">消费撤销</string>
+    <string name="title_activity_library">图书缴费</string>
+    <string name="title_activity_recharge">在线充值</string>
+    <string name="cardlib_name">supwisdom.kscpucard</string>
+    <string name="connfail">连接失败</string>
+    <string name="msg_read_card_error">读卡错误</string>
+    <string name="msg_notsupport_card_oper">不支持卡操作</string>
+    <string name="msg_card_data_error">卡数据错误</string>
+    <string name="nfc_not_support">不支持NFC</string>
+    <string name="nfc_disabled">NFC未启动</string>
+    <string name="confirm_open_nfc">是否打开NFC</string>
+    <string name="action_exit">退出</string>
+    <string name="wait_msg">请刷卡</string>
+    <string name="menu_name_set">设置</string>
+    <string name="menu_name_purchase">消费</string>
+    <string name="title_activity_set">设置</string>
+    <string name="hello_world">hello</string>
+    <string name="devtimefmt">yyyyMMddHHmmss</string>
+    <string name="title_activity_transdtl">交易流水查询</string>
+    <string name="no_mf_files">\"无MF文件\"</string>
+    <string name="creat_mf_files">创建MF文件</string>
+    <string name="creat_mf_success">创建MF文件成功</string>
+    <string name="creat_mf_fail">创建MF文件失败</string>
+    <string name="mf_exist">MF退出</string>
+    <string name="error">错误</string>
+    <string name="reset_psam1_success">重设PSAM1成功</string>
+    <string name="reset_psam1_failed">重设psam1失败</string>
+    <string name="reset_psam2_success">重设psam2成功</string>
+    <string name="reset_psam2_failed">重设psam2失败</string>
+    <string name="get_random_number_failed">获取随机数失败</string>
+    <string name="reset_import1">初始化1失败</string>
+    <string name="reset_failed_cannot_get_random_number1">不能获取随机数1</string>
+    <string name="reset_import2">重设2失败</string>
+    <string name="reset_failed_cannot_get_random_number2">获取随机数2失败</string>
+    <string name="title_activity_show_day_consume">营业额查询</string>
+    <string name="title_activity_password">密码设置</string>
+    <string name="isPasswordCancel">isPassWordCancel</string>
+    <string name="consume_img">消费</string>
+    <string name="title_activity_auth">签到</string>
+    <string name="action_saoma">扫码</string>
+    <string name="scan_text">将二维码或条码放入框内完成扫描</string>
+    <string name="home_back">返回</string>
+    <string name="title_activity_consume">普通消费</string>
+    <string name="title_activity_qrcamera">扫码</string>
+    <string name="title_activity_splash">树维pos</string>
+    <string name="waiting_msg">正在识别，请稍后…</string>
+    <string name="username">姓    名</string>
+    <string name="userStuEmpNo">学工号</string>
+    <string name="userExpireDate">有效期</string>
+    <string name="userBalance">余    额</string>
+    <string name="consumeAmount">消费额(元)</string>
+    <string name="title_activity_consume_cancel">消费撤销</string>
+    <string name="title_activity_update_blacklist">更新黑名单</string>
+    <string name="title_activity_recover_factory">恢复出厂</string>
+    <string name="dialogTitle">提示</string>
+    <string name="all_home_words">主页</string>
+    <string name="all_back_words">返回</string>
+    <string name="title_activity_order_online">在线点餐</string>
+    <string name="title_activity_query_parameter_second">查询第二页</string>
+    <string name="devphyid">终端机编号</string>
+    <string name="samNo">SAM卡号</string>
+    <string name="softVerNo">软件版本号</string>
+    <string name="feerateVerNo">收费参数版本号</string>
+    <string name="sysparaVerNo">主参数版本号</string>
+    <string name="cardverno">黑名单参数版本号</string>
+    <string name="devseqno">POS当前流水号</string>
+    <string name="opentime">开机时间</string>
+    <string name="nextPage">下一页</string>
+    <string name="queryParameters">终端参数查询</string>
+    <string name="title_activity_change_mode">更改模式</string>
+    <string name="title_activity_enable">设备启用</string>
+    <string name="offline_words">脱机状态</string>
+    <string name="online_words">联机状态</string>
+    <string name="title_activity_set_server_info">设置通讯参数</string>
+    <string name="title_activity_test_touch">TestTouchActivity</string>
+    <string name="wait_put_card_words"><![CDATA[请刷卡 >>]]></string>
+    <string name="title_activity_hotel">酒店消费</string>
+    <string name="title_activity_manage">设备管理</string>
+    <string name="title_activity_revenue">营业额</string>
+    <string name="title_activity_pay">支付</string>
+    <string name="title_activity_modifypwd">修改密码</string>
+    <string name="title_activity_syspara">系统参数</string>
+    <string name="title_activity_department">部门限制</string>
+    <string name="title_activity_sddtl">SD卡流水</string>
+    <string name="title_activity_cardlib">卡库</string>
+    <string name="title_activity_upgrade">本地升级</string>
+    <!--消费菜单-->
+    <string name="consume_menu_revenue">1-营业额</string>
+    <string name="consume_menu_transdtl_upload">2-上传流水</string>
+    <string name="consume_menu_link_check">3-链路检测</string>
+    <string name="consume_menu_auth">4-手工签到</string>
+    <string name="consume_menu_syspara_query">5-参数查询</string>
+    <string name="consume_menu_manage">6-管理功能</string>
+    <string name="consume_menu_shop_password_set">7-商户密码</string>
+    <string name="consume_menu_consume_mode">8-消费模式</string>
+    <string name="consume_menu_reverse">9-手工冲正</string>
+    <!--消费维护菜单-->
+    <string name="consume_menu_shop_passwd">1-查看商户密码</string>
+    <string name="consume_menu_comm_set">2-通讯参数设置</string>
+    <string name="consume_menu_unconfirm_transdtl">3-查询未上传流水</string>
+    <string name="consume_menu_out_dtl">4-导出本地流水</string>
+    <string name="consume_menu_upgrade">5-软件在线升级</string>
+    <string name="consume_menu_app_exit">6-退出应用程序</string>
+    <string name="consume_menu_setting">7-进入设置界面</string>
+    <string name="consume_menu_clear_blklist">8-清空黑名单</string>
+    <string name="consume_menu_control_set">9-本地参数设置</string>
+    <!--充值菜单-->
+    <string name="deposit_menu_revenue">1-营业额查询</string>
+    <string name="deposit_menu_login_out">2-退出登录</string>
+    <string name="deposit_menu_reverse">3-手工冲正</string>
+    <string name="deposit_menu_param_query">4-参数查询</string>
+    <string name="deposit_menu_param_manage">5-设备管理</string>
+    <string name="deposit_menu_param_link">6-链路检测</string>
+    <!--充值维护菜单-->
+    <string name="deposit_manage_transdtl_clear">1-清空流水</string>
+    <string name="deposit_manage_comm_set">2-参数设置</string>
+    <string name="deposit_manage_upgrade">3-在线升级</string>
+    <string name="deposit_manage_app_exit">4-退出应用</string>
+    <string name="deposit_manage_setting">5-网络设置</string>
+    <!--充值参数-->
+    <string name="deposit_param_opername">操作员</string>
+</resources>
diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml
new file mode 100644
index 0000000..0e8c119
--- /dev/null
+++ b/app/src/main/res/values/styles.xml
@@ -0,0 +1,483 @@
+<resources>
+
+    <!-- Base application theme. -->
+    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
+        <!-- Customize your theme here. -->
+    </style>
+
+    <style name="FloatingDialog" parent="@android:style/Theme.Dialog">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
+        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:background">@android:color/transparent</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowCloseOnTouchOutside">false</item>
+        <item name="android:windowIsTranslucent">true</item>
+    </style>
+
+    <style name="CustomDialog" parent="@android:style/Theme.Dialog">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
+        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowCloseOnTouchOutside">false</item>
+        <item name="android:windowIsTranslucent">true</item>
+    </style>
+
+    <style name="CustomProgressDialog" parent="@style/CustomDialog">
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:windowNoTitle">true</item>
+    </style>
+
+    <style name="myProgressBarStyleSmal">
+        <item name="android:indeterminateDrawable">@drawable/progress_bg</item>
+        <item name="android:minWidth">100dip</item>
+        <item name="android:maxWidth">100dip</item>
+        <item name="android:minHeight">100dip</item>
+        <item name="android:maxHeight">100dip</item>
+    </style>
+
+    <style name="myProgressBarStyleLarge">
+        <item name="android:indeterminateDrawable">@drawable/big_progress_bg</item>
+        <item name="android:width">200dp</item>
+        <item name="android:height">200dp</item>
+    </style>
+
+    <style name="PayDialog" parent="@android:style/Theme.Dialog">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
+        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:background">@android:color/transparent</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowCloseOnTouchOutside">false</item>
+        <item name="android:windowIsTranslucent">true</item>
+        <item name="android:windowNoDisplay">true</item>
+    </style>
+
+    <style name="OtherDialog" parent="@android:style/Theme.Dialog">
+        <item name="android:windowFrame">@null</item>
+        <item name="android:windowIsFloating">true</item>
+        <item name="android:windowContentOverlay">@null</item>
+        <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item>
+        <item name="android:windowSoftInputMode">stateUnspecified|adjustPan</item>
+        <item name="android:windowBackground">@android:color/transparent</item>
+        <item name="android:background">@android:color/transparent</item>
+        <item name="android:windowNoTitle">true</item>
+        <item name="android:windowCloseOnTouchOutside">false</item>
+        <item name="android:windowIsTranslucent">false</item>
+    </style>
+    <!--activity_deposit-->
+    <style name="deposit_user_info_layout_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:padding">5dp</item>
+    </style>
+
+    <style name="deposit_user_info_name_style">
+        <item name="android:textSize">@dimen/deposit_text_size</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/black</item>
+    </style>
+
+    <style name="deposit_user_info_value_style">
+        <item name="android:textSize">@dimen/deposit_text_size</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/blue</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:maxLines">1</item>
+    </style>
+
+    <style name="deposit_result_layout_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:paddingLeft">10dp</item>
+        <item name="android:paddingTop">5dp</item>
+    </style>
+
+    <style name="deposit_result_name_style">
+        <item name="android:textSize">@dimen/deposit_text_size</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:maxLines">1</item>
+    </style>
+
+    <style name="deposit_result_value_style">
+        <item name="android:textSize">@dimen/deposit_text_size</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/blue</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:maxLines">1</item>
+    </style>
+    <!--deposit revenue-->
+    <style name="deposit_revenue_statics_layout_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">20dp</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:weightSum">4</item>
+    </style>
+
+    <style name="deposit_revenue_statics_name_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:gravity">center</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:textSize">20sp</item>
+    </style>
+
+    <style name="deposit_revenue_statics_value_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:gravity">center</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:textSize">20sp</item>
+    </style>
+
+    <style name="deposit_revenue_detail_style">
+        <item name="android:textSize">25sp</item>
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:maxLines">1</item>
+    </style>
+
+    <style name="deposit_revenue_date_style">
+        <item name="android:textSize">@dimen/revenue_serch_text_size</item>
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">center</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:maxLines">1</item>
+        <item name="android:padding">5dp</item>
+    </style>
+
+    <style name="deposit_revenue_dtl_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:maxLines">1</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:textSize">20sp</item>
+    </style>
+
+    <style name="init_param_title_btn_name_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">10dp</item>
+        <item name="android:gravity">center</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">28sp</item>
+    </style>
+
+    <style name="init_param_name_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">10dp</item>
+        <item name="android:gravity">start|center</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">28sp</item>
+    </style>
+
+    <style name="init_param_mode_style">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">@dimen/enable_devphyid_font_size</item>
+    </style>
+
+    <style name="deposit_dialog_result_name_style">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:textSize">40sp</item>
+    </style>
+
+    <style name="deposit_dialog_result_unit_style">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:textSize">30sp</item>
+        <item name="android:text">" 元"</item>
+    </style>
+
+    <style name="deposit_menu_text_style">
+        <item name="android:textSize">30sp</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/light_blue2</item>
+    </style>
+
+    <style name="deposit_param_ll_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:weightSum">3</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">10dp</item>
+        <item name="android:padding">10dp</item>
+        <item name="android:orientation">horizontal</item>
+    </style>
+
+    <style name="deposit_param_text_name_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">30sp</item>
+    </style>
+
+    <style name="deposit_param_text_value_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">30sp</item>
+    </style>
+
+    <style name="head_title_text_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">center</item>
+        <item name="android:padding">20dp</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">50sp</item>
+    </style>
+
+    <style name="head_title_inner_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:layout_margin">20dp</item>
+        <item name="android:background">@drawable/corner_bg_white</item>
+        <item name="android:orientation">vertical</item>
+    </style>
+
+    <style name="head_title_out_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:background">@color/light_blue2</item>
+        <item name="android:orientation">vertical</item>
+    </style>
+    <!--菜单项-->
+    <style name="menu_item_text_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textSize">30sp</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:paddingLeft">5dp</item>
+        <item name="android:paddingTop">5dp</item>
+    </style>
+    <!--参数查询-->
+    <style name="syspara_item_text_ll_sytle">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:padding">10dp</item>
+        <item name="android:weightSum">2</item>
+    </style>
+
+    <style name="syspara_item_text_name_sytle">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">30sp</item>
+    </style>
+
+    <style name="param_set_item_radio_style">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">30sp</item>
+        <item name="android:paddingTop">5dp</item>
+        <item name="android:paddingLeft">5dp</item>
+    </style>
+
+    <style name="param_item_text_btn_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:background">@drawable/select_bg_keyboard</item>
+        <item name="android:gravity">center</item>
+        <item name="android:padding">10dp</item>
+        <item name="android:textColor">@color/white</item>
+        <item name="android:textSize">@dimen/enable_devphyid_font_size</item>
+    </style>
+
+    <style name="load_info_text_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">start</item>
+        <item name="android:padding">10dp</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">@dimen/enable_step_text_size</item>
+    </style>
+
+    <style name="control_item_ll_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_gravity">center_horizontal</item>
+        <item name="android:layout_marginTop">@dimen/control_para_gap</item>
+        <item name="android:orientation">vertical</item>
+    </style>
+
+    <style name="control_item_text_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:gravity">start|center</item>
+        <item name="android:textColor">@color/enable_text_font_color</item>
+        <item name="android:textSize">@dimen/control_para_text_size</item>
+    </style>
+
+    <style name="control_text_btn_style">
+        <item name="android:layout_width">0dp</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:layout_marginLeft">20dp</item>
+        <item name="android:layout_marginRight">20dp</item>
+        <item name="android:gravity">center</item>
+        <item name="android:padding">10dp</item>
+        <item name="android:background">@drawable/select_bg_keyboard</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">35sp</item>
+    </style>
+
+    <style name="gate_content_text_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:gravity">center</item>
+        <item name="android:layout_height">0dp</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:padding">@dimen/consume_text_pad_size</item>
+        <item name="android:textSize">90sp</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textColor">@color/orange1</item>
+    </style>
+
+    <style name="gate_dialog_result_text_style">
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginTop">10dp</item>
+        <item name="android:maxLines">1</item>
+        <item name="android:textSize">@dimen/ordinary_consume_text_size</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textColor">@color/orange1</item>
+    </style>
+
+    <style name="consume_wait_account_ll_style">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:padding">@dimen/consume_text_pad_size1</item>
+    </style>
+
+    <style name="consume_wait_account_paraname_style">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:textSize">@dimen/consume_text_size2</item>
+    </style>
+
+    <style name="consume_wait_account_paraval_style">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">wrap_content</item>
+        <item name="android:textColor">@color/blue</item>
+        <item name="android:textSize">@dimen/consume_text_size2</item>
+        <item name="android:maxLines">1</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="consume_wait_account_spec_paraval_style">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">0dp</item>
+        <item name="android:ellipsize">end</item>
+        <item name="android:layout_weight">1</item>
+        <item name="android:textColor">@color/blue</item>
+        <item name="android:textSize">@dimen/consume_text_size2</item>
+        <item name="android:maxLines">1</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="consume_pay_way_hint_style">
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_marginTop">50dp</item>
+        <item name="android:textSize">25sp</item>
+        <item name="android:textStyle">bold</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:gravity">center</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>
+        <item name="android:layout_marginLeft">20dp</item>
+        <item name="android:layout_marginTop">60dp</item>
+        <item name="android:layout_marginRight">20dp</item>
+        <item name="android:background">@drawable/corner_bg_qrcode_hint</item>
+        <item name="android:gravity">center</item>
+        <item name="android:padding">5dp</item>
+        <item name="android:textColor">@color/white</item>
+        <item name="android:textSize">30sp</item>
+        <item name="android:textStyle">bold</item>
+    </style>
+
+    <style name="consume_pay_way_layout_style">
+        <item name="android:layout_height">380dp</item>
+        <item name="android:layout_marginLeft">20dp</item>
+        <item name="android:layout_marginRight">20dp</item>
+        <item name="android:layout_marginTop">20dp</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:orientation">horizontal</item>
+        <item name="android:background">@drawable/corner_bg_white</item>
+    </style>
+
+    <style name="consume_pay_default_photo_style">
+        <item name="android:layout_width">300dp</item>
+        <item name="android:layout_height">300dp</item>
+        <item name="android:layout_gravity">center</item>
+        <item name="android:scaleType">fitXY</item>
+    </style>
+
+    <style name="activity_pay_out_ll_style">
+        <item name="android:layout_height">match_parent</item>
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:background">@color/light_blue2</item>
+        <item name="android:orientation">vertical</item>
+    </style>
+
+    <style name="upgrade_text_desc_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:padding">10dp</item>
+        <item name="android:textColor">@color/black</item>
+        <item name="android:textSize">30sp</item>
+        <item name="android:maxLines">1</item>
+    </style>
+
+    <style name="upgrade_text_value_style">
+        <item name="android:layout_width">match_parent</item>
+        <item name="android:layout_height">wrap_content</item>
+        <item name="android:layout_marginLeft">10dp</item>
+        <item name="android:textColor">@color/light_blue2</item>
+        <item name="android:textSize">30sp</item>
+        <item name="android:maxLines">1</item>
+    </style>
+</resources>
diff --git a/app/src/test/java/com/supwisdom/ExampleUnitTest.kt b/app/src/test/java/com/supwisdom/ExampleUnitTest.kt
new file mode 100644
index 0000000..f32e492
--- /dev/null
+++ b/app/src/test/java/com/supwisdom/ExampleUnitTest.kt
@@ -0,0 +1,17 @@
+package com.supwisdom
+
+import org.junit.Test
+
+import org.junit.Assert.*
+
+/**
+ * Example local unit test, which will execute on the development machine (host).
+ *
+ * See [testing documentation](http://d.android.com/tools/testing).
+ */
+class ExampleUnitTest {
+    @Test
+    fun addition_isCorrect() {
+        assertEquals(4, 2 + 2)
+    }
+}
diff --git a/build.gradle b/build.gradle
new file mode 100644
index 0000000..3b61f16
--- /dev/null
+++ b/build.gradle
@@ -0,0 +1,28 @@
+// Top-level build file where you can add configuration options common to all sub-projects/modules.
+
+buildscript {
+    ext.kotlin_version = '1.3.31'
+    repositories {
+        google()
+        jcenter()
+        
+    }
+    dependencies {
+        classpath 'com.android.tools.build:gradle:3.4.0'
+        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
+        // NOTE: Do not place your application dependencies here; they belong
+        // in the individual module build.gradle files
+    }
+}
+
+allprojects {
+    repositories {
+        google()
+        jcenter()
+        
+    }
+}
+
+task clean(type: Delete) {
+    delete rootProject.buildDir
+}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..85be9ea
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,15 @@
+# Project-wide Gradle settings.
+# IDE (e.g. Android Studio) users:
+# Gradle settings configured through the IDE *will override*
+# any settings specified in this file.
+# For more details on how to configure your build environment visit
+# http://www.gradle.org/docs/current/userguide/build_environment.html
+# Specifies the JVM arguments used for the daemon process.
+# The setting is particularly useful for tweaking memory settings.
+org.gradle.jvmargs=-Xmx1536m
+# When configured, Gradle will run in incubating parallel mode.
+# This option should only be used with decoupled projects. More details, visit
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
+# org.gradle.parallel=true
+# Kotlin code style for this project: "official" or "obsolete":
+kotlin.code.style=official
diff --git a/gradlew b/gradlew
new file mode 100644
index 0000000..cccdd3d
--- /dev/null
+++ b/gradlew
@@ -0,0 +1,172 @@
+#!/usr/bin/env sh
+
+##############################################################################
+##
+##  Gradle start up script for UN*X
+##
+##############################################################################
+
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+    ls=`ls -ld "$PRG"`
+    link=`expr "$ls" : '.*-> \(.*\)$'`
+    if expr "$link" : '/.*' > /dev/null; then
+        PRG="$link"
+    else
+        PRG=`dirname "$PRG"`"/$link"
+    fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
+
+APP_NAME="Gradle"
+APP_BASE_NAME=`basename "$0"`
+
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
+# Use the maximum available, or set MAX_FD != -1 to use that value.
+MAX_FD="maximum"
+
+warn () {
+    echo "$*"
+}
+
+die () {
+    echo
+    echo "$*"
+    echo
+    exit 1
+}
+
+# OS specific support (must be 'true' or 'false').
+cygwin=false
+msys=false
+darwin=false
+nonstop=false
+case "`uname`" in
+  CYGWIN* )
+    cygwin=true
+    ;;
+  Darwin* )
+    darwin=true
+    ;;
+  MINGW* )
+    msys=true
+    ;;
+  NONSTOP* )
+    nonstop=true
+    ;;
+esac
+
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
+
+# Determine the Java command to use to start the JVM.
+if [ -n "$JAVA_HOME" ] ; then
+    if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+        # IBM's JDK on AIX uses strange locations for the executables
+        JAVACMD="$JAVA_HOME/jre/sh/java"
+    else
+        JAVACMD="$JAVA_HOME/bin/java"
+    fi
+    if [ ! -x "$JAVACMD" ] ; then
+        die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+    fi
+else
+    JAVACMD="java"
+    which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+
+Please set the JAVA_HOME variable in your environment to match the
+location of your Java installation."
+fi
+
+# Increase the maximum file descriptors if we can.
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
+    MAX_FD_LIMIT=`ulimit -H -n`
+    if [ $? -eq 0 ] ; then
+        if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
+            MAX_FD="$MAX_FD_LIMIT"
+        fi
+        ulimit -n $MAX_FD
+        if [ $? -ne 0 ] ; then
+            warn "Could not set maximum file descriptor limit: $MAX_FD"
+        fi
+    else
+        warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
+    fi
+fi
+
+# For Darwin, add options to specify how the application appears in the dock
+if $darwin; then
+    GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
+fi
+
+# For Cygwin, switch paths to Windows format before running java
+if $cygwin ; then
+    APP_HOME=`cygpath --path --mixed "$APP_HOME"`
+    CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
+    JAVACMD=`cygpath --unix "$JAVACMD"`
+
+    # We build the pattern for arguments to be converted via cygpath
+    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
+    SEP=""
+    for dir in $ROOTDIRSRAW ; do
+        ROOTDIRS="$ROOTDIRS$SEP$dir"
+        SEP="|"
+    done
+    OURCYGPATTERN="(^($ROOTDIRS))"
+    # Add a user-defined pattern to the cygpath arguments
+    if [ "$GRADLE_CYGPATTERN" != "" ] ; then
+        OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
+    fi
+    # Now convert the arguments - kludge to limit ourselves to /bin/sh
+    i=0
+    for arg in "$@" ; do
+        CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
+        CHECK2=`echo "$arg"|egrep -c "^-"`                                 ### Determine if an option
+
+        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition
+            eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
+        else
+            eval `echo args$i`="\"$arg\""
+        fi
+        i=$((i+1))
+    done
+    case $i in
+        (0) set -- ;;
+        (1) set -- "$args0" ;;
+        (2) set -- "$args0" "$args1" ;;
+        (3) set -- "$args0" "$args1" "$args2" ;;
+        (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
+        (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
+        (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
+        (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
+        (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
+        (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
+    esac
+fi
+
+# Escape application args
+save () {
+    for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
+    echo " "
+}
+APP_ARGS=$(save "$@")
+
+# Collect all arguments for the java command, following the shell quoting and substitution rules
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
+
+# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
+if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
+  cd "$(dirname "$0")"
+fi
+
+exec "$JAVACMD" "$@"
diff --git a/gradlew.bat b/gradlew.bat
new file mode 100644
index 0000000..f955316
--- /dev/null
+++ b/gradlew.bat
@@ -0,0 +1,84 @@
+@if "%DEBUG%" == "" @echo off
+@rem ##########################################################################
+@rem
+@rem  Gradle startup script for Windows
+@rem
+@rem ##########################################################################
+
+@rem Set local scope for the variables with windows NT shell
+if "%OS%"=="Windows_NT" setlocal
+
+set DIRNAME=%~dp0
+if "%DIRNAME%" == "" set DIRNAME=.
+set APP_BASE_NAME=%~n0
+set APP_HOME=%DIRNAME%
+
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
+@rem Find java.exe
+if defined JAVA_HOME goto findJavaFromJavaHome
+
+set JAVA_EXE=java.exe
+%JAVA_EXE% -version >NUL 2>&1
+if "%ERRORLEVEL%" == "0" goto init
+
+echo.
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:findJavaFromJavaHome
+set JAVA_HOME=%JAVA_HOME:"=%
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
+
+if exist "%JAVA_EXE%" goto init
+
+echo.
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
+echo.
+echo Please set the JAVA_HOME variable in your environment to match the
+echo location of your Java installation.
+
+goto fail
+
+:init
+@rem Get command-line arguments, handling Windows variants
+
+if not "%OS%" == "Windows_NT" goto win9xME_args
+
+:win9xME_args
+@rem Slurp the command line arguments.
+set CMD_LINE_ARGS=
+set _SKIP=2
+
+:win9xME_args_slurp
+if "x%~1" == "x" goto execute
+
+set CMD_LINE_ARGS=%*
+
+:execute
+@rem Setup the command line
+
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
+
+@rem Execute Gradle
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
+
+:end
+@rem End local scope for the variables with windows NT shell
+if "%ERRORLEVEL%"=="0" goto mainEnd
+
+:fail
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
+rem the _cmd.exe /c_ return code!
+if  not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
+exit /b 1
+
+:mainEnd
+if "%OS%"=="Windows_NT" endlocal
+
+:omega
diff --git a/keys-app.jks b/keys-app.jks
new file mode 100644
index 0000000..3331a8b
--- /dev/null
+++ b/keys-app.jks
Binary files differ
diff --git a/settings.gradle b/settings.gradle
new file mode 100644
index 0000000..e7b4def
--- /dev/null
+++ b/settings.gradle
@@ -0,0 +1 @@
+include ':app'
diff --git a/upgrade.py b/upgrade.py
new file mode 100644
index 0000000..8de756f
--- /dev/null
+++ b/upgrade.py
@@ -0,0 +1,48 @@
+#coding=utf-8
+#使用python做升级文件打包
+
+import hashlib
+import sys
+import zipfile
+from os import path
+import subprocess
+
+hashFileName = 'hash256.sign'
+
+	
+def sha256_checknum(apk):
+	hash256 = hashlib.sha256()
+	srcFile = open(apk,'rb')
+	with srcFile as f:
+		for block in iter(lambda:f.read(4096),b''):
+			hash256.update(block);
+	srcFile.close()
+	hash256.update(b'nzoqPYMIu91VViA/mEIG5FtJXi8=')
+	
+	hashFile = path.dirname(apk)+'/'+hashFileName
+	print('hashFile = '+hashFile)
+	destFile = open(hashFile,'w+')
+	destFile.write(hash256.hexdigest())
+	destFile.close()
+	
+def zip_file(apk):
+	fileDir = path.dirname(apk)
+	version = subprocess.check_output(['git', 'describe', '--abbrev=4','--dirty','--always','--tags']).strip().decode('utf-8')
+	zipFile = fileDir+'/posa711'+'-'+version+'.zip'
+	print('zipFile = '+zipFile)
+	
+	zf = zipfile.ZipFile(zipFile,'w',zipfile.ZIP_DEFLATED)
+	zf.write(fileDir+'/'+hashFileName,hashFileName)
+	zf.write(apk,'posa711.apk')
+	zf.close()
+
+if __name__ == '__main__':
+	appFile = './app/release/app-release.apk'
+	print('appFile = ' + appFile)
+	
+	if not path.exists(appFile):
+		print(appFile +' is not exist')
+		exit()
+	sha256_checknum(appFile)
+	zip_file(appFile)
+	print('build upgrade zip success!')
\ No newline at end of file
