Skip to content

Commit 2ff1789

Browse files
committed
fix: don't block main thread while creating app shortcuts (closes #485)
1 parent 441e7af commit 2ff1789

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

  • app/src/main/java/com/bnyro/contacts

‎app/src/main/java/com/bnyro/contacts/App.kt‎

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ import com.bnyro.contacts.util.NotificationHelper
1313
import com.bnyro.contacts.util.Preferences
1414
import com.bnyro.contacts.util.ShortcutHelper
1515
import com.bnyro.contacts.util.workers.BackupWorker
16+
import kotlinx.coroutines.CoroutineScope
17+
import kotlinx.coroutines.Dispatchers
18+
import kotlinx.coroutines.launch
1619

1720
class App : Application() {
1821
val deviceContactsRepository by lazy {
@@ -40,8 +43,6 @@ class App : Application() {
4043
override fun onCreate() {
4144
super.onCreate()
4245

43-
ShortcutHelper.createShortcuts(this)
44-
4546
DatabaseHolder.init(this)
4647

4748
Preferences.init(this)
@@ -50,6 +51,12 @@ class App : Application() {
5051

5152
NotificationHelper.createChannels(this)
5253

54+
// creating shortcuts is potentially blocking/slow and thus is called from a coroutine
55+
// https://developer.android.com/reference/android/content/pm/ShortcutManager
56+
CoroutineScope(Dispatchers.IO).launch {
57+
ShortcutHelper.createShortcuts(this@App)
58+
}
59+
5360
initSmsRepo()
5461
}
5562
}

0 commit comments

Comments
 (0)