aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-05-01 16:05:19 -0700
committerAllan Wang <me@allanwang.ca>2019-05-01 16:05:19 -0700
commit58f4f9298b09081b3c937227828824849057a835 (patch)
tree18d2bf44637b52c9f68817253fc37d4ca699daef /app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
parent576cc1a451a16f2d82ee1e41e83c420a85ded47e (diff)
parentda93672c2ed6b54e0e7119a6b55715185112df3e (diff)
downloadfrost-58f4f9298b09081b3c937227828824849057a835.tar.gz
frost-58f4f9298b09081b3c937227828824849057a835.tar.bz2
frost-58f4f9298b09081b3c937227828824849057a835.zip
Merge dev
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt45
1 files changed, 39 insertions, 6 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
index 4c7aeedc..cf8acdd3 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
@@ -32,8 +32,15 @@ import com.mikepenz.google_material_typeface_library.GoogleMaterial
import com.pitchedapps.frost.activities.LoginActivity
import com.pitchedapps.frost.activities.MainActivity
import com.pitchedapps.frost.activities.SelectorActivity
-import com.pitchedapps.frost.dbflow.CookieModel
-import com.pitchedapps.frost.dbflow.loadFbCookiesSync
+import com.pitchedapps.frost.db.CookieDao
+import com.pitchedapps.frost.db.CookieEntity
+import com.pitchedapps.frost.db.CookieModel
+import com.pitchedapps.frost.db.FbTabModel
+import com.pitchedapps.frost.db.GenericDao
+import com.pitchedapps.frost.db.getTabs
+import com.pitchedapps.frost.db.save
+import com.pitchedapps.frost.db.saveTabs
+import com.pitchedapps.frost.db.selectAll
import com.pitchedapps.frost.facebook.FbCookie
import com.pitchedapps.frost.utils.BiometricUtils
import com.pitchedapps.frost.utils.EXTRA_COOKIES
@@ -41,9 +48,12 @@ import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.Prefs
import com.pitchedapps.frost.utils.launchNewTask
import com.pitchedapps.frost.utils.loadAssets
+import com.raizlabs.android.dbflow.kotlinextensions.from
+import com.raizlabs.android.dbflow.kotlinextensions.select
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
+import org.koin.android.ext.android.inject
import java.util.ArrayList
/**
@@ -51,6 +61,9 @@ import java.util.ArrayList
*/
class StartActivity : KauBaseActivity() {
+ private val cookieDao: CookieDao by inject()
+ private val genericDao: GenericDao by inject()
+
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -69,12 +82,11 @@ class StartActivity : KauBaseActivity() {
launch {
val authDefer = BiometricUtils.authenticate(this@StartActivity)
try {
+ migrate()
FbCookie.switchBackUser()
- val cookies = ArrayList(withContext(Dispatchers.IO) {
- loadFbCookiesSync()
- })
+ val cookies = ArrayList(cookieDao.selectAll())
L.i { "Cookies loaded at time ${System.currentTimeMillis()}" }
- L._d { "Cookies: ${cookies.joinToString("\t", transform = CookieModel::toSensitiveString)}" }
+ L._d { "Cookies: ${cookies.joinToString("\t", transform = CookieEntity::toSensitiveString)}" }
loadAssets()
authDefer.await()
when {
@@ -88,11 +100,32 @@ class StartActivity : KauBaseActivity() {
})
}
} catch (e: Exception) {
+ L._e(e) { "Load start failed" }
showInvalidWebView()
}
}
}
+ /**
+ * Migrate from dbflow to room
+ * TODO delete dbflow data
+ */
+ private suspend fun migrate() = withContext(Dispatchers.IO) {
+ if (cookieDao.selectAll().isNotEmpty()) return@withContext
+ val cookies = (select from CookieModel::class).queryList().map { CookieEntity(it.id, it.name, it.cookie) }
+ if (cookies.isNotEmpty()) {
+ cookieDao.save(cookies)
+ L._d { "Migrated cookies ${cookieDao.selectAll()}" }
+ }
+ val tabs = (select from FbTabModel::class).queryList().map(FbTabModel::tab)
+ if (tabs.isNotEmpty()) {
+ genericDao.saveTabs(tabs)
+ L._d { "Migrated tabs ${genericDao.getTabs()}" }
+ }
+ deleteDatabase("Cookies.db")
+ deleteDatabase("FrostTabs.db")
+ }
+
private fun showInvalidWebView() =
showInvalidView(R.string.error_webview)