aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/activities
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2019-03-05 21:06:24 -0500
committerAllan Wang <me@allanwang.ca>2019-03-05 21:06:24 -0500
commit65bb9233b2a0d8734c1d13e8f3a01bee0f6c3b17 (patch)
treeabe5c5db1b05757375d63c32ec8afae9893a9dee /app/src/main/kotlin/com/pitchedapps/frost/activities
parent5c4400975450c9739f0986561075983e08afae89 (diff)
downloadfrost-65bb9233b2a0d8734c1d13e8f3a01bee0f6c3b17.tar.gz
frost-65bb9233b2a0d8734c1d13e8f3a01bee0f6c3b17.tar.bz2
frost-65bb9233b2a0d8734c1d13e8f3a01bee0f6c3b17.zip
Convert fbcookies to room entities
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/activities')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt54
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt15
2 files changed, 39 insertions, 30 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt
index 33fc2078..4669418d 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseMainActivity.kt
@@ -69,9 +69,11 @@ import com.pitchedapps.frost.contracts.FileChooserContract
import com.pitchedapps.frost.contracts.FileChooserDelegate
import com.pitchedapps.frost.contracts.MainActivityContract
import com.pitchedapps.frost.contracts.VideoViewHolder
+import com.pitchedapps.frost.db.CookieDao
+import com.pitchedapps.frost.db.FbTabDao
import com.pitchedapps.frost.db.TAB_COUNT
-import com.pitchedapps.frost.db.loadFbCookie
-import com.pitchedapps.frost.db.loadFbTabs
+import com.pitchedapps.frost.db.currentCookie
+import com.pitchedapps.frost.db.selectAll
import com.pitchedapps.frost.enums.MainActivityLayout
import com.pitchedapps.frost.facebook.FbCookie
import com.pitchedapps.frost.facebook.FbItem
@@ -109,6 +111,7 @@ import kotlinx.android.synthetic.main.view_main_toolbar.*
import kotlinx.android.synthetic.main.view_main_viewpager.*
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.launch
+import org.koin.android.ext.android.inject
/**
* Created by Allan Wang on 20/12/17.
@@ -123,6 +126,8 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
protected lateinit var adapter: SectionsPagerAdapter
override val frameWrapper: FrameLayout get() = frame_wrapper
val viewPager: FrostViewPager get() = container
+ val cookieDao: CookieDao by inject()
+ val tabDao: FbTabDao by inject()
/*
* Components with the same id in multiple layout files
@@ -151,9 +156,11 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
background(viewPager)
}
setSupportActionBar(toolbar)
- adapter = SectionsPagerAdapter(loadFbTabs())
- viewPager.adapter = adapter
- viewPager.offscreenPageLimit = TAB_COUNT
+ launch {
+ adapter = SectionsPagerAdapter(tabDao.selectAll())
+ viewPager.adapter = adapter
+ viewPager.offscreenPageLimit = TAB_COUNT
+ }
tabs.setBackgroundColor(Prefs.mainActivityLayout.backgroundColor())
onNestedCreate(savedInstanceState)
L.i { "Main finished loading UI in ${System.currentTimeMillis() - start} ms" }
@@ -274,27 +281,28 @@ abstract class BaseMainActivity : BaseActivity(), MainActivityContract,
if (current) launchWebOverlay(FbItem.PROFILE.url)
else when (profile.identifier) {
-2L -> {
- val currentCookie = loadFbCookie(Prefs.userId)
- if (currentCookie == null) {
- toast(R.string.account_not_found)
- launch {
+ // TODO no backpressure support
+ launch {
+ val currentCookie = cookieDao.currentCookie()
+ if (currentCookie == null) {
+ toast(R.string.account_not_found)
FbCookie.reset()
launchLogin(cookies(), true)
- }
- } else {
- materialDialogThemed {
- title(R.string.kau_logout)
- content(
- String.format(
- string(R.string.kau_logout_confirm_as_x), currentCookie.name
- ?: Prefs.userId.toString()
+ } else {
+ materialDialogThemed {
+ title(R.string.kau_logout)
+ content(
+ String.format(
+ string(R.string.kau_logout_confirm_as_x),
+ currentCookie.name ?: Prefs.userId.toString()
+ )
)
- )
- positiveText(R.string.kau_yes)
- negativeText(R.string.kau_no)
- onPositive { _, _ ->
- launch {
- FbCookie.logout(this@BaseMainActivity)
+ positiveText(R.string.kau_yes)
+ negativeText(R.string.kau_no)
+ onPositive { _, _ ->
+ this@BaseMainActivity.launch {
+ FbCookie.logout(this@BaseMainActivity)
+ }
}
}
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
index 7ff22a5a..5649cc73 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/LoginActivity.kt
@@ -32,9 +32,8 @@ import com.bumptech.glide.load.engine.GlideException
import com.bumptech.glide.request.RequestListener
import com.bumptech.glide.request.target.Target
import com.pitchedapps.frost.R
-import com.pitchedapps.frost.db.CookieModel
-import com.pitchedapps.frost.db.loadFbCookiesSuspend
-import com.pitchedapps.frost.db.saveFbCookie
+import com.pitchedapps.frost.db.CookieDao
+import com.pitchedapps.frost.db.CookieEntity
import com.pitchedapps.frost.facebook.FbCookie
import com.pitchedapps.frost.facebook.FbItem
import com.pitchedapps.frost.facebook.profilePictureUrl
@@ -58,6 +57,7 @@ import kotlinx.coroutines.launch
import kotlinx.coroutines.suspendCancellableCoroutine
import kotlinx.coroutines.withContext
import kotlinx.coroutines.withTimeout
+import org.koin.android.ext.android.inject
import java.net.UnknownHostException
import kotlin.coroutines.resume
@@ -71,6 +71,7 @@ class LoginActivity : BaseActivity() {
private val swipeRefresh: SwipeRefreshLayout by bindView(R.id.swipe_refresh)
private val textview: AppCompatTextView by bindView(R.id.textview)
private val profile: ImageView by bindView(R.id.profile)
+ private val cookieDao: CookieDao by inject()
private lateinit var profileLoader: RequestManager
private val refreshChannel = Channel<Boolean>(10)
@@ -109,7 +110,7 @@ class LoginActivity : BaseActivity() {
refreshChannel.offer(refreshing)
}
- private suspend fun loadInfo(cookie: CookieModel): Unit = withMainContext {
+ private suspend fun loadInfo(cookie: CookieEntity): Unit = withMainContext {
refresh(true)
val imageDeferred = async { loadProfile(cookie.id) }
@@ -134,7 +135,7 @@ class LoginActivity : BaseActivity() {
* The user may have logged into an account that is already in the database
* We will let the db handle duplicates and load it now after the new account has been saved
*/
- val cookies = ArrayList(loadFbCookiesSuspend())
+ val cookies = ArrayList(cookieDao.selectAll())
delay(1000)
if (Showcase.intro)
launchNewTask<IntroActivity>(cookies, true)
@@ -171,7 +172,7 @@ class LoginActivity : BaseActivity() {
}
}
- private suspend fun loadUsername(cookie: CookieModel): String = withContext(Dispatchers.IO) {
+ private suspend fun loadUsername(cookie: CookieEntity): String = withContext(Dispatchers.IO) {
val result: String = try {
withTimeout(5000) {
frostJsoup(cookie.cookie, FbItem.PROFILE.url).title()
@@ -184,7 +185,7 @@ class LoginActivity : BaseActivity() {
if (cookie.name?.isNotBlank() == false && result != cookie.name) {
cookie.name = result
- saveFbCookie(cookie)
+ cookieDao.insertCookie(cookie)
}
cookie.name ?: ""