aboutsummaryrefslogtreecommitdiffstats
path: root/app/src/main/java/net/lacolaco/smileessence/World.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/World.kt')
-rw-r--r--app/src/main/java/net/lacolaco/smileessence/World.kt22
1 files changed, 14 insertions, 8 deletions
diff --git a/app/src/main/java/net/lacolaco/smileessence/World.kt b/app/src/main/java/net/lacolaco/smileessence/World.kt
index aa37a6a6..0bffb03b 100644
--- a/app/src/main/java/net/lacolaco/smileessence/World.kt
+++ b/app/src/main/java/net/lacolaco/smileessence/World.kt
@@ -4,9 +4,8 @@ import android.content.ContentValues
import android.content.Intent
import android.graphics.Bitmap
import android.graphics.drawable.Drawable
-import androidx.annotation.StringRes
-import com.google.android.material.snackbar.Snackbar
import android.view.View
+import androidx.annotation.StringRes
import com.beust.klaxon.JsonArray
import com.beust.klaxon.JsonObject
import com.beust.klaxon.Parser
@@ -17,6 +16,7 @@ import com.bumptech.glide.request.RequestOptions
import com.bumptech.glide.request.target.SizeReadyCallback
import com.bumptech.glide.request.target.Target
import com.bumptech.glide.request.transition.Transition
+import com.google.android.material.snackbar.Snackbar
import net.lacolaco.smileessence.activity.MainActivity
import net.lacolaco.smileessence.data.PageInfo
import net.lacolaco.smileessence.entity.Event
@@ -32,7 +32,9 @@ import twitter4j.auth.AccessToken
import twitter4j.conf.ConfigurationBuilder
import java.lang.ref.WeakReference
import java.util.*
-import kotlin.coroutines.*
+import kotlin.coroutines.resume
+import kotlin.coroutines.resumeWithException
+import kotlin.coroutines.suspendCoroutine
/**
* World contains data that are specific to a profile.
@@ -60,8 +62,12 @@ class World private constructor(private val persistentData: PersistentData) {
// Notification
private var mainActivity: WeakReference<MainActivity>? = null
private var isMainActivityActive: Boolean = false
- // Pages
- val pages = persistentData.pageInfos
+
+ // Pages; pageInfos can be modified through MainFragmentPagerAdapter only
+ val pageInfos = persistentData.pageInfos
+
+ // FIXME: This is inefficient
+ fun getPageById(uid: Long) = pageInfos.first { it.uniqueId == uid }
// Startup
@@ -116,11 +122,11 @@ class World private constructor(private val persistentData: PersistentData) {
private var refreshUserCallback: (() -> Unit)? = null
fun refreshUser(callback: () -> Unit) {
synchronized(this) {
- if (refreshUserCallback == null) {
- refreshUserCallback = callback
+ refreshUserCallback = if (refreshUserCallback == null) {
+ callback
} else {
val orig = refreshUserCallback!!
- refreshUserCallback = { orig(); callback() }
+ { orig(); callback() }
}
}