From f3aebd70768e93e0d30dde58d9bd841c054bd0ed Mon Sep 17 00:00:00 2001 From: Taras Smakula <tarassmakula@gmail.com> Date: Mon, 17 Jul 2023 14:05:12 +0300 Subject: [PATCH] Move active sessions to auth --- .../res/layout/dialog_fragment_share_room.xml | 2 +- app/src/main/res/values/strings.xml | 1 - auth/build.gradle | 4 ++++ .../active_sessions/ActiveSessionsDataSource.kt | 10 +++++----- .../ActiveSessionsDialogFragment.kt | 16 +++++++--------- .../active_sessions/ActiveSessionsViewModel.kt | 2 +- .../list/ActiveSessionsAdapter.kt | 8 ++++---- .../list/ActiveSessionsViewHolder.kt | 12 ++++++------ .../verify/VerifySessionDialogFragment.kt | 16 ++++++++-------- .../verify/VerifySessionViewModel.kt | 12 ++++++------ .../verify/qr/QrScannerActivity.kt | 6 +++--- .../auth}/model/ActiveSessionListItem.kt | 2 +- .../futo/circles/auth/model/ConfirmationType.kt | 12 ++++++++++++ .../org/futo/circles/auth}/model/QrState.kt | 2 +- .../circles/auth}/view/ActiveSessionInfoView.kt | 9 ++++----- .../futo/circles/auth}/view/QrCodeImageView.kt | 4 ++-- .../src/main/res/drawable/ic_unverified.xml | 0 .../src/main/res/drawable/ic_verified.xml | 0 .../src/main/res/layout/activity_qr_scanner.xml | 2 +- .../layout/dialog_fragment_active_sessions.xml | 0 .../layout/dialog_fragment_verify_session.xml | 2 +- .../res/layout/list_item_active_session.xml | 2 +- .../res/layout/view_active_session_info.xml | 0 auth/src/main/res/values-night/color.xml | 7 +++++++ auth/src/main/res/values/color.xml | 2 ++ auth/src/main/res/values/strings.xml | 13 +++++++++++++ settings/build.gradle | 4 ---- .../circles/settings/model/ConfirmationType.kt | 10 ---------- settings/src/main/res/values-night/colors.xml | 3 +-- settings/src/main/res/values/colors.xml | 3 +-- settings/src/main/res/values/strings.xml | 17 ++++------------- 31 files changed, 96 insertions(+), 87 deletions(-) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/ActiveSessionsDataSource.kt (95%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/ActiveSessionsDialogFragment.kt (84%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/ActiveSessionsViewModel.kt (95%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/list/ActiveSessionsAdapter.kt (85%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/list/ActiveSessionsViewHolder.kt (85%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/verify/VerifySessionDialogFragment.kt (88%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/verify/VerifySessionViewModel.kt (92%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/feature/active_sessions/verify/qr/QrScannerActivity.kt (94%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/model/ActiveSessionListItem.kt (95%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/model/QrState.kt (87%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/view/ActiveSessionInfoView.kt (84%) rename {settings/src/main/java/org/futo/circles/settings => auth/src/main/java/org/futo/circles/auth}/view/QrCodeImageView.kt (96%) rename {settings => auth}/src/main/res/drawable/ic_unverified.xml (100%) rename {settings => auth}/src/main/res/drawable/ic_verified.xml (100%) rename {settings => auth}/src/main/res/layout/activity_qr_scanner.xml (83%) rename {settings => auth}/src/main/res/layout/dialog_fragment_active_sessions.xml (100%) rename {settings => auth}/src/main/res/layout/dialog_fragment_verify_session.xml (98%) rename {settings => auth}/src/main/res/layout/list_item_active_session.xml (98%) rename {settings => auth}/src/main/res/layout/view_active_session_info.xml (100%) create mode 100644 auth/src/main/res/values-night/color.xml 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 d87a64cff..4a2a8fd13 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 ab9cb184c..6044d1f4a 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 d61947130..8652aecc9 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 fad02c141..ede267fbe 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 27334e498..891908b9e 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 e8570aa6b..19ed95159 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 72db36768..1ca1fece4 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 3642e6a15..23ecb45d2 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 506f892ab..ddfc70b82 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 6d9e87e94..80785bbd2 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 25b45f4e1..d346b85de 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 220a972d9..920114ebd 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 dfd7d67b9..ef3e3b512 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 3af5ec596..cdec70981 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 2b2665420..e63080807 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 3c86963e5..f3f33bffc 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 c53197499..534bda22e 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 b6b7741e0..cc749cb70 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 304cb07be..852faf868 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 000000000..400df0315 --- /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 49fde422f..69d8376d7 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 d352c7353..76b7988d2 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 e2b29b8bd..49b500ab0 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 84a787b2a..5237b48c3 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 c30e47397..0d2c4cc40 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 b93efd6f9..0d2c4cc40 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 f64225da5..2bea33ecf 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 -- GitLab