diff --git a/app/src/main/res/layout/dialog_fragment_share_room.xml b/app/src/main/res/layout/dialog_fragment_share_room.xml index d87a64cffd507545e0c7262239e2cab40be37fcf..4a2a8fd13a1b8fec30a729dfa0669e0223576ec1 100644 --- a/app/src/main/res/layout/dialog_fragment_share_room.xml +++ b/app/src/main/res/layout/dialog_fragment_share_room.xml @@ -27,7 +27,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/toolbar" /> - <org.futo.circles.settings.view.QrCodeImageView + <org.futo.circles.auth.view.QrCodeImageView android:id="@+id/ivQr" android:layout_width="0dp" android:layout_height="0dp" diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index ab9cb184c0dadff3b96a48ffb07ea7bfa1bda190..6044d1f4a657258bcf531d7a0761016b0e858da5 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -137,7 +137,6 @@ <string name="login_sessions">Login sessions</string> <string name="settings">Settings</string> <string name="user_id">User ID</string> - <string name="active_login_sessions">Active login sessions</string> <string name="verify">Verify</string> <string name="save_to_device">Save to device</string> <string name="save_to_gallery">Save to gallery</string> diff --git a/auth/build.gradle b/auth/build.gradle index d61947130167989cda85e7c48f62827ccde85932..8652aecc97e1b9514ed7eee4f0e8390a1b1d607d 100644 --- a/auth/build.gradle +++ b/auth/build.gradle @@ -64,6 +64,10 @@ dependencies { //Subscriptions implementation 'com.android.billingclient:billing-ktx:6.0.1' + //QR + implementation 'com.google.zxing:core:3.5.1' + implementation 'com.github.yuriy-budiyev:code-scanner:2.3.2' + //Hilt def hilt = '2.46.1' implementation "com.google.dagger:hilt-android:$hilt" diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsDataSource.kt similarity index 95% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsDataSource.kt index fad02c1412a6445096ba16b7b84e412156291031..ede267fbecc584f926e2a00f854ee45c5e296299 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsDataSource.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.feature.active_sessions +package org.futo.circles.auth.feature.active_sessions import android.content.Context import androidx.lifecycle.asFlow @@ -9,15 +9,15 @@ import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.flowOn +import org.futo.circles.auth.R import org.futo.circles.auth.feature.reauth.AuthConfirmationProvider +import org.futo.circles.auth.model.ActiveSession +import org.futo.circles.auth.model.ActiveSessionListItem +import org.futo.circles.auth.model.SessionHeader import org.futo.circles.core.ExpandableItemsDataSource 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.settings.model.ActiveSession -import org.futo.circles.settings.model.ActiveSessionListItem -import org.futo.circles.settings.model.SessionHeader import org.matrix.android.sdk.api.session.crypto.model.CryptoDeviceInfo import org.matrix.android.sdk.api.session.crypto.model.DeviceInfo import org.matrix.android.sdk.api.util.awaitCallback diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDialogFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsDialogFragment.kt similarity index 84% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDialogFragment.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsDialogFragment.kt index 27334e498f1555ba5438f214d6788c329bcb63a6..891908b9e6a0fa70957d5b3cc41baf1d45a5447d 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDialogFragment.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsDialogFragment.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.feature.active_sessions +package org.futo.circles.auth.feature.active_sessions import android.os.Bundle import android.view.View @@ -6,20 +6,18 @@ import androidx.fragment.app.viewModels import androidx.navigation.fragment.findNavController import androidx.recyclerview.widget.DividerItemDecoration import dagger.hilt.android.AndroidEntryPoint +import org.futo.circles.auth.R +import org.futo.circles.auth.databinding.DialogFragmentActiveSessionsBinding +import org.futo.circles.auth.feature.active_sessions.list.ActiveSessionClickListener +import org.futo.circles.auth.feature.active_sessions.list.ActiveSessionsAdapter +import org.futo.circles.auth.model.RemoveSession +import org.futo.circles.auth.model.ResetKeys import org.futo.circles.core.extensions.navigateSafe import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.observeResponse import org.futo.circles.core.extensions.showError import org.futo.circles.core.extensions.withConfirmation import org.futo.circles.core.fragment.BaseFullscreenDialogFragment -import org.futo.circles.model.RemoveSession -import org.futo.circles.model.ResetKeys -import org.futo.circles.settings.R -import org.futo.circles.settings.databinding.DialogFragmentActiveSessionsBinding -import org.futo.circles.settings.feature.active_sessions.list.ActiveSessionClickListener -import org.futo.circles.settings.feature.active_sessions.list.ActiveSessionsAdapter -import org.futo.circles.settings.model.RemoveSession -import org.futo.circles.settings.model.ResetKeys @AndroidEntryPoint class ActiveSessionsDialogFragment : diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsViewModel.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsViewModel.kt similarity index 95% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsViewModel.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsViewModel.kt index e8570aa6bcb8d12eb4bb892a0becaee9cc90498f..19ed95159c54283b6a0fb07f0c88436cc90ea0af 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsViewModel.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/ActiveSessionsViewModel.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.feature.active_sessions +package org.futo.circles.auth.feature.active_sessions import androidx.lifecycle.ViewModel import androidx.lifecycle.asLiveData diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsAdapter.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/list/ActiveSessionsAdapter.kt similarity index 85% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsAdapter.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/list/ActiveSessionsAdapter.kt index 72db36768bb54b5fb8e12bcb26195e14a076d651..1ca1fece42c54a793d7d1aac451f08e35a511f81 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsAdapter.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/list/ActiveSessionsAdapter.kt @@ -1,10 +1,10 @@ -package org.futo.circles.settings.feature.active_sessions.list +package org.futo.circles.auth.feature.active_sessions.list import android.view.ViewGroup +import org.futo.circles.auth.model.ActiveSession +import org.futo.circles.auth.model.ActiveSessionListItem +import org.futo.circles.auth.model.SessionHeader import org.futo.circles.core.list.BaseRvAdapter -import org.futo.circles.settings.model.ActiveSession -import org.futo.circles.settings.model.ActiveSessionListItem -import org.futo.circles.settings.model.SessionHeader interface ActiveSessionClickListener { fun onItemClicked(deviceId: String) diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsViewHolder.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/list/ActiveSessionsViewHolder.kt similarity index 85% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsViewHolder.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/list/ActiveSessionsViewHolder.kt index 3642e6a15e0552cf27fd00c59b2866658ad26351..23ecb45d2fe09cf5cbdb94addd60feadbee2c284 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsViewHolder.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/list/ActiveSessionsViewHolder.kt @@ -1,16 +1,16 @@ -package org.futo.circles.settings.feature.active_sessions.list +package org.futo.circles.auth.feature.active_sessions.list import android.view.View import android.view.ViewGroup import androidx.recyclerview.widget.RecyclerView +import org.futo.circles.auth.R +import org.futo.circles.auth.databinding.ListItemActiveSessionBinding +import org.futo.circles.auth.model.ActiveSession +import org.futo.circles.auth.model.ActiveSessionListItem +import org.futo.circles.auth.model.SessionHeader import org.futo.circles.core.databinding.ListItemInviteHeaderBinding import org.futo.circles.core.extensions.setIsVisible import org.futo.circles.core.list.ViewBindingHolder -import org.futo.circles.settings.R -import org.futo.circles.settings.databinding.ListItemActiveSessionBinding -import org.futo.circles.settings.model.ActiveSession -import org.futo.circles.settings.model.ActiveSessionListItem -import org.futo.circles.settings.model.SessionHeader abstract class ActiveSessionsViewHolder(view: View) : RecyclerView.ViewHolder(view) { abstract fun bind(data: ActiveSessionListItem) diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionDialogFragment.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/VerifySessionDialogFragment.kt similarity index 88% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionDialogFragment.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/VerifySessionDialogFragment.kt index 506f892abfff7cf65d59cf25f21266f7667898c4..ddfc70b822873c77d38b3284142617778a9f8f5a 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionDialogFragment.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/VerifySessionDialogFragment.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.feature.active_sessions.verify +package org.futo.circles.auth.feature.active_sessions.verify import android.Manifest import android.app.Activity @@ -7,6 +7,13 @@ import android.view.View import androidx.activity.result.contract.ActivityResultContracts import androidx.fragment.app.viewModels import dagger.hilt.android.AndroidEntryPoint +import org.futo.circles.auth.R +import org.futo.circles.auth.databinding.DialogFragmentVerifySessionBinding +import org.futo.circles.auth.feature.active_sessions.verify.qr.QrScannerActivity +import org.futo.circles.auth.model.QrCanceled +import org.futo.circles.auth.model.QrLoading +import org.futo.circles.auth.model.QrReady +import org.futo.circles.auth.model.QrSuccess import org.futo.circles.core.extensions.gone import org.futo.circles.core.extensions.observeData import org.futo.circles.core.extensions.onBackPressed @@ -15,13 +22,6 @@ import org.futo.circles.core.extensions.showSuccess import org.futo.circles.core.extensions.visible import org.futo.circles.core.fragment.BaseFullscreenDialogFragment import org.futo.circles.core.picker.RuntimePermissionHelper -import org.futo.circles.settings.R -import org.futo.circles.settings.databinding.DialogFragmentVerifySessionBinding -import org.futo.circles.settings.feature.active_sessions.verify.qr.QrScannerActivity -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.QrSuccess @AndroidEntryPoint class VerifySessionDialogFragment : diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/VerifySessionViewModel.kt similarity index 92% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/VerifySessionViewModel.kt index 6d9e87e946a5334a3884a26114ca5009fcde7471..80785bbd2c77d4d81e4129687d99ce492704d743 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/VerifySessionViewModel.kt @@ -1,16 +1,16 @@ -package org.futo.circles.settings.feature.active_sessions.verify +package org.futo.circles.auth.feature.active_sessions.verify import androidx.lifecycle.MutableLiveData import androidx.lifecycle.SavedStateHandle import androidx.lifecycle.ViewModel import dagger.hilt.android.lifecycle.HiltViewModel +import org.futo.circles.auth.model.QrCanceled +import org.futo.circles.auth.model.QrLoading +import org.futo.circles.auth.model.QrReady +import org.futo.circles.auth.model.QrState +import org.futo.circles.auth.model.QrSuccess import org.futo.circles.core.extensions.getOrThrow import org.futo.circles.core.provider.MatrixSessionProvider -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.PendingVerificationRequest import org.matrix.android.sdk.api.session.crypto.verification.QrCodeVerificationTransaction import org.matrix.android.sdk.api.session.crypto.verification.VerificationMethod diff --git a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/qr/QrScannerActivity.kt b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/qr/QrScannerActivity.kt similarity index 94% rename from settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/qr/QrScannerActivity.kt rename to auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/qr/QrScannerActivity.kt index 25b45f4e18c9347da2fc858b0ac48766b3e65ef6..d346b85de8d4912753595f1f49125971e7f23bf5 100644 --- a/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/qr/QrScannerActivity.kt +++ b/auth/src/main/java/org/futo/circles/auth/feature/active_sessions/verify/qr/QrScannerActivity.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.feature.active_sessions.verify.qr +package org.futo.circles.auth.feature.active_sessions.verify.qr import android.app.Activity import android.content.Intent @@ -12,9 +12,9 @@ import com.budiyev.android.codescanner.ErrorCallback import com.google.zxing.BarcodeFormat import com.google.zxing.Result import com.google.zxing.ResultMetadataType +import org.futo.circles.auth.R +import org.futo.circles.auth.databinding.ActivityQrScannerBinding import org.futo.circles.core.BaseActivity -import org.futo.circles.settings.R -import org.futo.circles.settings.databinding.ActivityQrScannerBinding class QrScannerActivity : BaseActivity(R.layout.activity_qr_scanner) { diff --git a/settings/src/main/java/org/futo/circles/settings/model/ActiveSessionListItem.kt b/auth/src/main/java/org/futo/circles/auth/model/ActiveSessionListItem.kt similarity index 95% rename from settings/src/main/java/org/futo/circles/settings/model/ActiveSessionListItem.kt rename to auth/src/main/java/org/futo/circles/auth/model/ActiveSessionListItem.kt index 220a972d904679c3433876310ac42154c97683bb..920114ebd15bbcec4e683fb0806b90f9a19e8f56 100644 --- a/settings/src/main/java/org/futo/circles/settings/model/ActiveSessionListItem.kt +++ b/auth/src/main/java/org/futo/circles/auth/model/ActiveSessionListItem.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.model +package org.futo.circles.auth.model import org.futo.circles.core.list.IdEntity import org.futo.circles.core.provider.MatrixSessionProvider diff --git a/auth/src/main/java/org/futo/circles/auth/model/ConfirmationType.kt b/auth/src/main/java/org/futo/circles/auth/model/ConfirmationType.kt index dfd7d67b9c1078405e9cbcb7cd4b643c55c28a4c..ef3e3b5128c17a70ca0a9227c4fe150ed9732dac 100644 --- a/auth/src/main/java/org/futo/circles/auth/model/ConfirmationType.kt +++ b/auth/src/main/java/org/futo/circles/auth/model/ConfirmationType.kt @@ -19,4 +19,16 @@ data class LogOut( override val titleRes: Int = R.string.log_out, override val messageRes: Int = R.string.log_out_message, override val positiveButtonRes: Int = R.string.log_out +) : ConfirmationType(titleRes, messageRes, positiveButtonRes) + +data class RemoveSession( + override val titleRes: Int = R.string.remove_session, + override val messageRes: Int = R.string.remove_session_message, + override val positiveButtonRes: Int = org.futo.circles.core.R.string.remove +) : ConfirmationType(titleRes, messageRes, positiveButtonRes) + +data class ResetKeys( + override val titleRes: Int = R.string.reset_keys, + override val messageRes: Int = R.string.reset_keys_message, + override val positiveButtonRes: Int = R.string.confirm ) : ConfirmationType(titleRes, messageRes, positiveButtonRes) \ No newline at end of file diff --git a/settings/src/main/java/org/futo/circles/settings/model/QrState.kt b/auth/src/main/java/org/futo/circles/auth/model/QrState.kt similarity index 87% rename from settings/src/main/java/org/futo/circles/settings/model/QrState.kt rename to auth/src/main/java/org/futo/circles/auth/model/QrState.kt index 3af5ec596090033ba96bc2ce8a03d881f289da5d..cdec7098159458bef621c4140ebe950b8fac0a53 100644 --- a/settings/src/main/java/org/futo/circles/settings/model/QrState.kt +++ b/auth/src/main/java/org/futo/circles/auth/model/QrState.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.model +package org.futo.circles.auth.model sealed class QrState diff --git a/settings/src/main/java/org/futo/circles/settings/view/ActiveSessionInfoView.kt b/auth/src/main/java/org/futo/circles/auth/view/ActiveSessionInfoView.kt similarity index 84% rename from settings/src/main/java/org/futo/circles/settings/view/ActiveSessionInfoView.kt rename to auth/src/main/java/org/futo/circles/auth/view/ActiveSessionInfoView.kt index 2b2665420626eefabc5d2ede6ab25733991b6d13..e63080807e3b14bf47626653d21d3cf1a20d0e97 100644 --- a/settings/src/main/java/org/futo/circles/settings/view/ActiveSessionInfoView.kt +++ b/auth/src/main/java/org/futo/circles/auth/view/ActiveSessionInfoView.kt @@ -1,13 +1,12 @@ -package org.futo.circles.settings.view +package org.futo.circles.auth.view import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout +import org.futo.circles.auth.databinding.ViewActiveSessionInfoBinding +import org.futo.circles.auth.feature.active_sessions.list.ActiveSessionClickListener import org.futo.circles.core.extensions.setIsVisible -import org.futo.circles.settings.databinding.ViewActiveSessionInfoBinding -import org.futo.circles.settings.feature.active_sessions.list.ActiveSessionClickListener -import org.futo.circles.settings.model.ActiveSession class ActiveSessionInfoView( context: Context, @@ -33,7 +32,7 @@ class ActiveSessionInfoView( } fun setData( - activeSession: ActiveSession, + activeSession: org.futo.circles.auth.model.ActiveSession, listener: ActiveSessionClickListener ) { deviceId = activeSession.id diff --git a/settings/src/main/java/org/futo/circles/settings/view/QrCodeImageView.kt b/auth/src/main/java/org/futo/circles/auth/view/QrCodeImageView.kt similarity index 96% rename from settings/src/main/java/org/futo/circles/settings/view/QrCodeImageView.kt rename to auth/src/main/java/org/futo/circles/auth/view/QrCodeImageView.kt index 3c86963e5805815e23c4d1176dcef9c4a7bf5835..f3f33bffc7551cde74263fc6ebe115397c2032a2 100644 --- a/settings/src/main/java/org/futo/circles/settings/view/QrCodeImageView.kt +++ b/auth/src/main/java/org/futo/circles/auth/view/QrCodeImageView.kt @@ -1,4 +1,4 @@ -package org.futo.circles.settings.view +package org.futo.circles.auth.view import android.content.Context import android.graphics.Bitmap @@ -10,7 +10,7 @@ import androidx.core.content.ContextCompat import com.google.zxing.BarcodeFormat import com.google.zxing.common.BitMatrix import com.google.zxing.qrcode.QRCodeWriter -import org.futo.circles.settings.R +import org.futo.circles.auth.R class QrCodeImageView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 diff --git a/settings/src/main/res/drawable/ic_unverified.xml b/auth/src/main/res/drawable/ic_unverified.xml similarity index 100% rename from settings/src/main/res/drawable/ic_unverified.xml rename to auth/src/main/res/drawable/ic_unverified.xml diff --git a/settings/src/main/res/drawable/ic_verified.xml b/auth/src/main/res/drawable/ic_verified.xml similarity index 100% rename from settings/src/main/res/drawable/ic_verified.xml rename to auth/src/main/res/drawable/ic_verified.xml diff --git a/settings/src/main/res/layout/activity_qr_scanner.xml b/auth/src/main/res/layout/activity_qr_scanner.xml similarity index 83% rename from settings/src/main/res/layout/activity_qr_scanner.xml rename to auth/src/main/res/layout/activity_qr_scanner.xml index c53197499652433eec0f317d024c979fce50bacb..534bda22e0883b17eb9c6d7d66ec39ca41576c9f 100644 --- a/settings/src/main/res/layout/activity_qr_scanner.xml +++ b/auth/src/main/res/layout/activity_qr_scanner.xml @@ -4,7 +4,7 @@ android:id="@+id/mainContainer" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context=".settings.active_sessions.verify.qr.QrScannerActivity"> + tools:context="org.futo.circles.auth.feature.active_sessions.verify.qr.QrScannerActivity"> <com.budiyev.android.codescanner.CodeScannerView android:id="@+id/qrScannerView" diff --git a/settings/src/main/res/layout/dialog_fragment_active_sessions.xml b/auth/src/main/res/layout/dialog_fragment_active_sessions.xml similarity index 100% rename from settings/src/main/res/layout/dialog_fragment_active_sessions.xml rename to auth/src/main/res/layout/dialog_fragment_active_sessions.xml diff --git a/settings/src/main/res/layout/dialog_fragment_verify_session.xml b/auth/src/main/res/layout/dialog_fragment_verify_session.xml similarity index 98% rename from settings/src/main/res/layout/dialog_fragment_verify_session.xml rename to auth/src/main/res/layout/dialog_fragment_verify_session.xml index b6b7741e0ead4ee2c7bcdafb266897d7af968879..cc749cb7002a54492d7f3c7868ee0ef560efdc7f 100644 --- a/settings/src/main/res/layout/dialog_fragment_verify_session.xml +++ b/auth/src/main/res/layout/dialog_fragment_verify_session.xml @@ -27,7 +27,7 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/toolbar" /> - <org.futo.circles.settings.view.QrCodeImageView + <org.futo.circles.auth.view.QrCodeImageView android:id="@+id/ivQr" android:layout_width="0dp" android:layout_height="0dp" diff --git a/settings/src/main/res/layout/list_item_active_session.xml b/auth/src/main/res/layout/list_item_active_session.xml similarity index 98% rename from settings/src/main/res/layout/list_item_active_session.xml rename to auth/src/main/res/layout/list_item_active_session.xml index 304cb07be8dfb1ce209913d1d8c75ca26e7b4719..852faf8686f8e5fb680cfeefd69f72a7080f03e7 100644 --- a/settings/src/main/res/layout/list_item_active_session.xml +++ b/auth/src/main/res/layout/list_item_active_session.xml @@ -73,7 +73,7 @@ app:layout_constraintTop_toTopOf="@id/ivIcon" app:tint="@color/blue" /> - <org.futo.circles.settings.view.ActiveSessionInfoView + <org.futo.circles.auth.view.ActiveSessionInfoView android:id="@+id/vInfo" android:layout_width="0dp" android:layout_height="wrap_content" diff --git a/settings/src/main/res/layout/view_active_session_info.xml b/auth/src/main/res/layout/view_active_session_info.xml similarity index 100% rename from settings/src/main/res/layout/view_active_session_info.xml rename to auth/src/main/res/layout/view_active_session_info.xml diff --git a/auth/src/main/res/values-night/color.xml b/auth/src/main/res/values-night/color.xml new file mode 100644 index 0000000000000000000000000000000000000000..400df03159ea0e1ac084ad0ecb9995daa3103a94 --- /dev/null +++ b/auth/src/main/res/values-night/color.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="utf-8"?> +<resources> + + <color name="qr_color">@color/white</color> + <color name="qr_background">#121212</color> + +</resources> \ No newline at end of file diff --git a/auth/src/main/res/values/color.xml b/auth/src/main/res/values/color.xml index 49fde422f59f7ab5135a3cd34d5745489dff9408..69d8376d7492996a6ea176bf4c771805d221f00c 100644 --- a/auth/src/main/res/values/color.xml +++ b/auth/src/main/res/values/color.xml @@ -9,5 +9,7 @@ <color name="teal_700">#FF018786</color> <color name="purple">#AF52DE</color> <color name="pink">#FF2D55</color> + <color name="qr_color">@color/black</color> + <color name="qr_background">@color/white</color> </resources> \ No newline at end of file diff --git a/auth/src/main/res/values/strings.xml b/auth/src/main/res/values/strings.xml index d352c7353451ffff81c52af2acb43683fb4c77d4..76b7988d29b5d36d7c96f7daeeebe8cb4bde9b57 100644 --- a/auth/src/main/res/values/strings.xml +++ b/auth/src/main/res/values/strings.xml @@ -104,6 +104,19 @@ <string name="new_password">New password</string> <string name="old_password">Old Password</string> <string name="repeat_new_password">Repeat new password</string> + <string name="remove_session">Remove session</string> + <string name="remove_session_message">In order to sign out from this session you should confirm your auth.</string> + <string name="reset_keys">Reset keys</string> + <string name="reset_keys_message">Confirm auth to reset keys and enable cross signing</string> + <string name="confirm">Confirm</string> + <string name="failed_to_read_qr_code">Failed to read QR code</string> + <string name="current_session">Current session</string> + <string name="other_sessions">Other sessions</string> + <string name="invalid_auth">Invalid auth</string> + <string name="scan_with_one_of_devices_message">Scan QR code with one of your devices to finish verification</string> + <string name="cross_signed">cross signed</string> + <string name="waiting_for_verification_format">Waiting for %s to start verification</string> + <string name="session_verified">Session verified</string> <plurals name="days"> <item quantity="one">%1$d day</item> diff --git a/settings/build.gradle b/settings/build.gradle index e2b29b8bd72f0e730b2618d1a3ea38c9a8d45f23..49b500ab0b3b66904a0b19dac13fe84f819813b4 100644 --- a/settings/build.gradle +++ b/settings/build.gradle @@ -43,10 +43,6 @@ android { dependencies { implementation project(path: ':core') - //QR - implementation 'com.google.zxing:core:3.5.1' - implementation 'com.github.yuriy-budiyev:code-scanner:2.3.2' - //Hilt def hilt = '2.46.1' implementation "com.google.dagger:hilt-android:$hilt" diff --git a/settings/src/main/java/org/futo/circles/settings/model/ConfirmationType.kt b/settings/src/main/java/org/futo/circles/settings/model/ConfirmationType.kt index 84a787b2a03faafa85d0f2328d9cdf701d06aa5c..5237b48c372b91063049a3d96ac664c90a5fef14 100644 --- a/settings/src/main/java/org/futo/circles/settings/model/ConfirmationType.kt +++ b/settings/src/main/java/org/futo/circles/settings/model/ConfirmationType.kt @@ -9,15 +9,5 @@ data class DeactivateAccount( override val positiveButtonRes: Int = R.string.deactivate ) : ConfirmationType(titleRes, messageRes, positiveButtonRes) -data class RemoveSession( - override val titleRes: Int = R.string.remove_session, - override val messageRes: Int = R.string.remove_session_message, - override val positiveButtonRes: Int = org.futo.circles.core.R.string.remove -) : ConfirmationType(titleRes, messageRes, positiveButtonRes) -data class ResetKeys( - override val titleRes: Int = R.string.reset_keys, - override val messageRes: Int = R.string.reset_keys_message, - override val positiveButtonRes: Int = R.string.confirm -) : ConfirmationType(titleRes, messageRes, positiveButtonRes) diff --git a/settings/src/main/res/values-night/colors.xml b/settings/src/main/res/values-night/colors.xml index c30e4739760b386ce2e47790578eefbfead98490..0d2c4cc4098455f8d66c1bbcb0938e945746a13c 100644 --- a/settings/src/main/res/values-night/colors.xml +++ b/settings/src/main/res/values-night/colors.xml @@ -1,5 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <color name="qr_color">@color/white</color> - <color name="qr_background">#121212</color> + </resources> \ No newline at end of file diff --git a/settings/src/main/res/values/colors.xml b/settings/src/main/res/values/colors.xml index b93efd6f964c3772bd81c08618c0a7094274ea0f..0d2c4cc4098455f8d66c1bbcb0938e945746a13c 100644 --- a/settings/src/main/res/values/colors.xml +++ b/settings/src/main/res/values/colors.xml @@ -1,5 +1,4 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <color name="qr_color">@color/black</color> - <color name="qr_background">@color/white</color> + </resources> \ No newline at end of file diff --git a/settings/src/main/res/values/strings.xml b/settings/src/main/res/values/strings.xml index f64225da5622d7235b297bff36fdbd8d657e12f9..2bea33ecf3bce3c82f734770273eab757b68c10a 100644 --- a/settings/src/main/res/values/strings.xml +++ b/settings/src/main/res/values/strings.xml @@ -1,13 +1,7 @@ <?xml version="1.0" encoding="utf-8"?> <resources> - <string name="failed_to_read_qr_code">Failed to read QR code</string> - <string name="scan_with_one_of_devices_message">Scan QR code with one of your devices to finish verification</string> - <string name="cross_signed">cross signed</string> - <string name="waiting_for_verification_format">Waiting for %s to start verification</string> - <string name="session_verified">Session verified</string> - <string name="current_session">Current session</string> - <string name="other_sessions">Other sessions</string> - <string name="invalid_auth">Invalid auth</string> + + <string name="profile_updated">Profile updated</string> <string name="version_format">Version %s</string> <string name="developer_mode_enabled">Developer mode is enabled</string> @@ -15,10 +9,7 @@ <string name="deactivate_my_account">Deactivate my account</string> <string name="deactivate_message">This will make your account permanently unusable. You will not be able to log in, and no one will be able to re-register the same user lD. This will cause your account to leave all rooms it is participating in, and it will remove your account details from your identity server. This action is irreversible.</string> <string name="deactivate">Deactivate</string> - <string name="remove_session">Remove session</string> - <string name="remove_session_message">In order to sign out from this session you should confirm your auth.</string> - <string name="reset_keys">Reset keys</string> - <string name="reset_keys_message">Confirm auth to reset keys and enable cross signing</string> - <string name="confirm">Confirm</string> + + <string name="active_login_sessions">Active login sessions</string> </resources> \ No newline at end of file