From afa3149504abc0b26c4c7656922e8364d491bf91 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 25 Jan 2021 23:09:14 +0100 Subject: [PATCH] Use lifecycleScope rather than an Empty ViewModel --- .../im/vector/app/core/platform/EmptyState.kt | 23 ---------------- .../app/core/platform/EmptyViewModel.kt | 26 ------------------- .../im/vector/app/features/MainActivity.kt | 12 +++------ .../app/features/link/LinkHandlerActivity.kt | 8 ++---- 4 files changed, 6 insertions(+), 63 deletions(-) delete mode 100644 vector/src/main/java/im/vector/app/core/platform/EmptyState.kt delete mode 100644 vector/src/main/java/im/vector/app/core/platform/EmptyViewModel.kt diff --git a/vector/src/main/java/im/vector/app/core/platform/EmptyState.kt b/vector/src/main/java/im/vector/app/core/platform/EmptyState.kt deleted file mode 100644 index c58532c6e0..0000000000 --- a/vector/src/main/java/im/vector/app/core/platform/EmptyState.kt +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2021 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package im.vector.app.core.platform - -import com.airbnb.mvrx.MvRxState - -data class EmptyState( - val dummy: Int = 0 -) : MvRxState diff --git a/vector/src/main/java/im/vector/app/core/platform/EmptyViewModel.kt b/vector/src/main/java/im/vector/app/core/platform/EmptyViewModel.kt deleted file mode 100644 index 420c58d44a..0000000000 --- a/vector/src/main/java/im/vector/app/core/platform/EmptyViewModel.kt +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright (c) 2021 New Vector Ltd - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package im.vector.app.core.platform - -/** - * Mainly used to get a viewModelScope - */ -class EmptyViewModel(initialState: EmptyState) : VectorViewModel(initialState) { - override fun handle(action: EmptyAction) { - // N/A - } -} diff --git a/vector/src/main/java/im/vector/app/features/MainActivity.kt b/vector/src/main/java/im/vector/app/features/MainActivity.kt index f8b8229e70..351163b026 100644 --- a/vector/src/main/java/im/vector/app/features/MainActivity.kt +++ b/vector/src/main/java/im/vector/app/features/MainActivity.kt @@ -22,15 +22,13 @@ import android.os.Bundle import android.os.Parcelable import androidx.appcompat.app.AlertDialog import androidx.lifecycle.Lifecycle -import androidx.lifecycle.viewModelScope -import com.airbnb.mvrx.viewModel +import androidx.lifecycle.lifecycleScope import com.bumptech.glide.Glide import im.vector.app.R import im.vector.app.core.di.ActiveSessionHolder import im.vector.app.core.di.ScreenComponent import im.vector.app.core.error.ErrorFormatter import im.vector.app.core.extensions.startSyncing -import im.vector.app.core.platform.EmptyViewModel import im.vector.app.core.platform.VectorBaseActivity import im.vector.app.core.utils.deleteAllFiles import im.vector.app.databinding.FragmentLoadingBinding @@ -83,8 +81,6 @@ class MainActivity : VectorBaseActivity(), UnlockedActiv } } - private val emptyViewModel: EmptyViewModel by viewModel() - override fun getBinding() = FragmentLoadingBinding.inflate(layoutInflater) private lateinit var args: MainActivityArgs @@ -150,7 +146,7 @@ class MainActivity : VectorBaseActivity(), UnlockedActiv } when { args.isAccountDeactivated -> { - emptyViewModel.viewModelScope.launch { + lifecycleScope.launch { // Just do the local cleanup Timber.w("Account deactivated, start app") sessionHolder.clearActiveSession() @@ -159,7 +155,7 @@ class MainActivity : VectorBaseActivity(), UnlockedActiv } } args.clearCredentials -> { - emptyViewModel.viewModelScope.launch { + lifecycleScope.launch { try { session.signOut(!args.isUserLoggedOut) Timber.w("SIGN_OUT: success, start app") @@ -172,7 +168,7 @@ class MainActivity : VectorBaseActivity(), UnlockedActiv } } args.clearCache -> { - emptyViewModel.viewModelScope.launch { + lifecycleScope.launch { try { session.clearCache() doLocalCleanup(clearPreferences = false) diff --git a/vector/src/main/java/im/vector/app/features/link/LinkHandlerActivity.kt b/vector/src/main/java/im/vector/app/features/link/LinkHandlerActivity.kt index 7183f27980..6c0e142b38 100644 --- a/vector/src/main/java/im/vector/app/features/link/LinkHandlerActivity.kt +++ b/vector/src/main/java/im/vector/app/features/link/LinkHandlerActivity.kt @@ -19,13 +19,11 @@ package im.vector.app.features.link import android.content.Intent import android.net.Uri import androidx.appcompat.app.AlertDialog -import androidx.lifecycle.viewModelScope -import com.airbnb.mvrx.viewModel +import androidx.lifecycle.lifecycleScope import im.vector.app.R import im.vector.app.core.di.ActiveSessionHolder import im.vector.app.core.di.ScreenComponent import im.vector.app.core.error.ErrorFormatter -import im.vector.app.core.platform.EmptyViewModel import im.vector.app.core.platform.VectorBaseActivity import im.vector.app.core.utils.toast import im.vector.app.databinding.ActivityProgressBinding @@ -48,8 +46,6 @@ class LinkHandlerActivity : VectorBaseActivity() { @Inject lateinit var errorFormatter: ErrorFormatter @Inject lateinit var permalinkHandler: PermalinkHandler - private val emptyViewModel: EmptyViewModel by viewModel() - override fun injectWith(injector: ScreenComponent) { injector.inject(this) } @@ -155,7 +151,7 @@ class LinkHandlerActivity : VectorBaseActivity() { // Should not happen startLoginActivity(uri) } else { - emptyViewModel.viewModelScope.launch { + lifecycleScope.launch { try { session.signOut(true) Timber.d("## displayAlreadyLoginPopup(): logout succeeded")