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