From 7be66bc9663c1106ebc78748dc22f394680ac86b Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 29 十二月 2020 09:57:09 +0800
Subject: [PATCH] 1. 修复场景地图界面选择场景点时可能由于列表下标越界导致崩溃问题; 2. 修复自定义PagerAdapter时,没有重写destroyItem可能会导致的崩溃问题; 3. 修改数据库实体类MediaTypeAlias的主键id类型从龙变更为Long,否则无法自增; 4. 新增部分列表相关的工具函数;

---
 app/src/main/java/cn/flightfeather/thirdapp/common/database/DbFactory.kt |   21 ++++++++++++++++-----
 1 files changed, 16 insertions(+), 5 deletions(-)

diff --git a/app/src/main/java/cn/flightfeather/thirdapp/common/database/DbFactory.kt b/app/src/main/java/cn/flightfeather/thirdapp/common/database/DbFactory.kt
index d46e875..ce71fa6 100644
--- a/app/src/main/java/cn/flightfeather/thirdapp/common/database/DbFactory.kt
+++ b/app/src/main/java/cn/flightfeather/thirdapp/common/database/DbFactory.kt
@@ -8,24 +8,32 @@
  * @author riku
  * Date: 2019/5/16
  */
-class DbFactory private constructor(application: CommonApplication){
+class DbFactory private constructor(private val application: CommonApplication){
+
+    private var daoSession: DaoSession? = null
+
+    init {
+        daoSession = application.daoSession
+    }
 
     companion object {
 
         @Volatile
-        private lateinit var daoSession: DaoSession
+        private var mDbFactory: DbFactory? = null
 
         //鏁版嵁搴撳垵濮嬪寲
         @JvmStatic
         @Synchronized
         fun init(application: CommonApplication) {
-            daoSession = application.daoSession
+            if (mDbFactory == null) {
+                mDbFactory = DbFactory(application)
+            }
         }
 
         //鑾峰彇鏁版嵁搴撴搷浣滃璞aoSession
         fun getGreenDaoObservable(): Observable<DaoSession> {
             return Observable.create { emitter ->
-                daoSession.let {
+                mDbFactory?.daoSession?.let {
                     emitter.onNext(it)
                     emitter.onComplete()
                 }
@@ -33,7 +41,10 @@
         }
 
         fun getInstance(): DaoSession {
-            return daoSession
+            if (mDbFactory == null) {
+                mDbFactory = DbFactory(CommonApplication.getInstance())
+            }
+            return mDbFactory!!.daoSession!!
         }
     }
 }
\ No newline at end of file

--
Gitblit v1.9.3