From d9cf01a9e2614c440e47969b783a4a19929cbf23 Mon Sep 17 00:00:00 2001
From: Taras Smakula <tarassmakula@gmail.com>
Date: Thu, 13 Jul 2023 18:11:58 +0300
Subject: [PATCH] Move settings package to module

---
 .../settings/feature}/SettingsDataSource.kt   |  8 ++-
 .../settings/feature}/SettingsFragment.kt     |  6 +--
 .../settings/feature}/SettingsNavigator.kt    |  4 +-
 .../settings/feature}/SettingsViewModel.kt    |  4 +-
 .../ActiveSessionsDataSource.kt               | 10 ++--
 .../ActiveSessionsDialogFragment.kt           | 10 ++--
 .../ActiveSessionsViewModel.kt                |  2 +-
 .../list/ActiveSessionsAdapter.kt             |  8 +--
 .../list/ActiveSessionsViewHolder.kt          | 12 ++---
 .../verify/VerifySessionDialogFragment.kt     | 16 +++---
 .../verify/VerifySessionViewModel.kt          | 11 +++--
 .../verify/qr/QrScannerActivity.kt            |  7 ++-
 .../ChangePasswordDataSource.kt               |  2 +-
 .../ChangePasswordDialogFragment.kt           |  6 +--
 .../ChangePasswordViewModel.kt                |  2 +-
 .../EditProfileDialogFragment.kt              |  5 +-
 .../edit_profile}/EditProfileViewModel.kt     |  2 +-
 .../settings}/model/ActiveSessionListItem.kt  |  2 +-
 .../futo/circles/settings}/model/QrState.kt   |  2 +-
 .../settings}/view/ActiveSessionInfoView.kt   | 11 +++--
 .../circles/settings}/view/QrCodeImageView.kt | 49 ++++++++++---------
 21 files changed, 89 insertions(+), 90 deletions(-)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/SettingsDataSource.kt (91%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/SettingsFragment.kt (97%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/SettingsNavigator.kt (96%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/SettingsViewModel.kt (93%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/ActiveSessionsDataSource.kt (95%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/ActiveSessionsDialogFragment.kt (90%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/ActiveSessionsViewModel.kt (95%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/list/ActiveSessionsAdapter.kt (85%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/list/ActiveSessionsViewHolder.kt (85%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/verify/VerifySessionDialogFragment.kt (88%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/verify/VerifySessionViewModel.kt (91%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/active_sessions/verify/qr/QrScannerActivity.kt (94%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/change_password/ChangePasswordDataSource.kt (96%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/change_password/ChangePasswordDialogFragment.kt (94%)
 rename {app/src/main/java/org/futo/circles/feature/settings => settings/src/main/java/org/futo/circles/settings/feature}/change_password/ChangePasswordViewModel.kt (95%)
 rename {app/src/main/java/org/futo/circles/feature/settings/profile/edit => settings/src/main/java/org/futo/circles/settings/feature/edit_profile}/EditProfileDialogFragment.kt (95%)
 rename {app/src/main/java/org/futo/circles/feature/settings/profile/edit => settings/src/main/java/org/futo/circles/settings/feature/edit_profile}/EditProfileViewModel.kt (96%)
 rename {app/src/main/java/org/futo/circles => settings/src/main/java/org/futo/circles/settings}/model/ActiveSessionListItem.kt (95%)
 rename {app/src/main/java/org/futo/circles => settings/src/main/java/org/futo/circles/settings}/model/QrState.kt (87%)
 rename {app/src/main/java/org/futo/circles => settings/src/main/java/org/futo/circles/settings}/view/ActiveSessionInfoView.kt (86%)
 rename {app/src/main/java/org/futo/circles => settings/src/main/java/org/futo/circles/settings}/view/QrCodeImageView.kt (58%)

diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsDataSource.kt b/settings/src/main/java/org/futo/circles/settings/feature/SettingsDataSource.kt
similarity index 91%
rename from app/src/main/java/org/futo/circles/feature/settings/SettingsDataSource.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/SettingsDataSource.kt
index f09b610ea..1aa1ddedc 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/SettingsDataSource.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/SettingsDataSource.kt
@@ -1,18 +1,16 @@
-package org.futo.circles.feature.settings
+package org.futo.circles.settings.feature
 
 import android.content.Context
-import androidx.lifecycle.MutableLiveData
 import com.bumptech.glide.Glide
 import dagger.hilt.android.qualifiers.ApplicationContext
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.withContext
-import org.futo.circles.R
 import org.futo.circles.auth.feature.reauth.AuthConfirmationProvider
 import org.futo.circles.core.extensions.Response
 import org.futo.circles.core.extensions.createResult
-import org.futo.circles.core.model.LoadingData
 import org.futo.circles.core.provider.MatrixSessionProvider
-import org.futo.circles.feature.settings.change_password.ChangePasswordDataSource
+import org.futo.circles.settings.R
+import org.futo.circles.settings.feature.change_password.ChangePasswordDataSource
 import java.io.File
 import javax.inject.Inject
 
diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt b/settings/src/main/java/org/futo/circles/settings/feature/SettingsFragment.kt
similarity index 97%
rename from app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/SettingsFragment.kt
index 9be3bb532..f20838c99 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/SettingsFragment.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/SettingsFragment.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings
+package org.futo.circles.settings.feature
 
 import android.os.Bundle
 import android.view.View
@@ -10,7 +10,6 @@ import by.kirich1409.viewbindingdelegate.viewBinding
 import dagger.hilt.android.AndroidEntryPoint
 import org.futo.circles.BuildConfig
 import org.futo.circles.MainActivity
-import org.futo.circles.R
 import org.futo.circles.auth.model.LogOut
 import org.futo.circles.auth.model.SwitchUser
 import org.futo.circles.core.extensions.loadProfileIcon
@@ -22,9 +21,10 @@ import org.futo.circles.core.extensions.showSuccess
 import org.futo.circles.core.extensions.withConfirmation
 import org.futo.circles.core.provider.PreferencesProvider
 import org.futo.circles.core.view.LoadingDialog
-import org.futo.circles.databinding.FragmentSettingsBinding
 import org.futo.circles.feature.home.SystemNoticesCountSharedViewModel
 import org.futo.circles.model.DeactivateAccount
+import org.futo.circles.settings.R
+import org.futo.circles.settings.databinding.FragmentSettingsBinding
 import org.matrix.android.sdk.api.session.user.model.User
 
 @AndroidEntryPoint
diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsNavigator.kt b/settings/src/main/java/org/futo/circles/settings/feature/SettingsNavigator.kt
similarity index 96%
rename from app/src/main/java/org/futo/circles/feature/settings/SettingsNavigator.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/SettingsNavigator.kt
index 6578d2340..532a19240 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/SettingsNavigator.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/SettingsNavigator.kt
@@ -1,11 +1,11 @@
-package org.futo.circles.feature.settings
+package org.futo.circles.settings.feature
 
 import androidx.navigation.fragment.findNavController
-import org.futo.circles.R
 import org.futo.circles.core.extensions.navigateSafe
 import org.futo.circles.core.extensions.showError
 import org.futo.circles.core.utils.getSharedCirclesSpaceId
 import org.futo.circles.core.utils.getSystemNoticesRoomId
+import org.futo.circles.settings.R
 
 class SettingsNavigator(private val fragment: SettingsFragment) {
 
diff --git a/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt b/settings/src/main/java/org/futo/circles/settings/feature/SettingsViewModel.kt
similarity index 93%
rename from app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/SettingsViewModel.kt
index 91c58b8ca..d21a1fead 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/SettingsViewModel.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/SettingsViewModel.kt
@@ -1,13 +1,11 @@
-package org.futo.circles.feature.settings
+package org.futo.circles.settings.feature
 
 import androidx.lifecycle.ViewModel
 import dagger.hilt.android.lifecycle.HiltViewModel
 import org.futo.circles.auth.feature.log_in.log_out.LogoutDataSource
 import org.futo.circles.core.SingleEventLiveData
 import org.futo.circles.core.extensions.Response
-import org.futo.circles.core.extensions.createResult
 import org.futo.circles.core.extensions.launchBg
-import org.futo.circles.core.provider.MatrixSessionProvider
 import javax.inject.Inject
 
 @HiltViewModel
diff --git a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsDataSource.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt
similarity index 95%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsDataSource.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt
index 41581ae7d..6f1544443 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsDataSource.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDataSource.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.active_sessions
+package org.futo.circles.settings.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.R
 import org.futo.circles.auth.feature.reauth.AuthConfirmationProvider
 import org.futo.circles.base.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.model.ActiveSession
-import org.futo.circles.model.ActiveSessionListItem
-import org.futo.circles.model.SessionHeader
+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/app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsDialogFragment.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDialogFragment.kt
similarity index 90%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsDialogFragment.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDialogFragment.kt
index 43a9e56a9..7a551c169 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsDialogFragment.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsDialogFragment.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.active_sessions
+package org.futo.circles.settings.feature.active_sessions
 
 import android.os.Bundle
 import android.view.View
@@ -6,18 +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.R
 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.databinding.DialogFragmentActiveSessionsBinding
-import org.futo.circles.feature.settings.active_sessions.list.ActiveSessionClickListener
-import org.futo.circles.feature.settings.active_sessions.list.ActiveSessionsAdapter
 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
 
 @AndroidEntryPoint
 class ActiveSessionsDialogFragment :
diff --git a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsViewModel.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsViewModel.kt
similarity index 95%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsViewModel.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsViewModel.kt
index 75f7ddee0..e8570aa6b 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/ActiveSessionsViewModel.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/ActiveSessionsViewModel.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.active_sessions
+package org.futo.circles.settings.feature.active_sessions
 
 import androidx.lifecycle.ViewModel
 import androidx.lifecycle.asLiveData
diff --git a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/list/ActiveSessionsAdapter.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsAdapter.kt
similarity index 85%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/list/ActiveSessionsAdapter.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsAdapter.kt
index 20235346c..72db36768 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/list/ActiveSessionsAdapter.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsAdapter.kt
@@ -1,10 +1,10 @@
-package org.futo.circles.feature.settings.active_sessions.list
+package org.futo.circles.settings.feature.active_sessions.list
 
 import android.view.ViewGroup
 import org.futo.circles.core.list.BaseRvAdapter
-import org.futo.circles.model.ActiveSession
-import org.futo.circles.model.ActiveSessionListItem
-import org.futo.circles.model.SessionHeader
+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/app/src/main/java/org/futo/circles/feature/settings/active_sessions/list/ActiveSessionsViewHolder.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsViewHolder.kt
similarity index 85%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/list/ActiveSessionsViewHolder.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsViewHolder.kt
index 59a4ac107..088af949d 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/list/ActiveSessionsViewHolder.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/list/ActiveSessionsViewHolder.kt
@@ -1,16 +1,16 @@
-package org.futo.circles.feature.settings.active_sessions.list
+package org.futo.circles.settings.feature.active_sessions.list
 
 import android.view.View
 import android.view.ViewGroup
 import androidx.recyclerview.widget.RecyclerView
-import org.futo.circles.R
 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.databinding.ListItemActiveSessionBinding
-import org.futo.circles.model.ActiveSession
-import org.futo.circles.model.ActiveSessionListItem
-import org.futo.circles.model.SessionHeader
+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/app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/VerifySessionDialogFragment.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionDialogFragment.kt
similarity index 88%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/VerifySessionDialogFragment.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionDialogFragment.kt
index 615333fbe..506f892ab 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/VerifySessionDialogFragment.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionDialogFragment.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.active_sessions.verify
+package org.futo.circles.settings.feature.active_sessions.verify
 
 import android.Manifest
 import android.app.Activity
@@ -7,7 +7,6 @@ import android.view.View
 import androidx.activity.result.contract.ActivityResultContracts
 import androidx.fragment.app.viewModels
 import dagger.hilt.android.AndroidEntryPoint
-import org.futo.circles.R
 import org.futo.circles.core.extensions.gone
 import org.futo.circles.core.extensions.observeData
 import org.futo.circles.core.extensions.onBackPressed
@@ -16,12 +15,13 @@ 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.databinding.DialogFragmentVerifySessionBinding
-import org.futo.circles.feature.settings.active_sessions.verify.qr.QrScannerActivity
-import org.futo.circles.model.QrCanceled
-import org.futo.circles.model.QrLoading
-import org.futo.circles.model.QrReady
-import org.futo.circles.model.QrSuccess
+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/app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/VerifySessionViewModel.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt
similarity index 91%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/VerifySessionViewModel.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt
index 2f74ea72a..5814abfec 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/VerifySessionViewModel.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/VerifySessionViewModel.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.active_sessions.verify
+package org.futo.circles.settings.feature.active_sessions.verify
 
 import android.content.Context
 import androidx.lifecycle.MutableLiveData
@@ -6,10 +6,14 @@ import androidx.lifecycle.SavedStateHandle
 import androidx.lifecycle.ViewModel
 import dagger.hilt.android.lifecycle.HiltViewModel
 import dagger.hilt.android.qualifiers.ApplicationContext
-import org.futo.circles.R
 import org.futo.circles.core.extensions.getOrThrow
 import org.futo.circles.core.provider.MatrixSessionProvider
-import org.futo.circles.model.*
+import org.futo.circles.settings.R
+import org.futo.circles.settings.model.QrCanceled
+import org.futo.circles.settings.model.QrLoading
+import org.futo.circles.settings.model.QrReady
+import org.futo.circles.settings.model.QrState
+import org.futo.circles.settings.model.QrSuccess
 import org.matrix.android.sdk.api.session.crypto.verification.*
 import javax.inject.Inject
 
@@ -56,7 +60,6 @@ class VerifySessionViewModel @Inject constructor(
         transactionUpdated(tx)
     }
 
-    @Suppress("KotlinConstantConditions")
     override fun transactionUpdated(tx: VerificationTransaction) {
         when (val state = tx.state) {
             is VerificationTxState.Cancelled -> qrStateLiveData.postValue(QrCanceled(state.cancelCode.humanReadable))
diff --git a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/qr/QrScannerActivity.kt b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/qr/QrScannerActivity.kt
similarity index 94%
rename from app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/qr/QrScannerActivity.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/qr/QrScannerActivity.kt
index 30b013999..af6d60f05 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/active_sessions/verify/qr/QrScannerActivity.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/active_sessions/verify/qr/QrScannerActivity.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.active_sessions.verify.qr
+package org.futo.circles.settings.feature.active_sessions.verify.qr
 
 import android.app.Activity
 import android.content.Intent
@@ -10,11 +10,10 @@ import com.budiyev.android.codescanner.CodeScanner
 import com.budiyev.android.codescanner.DecodeCallback
 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.R
 import org.futo.circles.core.BaseActivity
-import org.futo.circles.databinding.ActivityQrScannerBinding
+import org.futo.circles.settings.R
+import org.futo.circles.settings.databinding.ActivityQrScannerBinding
 
 class QrScannerActivity : BaseActivity(R.layout.activity_qr_scanner) {
 
diff --git a/app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordDataSource.kt b/settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordDataSource.kt
similarity index 96%
rename from app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordDataSource.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordDataSource.kt
index c79019ba1..6446405c8 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordDataSource.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordDataSource.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.change_password
+package org.futo.circles.settings.feature.change_password
 
 import org.futo.circles.auth.feature.pass_phrase.create.CreatePassPhraseDataSource
 import org.futo.circles.auth.feature.pass_phrase.restore.RestoreBackupDataSource
diff --git a/app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordDialogFragment.kt b/settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordDialogFragment.kt
similarity index 94%
rename from app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordDialogFragment.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordDialogFragment.kt
index 6cd59a7d0..cfabc5fa3 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordDialogFragment.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordDialogFragment.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.change_password
+package org.futo.circles.settings.feature.change_password
 
 import android.os.Bundle
 import android.view.View
@@ -6,7 +6,6 @@ import androidx.core.widget.doAfterTextChanged
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import dagger.hilt.android.AndroidEntryPoint
-import org.futo.circles.R
 import org.futo.circles.core.extensions.getText
 import org.futo.circles.core.extensions.observeData
 import org.futo.circles.core.extensions.observeResponse
@@ -16,7 +15,8 @@ import org.futo.circles.core.extensions.showSuccess
 import org.futo.circles.core.fragment.BaseFullscreenDialogFragment
 import org.futo.circles.core.fragment.HasLoadingState
 import org.futo.circles.core.view.LoadingDialog
-import org.futo.circles.databinding.DialogFragmentChangePasswordBinding
+import org.futo.circles.settings.R
+import org.futo.circles.settings.databinding.DialogFragmentChangePasswordBinding
 
 @AndroidEntryPoint
 class ChangePasswordDialogFragment :
diff --git a/app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordViewModel.kt b/settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordViewModel.kt
similarity index 95%
rename from app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordViewModel.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordViewModel.kt
index 510abf906..2897e4281 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/change_password/ChangePasswordViewModel.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/change_password/ChangePasswordViewModel.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.change_password
+package org.futo.circles.settings.feature.change_password
 
 import androidx.lifecycle.ViewModel
 import dagger.hilt.android.lifecycle.HiltViewModel
diff --git a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileDialogFragment.kt b/settings/src/main/java/org/futo/circles/settings/feature/edit_profile/EditProfileDialogFragment.kt
similarity index 95%
rename from app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileDialogFragment.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/edit_profile/EditProfileDialogFragment.kt
index 1d620e52d..c2c03f66e 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileDialogFragment.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/edit_profile/EditProfileDialogFragment.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.profile.edit
+package org.futo.circles.settings.feature.edit_profile
 
 import android.os.Bundle
 import android.view.View
@@ -6,7 +6,6 @@ import androidx.core.widget.doAfterTextChanged
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import dagger.hilt.android.AndroidEntryPoint
-import org.futo.circles.R
 import org.futo.circles.core.extensions.getText
 import org.futo.circles.core.extensions.loadProfileIcon
 import org.futo.circles.core.extensions.notEmptyDisplayName
@@ -16,8 +15,8 @@ import org.futo.circles.core.extensions.onBackPressed
 import org.futo.circles.core.extensions.showSuccess
 import org.futo.circles.core.fragment.BaseFullscreenDialogFragment
 import org.futo.circles.core.fragment.HasLoadingState
-import org.futo.circles.databinding.DialogFragmentEditProfileBinding
 import org.futo.circles.gallery.feature.pick.AllMediaPickerHelper
+import org.futo.circles.settings.databinding.DialogFragmentEditProfileBinding
 import org.matrix.android.sdk.api.session.user.model.User
 
 @AndroidEntryPoint
diff --git a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileViewModel.kt b/settings/src/main/java/org/futo/circles/settings/feature/edit_profile/EditProfileViewModel.kt
similarity index 96%
rename from app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileViewModel.kt
rename to settings/src/main/java/org/futo/circles/settings/feature/edit_profile/EditProfileViewModel.kt
index 3786c90d8..a93e75143 100644
--- a/app/src/main/java/org/futo/circles/feature/settings/profile/edit/EditProfileViewModel.kt
+++ b/settings/src/main/java/org/futo/circles/settings/feature/edit_profile/EditProfileViewModel.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.feature.settings.profile.edit
+package org.futo.circles.settings.feature.edit_profile
 
 import android.net.Uri
 import androidx.lifecycle.MutableLiveData
diff --git a/app/src/main/java/org/futo/circles/model/ActiveSessionListItem.kt b/settings/src/main/java/org/futo/circles/settings/model/ActiveSessionListItem.kt
similarity index 95%
rename from app/src/main/java/org/futo/circles/model/ActiveSessionListItem.kt
rename to settings/src/main/java/org/futo/circles/settings/model/ActiveSessionListItem.kt
index 78d0c2069..220a972d9 100644
--- a/app/src/main/java/org/futo/circles/model/ActiveSessionListItem.kt
+++ b/settings/src/main/java/org/futo/circles/settings/model/ActiveSessionListItem.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.model
+package org.futo.circles.settings.model
 
 import org.futo.circles.core.list.IdEntity
 import org.futo.circles.core.provider.MatrixSessionProvider
diff --git a/app/src/main/java/org/futo/circles/model/QrState.kt b/settings/src/main/java/org/futo/circles/settings/model/QrState.kt
similarity index 87%
rename from app/src/main/java/org/futo/circles/model/QrState.kt
rename to settings/src/main/java/org/futo/circles/settings/model/QrState.kt
index 1d29e6264..3af5ec596 100644
--- a/app/src/main/java/org/futo/circles/model/QrState.kt
+++ b/settings/src/main/java/org/futo/circles/settings/model/QrState.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.model
+package org.futo.circles.settings.model
 
 sealed class QrState
 
diff --git a/app/src/main/java/org/futo/circles/view/ActiveSessionInfoView.kt b/settings/src/main/java/org/futo/circles/settings/view/ActiveSessionInfoView.kt
similarity index 86%
rename from app/src/main/java/org/futo/circles/view/ActiveSessionInfoView.kt
rename to settings/src/main/java/org/futo/circles/settings/view/ActiveSessionInfoView.kt
index 82f5f0bdc..2b2665420 100644
--- a/app/src/main/java/org/futo/circles/view/ActiveSessionInfoView.kt
+++ b/settings/src/main/java/org/futo/circles/settings/view/ActiveSessionInfoView.kt
@@ -1,13 +1,13 @@
-package org.futo.circles.view
+package org.futo.circles.settings.view
 
 import android.content.Context
 import android.util.AttributeSet
 import android.view.LayoutInflater
 import androidx.constraintlayout.widget.ConstraintLayout
 import org.futo.circles.core.extensions.setIsVisible
-import org.futo.circles.databinding.ViewActiveSessionInfoBinding
-import org.futo.circles.feature.settings.active_sessions.list.ActiveSessionClickListener
-import org.futo.circles.model.ActiveSession
+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,
@@ -16,7 +16,8 @@ class ActiveSessionInfoView(
 
     private val binding = ViewActiveSessionInfoBinding.inflate(LayoutInflater.from(context), this)
 
-    private var activeSessionClickListener: ActiveSessionClickListener? = null
+    private var activeSessionClickListener: ActiveSessionClickListener? =
+        null
     private var deviceId: String? = null
 
     init {
diff --git a/app/src/main/java/org/futo/circles/view/QrCodeImageView.kt b/settings/src/main/java/org/futo/circles/settings/view/QrCodeImageView.kt
similarity index 58%
rename from app/src/main/java/org/futo/circles/view/QrCodeImageView.kt
rename to settings/src/main/java/org/futo/circles/settings/view/QrCodeImageView.kt
index 51e7d036f..3c86963e5 100644
--- a/app/src/main/java/org/futo/circles/view/QrCodeImageView.kt
+++ b/settings/src/main/java/org/futo/circles/settings/view/QrCodeImageView.kt
@@ -1,4 +1,4 @@
-package org.futo.circles.view
+package org.futo.circles.settings.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.R
+import org.futo.circles.settings.R
 
 class QrCodeImageView @JvmOverloads constructor(
     context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
@@ -40,30 +40,31 @@ class QrCodeImageView @JvmOverloads constructor(
                 post { setImageBitmap(bitmap) }
             }
     }
-}
 
-private fun String.toBitMatrix(size: Int): BitMatrix {
-    return QRCodeWriter().encode(
-        this,
-        BarcodeFormat.QR_CODE,
-        size,
-        size
-    )
-}
 
-private fun BitMatrix.toBitmap(
-    @ColorInt backgroundColor: Int = Color.WHITE,
-    @ColorInt foregroundColor: Int = Color.BLACK
-): Bitmap {
-    val colorBuffer = IntArray(width * height)
-    var rowOffset = 0
-    for (y in 0 until height) {
-        for (x in 0 until width) {
-            val arrayIndex = x + rowOffset
-            colorBuffer[arrayIndex] = if (get(x, y)) foregroundColor else backgroundColor
-        }
-        rowOffset += width
+    private fun String.toBitMatrix(size: Int): BitMatrix {
+        return QRCodeWriter().encode(
+            this,
+            BarcodeFormat.QR_CODE,
+            size,
+            size
+        )
     }
 
-    return Bitmap.createBitmap(colorBuffer, width, height, Bitmap.Config.ARGB_8888)
+    private fun BitMatrix.toBitmap(
+        @ColorInt backgroundColor: Int = Color.WHITE,
+        @ColorInt foregroundColor: Int = Color.BLACK
+    ): Bitmap {
+        val colorBuffer = IntArray(width * height)
+        var rowOffset = 0
+        for (y in 0 until height) {
+            for (x in 0 until width) {
+                val arrayIndex = x + rowOffset
+                colorBuffer[arrayIndex] = if (get(x, y)) foregroundColor else backgroundColor
+            }
+            rowOffset += width
+        }
+
+        return Bitmap.createBitmap(colorBuffer, width, height, Bitmap.Config.ARGB_8888)
+    }
 }
\ No newline at end of file
-- 
GitLab