diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/main/MainActivityModule.kt b/presentation/src/main/java/com/moez/QKSMS/feature/main/MainActivityModule.kt index d616c4d248c2cf0abd8367f13e37fb0e6ffdf1fc..39826c1c0fc79047d0138eef43866e81ec6e7543 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/main/MainActivityModule.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/main/MainActivityModule.kt @@ -25,6 +25,7 @@ import dagger.Module import dagger.Provides import dagger.multibindings.IntoMap import io.reactivex.disposables.CompositeDisposable +import javax.inject.Named @Module class MainActivityModule { @@ -33,6 +34,11 @@ class MainActivityModule { @ActivityScope fun provideCompositeDiposableLifecycle(): CompositeDisposable = CompositeDisposable() + @Provides + @Named("threadId") + fun provideThreadId(activity: MainActivity): Long = activity.intent.extras?.getLong("threadId") + ?: 0L + @Provides @IntoMap @ViewModelKey(MainViewModel::class) diff --git a/presentation/src/main/java/com/moez/QKSMS/feature/main/MainViewModel.kt b/presentation/src/main/java/com/moez/QKSMS/feature/main/MainViewModel.kt index 802cfdaca3593049753191407823480fbd92da3b..b78e81ca6091cf02d8f45a7dc70d990efaa5fd6b 100644 --- a/presentation/src/main/java/com/moez/QKSMS/feature/main/MainViewModel.kt +++ b/presentation/src/main/java/com/moez/QKSMS/feature/main/MainViewModel.kt @@ -39,24 +39,27 @@ import io.reactivex.schedulers.Schedulers import io.realm.Realm import java.util.concurrent.TimeUnit import javax.inject.Inject +import javax.inject.Named class MainViewModel @Inject constructor( - markAllSeen: MarkAllSeen, - migratePreferences: MigratePreferences, - syncRepository: SyncRepository, - private val conversationRepo: ConversationRepository, - private val deleteConversations: DeleteConversations, - private val markArchived: MarkArchived, - private val markBlocked: MarkBlocked, - private val markPinned: MarkPinned, - private val markRead: MarkRead, - private val markUnarchived: MarkUnarchived, - private val markUnpinned: MarkUnpinned, - private val markUnread: MarkUnread, - private val navigator: Navigator, - private val permissionManager: PermissionManager, - private val prefs: Preferences, - private val syncMessages: SyncMessages + @Named("threadId") private val threadId: Long, + markAllSeen: MarkAllSeen, + migratePreferences: MigratePreferences, + syncRepository: SyncRepository, + private val conversationRepo: ConversationRepository, + private val deleteConversations: DeleteConversations, + private val markArchived: MarkArchived, + private val markBlocked: MarkBlocked, + private val markPinned: MarkPinned, + private val markRead: MarkRead, + private val markUnarchived: MarkUnarchived, + private val markUnpinned: MarkUnpinned, + private val markUnread: MarkUnread, + private val navigator: Navigator, + private val permissionManager: PermissionManager, + private val prefs: Preferences, + private val syncMessages: SyncMessages, + private val syncContacts: ContactSync ) : QkViewModel(MainState(page = Inbox(data = conversationRepo.getConversations()))) { init { @@ -301,6 +304,11 @@ class MainViewModel @Inject constructor( } .autoDisposable(view.scope()) .subscribe() + + + if (threadId == 0L) { + syncContacts.execute(Unit) + } } } \ No newline at end of file