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 611f208aea1e1577f8b18f0efc3566035f3f7306..9d267973eef43a8a5506af2be4026598e32e85e9 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 @@ -24,16 +24,7 @@ import com.moez.QKSMS.common.Navigator import com.moez.QKSMS.common.base.QkViewModel import com.moez.QKSMS.common.util.BillingManager import com.moez.QKSMS.extensions.mapNotNull -import com.moez.QKSMS.interactor.DeleteConversations -import com.moez.QKSMS.interactor.MarkAllSeen -import com.moez.QKSMS.interactor.MarkArchived -import com.moez.QKSMS.interactor.MarkPinned -import com.moez.QKSMS.interactor.MarkRead -import com.moez.QKSMS.interactor.MarkUnarchived -import com.moez.QKSMS.interactor.MarkUnpinned -import com.moez.QKSMS.interactor.MarkUnread -import com.moez.QKSMS.interactor.MigratePreferences -import com.moez.QKSMS.interactor.SyncMessages +import com.moez.QKSMS.interactor.* import com.moez.QKSMS.listener.ContactAddedListener import com.moez.QKSMS.manager.ChangelogManager import com.moez.QKSMS.manager.PermissionManager @@ -51,25 +42,29 @@ import io.realm.Realm import java.util.* 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 contactAddedListener: ContactAddedListener, - private val changelogManager: ChangelogManager, - private val conversationRepo: ConversationRepository, - private val deleteConversations: DeleteConversations, - private val markArchived: MarkArchived, - 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 contactAddedListener: ContactAddedListener, + private val changelogManager: ChangelogManager, + 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 { @@ -388,6 +383,12 @@ class MainViewModel @Inject constructor( } .autoDisposable(view.scope()) .subscribe() + + + + if (threadId == 0L) { + syncContacts.execute(Unit) + } } -} \ No newline at end of file +}