diff options
Diffstat (limited to 'app/src/main/java/net/lacolaco/smileessence/World.kt')
-rw-r--r-- | app/src/main/java/net/lacolaco/smileessence/World.kt | 22 |
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() } } } |