aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2021-01-24 19:52:51 -0800
committerAllan Wang <me@allanwang.ca>2021-01-24 19:52:51 -0800
commit4c2c8a9ce4872e8bbb2a55c8b527e4f7b22ef633 (patch)
tree0c77bd9dbca861827b3725c4e5a13618c2efb021 /app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt
parent58068ce55e9e203a77c67dfee78fb2658e3bb6aa (diff)
downloadfrost-4c2c8a9ce4872e8bbb2a55c8b527e4f7b22ef633.tar.gz
frost-4c2c8a9ce4872e8bbb2a55c8b527e4f7b22ef633.tar.bz2
frost-4c2c8a9ce4872e8bbb2a55c8b527e4f7b22ef633.zip
Add option to log out for messenger
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt')
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt37
1 files changed, 37 insertions, 0 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt b/app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt
index b8d0d86f..a5d4e191 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/contracts/FrostContentContract.kt
@@ -16,11 +16,19 @@
*/
package com.pitchedapps.frost.contracts
+import android.content.Context
import android.view.View
+import ca.allanwang.kau.utils.materialDialog
+import com.pitchedapps.frost.R
+import com.pitchedapps.frost.db.CookieDao
+import com.pitchedapps.frost.db.updateMessengerCookie
+import com.pitchedapps.frost.facebook.FbCookie
import com.pitchedapps.frost.facebook.FbItem
+import com.pitchedapps.frost.prefs.Prefs
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.channels.BroadcastChannel
+import kotlinx.coroutines.launch
/**
* Created by Allan Wang on 20/12/17.
@@ -172,7 +180,36 @@ interface FrostContentCore : DynamicUiContract {
fun onTabClicked()
/**
+ * Triggered when view is within viewpager
+ * and tab is long clicked
+ */
+ fun onTabLongClicked()
+
+ /**
* Signal destruction to release some content manually
*/
fun destroy()
}
+
+internal fun FrostContentCore.onTabLongClicked(
+ context: Context,
+ prefs: Prefs,
+ fbCookie: FbCookie,
+ cookieDao: CookieDao
+) {
+ when (parent.baseEnum) {
+ FbItem.MESSENGER -> {
+ context.materialDialog {
+ message(R.string.messenger_logout)
+ positiveButton(R.string.kau_logout) {
+ scope.launch {
+ fbCookie.removeMessengerCookie()
+ cookieDao.updateMessengerCookie(prefs.userId, null)
+ reloadBase(true)
+ }
+ }
+ negativeButton(R.string.kau_cancel)
+ }
+ }
+ }
+}