From ba785ec826eb7cd2089bfdb1952cb21d928ff2fa Mon Sep 17 00:00:00 2001 From: "mohit.mali@ftechiz.com" Date: Tue, 3 Dec 2019 15:48:20 +0530 Subject: [PATCH 1/2] Issue 26 Fixed --- .../QKSMS/feature/main/MainActivityModule.kt | 6 ++ .../moez/QKSMS/feature/main/MainViewModel.kt | 62 +++++++++++++------ 2 files changed, 50 insertions(+), 18 deletions(-) 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 d616c4d24..39826c1c0 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 611f208ae..eacf631b5 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 @@ -51,25 +51,27 @@ 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 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 +390,30 @@ class MainViewModel @Inject constructor( } .autoDisposable(view.scope()) .subscribe() + + view.backPressedIntent + .withLatestFrom(state) { _, state -> + when { + state.drawerOpen -> newState { copy(drawerOpen = false) } + + state.page is Searching -> view.clearSearch() + + state.page is Inbox && state.page.selected > 0 -> view.clearSelection() + + state.page is Archived && state.page.selected > 0 -> view.clearSelection() + + state.page !is Inbox -> newState { copy(page = Inbox(data = conversationRepo.getConversations())) } + + else -> newState { copy(hasError = true) } + } + } + .autoDisposable(view.scope()) + .subscribe() + + + if (threadId == 0L) { + syncContacts.execute(Unit) + } } -} \ No newline at end of file +} -- GitLab From 073801611ce72879b41443a368dff710e827a0e3 Mon Sep 17 00:00:00 2001 From: Mohit Date: Wed, 22 Jan 2020 13:36:04 +0530 Subject: [PATCH 2/2] Fixed Build Error --- .../moez/QKSMS/feature/main/MainViewModel.kt | 31 ++----------------- 1 file changed, 3 insertions(+), 28 deletions(-) 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 eacf631b5..9d267973e 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 @@ -58,6 +49,8 @@ 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, @@ -391,24 +384,6 @@ class MainViewModel @Inject constructor( .autoDisposable(view.scope()) .subscribe() - view.backPressedIntent - .withLatestFrom(state) { _, state -> - when { - state.drawerOpen -> newState { copy(drawerOpen = false) } - - state.page is Searching -> view.clearSearch() - - state.page is Inbox && state.page.selected > 0 -> view.clearSelection() - - state.page is Archived && state.page.selected > 0 -> view.clearSelection() - - state.page !is Inbox -> newState { copy(page = Inbox(data = conversationRepo.getConversations())) } - - else -> newState { copy(hasError = true) } - } - } - .autoDisposable(view.scope()) - .subscribe() if (threadId == 0L) { -- GitLab