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 16ae18798f14b29631af46e22c83e9ddaccf31e9..4e08695e1f674f23f37d61398d3132c4848a1b40 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 eb69a159279c87b0d808af091b99095c49d448bc..1b5f37f7f761712ef411569b33536b0d6b8f12f4 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 6bcb5eaf3816db5f10fb4772bfda4a745b78b027..1d8234ae48d918dc1daa4e309d2cbd362e88a645 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 cee394c4798c840c4262e905d436874dfd1bb3b9..a2e77e2f11ab3364c3b1b129a88ef093c20107a6 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 d8a9efee2d4dd6ab26fed824b2a04ce12e7c4791..3a4c5d323213a39264a416831a0f9c777c5753b6 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 19d222b24083b7179c5a8b90cdb438d745ae226b..db10f7a2775271c71101028342ed0e76a2cb1036 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 db9891e271c630e4308d2cd3dcdf4472fc7b4705..1b3595b4b04ca43d8b7b98449a46edad7acfa51e 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 308e535f5e999709e38d791dcaddef73d8577dcd..8bc23a8487f70b27db2c21618bcca8e59be9ffc3 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 4fc819465a49abc53961d382168574c075fc7373..7fcecb1b8e0fd07e8dc2eeb20dea83cb1cf14e06 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 ffb18d7ba7745adb546e1ef76f26016b3f20b39a..833703bebc2bd20c8decc05874255d5b2dbf66b2 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 08ee5c8d45d08bd92b57e00861e90cff845ce6da..63c0498832e9273def1f5dcd747e72d213d2309e 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 57491ef3511391ea9e5057b23b4c24077219e6a4..991b3c828a0c5f41a8c3095d6d943ab3b8d9fa06 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 1182e6a105e1ab51b240766891841f8e00be6217..2006f36f822115da00d4dba36bacff56b5fc05ad 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 f596913a348dda5a52fd311f1c77c184e04c89ca..a906f15447aa9d130885a09e04f272c782233c43 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 146a7b05bd94660e689c0f5a7343eef984e4b2f4..0000000000000000000000000000000000000000 --- 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 56b1dcb086f35e3b557b16a46adde4047f768538..05976d0b0f7d58d6493e115cf7f1052768c5999d 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 ae932552dd9bad0713cd77c4323122971eaaa795..76060f182302d4d9352e10475a4f5c6aecfa2432 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 ebc6181d1ccc18892c8f828ad1fac5452f0727d2..dc1fe57b7a464f80013adb6018208f1b3d12b3b5 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 52627e5bb2b34af8d379a750c08359e1fe254e26..fad02c1412a6445096ba16b7b84e412156291031 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 5814abfec78550840342b261bb31f47b8c475b00..6d9e87e946a5334a3884a26114ca5009fcde7471 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,