From 6fde9e20fab70bf822084a67f8c5efea566eca9d Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Fri, 14 Jul 2023 18:44:25 +0300 Subject: [PATCH] Add getSessionOrThrow to sessionProvider --- .../circles/following/FollowingDataSource.kt | 14 ++------------ .../feature/notifications/PushersManager.kt | 4 +--- .../feature/people/user/UserDataSource.kt | 10 +--------- .../room/RoomNotificationsDataSource.kt | 16 ++++------------ .../room/well_known/RoomWellKnownDataSource.kt | 14 +++----------- app/src/main/res/values/strings.xml | 2 -- .../cross_signing/CrossSigningDataSource.kt | 18 ++++++------------ .../feature/log_in/log_out/LogoutDataSource.kt | 10 ++-------- .../create/CreatePassPhraseDataSource.kt | 4 +--- .../restore/RestoreBackupDataSource.kt | 4 +--- .../pass_phrase/restore/SSSSDataSource.kt | 14 +++++--------- .../feature/reauth/ReAuthStagesDataSource.kt | 5 +---- .../setup_profile/SetupProfileDataSource.kt | 5 +---- auth/src/main/res/values/strings.xml | 1 - .../core/SessionIsNotCreatedException.kt | 6 ------ .../core/provider/MatrixSessionProvider.kt | 2 ++ core/src/main/res/values/strings.xml | 1 - .../settings/feature/SettingsDataSource.kt | 5 +---- .../ActiveSessionsDataSource.kt | 4 +--- .../verify/VerifySessionViewModel.kt | 17 ++++++++--------- 20 files changed, 40 insertions(+), 116 deletions(-) delete mode 100644 core/src/main/java/org/futo/circles/core/SessionIsNotCreatedException.kt diff --git a/app/src/main/java/org/futo/circles/feature/circles/following/FollowingDataSource.kt b/app/src/main/java/org/futo/circles/feature/circles/following/FollowingDataSource.kt index 16ae18798..4e08695e1 100644 --- a/app/src/main/java/org/futo/circles/feature/circles/following/FollowingDataSource.kt +++ b/app/src/main/java/org/futo/circles/feature/circles/following/FollowingDataSource.kt @@ -1,11 +1,8 @@ package org.futo.circles.feature.circles.following -import android.content.Context import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.map -import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.scopes.ViewModelScoped -import org.futo.circles.R import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.getOrThrow import org.futo.circles.core.model.CIRCLE_TAG @@ -20,20 +17,13 @@ import javax.inject.Inject @ViewModelScoped class FollowingDataSource @Inject constructor( savedStateHandle: SavedStateHandle, - @ApplicationContext context: Context, private val roomRelationsBuilder: RoomRelationsBuilder ) { private val roomId: String = savedStateHandle.getOrThrow("roomId") - - private val session = MatrixSessionProvider.currentSession ?: throw IllegalArgumentException( - context.getString(R.string.session_is_not_created) - ) - - private val room = session.getRoom(roomId) ?: throw IllegalArgumentException( - context.getString(R.string.session_is_not_created) - ) + private val session = MatrixSessionProvider.getSessionOrThrow() + private val room = session.getRoom(roomId) ?: throw IllegalArgumentException("room not found") val roomsLiveData = room.getRoomSummaryLive().map { val children = it.getOrNull()?.spaceChildren ?: emptyList() diff --git a/app/src/main/java/org/futo/circles/feature/notifications/PushersManager.kt b/app/src/main/java/org/futo/circles/feature/notifications/PushersManager.kt index eb69a1592..1b5f37f7f 100644 --- a/app/src/main/java/org/futo/circles/feature/notifications/PushersManager.kt +++ b/app/src/main/java/org/futo/circles/feature/notifications/PushersManager.kt @@ -45,9 +45,7 @@ class PushersManager @Inject constructor( pushKey: String, gateway: String ): UUID { - val currentSession = - MatrixSessionProvider.currentSession - ?: throw IllegalArgumentException(context.getString(R.string.session_is_not_created)) + val currentSession = MatrixSessionProvider.getSessionOrThrow() val pusher = createHttpPusher(pushKey, gateway) return currentSession.pushersService().enqueueAddHttpPusher(pusher) } diff --git a/app/src/main/java/org/futo/circles/feature/people/user/UserDataSource.kt b/app/src/main/java/org/futo/circles/feature/people/user/UserDataSource.kt index 6bcb5eaf3..1d8234ae4 100644 --- a/app/src/main/java/org/futo/circles/feature/people/user/UserDataSource.kt +++ b/app/src/main/java/org/futo/circles/feature/people/user/UserDataSource.kt @@ -1,17 +1,14 @@ package org.futo.circles.feature.people.user -import android.content.Context import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.asFlow import androidx.lifecycle.map -import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.scopes.ViewModelScoped import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.flowOn import kotlinx.coroutines.flow.map -import org.futo.circles.R import org.futo.circles.core.extensions.getOrThrow import org.futo.circles.core.extensions.getRoomOwners import org.futo.circles.core.model.TIMELINE_TYPE @@ -29,17 +26,12 @@ import javax.inject.Inject @ViewModelScoped class UserDataSource @Inject constructor( - @ApplicationContext context: Context, savedStateHandle: SavedStateHandle ) { private val userId: String = savedStateHandle.getOrThrow("userId") - private val session by lazy { - MatrixSessionProvider.currentSession ?: throw IllegalArgumentException( - context.getString(R.string.session_is_not_created) - ) - } + private val session by lazy { MatrixSessionProvider.getSessionOrThrow() } val userLiveData = session.userService().getUserLive(userId).map { it.getOrNull() ?: session.getUserOrDefault(userId) diff --git a/app/src/main/java/org/futo/circles/feature/room/RoomNotificationsDataSource.kt b/app/src/main/java/org/futo/circles/feature/room/RoomNotificationsDataSource.kt index cee394c47..a2e77e2f1 100644 --- a/app/src/main/java/org/futo/circles/feature/room/RoomNotificationsDataSource.kt +++ b/app/src/main/java/org/futo/circles/feature/room/RoomNotificationsDataSource.kt @@ -1,13 +1,9 @@ package org.futo.circles.feature.room -import android.content.Context import androidx.lifecycle.MutableLiveData import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.map -import dagger.assisted.AssistedFactory -import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.android.scopes.ViewModelScoped -import org.futo.circles.R import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.getOrThrow import org.futo.circles.core.model.CircleRoomTypeArg @@ -20,23 +16,19 @@ import javax.inject.Inject @ViewModelScoped class RoomNotificationsDataSource @Inject constructor( - savedStateHandle: SavedStateHandle, - @ApplicationContext private val context: Context + savedStateHandle: SavedStateHandle ) { private val roomId: String = savedStateHandle.getOrThrow("roomId") private val type: CircleRoomTypeArg = savedStateHandle.getOrThrow("type") private val session - get() = MatrixSessionProvider.currentSession ?: throw IllegalArgumentException( - context.getString(R.string.session_is_not_created) - ) + get() = MatrixSessionProvider.getSessionOrThrow() private val timelineId by lazy { if (type == CircleRoomTypeArg.Group) roomId - else getTimelineRoomFor(roomId)?.roomId ?: throw IllegalArgumentException( - context.getString(R.string.timeline_not_found) - ) + else getTimelineRoomFor(roomId)?.roomId + ?: throw IllegalArgumentException("Timeline not found") } val notificationsStateLiveData = diff --git a/app/src/main/java/org/futo/circles/feature/room/well_known/RoomWellKnownDataSource.kt b/app/src/main/java/org/futo/circles/feature/room/well_known/RoomWellKnownDataSource.kt index d8a9efee2..3a4c5d323 100644 --- a/app/src/main/java/org/futo/circles/feature/room/well_known/RoomWellKnownDataSource.kt +++ b/app/src/main/java/org/futo/circles/feature/room/well_known/RoomWellKnownDataSource.kt @@ -1,8 +1,5 @@ package org.futo.circles.feature.room.well_known -import android.content.Context -import dagger.hilt.android.qualifiers.ApplicationContext -import org.futo.circles.R import org.futo.circles.core.extensions.Response import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.getOrFetchUser @@ -19,14 +16,9 @@ import org.matrix.android.sdk.api.session.room.model.Membership import org.matrix.android.sdk.api.session.room.peeking.PeekResult import javax.inject.Inject -class RoomWellKnownDataSource @Inject constructor( - @ApplicationContext private val context: Context -) { +class RoomWellKnownDataSource @Inject constructor() { - val session by lazy { - MatrixSessionProvider.currentSession - ?: throw IllegalArgumentException(context.getString(R.string.session_is_not_created)) - } + val session by lazy { MatrixSessionProvider.getSessionOrThrow() } suspend fun resolveRoom(roomUrlData: RoomUrlData): Response<RoomPublicInfo> = createResult { session.getRoom(roomUrlData.roomId)?.roomSummary()?.toRoomPublicInfo() @@ -34,7 +26,7 @@ class RoomWellKnownDataSource @Inject constructor( when (val peekResult = session.roomService().peekRoom(roomUrlData.roomId)) { is PeekResult.Success -> peekResult.toRoomPublicInfo() is PeekResult.PeekingNotAllowed -> roomUrlData.toRoomPublicInfo() - PeekResult.UnknownAlias -> throw IllegalArgumentException(context.getString(R.string.room_not_found)) + PeekResult.UnknownAlias -> throw IllegalArgumentException("Room not found") } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 19d222b24..db10f7a27 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -123,7 +123,6 @@ <string name="people_i_m_following">People I\'m following</string> <string name="delete_circle_message">Are you sure you want to remove this circle?</string> <string name="delete_group_message">Are you sure you want to remove this group?</string> - <string name="timeline_not_found">Timeline not found</string> <string name="remove_from_this_circle_but_do_not_unfollow">Remove from this circle, but do not unfollow</string> <string name="unfollow_completely_remove_from_all_circles">Unfollow completely (remove from all circles)</string> <string name="unfollow">Unfollow</string> @@ -277,7 +276,6 @@ <string name="unmute_notifications">Unmute notifications</string> <string name="shortcut_disabled">Shortcut disabled</string> <string name="shared_circles_space_not_found">Shared Circles space not found</string> - <string name="room_not_found">Room not found</string> <string name="notification_method">Notification method</string> <string name="unifiedpush_distributors_dialog_title">Choose how to receive notifications</string> <string name="thread_format">%s (thread)</string> diff --git a/auth/src/main/java/org/futo/circles/auth/feature/cross_signing/CrossSigningDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/cross_signing/CrossSigningDataSource.kt index db9891e27..1b3595b4b 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/cross_signing/CrossSigningDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/cross_signing/CrossSigningDataSource.kt @@ -1,9 +1,5 @@ package org.futo.circles.auth.feature.cross_signing -import android.content.Context -import dagger.hilt.android.qualifiers.ApplicationContext -import org.futo.circles.auth.R -import org.futo.circles.core.SessionIsNotCreatedException import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.session.Session import org.matrix.android.sdk.api.session.crypto.crosssigning.MASTER_KEY_SSSS_NAME @@ -16,11 +12,10 @@ import org.matrix.android.sdk.api.session.securestorage.SsssKeySpec import org.matrix.android.sdk.api.util.awaitCallback import javax.inject.Inject -class CrossSigningDataSource @Inject constructor(@ApplicationContext private val context: Context) { +class CrossSigningDataSource @Inject constructor() { suspend fun initCrossSigningIfNeed(keySpec: SsssKeySpec) { - val session = - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) + val session = MatrixSessionProvider.getSessionOrThrow() val crossSigningService = session.cryptoService().crossSigningService() try { session.sharedSecretStorageService().getSecret(MASTER_KEY_SSSS_NAME, null, keySpec) @@ -31,8 +26,7 @@ class CrossSigningDataSource @Inject constructor(@ApplicationContext private val } suspend fun configureCrossSigning(keySpec: SsssKeySpec) { - val session = - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) + val session = MatrixSessionProvider.getSessionOrThrow() val keyId = (session.sharedSecretStorageService() .getDefaultKey() as? KeyInfoResult.Success)?.keyInfo?.id @@ -62,11 +56,11 @@ class CrossSigningDataSource @Inject constructor(@ApplicationContext private val private suspend fun storeKeys(session: Session, keySpec: SsssKeySpec) { val xKeys = session.cryptoService().crossSigningService().getCrossSigningPrivateKeys() val mskPrivateKey = xKeys?.master - ?: throw IllegalArgumentException(context.getString(R.string.key_is_missing)) + ?: throw IllegalArgumentException("The key is missing") val sskPrivateKey = xKeys.selfSigned - ?: throw IllegalArgumentException(context.getString(R.string.key_is_missing)) + ?: throw IllegalArgumentException("The key is missing") val uskPrivateKey = xKeys.user - ?: throw IllegalArgumentException(context.getString(R.string.key_is_missing)) + ?: throw IllegalArgumentException("The key is missing") val keyId = (session.sharedSecretStorageService() .getDefaultKey() as? KeyInfoResult.Success)?.keyInfo?.id diff --git a/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt index 308e535f5..8bc23a848 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/log_in/log_out/LogoutDataSource.kt @@ -1,21 +1,15 @@ package org.futo.circles.auth.feature.log_in.log_out -import android.content.Context import androidx.lifecycle.MutableLiveData -import dagger.hilt.android.qualifiers.ApplicationContext import org.futo.circles.auth.R -import org.futo.circles.core.SessionIsNotCreatedException import org.futo.circles.core.extensions.createResult import org.futo.circles.core.model.LoadingData import org.futo.circles.core.provider.MatrixSessionProvider import javax.inject.Inject -class LogoutDataSource @Inject constructor( - @ApplicationContext private val context: Context -) { +class LogoutDataSource @Inject constructor() { - private val session = - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) + private val session = MatrixSessionProvider.getSessionOrThrow() val loadingLiveData = MutableLiveData<LoadingData>() private val loadingData = LoadingData(total = 0) diff --git a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/create/CreatePassPhraseDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/create/CreatePassPhraseDataSource.kt index 4fc819465..7fcecb1b8 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/create/CreatePassPhraseDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/create/CreatePassPhraseDataSource.kt @@ -6,7 +6,6 @@ import dagger.hilt.android.qualifiers.ApplicationContext import org.futo.circles.auth.R import org.futo.circles.auth.feature.cross_signing.CrossSigningDataSource import org.futo.circles.auth.feature.pass_phrase.restore.SSSSDataSource -import org.futo.circles.core.SessionIsNotCreatedException import org.futo.circles.core.model.LoadingData import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.session.crypto.keysbackup.KeysVersion @@ -22,8 +21,7 @@ class CreatePassPhraseDataSource @Inject constructor( ) { private val keysBackupService by lazy { - MatrixSessionProvider.currentSession?.cryptoService()?.keysBackupService() - ?: throw SessionIsNotCreatedException(context) + MatrixSessionProvider.getSessionOrThrow().cryptoService().keysBackupService() } val loadingLiveData = MutableLiveData<LoadingData>() private val passPhraseLoadingData = LoadingData() diff --git a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt index ffb18d7ba..833703beb 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/RestoreBackupDataSource.kt @@ -8,7 +8,6 @@ import dagger.hilt.android.qualifiers.ApplicationContext import org.futo.circles.auth.R import org.futo.circles.auth.feature.cross_signing.CrossSigningDataSource import org.futo.circles.auth.model.KeyData -import org.futo.circles.core.SessionIsNotCreatedException import org.futo.circles.core.model.LoadingData import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.listeners.StepProgressListener @@ -135,8 +134,7 @@ class RestoreBackupDataSource @Inject constructor( } private fun getKeysBackupService() = - MatrixSessionProvider.currentSession?.cryptoService()?.keysBackupService() - ?: throw SessionIsNotCreatedException(context) + MatrixSessionProvider.getSessionOrThrow().cryptoService().keysBackupService() private suspend fun getKeysVersion(keysBackupService: KeysBackupService) = awaitCallback<KeysBackupLastVersionResult> { diff --git a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt index 08ee5c8d4..63c049883 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/pass_phrase/restore/SSSSDataSource.kt @@ -1,10 +1,8 @@ package org.futo.circles.auth.feature.pass_phrase.restore import android.content.Context -import dagger.hilt.android.qualifiers.ApplicationContext import org.futo.circles.auth.R import org.futo.circles.auth.model.KeyData -import org.futo.circles.core.SessionIsNotCreatedException import org.futo.circles.core.provider.MatrixSessionProvider import org.matrix.android.sdk.api.listeners.ProgressListener import org.matrix.android.sdk.api.listeners.StepProgressListener @@ -23,7 +21,7 @@ import org.matrix.android.sdk.api.util.toBase64NoPadding import java.util.UUID import javax.inject.Inject -class SSSSDataSource @Inject constructor(@ApplicationContext private val context: Context) { +class SSSSDataSource @Inject constructor() { fun isBackupKeyInQuadS(): Boolean { val session = MatrixSessionProvider.currentSession ?: return false @@ -36,8 +34,7 @@ class SSSSDataSource @Inject constructor(@ApplicationContext private val context } suspend fun storeIntoSSSSWithKey(recoveryKey: String): KeyData { - val session = - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) + val session = MatrixSessionProvider.getSessionOrThrow() val quadS = session.sharedSecretStorageService() val keyInfo = quadS.generateKey( UUID.randomUUID().toString(), @@ -55,7 +52,7 @@ class SSSSDataSource @Inject constructor(@ApplicationContext private val context isBsSpeke: Boolean ): KeyData { val session = - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) + MatrixSessionProvider.getSessionOrThrow() val quadS = session.sharedSecretStorageService() val keyInfo = quadS.generateKeyWithPassphrase( UUID.randomUUID().toString(), @@ -75,8 +72,7 @@ class SSSSDataSource @Inject constructor(@ApplicationContext private val context progressObserver: StepProgressListener, isBsSpeke: Boolean ): KeyData { - val session = - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) + val session = MatrixSessionProvider.getSessionOrThrow() val keyInfo = getKeyInfo(session, context) @@ -108,7 +104,7 @@ class SSSSDataSource @Inject constructor(@ApplicationContext private val context recoveryKey: String, progressObserver: StepProgressListener ): KeyData { - val session = MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) + val session = MatrixSessionProvider.getSessionOrThrow() val keyInfo = getKeyInfo(session, context) diff --git a/auth/src/main/java/org/futo/circles/auth/feature/reauth/ReAuthStagesDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/reauth/ReAuthStagesDataSource.kt index 57491ef35..991b3c828 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/reauth/ReAuthStagesDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/reauth/ReAuthStagesDataSource.kt @@ -4,7 +4,6 @@ import android.content.Context import dagger.hilt.android.qualifiers.ApplicationContext import org.futo.circles.auth.base.BaseLoginStagesDataSource import org.futo.circles.auth.model.CustomUIAuth -import org.futo.circles.core.SessionIsNotCreatedException import org.futo.circles.core.SingleEventLiveData import org.futo.circles.core.extensions.Response import org.futo.circles.core.provider.MatrixSessionProvider @@ -30,9 +29,7 @@ class ReAuthStagesDataSource @Inject constructor( private var sessionId: String = "" private var stageResultContinuation: Continuation<Response<RegistrationResult>>? = null - private val session by lazy { - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) - } + private val session by lazy { MatrixSessionProvider.getSessionOrThrow() } fun startReAuthStages( session: String, diff --git a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt index 1182e6a10..2006f36f8 100644 --- a/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/sign_up/setup_profile/SetupProfileDataSource.kt @@ -3,7 +3,6 @@ package org.futo.circles.auth.feature.sign_up.setup_profile import android.content.Context import android.net.Uri import dagger.hilt.android.qualifiers.ApplicationContext -import org.futo.circles.core.SessionIsNotCreatedException import org.futo.circles.core.extensions.createResult import org.futo.circles.core.extensions.getFilename import org.futo.circles.core.provider.MatrixSessionProvider @@ -14,9 +13,7 @@ class SetupProfileDataSource @Inject constructor( @ApplicationContext private val context: Context ) { - private val session by lazy { - MatrixSessionProvider.currentSession ?: throw SessionIsNotCreatedException(context) - } + private val session by lazy { MatrixSessionProvider.getSessionOrThrow() } fun getUserData() = session.userService().getUser(session.myUserId) diff --git a/auth/src/main/res/values/strings.xml b/auth/src/main/res/values/strings.xml index f596913a3..a906f1544 100644 --- a/auth/src/main/res/values/strings.xml +++ b/auth/src/main/res/values/strings.xml @@ -44,7 +44,6 @@ <string name="invalid_recovery_key">"It's not a valid recovery key"</string> <string name="backup_could_not_be_decrypted_with_key">Backup could not be decrypted with this recovery key.</string> <string name="failed_to_access_secure_storage">Failed to access secure storage</string> - <string name="key_is_missing">The key is missing</string> <string name="generating_recovery_key">Generating recovery key from passphrase.</string> <string name="creating_backup">Creating backup</string> <string name="backup_already_exist">Backup already exist</string> diff --git a/core/src/main/java/org/futo/circles/core/SessionIsNotCreatedException.kt b/core/src/main/java/org/futo/circles/core/SessionIsNotCreatedException.kt deleted file mode 100644 index 146a7b05b..000000000 --- a/core/src/main/java/org/futo/circles/core/SessionIsNotCreatedException.kt +++ /dev/null @@ -1,6 +0,0 @@ -package org.futo.circles.core - -import android.content.Context - -class SessionIsNotCreatedException(context: Context) : - Exception(context.getString(R.string.session_is_not_created)) diff --git a/core/src/main/java/org/futo/circles/core/provider/MatrixSessionProvider.kt b/core/src/main/java/org/futo/circles/core/provider/MatrixSessionProvider.kt index 56b1dcb08..05976d0b0 100644 --- a/core/src/main/java/org/futo/circles/core/provider/MatrixSessionProvider.kt +++ b/core/src/main/java/org/futo/circles/core/provider/MatrixSessionProvider.kt @@ -16,6 +16,8 @@ object MatrixSessionProvider { private var notificationSetupListener: MatrixNotificationSetupListener? = null private var onNewAuthLister: (() -> Unit)? = null + fun getSessionOrThrow() = currentSession ?: throw IllegalArgumentException("Session is not created") + fun initSession( context: Context, notificationListener: MatrixNotificationSetupListener? = null, diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index ae932552d..76060f182 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -51,6 +51,5 @@ <string name="send_screenshot">Send screenshot</string> <string name="save">Save</string> <string name="select_items_from_list_below">Select items from list below</string> - <string name="session_is_not_created">Session is not created</string> </resources> \ No newline at end of file diff --git a/settings/src/main/java/org/futo/circles/settings/feature/SettingsDataSource.kt b/settings/src/main/java/org/futo/circles/settings/feature/SettingsDataSource.kt index ebc6181d1..dc1fe57b7 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/SettingsDataSource.kt +++ b/settings/src/main/java/org/futo/circles/settings/feature/SettingsDataSource.kt @@ -9,7 +9,6 @@ import org.futo.circles.auth.feature.reauth.AuthConfirmationProvider import org.futo.circles.core.extensions.Response import org.futo.circles.core.extensions.createResult import org.futo.circles.core.provider.MatrixSessionProvider -import org.futo.circles.settings.R import org.futo.circles.auth.feature.change_password.ChangePasswordDataSource import java.io.File import javax.inject.Inject @@ -20,9 +19,7 @@ class SettingsDataSource @Inject constructor( private val authConfirmationProvider: AuthConfirmationProvider ) { - private val session = MatrixSessionProvider.currentSession ?: throw IllegalArgumentException( - context.getString(R.string.session_is_not_created) - ) + private val session = MatrixSessionProvider.getSessionOrThrow() val passPhraseLoadingLiveData = changePasswordDataSource.passPhraseLoadingLiveData val startReAuthEventLiveData = authConfirmationProvider.startReAuthEventLiveData val profileLiveData = session.userService().getUserLive(session.myUserId) diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt index 52627e5bb..fad02c141 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt +++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt @@ -29,9 +29,7 @@ class ActiveSessionsDataSource @Inject constructor( private val authConfirmationProvider: AuthConfirmationProvider ) : ExpandableItemsDataSource { - private val session = MatrixSessionProvider.currentSession ?: throw IllegalArgumentException( - context.getString(R.string.session_is_not_created) - ) + private val session = MatrixSessionProvider.getSessionOrThrow() val startReAuthEventLiveData = authConfirmationProvider.startReAuthEventLiveData diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt index 5814abfec..6d9e87e94 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt +++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt @@ -1,33 +1,32 @@ package org.futo.circles.settings.feature.active_sessions.verify -import android.content.Context import androidx.lifecycle.MutableLiveData import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import dagger.hilt.android.lifecycle.HiltViewModel -import dagger.hilt.android.qualifiers.ApplicationContext import org.futo.circles.core.extensions.getOrThrow import org.futo.circles.core.provider.MatrixSessionProvider -import org.futo.circles.settings.R import org.futo.circles.settings.model.QrCanceled import org.futo.circles.settings.model.QrLoading import org.futo.circles.settings.model.QrReady import org.futo.circles.settings.model.QrState import org.futo.circles.settings.model.QrSuccess -import org.matrix.android.sdk.api.session.crypto.verification.* +import org.matrix.android.sdk.api.session.crypto.verification.PendingVerificationRequest +import org.matrix.android.sdk.api.session.crypto.verification.QrCodeVerificationTransaction +import org.matrix.android.sdk.api.session.crypto.verification.VerificationMethod +import org.matrix.android.sdk.api.session.crypto.verification.VerificationService +import org.matrix.android.sdk.api.session.crypto.verification.VerificationTransaction +import org.matrix.android.sdk.api.session.crypto.verification.VerificationTxState import javax.inject.Inject @HiltViewModel class VerifySessionViewModel @Inject constructor( - savedStateHandle: SavedStateHandle, - @ApplicationContext context: Context + savedStateHandle: SavedStateHandle ) : ViewModel(), VerificationService.Listener { private val deviceId: String = savedStateHandle.getOrThrow("deviceId") - private val session = MatrixSessionProvider.currentSession ?: throw IllegalArgumentException( - context.getString(R.string.session_is_not_created) - ) + private val session = MatrixSessionProvider.getSessionOrThrow() private val verificationMethods = listOf( VerificationMethod.QR_CODE_SHOW, -- GitLab