refactor: Implement updateShortcut as a suspending function (#491)
Previously a regular function that created and subscribed to an rxJava callable, now it's a suspending function that enforces Dispatchers.IO as the context, launched in its own coroutine.
This commit is contained in:
parent
900b1728bf
commit
da6e026cc6
@ -979,8 +979,10 @@ class MainActivity : BottomSheetActivity(), ActionButtonActivity, MenuProvider {
|
||||
}
|
||||
|
||||
updateProfiles()
|
||||
externalScope.launch {
|
||||
updateShortcut(applicationContext, accountManager.activeAccount!!)
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("CheckResult")
|
||||
private fun loadDrawerAvatar(avatarUrl: String, showPlaceholder: Boolean) {
|
||||
|
@ -29,11 +29,10 @@ import app.pachli.core.database.model.AccountEntity
|
||||
import app.pachli.core.designsystem.R as DR
|
||||
import app.pachli.core.navigation.MainActivityIntent
|
||||
import com.bumptech.glide.Glide
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.withContext
|
||||
|
||||
fun updateShortcut(context: Context, account: AccountEntity) {
|
||||
Single.fromCallable {
|
||||
suspend fun updateShortcut(context: Context, account: AccountEntity) = withContext(Dispatchers.IO) {
|
||||
val innerSize = context.resources.getDimensionPixelSize(DR.dimen.adaptive_bitmap_inner_size)
|
||||
val outerSize = context.resources.getDimensionPixelSize(DR.dimen.adaptive_bitmap_outer_size)
|
||||
|
||||
@ -84,10 +83,6 @@ fun updateShortcut(context: Context, account: AccountEntity) {
|
||||
|
||||
ShortcutManagerCompat.addDynamicShortcuts(context, listOf(shortcutInfo))
|
||||
}
|
||||
.subscribeOn(Schedulers.io())
|
||||
.onErrorReturnItem(false)
|
||||
.subscribe()
|
||||
}
|
||||
|
||||
fun removeShortcut(context: Context, account: AccountEntity) {
|
||||
ShortcutManagerCompat.removeDynamicShortcuts(context, listOf(account.id.toString()))
|
||||
|
Loading…
x
Reference in New Issue
Block a user