@@ -20,34 +20,36 @@ import android.appwidget.AppWidgetManager
2020import android.content.ComponentName
2121import android.content.Context
2222import androidx.lifecycle.LifecycleOwner
23+ import androidx.lifecycle.coroutineScope
2324import com.duckduckgo.app.browser.R
24- import com.duckduckgo.app.di.AppCoroutineScope
2525import com.duckduckgo.app.lifecycle.MainProcessLifecycleObserver
2626import com.duckduckgo.common.utils.DispatcherProvider
2727import com.duckduckgo.di.scopes.AppScope
2828import com.duckduckgo.savedsites.api.SavedSitesRepository
2929import com.duckduckgo.widget.SearchAndFavoritesWidget
3030import dagger.SingleInstanceIn
3131import javax.inject.Inject
32- import kotlinx.coroutines.CoroutineScope
3332import kotlinx.coroutines.launch
3433
3534@SingleInstanceIn(AppScope ::class )
3635class FavoritesObserver @Inject constructor(
3736 context : Context ,
3837 private val savedSitesRepository : SavedSitesRepository ,
39- @AppCoroutineScope private val appCoroutineScope : CoroutineScope ,
4038 private val dispatcherProvider : DispatcherProvider ,
4139) : MainProcessLifecycleObserver {
4240
43- private val instance = AppWidgetManager .getInstance(context)
41+ private val appWidgetManager: AppWidgetManager ? by lazy {
42+ AppWidgetManager .getInstance(context)
43+ }
4444 private val componentName = ComponentName (context, SearchAndFavoritesWidget ::class .java)
4545
4646 override fun onStart (owner : LifecycleOwner ) {
47- appCoroutineScope.launch(dispatcherProvider.io()) {
48- savedSitesRepository.getFavorites().collect {
49- instance.notifyAppWidgetViewDataChanged(instance.getAppWidgetIds(componentName), R .id.favoritesGrid)
50- instance.notifyAppWidgetViewDataChanged(instance.getAppWidgetIds(componentName), R .id.emptyfavoritesGrid)
47+ owner.lifecycle.coroutineScope.launch(dispatcherProvider.io()) {
48+ appWidgetManager?.let { instance ->
49+ savedSitesRepository.getFavorites().collect {
50+ instance.notifyAppWidgetViewDataChanged(instance.getAppWidgetIds(componentName), R .id.favoritesGrid)
51+ instance.notifyAppWidgetViewDataChanged(instance.getAppWidgetIds(componentName), R .id.emptyfavoritesGrid)
52+ }
5153 }
5254 }
5355 }
0 commit comments