init
diff --git a/app/src/main/java/com/supwisdom/activities/CrashHandler.kt b/app/src/main/java/com/supwisdom/activities/CrashHandler.kt
index 784aeab..48caaf3 100644
--- a/app/src/main/java/com/supwisdom/activities/CrashHandler.kt
+++ b/app/src/main/java/com/supwisdom/activities/CrashHandler.kt
@@ -1,5 +1,6 @@
 package com.supwisdom.activities
 
+import android.annotation.SuppressLint
 import android.content.Context
 import android.content.pm.PackageManager
 import android.os.Build
@@ -20,6 +21,7 @@
     private val info = HashMap<String, String>()
 
     companion object {
+        @SuppressLint("StaticFieldLeak")
         private var INSTANCE: CrashHandler? = null
 
         fun getInstance(): CrashHandler {
@@ -58,7 +60,6 @@
      * @return true 如果处理了该异常信息;否则返回false.
      */
     private fun handleException(ex: Throwable?): Boolean {
-//        CommonUtil.showBar(context!!)
         ThreadPool.getShortPool().execute(Runnable {
             CommonUtil.doSleep(500)
             Looper.prepare()
diff --git a/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt b/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt
index acaaa43..b66a2d1 100644
--- a/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt
+++ b/app/src/main/java/com/supwisdom/db/ConfigParaDao.kt
@@ -12,7 +12,7 @@
  **/
 class ConfigParaDao constructor(context: Context) {
     private val INDEX = "1"
-    private val TABLE = DBTransdtlHelper.TABLE_NAME_CONFIGPARA
+    private val TABLE = DBLocalHelper.TABLE_NAME_CONFIGPARA
     private val dbHelper = DBTransdtlHelper.getInstance(context)
 
     fun getLock(): Lock {
diff --git a/app/src/main/java/com/supwisdom/db/DBLocalHelper.kt b/app/src/main/java/com/supwisdom/db/DBLocalHelper.kt
new file mode 100644
index 0000000..a57dc71
--- /dev/null
+++ b/app/src/main/java/com/supwisdom/db/DBLocalHelper.kt
@@ -0,0 +1,62 @@
+package com.supwisdom.db
+
+import android.content.Context
+import android.database.sqlite.SQLiteDatabase
+import android.database.sqlite.SQLiteOpenHelper
+import java.util.concurrent.locks.Lock
+import java.util.concurrent.locks.ReentrantLock
+
+/**
+ ** create by zzq on 2019/7/31
+ ** @desc 本地配置文件
+ **/
+class DBLocalHelper private constructor(context: Context) : SQLiteOpenHelper(context, DB_NAME, null, VERSION) {
+    companion object {
+        private val DB_NAME = "db_local_config"
+        private val VERSION = 1
+        private var instance: DBLocalHelper? = null
+
+        const val TABLE_NAME_CONFIGPARA = "tb_configpara"
+
+        fun getInstance(context: Context): DBLocalHelper {
+            if (null == instance) {
+                synchronized(DBLocalHelper::class.java) {
+                    if (null == instance) {
+                        instance = DBLocalHelper(context)
+                    }
+                }
+            }
+            return instance!!
+        }
+    }
+
+    /**
+     * SQL for create table
+     */
+    private val CREATE_TABLE_NAME_CONFIGPARA = ("create table IF NOT EXISTS "
+            + TABLE_NAME_CONFIGPARA + " ( "
+            + BeanPropEnum.ConfigPara.id + " long primary key, "
+            + BeanPropEnum.ConfigPara.mode + " integer, "
+            + BeanPropEnum.ConfigPara.devphyid + " char(8), "
+            + BeanPropEnum.ConfigPara.psamno + " char(12), "
+            + BeanPropEnum.ConfigPara.epayIP + " varchar(128), "
+            + BeanPropEnum.ConfigPara.epayPort + " integer, "
+            + BeanPropEnum.ConfigPara.epayUri + " varchar(128), "
+            + BeanPropEnum.ConfigPara.managePwd + " char(6),"
+            + BeanPropEnum.ConfigPara.initOK + " integer ) ")
+    private val DROP_TABLE_NAME_CONFIGPARA = "DROP TABLE IF EXISTS $TABLE_NAME_CONFIGPARA"
+
+    private val lock = ReentrantLock()
+    fun getLock(): Lock {
+        return lock
+    }
+
+    override fun onCreate(db: SQLiteDatabase) {
+        db.execSQL(CREATE_TABLE_NAME_CONFIGPARA)
+    }
+
+    override fun onUpgrade(db: SQLiteDatabase, oldVersion: Int, newVersion: Int) {
+        if (oldVersion < newVersion) {
+        }
+    }
+}
\ No newline at end of file
diff --git a/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt b/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
index b4ecdd1..aadfb8d 100644
--- a/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
+++ b/app/src/main/java/com/supwisdom/db/DBTransdtlHelper.kt
@@ -16,7 +16,6 @@
         private val VERSION = 1
         private var instance: DBTransdtlHelper? = null
 
-        const val TABLE_NAME_CONFIGPARA = "tb_configpara"
         const val TABLE_NAME_DTL_ONLINE = "tb_dtl_online"
         const val TABLE_NAME_DTL_OFFLINE = "tb_dtl_offline"
 
@@ -35,18 +34,6 @@
     /**
      * SQL for create table
      */
-    private val CREATE_TABLE_NAME_CONFIGPARA = ("create table IF NOT EXISTS "
-            + TABLE_NAME_CONFIGPARA + " ( "
-            + BeanPropEnum.ConfigPara.id + " long primary key, "
-            + BeanPropEnum.ConfigPara.mode + " integer, "
-            + BeanPropEnum.ConfigPara.devphyid + " char(8), "
-            + BeanPropEnum.ConfigPara.psamno + " char(12), "
-            + BeanPropEnum.ConfigPara.epayIP + " varchar(128), "
-            + BeanPropEnum.ConfigPara.epayPort + " integer, "
-            + BeanPropEnum.ConfigPara.epayUri + " varchar(128), "
-            + BeanPropEnum.ConfigPara.managePwd + " char(6),"
-            + BeanPropEnum.ConfigPara.initOK + " integer ) ")
-    private val DROP_TABLE_NAME_CONFIGPARA = "DROP TABLE IF EXISTS $TABLE_NAME_CONFIGPARA"
     private val CRAETE_TABLE_NAME_DTL_ONLINE = ("create table IF NOT EXISTS "
             + TABLE_NAME_DTL_ONLINE + " ( "
             + BeanPropEnum.TransdtlOnline.devphyid + " char(8),"
@@ -90,7 +77,6 @@
     }
 
     override fun onCreate(db: SQLiteDatabase) {
-        db.execSQL(CREATE_TABLE_NAME_CONFIGPARA)
         db.execSQL(CRAETE_TABLE_NAME_DTL_ONLINE)
         db.execSQL(CRAETE_TABLE_NAME_DTL_OFFLINE)
     }
diff --git a/app/src/main/java/com/supwisdom/db/Pos.kt b/app/src/main/java/com/supwisdom/db/Pos.kt
index 5a3e1f2..d03277b 100644
--- a/app/src/main/java/com/supwisdom/db/Pos.kt
+++ b/app/src/main/java/com/supwisdom/db/Pos.kt
@@ -8,9 +8,8 @@
  ** @desc
  **/
 class Pos constructor(context: Context) {
-    private val context = context
     private val sdContext = SDContext(context)
-    private val configParaDao = ConfigParaDao(context)
+    private val configParaDao = ConfigParaDao(sdContext)
     private var cfgRecord: ConfigParaRecord? = null
     private val dynamicParaDao = DynamicParaDao(context)
     private var dyRecord: DynamicParaRecord? = null
diff --git a/app/src/main/java/com/supwisdom/db/SDContext.kt b/app/src/main/java/com/supwisdom/db/SDContext.kt
index df8b2b3..1b870a6 100644
--- a/app/src/main/java/com/supwisdom/db/SDContext.kt
+++ b/app/src/main/java/com/supwisdom/db/SDContext.kt
@@ -44,13 +44,15 @@
         name: String, mode: Int,
         factory: SQLiteDatabase.CursorFactory?
     ): SQLiteDatabase {
-        return SQLiteDatabase.openOrCreateDatabase(getDatabasePath(name), null)
+        val file = getDatabasePath(name) ?: return super.openOrCreateDatabase(name, mode, factory)
+        return SQLiteDatabase.openOrCreateDatabase(file, factory)
     }
 
     override fun openOrCreateDatabase(
         name: String, mode: Int,
         factory: SQLiteDatabase.CursorFactory?, errorHandler: DatabaseErrorHandler?
     ): SQLiteDatabase {
-        return SQLiteDatabase.openOrCreateDatabase(getDatabasePath(name), null)
+        val file = getDatabasePath(name) ?: return super.openOrCreateDatabase(name, mode, factory, errorHandler)
+        return SQLiteDatabase.openOrCreateDatabase(file, factory)
     }
 }
\ No newline at end of file