diff --git a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupHandler.kt b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupHandler.kt
index 1f70a5315de5392c13ca04a418bc184a1f34189e..51a11dd27b00cb89e359ed0b0bfb96e1b6a0b7ed 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupHandler.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsBackupHandler.kt
@@ -6,7 +6,6 @@ import bindings.Client
 import bindings.UpdateBackupFunc
 import io.xxlabs.messenger.backup.data.restore.ExtrasJson
 import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase
-import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBindings
 import io.xxlabs.messenger.repository.PreferencesRepository
 import io.xxlabs.messenger.repository.client.ClientRepository
 import io.xxlabs.messenger.support.appContext
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsRestoreHandler.kt b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsRestoreHandler.kt
index f26fb4afb11c64d90374b374d1d057d70fcd2ce3..864bde6478fd7e49bcf5035c53c510a80bb9b9a1 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsRestoreHandler.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/bindings/BindingsRestoreHandler.kt
@@ -1,6 +1,8 @@
 package io.xxlabs.messenger.backup.bindings
 
-import bindings.*
+import bindings.Bindings
+import bindings.Client
+import bindings.Contact
 import io.xxlabs.messenger.backup.data.restore.BackupReport
 import io.xxlabs.messenger.backup.data.restore.RestoreLogger
 import io.xxlabs.messenger.bindings.listeners.MessageReceivedListener
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/CloudStorage.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/CloudStorage.kt
index 0deb331d78154b132b41d31076895912b4ce2374..5fb5e342e2a84d0c94f173ca88e1ae70514496d8 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/CloudStorage.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/CloudStorage.kt
@@ -10,11 +10,13 @@ import io.xxlabs.messenger.backup.data.backup.BackupOption
 import io.xxlabs.messenger.backup.data.restore.RestoreEnvironment
 import io.xxlabs.messenger.backup.data.restore.RestoreLog
 import io.xxlabs.messenger.backup.data.restore.RestoreOption
-import io.xxlabs.messenger.backup.model.*
+import io.xxlabs.messenger.backup.model.AccountBackup
+import io.xxlabs.messenger.backup.model.BackupLocation
+import io.xxlabs.messenger.backup.model.BackupProgress
+import io.xxlabs.messenger.backup.model.BackupSnapshot
 import kotlinx.coroutines.*
 import kotlinx.coroutines.flow.MutableStateFlow
 import kotlinx.coroutines.flow.StateFlow
-import java.lang.Exception
 
 const val BACKUP_DIRECTORY_NAME = "backup"
 
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt
index 5d501b701f4b96cad50cb2c6292035ecfbfbbd25..e7ae83f6b00ecc28eadf5bbb5ed2477a6b746fdd 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/crust/Crust.kt
@@ -7,8 +7,6 @@ import io.xxlabs.messenger.backup.bindings.BackupService
 import io.xxlabs.messenger.backup.cloud.AuthHandler
 import io.xxlabs.messenger.backup.cloud.CloudStorage
 import io.xxlabs.messenger.backup.cloud.crust.login.ui.CrustLoginActivity
-import io.xxlabs.messenger.backup.cloud.sftp.login.SshCredentials
-import io.xxlabs.messenger.backup.cloud.sftp.login.ui.SshLoginActivity
 import io.xxlabs.messenger.backup.data.backup.BackupPreferencesRepository
 import io.xxlabs.messenger.backup.data.restore.RestoreEnvironment
 import io.xxlabs.messenger.backup.model.BackupLocation
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/drive/GoogleDrive.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/drive/GoogleDrive.kt
index 469dd9c0c7c3bb13632a0d0a204f3aa726f1f48a..c70d680b13970e229cc3d55c547ab821d9c2f5da 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/drive/GoogleDrive.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/drive/GoogleDrive.kt
@@ -9,19 +9,22 @@ import com.google.api.services.drive.Drive
 import com.google.api.services.drive.DriveScopes
 import com.google.api.services.drive.model.FileList
 import io.xxlabs.messenger.R
-import io.xxlabs.messenger.backup.bindings.*
+import io.xxlabs.messenger.backup.bindings.AccountArchive
+import io.xxlabs.messenger.backup.bindings.BACKUP_FILE_NAME
+import io.xxlabs.messenger.backup.bindings.BackupService
 import io.xxlabs.messenger.backup.cloud.BACKUP_DIRECTORY_NAME
 import io.xxlabs.messenger.backup.cloud.CloudStorage
 import io.xxlabs.messenger.backup.data.backup.BackupPreferencesRepository
 import io.xxlabs.messenger.backup.data.restore.RestoreEnvironment
-import io.xxlabs.messenger.backup.model.*
-import io.xxlabs.messenger.repository.PreferencesRepository
+import io.xxlabs.messenger.backup.model.BackupLocation
+import io.xxlabs.messenger.backup.model.BackupSnapshot
 import io.xxlabs.messenger.support.appContext
-import kotlinx.coroutines.*
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
 import timber.log.Timber
 import java.io.ByteArrayOutputStream
 import java.io.File
-import java.lang.Exception
 import java.util.*
 import com.google.api.services.drive.model.File as DriveFile
 
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/Dropbox.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/Dropbox.kt
index 9e4027a5d1ef76370c14331f4f6dd79631e0d743..cd344cdf2c64ebbdfc63e4d93ce49b10f7cfd409 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/Dropbox.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/Dropbox.kt
@@ -17,9 +17,12 @@ import io.xxlabs.messenger.backup.cloud.BACKUP_DIRECTORY_NAME
 import io.xxlabs.messenger.backup.cloud.CloudStorage
 import io.xxlabs.messenger.backup.data.backup.BackupPreferencesRepository
 import io.xxlabs.messenger.backup.data.restore.RestoreEnvironment
-import io.xxlabs.messenger.backup.model.*
+import io.xxlabs.messenger.backup.model.BackupLocation
+import io.xxlabs.messenger.backup.model.BackupSnapshot
 import io.xxlabs.messenger.support.appContext
-import kotlinx.coroutines.*
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
 import timber.log.Timber
 import java.io.ByteArrayOutputStream
 import java.io.File
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/DropboxAuthHandler.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/DropboxAuthHandler.kt
index a851f479fcb26a838db6f39cdf1359466643ae8c..4bf74bad8039be3c21f3cfb990aba6945b48f117 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/DropboxAuthHandler.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/dropbox/DropboxAuthHandler.kt
@@ -1,10 +1,10 @@
 package io.xxlabs.messenger.backup.cloud.dropbox
 
 import android.content.Intent
-import io.xxlabs.messenger.backup.cloud.dropbox.DropboxAuthActivity.Companion.EXTRA_DBX_CREDENTIAL
-import io.xxlabs.messenger.backup.cloud.dropbox.DropboxAuthActivity.Companion.START_OAUTH_INTENT
 import io.xxlabs.messenger.backup.cloud.AuthHandler
 import io.xxlabs.messenger.backup.cloud.AuthResultCallback
+import io.xxlabs.messenger.backup.cloud.dropbox.DropboxAuthActivity.Companion.EXTRA_DBX_CREDENTIAL
+import io.xxlabs.messenger.backup.cloud.dropbox.DropboxAuthActivity.Companion.START_OAUTH_INTENT
 import io.xxlabs.messenger.support.appContext
 import timber.log.Timber
 
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/SshClient.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/SshClient.kt
index 992e1eee23db8edbb3a6510bea10de0ca40194ac..cbd8bf2ddcd755fb8746107259b2973953c457b7 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/SshClient.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/SshClient.kt
@@ -1,6 +1,5 @@
 package io.xxlabs.messenger.backup.cloud.sftp.login
 
-import io.xxlabs.messenger.BuildConfig
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.withContext
 import net.schmizz.sshj.SSHClient
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/ui/SshLoginActivity.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/ui/SshLoginActivity.kt
index e8b8e47dcdc0c008394d6b156c17bd50a5dbf69b..f75918f4bb5ccc79b878cb15763b56d2c35534db 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/ui/SshLoginActivity.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/login/ui/SshLoginActivity.kt
@@ -2,7 +2,6 @@ package io.xxlabs.messenger.backup.cloud.sftp.login.ui
 
 import android.content.Intent
 import android.os.Bundle
-import android.widget.Toast
 import androidx.activity.viewModels
 import androidx.appcompat.app.AppCompatActivity
 import io.xxlabs.messenger.backup.cloud.sftp.login.SshCredentials
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/transfer/Sftp.kt b/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/transfer/Sftp.kt
index c1106342d43a081423ee1ebdc508279824fd2bbc..2b6abcda4d82b7ea4ba510d4e36a8c25c6c1fece 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/transfer/Sftp.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/cloud/sftp/transfer/Sftp.kt
@@ -10,13 +10,12 @@ import io.xxlabs.messenger.backup.cloud.sftp.login.SshCredentials
 import io.xxlabs.messenger.backup.cloud.sftp.login.ui.SshLoginActivity
 import io.xxlabs.messenger.backup.data.backup.BackupPreferencesRepository
 import io.xxlabs.messenger.backup.data.restore.RestoreEnvironment
-import io.xxlabs.messenger.backup.model.*
+import io.xxlabs.messenger.backup.model.BackupLocation
 import io.xxlabs.messenger.support.appContext
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
 import java.io.File
-import kotlin.Exception
 
 /**
  * Encapsulates SFTP API.
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt b/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt
index 67741c02e5d169f64dc7eb0330f49fb5fa066b69..a115e52ee695de00e764b451c09225834e472d90 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/data/BackupLocationRepository.kt
@@ -1,7 +1,6 @@
 package io.xxlabs.messenger.backup.data
 
 import io.xxlabs.messenger.backup.bindings.BackupService
-import io.xxlabs.messenger.backup.cloud.crust.BindingsCrustMediator
 import io.xxlabs.messenger.backup.cloud.crust.Crust
 import io.xxlabs.messenger.backup.cloud.drive.GoogleDrive
 import io.xxlabs.messenger.backup.cloud.dropbox.Dropbox
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/model/AccountBackup.kt b/app/src/main/java/io/xxlabs/messenger/backup/model/AccountBackup.kt
index a43a4c777e62511f4c76eee83e2fd08fc194b4a8..c659c32b682dda4f007961060c13036162e76222 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/model/AccountBackup.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/model/AccountBackup.kt
@@ -4,7 +4,6 @@ import androidx.lifecycle.LiveData
 import io.xxlabs.messenger.backup.cloud.AuthHandler
 import io.xxlabs.messenger.backup.cloud.AuthResultCallback
 import kotlinx.coroutines.flow.StateFlow
-import java.io.Serializable
 
 /**
  * An account backup or restore option.
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailFragment.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailFragment.kt
index da3ba2f3516861c2dbbb19d39d2a52f77c9c8f2c..281946994c4a492daf3cc46ce8422125591440d7 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailFragment.kt
@@ -1,20 +1,20 @@
 package io.xxlabs.messenger.backup.ui.backup
 
 import android.os.Bundle
-import androidx.fragment.app.Fragment
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.databinding.DataBindingUtil
+import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import io.xxlabs.messenger.R
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialog
-import io.xxlabs.messenger.ui.dialog.radiobutton.RadioButtonDialog
-import io.xxlabs.messenger.ui.dialog.radiobutton.RadioButtonDialogUI
 import io.xxlabs.messenger.databinding.FragmentBackupDetailBinding
 import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.support.extensions.toast
+import io.xxlabs.messenger.ui.dialog.radiobutton.RadioButtonDialog
+import io.xxlabs.messenger.ui.dialog.radiobutton.RadioButtonDialogUI
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialog
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 import javax.inject.Inject
 
 /**
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailUI.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailUI.kt
index 36e8cfdc7da37b05b693012fa8e97ab852de3b40..7630ba78778c8e02a1af6486855858186ab3af73 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailUI.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailUI.kt
@@ -4,8 +4,8 @@ import android.text.Spanned
 import androidx.lifecycle.LiveData
 import io.xxlabs.messenger.backup.data.backup.BackupSettings
 import io.xxlabs.messenger.backup.model.AccountBackup
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 import io.xxlabs.messenger.ui.dialog.radiobutton.RadioButtonDialogUI
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 
 interface BackupPasswordUI {
     val isBackupReady: LiveData<Boolean>
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailViewModel.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailViewModel.kt
index db71456b91a1c501ae9c14b36876665824b3070e..3ad3f1ea3de42a278b43e27867ec546e2235dfbb 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupDetailViewModel.kt
@@ -11,11 +11,12 @@ import io.xxlabs.messenger.backup.data.BackupSource
 import io.xxlabs.messenger.backup.data.backup.BackupManager
 import io.xxlabs.messenger.backup.data.backup.BackupOption
 import io.xxlabs.messenger.backup.data.backup.BackupSettings
-import io.xxlabs.messenger.backup.data.backup.BackupSettings.*
+import io.xxlabs.messenger.backup.data.backup.BackupSettings.Frequency
+import io.xxlabs.messenger.backup.data.backup.BackupSettings.Network
 import io.xxlabs.messenger.backup.model.AccountBackup
+import io.xxlabs.messenger.support.appContext
 import io.xxlabs.messenger.ui.dialog.radiobutton.RadioButtonDialogOption
 import io.xxlabs.messenger.ui.dialog.radiobutton.RadioButtonDialogUI
-import io.xxlabs.messenger.support.appContext
 
 class BackupDetailViewModel @AssistedInject constructor(
     backupManager: BackupManager,
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsFragment.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsFragment.kt
index 794271a1b913624a6190edae870fdb80a24c1ea2..82b719d53abd28f58f43f9ed838e7a3a898fa2ef 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsFragment.kt
@@ -1,10 +1,10 @@
 package io.xxlabs.messenger.backup.ui.backup
 
 import android.os.Bundle
-import androidx.fragment.app.Fragment
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.lifecycle.LifecycleOwner
 import androidx.navigation.fragment.findNavController
@@ -12,12 +12,12 @@ import androidx.recyclerview.widget.LinearLayoutManager
 import androidx.recyclerview.widget.RecyclerView
 import io.xxlabs.messenger.backup.cloud.CloudAuthentication
 import io.xxlabs.messenger.backup.data.BackupSource
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialog
 import io.xxlabs.messenger.databinding.FragmentBackupSettingsBinding
 import io.xxlabs.messenger.databinding.ListItemBackupOptionBinding
 import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.support.view.SnackBarActivity
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialog
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 import javax.inject.Inject
 
 /**
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsViewModel.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsViewModel.kt
index 2a60f2feb8cc1a3b34fe321fc3a11c7df90fbfe1..bd63d6b1c52de4159ff01ef9ba124e8dcfafe2a1 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupSettingsViewModel.kt
@@ -13,7 +13,8 @@ import io.xxlabs.messenger.backup.data.BackupSource
 import io.xxlabs.messenger.backup.data.backup.BackupManager
 import io.xxlabs.messenger.backup.data.backup.BackupOption
 import io.xxlabs.messenger.backup.data.backup.BackupSettings
-import io.xxlabs.messenger.backup.model.*
+import io.xxlabs.messenger.backup.model.AccountBackup
+import io.xxlabs.messenger.backup.model.BackupLocation
 import io.xxlabs.messenger.backup.ui.list.LocationOption
 import io.xxlabs.messenger.support.appContext
 
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupViewModel.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupViewModel.kt
index 68f2f1883adcfe08e70ad95807338bf3b73a90a0..59c617d5ac23d6bbdbdc11c5a4596141888c7e75 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/backup/BackupViewModel.kt
@@ -9,10 +9,10 @@ import io.xxlabs.messenger.R
 import io.xxlabs.messenger.backup.data.backup.BackupManager
 import io.xxlabs.messenger.backup.data.backup.BackupOption
 import io.xxlabs.messenger.backup.data.backup.BackupTaskListener
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 import io.xxlabs.messenger.support.appContext
 import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI
 import io.xxlabs.messenger.ui.dialog.info.TwoButtonInfoDialogUI
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
 import kotlinx.coroutines.withContext
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/list/BackupLocationsViewModel.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/list/BackupLocationsViewModel.kt
index 3ffe3c1022920adb1f52616d21452e367f226969..8e1b6d748e2fcdaa7381762655346a169e614219 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/list/BackupLocationsViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/list/BackupLocationsViewModel.kt
@@ -4,12 +4,12 @@ import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import androidx.lifecycle.ViewModel
 import io.xxlabs.messenger.R
-import io.xxlabs.messenger.backup.cloud.CloudAuthentication
-import io.xxlabs.messenger.backup.model.AccountBackup
-import io.xxlabs.messenger.backup.model.BackupLocation
 import io.xxlabs.messenger.backup.cloud.AuthResultCallback
+import io.xxlabs.messenger.backup.cloud.CloudAuthentication
 import io.xxlabs.messenger.backup.data.AccountBackupDataSource
 import io.xxlabs.messenger.backup.data.BackupSource
+import io.xxlabs.messenger.backup.model.AccountBackup
+import io.xxlabs.messenger.backup.model.BackupLocation
 import io.xxlabs.messenger.support.appContext
 import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI
 import io.xxlabs.messenger.ui.dialog.info.TwoButtonInfoDialogUI
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/list/RestoreListFragment.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/list/RestoreListFragment.kt
index f77f35d7a9d688917f8e239a36e58a08b087fa4d..97c756cb5bb77ddac236954dbbba16081113103e 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/list/RestoreListFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/list/RestoreListFragment.kt
@@ -10,7 +10,6 @@ import com.google.firebase.crashlytics.FirebaseCrashlytics
 import io.xxlabs.messenger.R
 import io.xxlabs.messenger.backup.data.BackupSource
 import io.xxlabs.messenger.ui.dialog.warning.showConfirmDialog
-import java.lang.Exception
 import javax.inject.Inject
 
 /**
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailFragment.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailFragment.kt
index 1bf5128c2e08f00547de29e0bd53ab0723f9bc12..f1684df1bbfd4af3fe3f207d11895aadae25c7a9 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailFragment.kt
@@ -9,12 +9,12 @@ import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.navigation.fragment.findNavController
 import io.xxlabs.messenger.R
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialog
 import io.xxlabs.messenger.databinding.FragmentRestoreDetailBinding
 import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.support.extensions.toast
 import io.xxlabs.messenger.ui.base.BaseKeystoreActivity
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialog
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 import io.xxlabs.messenger.ui.dialog.warning.showConfirmDialog
 import io.xxlabs.messenger.ui.intro.registration.success.RegistrationStep
 import javax.inject.Inject
diff --git a/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailViewModel.kt b/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailViewModel.kt
index 0860884c0308ae6c255db604297f7e9136605d91..b75400039f31a859da4ef96e7b68b14eca1941e9 100644
--- a/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/backup/ui/restore/RestoreDetailViewModel.kt
@@ -12,12 +12,14 @@ import io.xxlabs.messenger.backup.data.restore.RestoreLog
 import io.xxlabs.messenger.backup.data.restore.RestoreManager
 import io.xxlabs.messenger.backup.model.AccountBackup
 import io.xxlabs.messenger.backup.ui.backup.BackupPassword
-import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
 import io.xxlabs.messenger.bindings.wrapper.bindings.BindingsWrapperBindings
 import io.xxlabs.messenger.support.appContext
 import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI
 import io.xxlabs.messenger.ui.dialog.info.TwoButtonInfoDialogUI
-import kotlinx.coroutines.*
+import io.xxlabs.messenger.ui.dialog.textinput.TextInputDialogUI
+import kotlinx.coroutines.CoroutineExceptionHandler
+import kotlinx.coroutines.Job
+import kotlinx.coroutines.launch
 
 class RestoreDetailViewModel @AssistedInject constructor(
     private val restoreManager: RestoreManager,
diff --git a/app/src/main/java/io/xxlabs/messenger/data/room/model/Contact.kt b/app/src/main/java/io/xxlabs/messenger/data/room/model/Contact.kt
index 45fb236e55c34b0cc41ea1920e756dd75c2f5745..77cb603180172cc6a922d33e78284c6cce6fd278 100644
--- a/app/src/main/java/io/xxlabs/messenger/data/room/model/Contact.kt
+++ b/app/src/main/java/io/xxlabs/messenger/data/room/model/Contact.kt
@@ -1,7 +1,6 @@
 package io.xxlabs.messenger.data.room.model
 
 import android.graphics.Bitmap
-import io.xxlabs.messenger.data.data.Country
 import io.xxlabs.messenger.requests.ui.list.adapter.ItemThumbnail
 import io.xxlabs.messenger.support.view.BitmapResolver
 import kotlinx.coroutines.Dispatchers
diff --git a/app/src/main/java/io/xxlabs/messenger/data/room/model/ContactData.kt b/app/src/main/java/io/xxlabs/messenger/data/room/model/ContactData.kt
index bc484ff5fe4a9706709e37f570ed01736c22f582..4a4aeccd0f64aae2242cd5fec28aac445f5f9d2a 100644
--- a/app/src/main/java/io/xxlabs/messenger/data/room/model/ContactData.kt
+++ b/app/src/main/java/io/xxlabs/messenger/data/room/model/ContactData.kt
@@ -8,8 +8,6 @@ import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase
 import io.xxlabs.messenger.data.datatype.RequestStatus
 import io.xxlabs.messenger.support.util.Utils
 import timber.log.Timber
-import java.io.Serializable
-import java.util.*
 
 @Entity(
     tableName = "Contacts",
diff --git a/app/src/main/java/io/xxlabs/messenger/data/room/model/RequestData.kt b/app/src/main/java/io/xxlabs/messenger/data/room/model/RequestData.kt
index 5641fba23d6b680d78d6f32c1b6163d85f9c42f5..44f6a0a3817adc48208c9565ae0be1856afcce50 100644
--- a/app/src/main/java/io/xxlabs/messenger/data/room/model/RequestData.kt
+++ b/app/src/main/java/io/xxlabs/messenger/data/room/model/RequestData.kt
@@ -2,7 +2,6 @@ package io.xxlabs.messenger.data.room.model
 
 import androidx.room.ColumnInfo
 import androidx.room.Entity
-import androidx.room.Index
 import androidx.room.PrimaryKey
 import io.xxlabs.messenger.requests.model.Request
 
diff --git a/app/src/main/java/io/xxlabs/messenger/di/modules/FragmentMainBuildersModule.kt b/app/src/main/java/io/xxlabs/messenger/di/modules/FragmentMainBuildersModule.kt
index a59f54ebd354cb01967a20d48484c7d9868c0b6e..369ee763fa460212c511ee2d743ed07e057e38c2 100644
--- a/app/src/main/java/io/xxlabs/messenger/di/modules/FragmentMainBuildersModule.kt
+++ b/app/src/main/java/io/xxlabs/messenger/di/modules/FragmentMainBuildersModule.kt
@@ -20,9 +20,9 @@ import io.xxlabs.messenger.requests.ui.send.SendRequestDialog
 import io.xxlabs.messenger.search.*
 import io.xxlabs.messenger.ui.main.chat.PrivateMessagesFragment
 import io.xxlabs.messenger.ui.main.chats.ChatsFragment
-import io.xxlabs.messenger.ui.main.contacts.list.ContactListFragment
 import io.xxlabs.messenger.ui.main.contacts.PhotoSelectorFragment
 import io.xxlabs.messenger.ui.main.contacts.invitation.ContactInvitation
+import io.xxlabs.messenger.ui.main.contacts.list.ContactListFragment
 import io.xxlabs.messenger.ui.main.contacts.profile.ContactProfileFragment
 import io.xxlabs.messenger.ui.main.contacts.select.ContactSelectionFragment
 import io.xxlabs.messenger.ui.main.contacts.success.ContactSuccessFragment
diff --git a/app/src/main/java/io/xxlabs/messenger/notifications/MessagingService.kt b/app/src/main/java/io/xxlabs/messenger/notifications/MessagingService.kt
index 967ef11d4b2cd52f6e50c67846a68dcc0058b2b1..c951aa6ca68a641d340345a03d9e3026f351f209 100644
--- a/app/src/main/java/io/xxlabs/messenger/notifications/MessagingService.kt
+++ b/app/src/main/java/io/xxlabs/messenger/notifications/MessagingService.kt
@@ -27,8 +27,8 @@ import io.xxlabs.messenger.requests.ui.RequestsFragment
 import io.xxlabs.messenger.support.util.value
 import io.xxlabs.messenger.ui.intro.splash.SplashScreenPlaceholderActivity
 import io.xxlabs.messenger.ui.main.MainActivity
-import io.xxlabs.messenger.ui.main.MainActivity.Companion.INTENT_NOTIFICATION_CLICK
 import io.xxlabs.messenger.ui.main.MainActivity.Companion.INTENT_GROUP_CHAT
+import io.xxlabs.messenger.ui.main.MainActivity.Companion.INTENT_NOTIFICATION_CLICK
 import io.xxlabs.messenger.ui.main.MainActivity.Companion.INTENT_PRIVATE_CHAT
 import io.xxlabs.messenger.ui.main.MainActivity.Companion.INTENT_REQUEST
 import kotlinx.coroutines.*
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/bindings/BindingsRequestMediator.kt b/app/src/main/java/io/xxlabs/messenger/requests/bindings/BindingsRequestMediator.kt
index 09ecfa31c43a3eac97c32dc1331132e2a4c98c55..329b5c32681fb8871fa446cc6dbe32ecc6344e75 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/bindings/BindingsRequestMediator.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/bindings/BindingsRequestMediator.kt
@@ -1,6 +1,5 @@
 package io.xxlabs.messenger.requests.bindings
 
-import com.dropbox.core.android.AuthActivity.result
 import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase
 import io.xxlabs.messenger.data.room.model.Contact
 import io.xxlabs.messenger.repository.base.BaseRepository
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt
index b94bb691eba5b4aad49af1dc9e54d6d87a26b376..8be1e655a50183347ad0127aacb621c343ebd628 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/data/LocalRequestsDataSource.kt
@@ -1,8 +1,6 @@
 package io.xxlabs.messenger.requests.data
 
 import io.xxlabs.messenger.data.room.model.RequestData
-import io.xxlabs.messenger.requests.model.ContactRequest
-import io.xxlabs.messenger.requests.model.GroupInvitation
 import kotlinx.coroutines.flow.Flow
 
 interface LocalRequestsDataSource {
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt
index 76eed4ac948c874cf995982ea5e9abb3052958bd..bae78f0c492bc1a611d1dc7a49f481d1855f248d 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/data/contact/ContactRequestRepository.kt
@@ -10,11 +10,12 @@ import io.xxlabs.messenger.requests.bindings.VerificationResult
 import io.xxlabs.messenger.requests.data.LocalRequestsDataSource
 import io.xxlabs.messenger.requests.data.RequestDataSource
 import io.xxlabs.messenger.requests.model.ContactRequest
-import io.xxlabs.messenger.support.appContext
-import io.xxlabs.messenger.support.extensions.toast
 import io.xxlabs.messenger.support.util.value
 import kotlinx.coroutines.*
-import kotlinx.coroutines.flow.*
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.take
 import timber.log.Timber
 import javax.inject.Inject
 
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/contact/RequestMigrator.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/contact/RequestMigrator.kt
index c5fc10c23606c878dd0e6c95c39251262ab873d6..d3f1f6278127cc09360635cb0936f55186dedf5b 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/data/contact/RequestMigrator.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/data/contact/RequestMigrator.kt
@@ -5,7 +5,9 @@ import io.xxlabs.messenger.data.room.model.Contact
 import io.xxlabs.messenger.repository.DaoRepository
 import io.xxlabs.messenger.repository.PreferencesRepository
 import io.xxlabs.messenger.support.util.value
-import kotlinx.coroutines.*
+import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.launch
+import kotlinx.coroutines.withContext
 import timber.log.Timber
 
 object RequestMigrator {
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/data/group/GroupRequestRepository.kt b/app/src/main/java/io/xxlabs/messenger/requests/data/group/GroupRequestRepository.kt
index 766aae07d2566b442037f7bd8e49f2f611a1222b..2d45c9c4af698ffd81df704b4c53e070178273a8 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/data/group/GroupRequestRepository.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/data/group/GroupRequestRepository.kt
@@ -9,7 +9,10 @@ import io.xxlabs.messenger.requests.data.RequestDataSource
 import io.xxlabs.messenger.requests.model.GroupInvitation
 import io.xxlabs.messenger.support.util.value
 import kotlinx.coroutines.*
-import kotlinx.coroutines.flow.*
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.collectLatest
+import kotlinx.coroutines.flow.map
+import kotlinx.coroutines.flow.take
 import javax.inject.Inject
 
 class GroupRequestsRepository @Inject constructor(
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsFragment.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsFragment.kt
index 5f5cd42142c5552586d305ad5461fc1f3a361d06..827833331c042845813e42b265555ee81ff82ae0 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsFragment.kt
@@ -45,7 +45,6 @@ import kotlinx.android.synthetic.main.fragment_requests.*
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.launch
-import java.lang.Exception
 import javax.inject.Inject
 
 open class RequestsFragment : BaseFragment() {
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsViewModel.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsViewModel.kt
index 3873c490cb801c1fc3ac1310b7c9e1b62e2502b6..b1f611653c55a0257261b23c6397624f6306e7b7 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/RequestsViewModel.kt
@@ -14,9 +14,9 @@ import io.xxlabs.messenger.requests.data.contact.ContactRequestsRepository
 import io.xxlabs.messenger.requests.data.group.GroupRequestsRepository
 import io.xxlabs.messenger.requests.model.ContactRequest
 import io.xxlabs.messenger.requests.model.GroupInvitation
+import io.xxlabs.messenger.requests.ui.accepted.RequestAcceptedUI
 import io.xxlabs.messenger.requests.ui.accepted.contact.RequestAccepted
 import io.xxlabs.messenger.requests.ui.accepted.contact.RequestAcceptedListener
-import io.xxlabs.messenger.requests.ui.accepted.RequestAcceptedUI
 import io.xxlabs.messenger.requests.ui.accepted.group.InvitationAccepted
 import io.xxlabs.messenger.requests.ui.accepted.group.InvitationAcceptedListener
 import io.xxlabs.messenger.requests.ui.details.contact.RequestDetails
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/accepted/group/InvitationAcceptedDialog.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/accepted/group/InvitationAcceptedDialog.kt
index 31dbcca8ba3bbf373c122ce36ee52e70c9d9daa5..01c7cff4a4ac4b2c8a6c406ee8ef048986ebfadb 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/accepted/group/InvitationAcceptedDialog.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/accepted/group/InvitationAcceptedDialog.kt
@@ -14,7 +14,6 @@ import io.xxlabs.messenger.data.room.model.Group
 import io.xxlabs.messenger.databinding.ComponentRequestAcceptedDialogBinding
 import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.requests.ui.RequestsViewModel
-import io.xxlabs.messenger.requests.ui.details.contact.RequestDetailsDialog
 import javax.inject.Inject
 
 /**
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetails.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetails.kt
index af66c140279cc9e49466c3f1ded4a40f6797312a..5aad8d898453250d1a0c5290836664ff12f64b63 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetails.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetails.kt
@@ -4,7 +4,6 @@ import androidx.lifecycle.LiveData
 import androidx.lifecycle.MutableLiveData
 import io.xxlabs.messenger.R
 import io.xxlabs.messenger.requests.model.GroupInvitation
-import io.xxlabs.messenger.requests.ui.details.group.adapter.MemberItem
 import io.xxlabs.messenger.requests.ui.list.adapter.GroupInviteItem
 
 /**
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetailsDialog.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetailsDialog.kt
index a3e4442c4cfc573586779bfcd4a386aea3c029dc..073ca29a86a887bdf3346811052e2790068784e5 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetailsDialog.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/details/group/InvitationDetailsDialog.kt
@@ -19,7 +19,6 @@ import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.requests.model.GroupInvitation
 import io.xxlabs.messenger.requests.ui.RequestsViewModel
 import io.xxlabs.messenger.requests.ui.details.group.adapter.MembersAdapter
-import kotlinx.coroutines.flow.collectLatest
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.launch
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/list/RequestListFragment.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/list/RequestListFragment.kt
index aa431b571be0301b3437458eda2c30e453ac4921..70f73f2a669ff23c3b9ae7792890ffdd3b530c32 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/list/RequestListFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/list/RequestListFragment.kt
@@ -1,32 +1,23 @@
 package io.xxlabs.messenger.requests.ui.list
 
 import android.os.Bundle
-import androidx.fragment.app.Fragment
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
+import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
 import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.lifecycleScope
 import androidx.lifecycle.repeatOnLifecycle
-import androidx.navigation.fragment.findNavController
 import androidx.recyclerview.widget.LinearLayoutManager
-import io.xxlabs.messenger.data.room.model.Contact
-import io.xxlabs.messenger.data.room.model.Group
 import io.xxlabs.messenger.databinding.FragmentRequestListBinding
 import io.xxlabs.messenger.di.utils.Injectable
-import io.xxlabs.messenger.requests.model.ContactRequest
-import io.xxlabs.messenger.requests.model.GroupInvitation
 import io.xxlabs.messenger.requests.ui.RequestsViewModel
-import io.xxlabs.messenger.requests.ui.accepted.contact.RequestAcceptedDialog
-import io.xxlabs.messenger.requests.ui.accepted.group.InvitationAcceptedDialog
-import io.xxlabs.messenger.requests.ui.details.contact.RequestDetailsDialog
-import io.xxlabs.messenger.requests.ui.details.group.InvitationDetailsDialog
 import io.xxlabs.messenger.requests.ui.list.adapter.RequestItem
 import io.xxlabs.messenger.requests.ui.list.adapter.RequestsAdapter
-import io.xxlabs.messenger.support.extensions.toBase64String
-import kotlinx.coroutines.flow.*
+import kotlinx.coroutines.flow.Flow
+import kotlinx.coroutines.flow.collect
 import kotlinx.coroutines.launch
 import javax.inject.Inject
 
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItem.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItem.kt
index 8bc44075ba7f574fb47810d831bd51813af9076e..2f118879a842ff61c3b5f3c35a568ac72afc27a0 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItem.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItem.kt
@@ -4,7 +4,6 @@ import android.graphics.Bitmap
 import androidx.annotation.IdRes
 import io.xxlabs.messenger.R
 import io.xxlabs.messenger.data.datatype.RequestStatus.*
-import io.xxlabs.messenger.data.room.model.ContactData
 import io.xxlabs.messenger.data.room.model.formattedEmail
 import io.xxlabs.messenger.data.room.model.formattedPhone
 import io.xxlabs.messenger.requests.model.ContactRequest
diff --git a/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItemViewHolder.kt b/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItemViewHolder.kt
index c6fcb9191c8692f73adb18d2ac220236f29b98bc..3820e603d6835b1bf5247d10e518c240694d0678 100644
--- a/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItemViewHolder.kt
+++ b/app/src/main/java/io/xxlabs/messenger/requests/ui/list/adapter/RequestItemViewHolder.kt
@@ -6,12 +6,7 @@ import android.view.ViewGroup
 import androidx.recyclerview.widget.RecyclerView
 import com.google.firebase.crashlytics.FirebaseCrashlytics
 import io.xxlabs.messenger.R
-import io.xxlabs.messenger.databinding.ListItemEmptyPlaceholderBinding
-import io.xxlabs.messenger.databinding.ListItemHiddenRequestsToggleBinding
-import io.xxlabs.messenger.databinding.ListItemRequestBinding
-import io.xxlabs.messenger.databinding.ListItemRequestSearchResultBinding
-import io.xxlabs.messenger.databinding.ListItemSectionDividerBinding
-import timber.log.Timber
+import io.xxlabs.messenger.databinding.*
 import java.io.InvalidObjectException
 
 abstract class RequestItemViewHolder(view: View) : RecyclerView.ViewHolder(view) {
diff --git a/app/src/main/java/io/xxlabs/messenger/search/FactSearchFragment.kt b/app/src/main/java/io/xxlabs/messenger/search/FactSearchFragment.kt
index 5b5e87be38e3cdadf3c5a8f8dc16d068b0f5f459..fb5a1c6cf5fec749492fe4a0a158f889f13ac9f3 100644
--- a/app/src/main/java/io/xxlabs/messenger/search/FactSearchFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/search/FactSearchFragment.kt
@@ -1,18 +1,14 @@
 package io.xxlabs.messenger.search
 
 import android.os.Bundle
-import android.text.Editable
-import android.text.SpannableString
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import android.view.inputmethod.EditorInfo
 import androidx.fragment.app.Fragment
 import androidx.fragment.app.viewModels
-import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.ViewModelProvider
 import androidx.lifecycle.lifecycleScope
-import androidx.lifecycle.repeatOnLifecycle
 import androidx.recyclerview.widget.LinearLayoutManager
 import com.google.android.material.textfield.TextInputEditText
 import io.xxlabs.messenger.databinding.FragmentFactSearchBinding
diff --git a/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt b/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt
index 59ef598bbaaa39d9cee5892050867dfa3e609a85..6e2cc25851296f21c1182a7e7203469cc32d65d0 100644
--- a/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/search/UserSearchFragment.kt
@@ -17,7 +17,6 @@ import com.google.android.material.tabs.TabLayout
 import com.google.android.material.tabs.TabLayout.OnTabSelectedListener
 import com.google.android.material.tabs.TabLayoutMediator
 import io.xxlabs.messenger.R
-import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperBase
 import io.xxlabs.messenger.data.room.model.ContactData
 import io.xxlabs.messenger.databinding.FragmentUserSearchBinding
 import io.xxlabs.messenger.requests.ui.RequestsFragment
@@ -41,7 +40,6 @@ import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 import kotlinx.coroutines.launch
 import timber.log.Timber
-import java.lang.Exception
 
 class UserSearchFragment : RequestsFragment() {
 
diff --git a/app/src/main/java/io/xxlabs/messenger/support/view/SingleClickButton.kt b/app/src/main/java/io/xxlabs/messenger/support/view/SingleClickButton.kt
index d1b2a22093221ef37fe8c9a2ac49e3535ae8cc74..0b5ae9a4d5276e89f4693fd64ad6128934036fc4 100644
--- a/app/src/main/java/io/xxlabs/messenger/support/view/SingleClickButton.kt
+++ b/app/src/main/java/io/xxlabs/messenger/support/view/SingleClickButton.kt
@@ -2,8 +2,7 @@ package io.xxlabs.messenger.support.view
 
 import android.content.Context
 import android.util.AttributeSet
-import android.widget.ImageView
-import android.widget.TextView
+import android.view.View.OnClickListener
 import androidx.appcompat.widget.AppCompatButton
 import androidx.appcompat.widget.AppCompatImageView
 import androidx.appcompat.widget.AppCompatTextView
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/base/BasePhotoFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/base/BasePhotoFragment.kt
index c5f9ecb635789d63ddc490bd3a72b7f293b893d9..602a44cca17f5773648ad3e3cf3a4b90171c8a36 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/base/BasePhotoFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/base/BasePhotoFragment.kt
@@ -29,7 +29,6 @@ import io.xxlabs.messenger.R
 import io.xxlabs.messenger.media.CameraProvider
 import io.xxlabs.messenger.media.DeviceStorageProvider
 import io.xxlabs.messenger.media.MediaCallback
-import io.xxlabs.messenger.media.MicrophoneProvider
 import io.xxlabs.messenger.support.dialog.PopupActionDialog
 import io.xxlabs.messenger.support.extensions.toast
 import io.xxlabs.messenger.support.view.BitmapResolver
@@ -38,7 +37,6 @@ import timber.log.Timber
 import java.io.ByteArrayOutputStream
 import java.io.File
 import java.io.IOException
-import java.lang.ClassCastException
 import java.text.SimpleDateFormat
 import java.util.*
 
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/dialog/action/ActionDialogLauncher.kt b/app/src/main/java/io/xxlabs/messenger/ui/dialog/action/ActionDialogLauncher.kt
index 6826a1a0aca7c6ef16680839ad98c4cc3252bdec..c68c9c98980fd9276e71a2ba96b5d36d6311ea36 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/dialog/action/ActionDialogLauncher.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/dialog/action/ActionDialogLauncher.kt
@@ -1,8 +1,8 @@
 package io.xxlabs.messenger.ui.dialog.action
 
 import androidx.fragment.app.Fragment
-import io.xxlabs.messenger.ui.dialog.warning.WarningDialogUI
 import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI
+import io.xxlabs.messenger.ui.dialog.warning.WarningDialogUI
 
 /**
  * Launches an ActionDialog with a positive button.
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/dialog/textinput/TextInputDialog.kt b/app/src/main/java/io/xxlabs/messenger/ui/dialog/textinput/TextInputDialog.kt
index f1d30af49192eab55c2f2ca26c0247b8175ecea9..cd0f0e623c230bd4cac9f2cfc409675e2983d57e 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/dialog/textinput/TextInputDialog.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/dialog/textinput/TextInputDialog.kt
@@ -2,7 +2,6 @@ package io.xxlabs.messenger.ui.dialog.textinput
 
 import android.content.DialogInterface
 import android.os.Bundle
-import android.text.InputType
 import android.text.Spannable
 import android.text.SpannableStringBuilder
 import android.text.method.LinkMovementMethod
@@ -12,8 +11,6 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.databinding.DataBindingUtil
-import com.google.android.material.bottomsheet.BottomSheetBehavior
-import com.google.android.material.bottomsheet.BottomSheetDialog
 import com.google.android.material.textfield.TextInputLayout
 import io.xxlabs.messenger.R
 import io.xxlabs.messenger.databinding.ComponentTextinputDialogBinding
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt b/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt
index 08f141021cfe7eb13d03515090ef125bb3eacf81..37ce1504804c8be66b59a3d081f06df7ea05ddb5 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/global/ContactsViewModel.kt
@@ -15,9 +15,9 @@ import io.xxlabs.messenger.bindings.wrapper.contact.ContactWrapperMock
 import io.xxlabs.messenger.data.data.DataRequestState
 import io.xxlabs.messenger.data.data.PayloadWrapper
 import io.xxlabs.messenger.data.data.SimpleRequestState
-import io.xxlabs.messenger.data.datatype.RequestStatus
 import io.xxlabs.messenger.data.datatype.FactType
 import io.xxlabs.messenger.data.datatype.MessageStatus
+import io.xxlabs.messenger.data.datatype.RequestStatus
 import io.xxlabs.messenger.data.datatype.RequestStatus.*
 import io.xxlabs.messenger.data.room.model.*
 import io.xxlabs.messenger.repository.DaoRepository
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/email/RegistrationEmailFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/email/RegistrationEmailFragment.kt
index ac452d37e905808619bf6575561eeaecac4cb568..9785ceb191f5092893e446f345b4326d27d1838d 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/email/RegistrationEmailFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/email/RegistrationEmailFragment.kt
@@ -10,8 +10,8 @@ import io.xxlabs.messenger.R
 import io.xxlabs.messenger.databinding.FragmentRegistrationEmailBinding
 import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.ui.dialog.info.InfoDialog
-import io.xxlabs.messenger.ui.intro.registration.tfa.TwoFactorAuthCredentials
 import io.xxlabs.messenger.ui.intro.registration.RegistrationFlowFragment
+import io.xxlabs.messenger.ui.intro.registration.tfa.TwoFactorAuthCredentials
 
 class RegistrationEmailFragment : RegistrationFlowFragment(), Injectable {
 
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/phone/RegistrationPhoneFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/phone/RegistrationPhoneFragment.kt
index e307a437e08ced4cee15da9fd593ce773df6943f..2e30a6ff9461bc82b6a01e08bb9febdbe4cadbc5 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/phone/RegistrationPhoneFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/phone/RegistrationPhoneFragment.kt
@@ -11,8 +11,8 @@ import io.xxlabs.messenger.data.data.Country
 import io.xxlabs.messenger.databinding.FragmentRegistrationPhoneBinding
 import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.ui.dialog.info.InfoDialog
-import io.xxlabs.messenger.ui.intro.registration.tfa.TwoFactorAuthCredentials
 import io.xxlabs.messenger.ui.intro.registration.RegistrationFlowFragment
+import io.xxlabs.messenger.ui.intro.registration.tfa.TwoFactorAuthCredentials
 import io.xxlabs.messenger.ui.main.countrycode.CountryFullscreenDialog
 import io.xxlabs.messenger.ui.main.countrycode.CountrySelectionListener
 
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/tfa/RegistrationTfaFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/tfa/RegistrationTfaFragment.kt
index 0e49bb86fdcc4faf94c88e0a99c4f62b77940b9c..93441697abe95a319115648ffe0e486d2c062a95 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/tfa/RegistrationTfaFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/tfa/RegistrationTfaFragment.kt
@@ -11,8 +11,8 @@ import io.xxlabs.messenger.data.datatype.FactType
 import io.xxlabs.messenger.databinding.FragmentRegistration2faBinding
 import io.xxlabs.messenger.di.utils.Injectable
 import io.xxlabs.messenger.ui.dialog.info.InfoDialog
-import io.xxlabs.messenger.ui.intro.registration.success.RegistrationStep
 import io.xxlabs.messenger.ui.intro.registration.RegistrationFlowFragment
+import io.xxlabs.messenger.ui.intro.registration.success.RegistrationStep
 
 class RegistrationTfaFragment : RegistrationFlowFragment(), Injectable {
 
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/username/UsernameRegistration.kt b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/username/UsernameRegistration.kt
index dfc7dd9b7db233ab16d44519e03a6850c7ed7c62..742d7b021ac56b101c9ffc7f84caabe797df7756 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/username/UsernameRegistration.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/intro/registration/username/UsernameRegistration.kt
@@ -19,7 +19,6 @@ import io.xxlabs.messenger.bindings.wrapper.bindings.bindingsErrorMessage
 import io.xxlabs.messenger.repository.PreferencesRepository
 import io.xxlabs.messenger.repository.base.BaseRepository
 import io.xxlabs.messenger.support.appContext
-import io.xxlabs.messenger.support.util.value
 import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI
 import io.xxlabs.messenger.ui.dialog.info.SpanConfig
 import io.xxlabs.messenger.ui.global.NetworkViewModel
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/intro/splash/SplashScreenPlaceholderActivity.kt b/app/src/main/java/io/xxlabs/messenger/ui/intro/splash/SplashScreenPlaceholderActivity.kt
index 68bc86051046701fa28bb73cc400d609aed2159d..04be80629be5fe000008b8bbe842bf3fc6fb5ff7 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/intro/splash/SplashScreenPlaceholderActivity.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/intro/splash/SplashScreenPlaceholderActivity.kt
@@ -21,7 +21,6 @@ import io.xxlabs.messenger.ui.base.BaseInjectorActivity
 import io.xxlabs.messenger.ui.main.MainActivity
 import io.xxlabs.messenger.ui.main.MainActivity.Companion.INTENT_INVITATION
 import io.xxlabs.messenger.ui.main.MainActivity.Companion.INTENT_NOTIFICATION_CLICK
-import timber.log.Timber
 import javax.inject.Inject
 
 class SplashScreenPlaceholderActivity : BaseInjectorActivity() {
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/MainActivity.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/MainActivity.kt
index e6edbd543413526a2e6d2872c43e243821756a7d..34aab0bca2b17edc29faab45377957e5152feb2d 100755
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/MainActivity.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/MainActivity.kt
@@ -11,16 +11,16 @@ import android.graphics.Color
 import android.os.Bundle
 import android.view.*
 import android.view.inputmethod.InputMethodManager
-import android.widget.ProgressBar
 import androidx.coordinatorlayout.widget.CoordinatorLayout
 import androidx.core.os.bundleOf
 import androidx.core.view.WindowInsetsCompat
 import androidx.core.view.setPadding
-import androidx.lifecycle.*
 import androidx.lifecycle.Observer
+import androidx.lifecycle.ViewModelProvider
+import androidx.lifecycle.lifecycleScope
+import androidx.lifecycle.observe
 import androidx.navigation.NavController
 import androidx.navigation.Navigation
-import androidx.navigation.findNavController
 import androidx.navigation.ui.onNavDestinationSelected
 import com.bumptech.glide.Glide
 import com.google.android.material.shape.CornerFamily
@@ -57,11 +57,16 @@ import io.xxlabs.messenger.ui.main.chats.ChatsViewModel
 import io.xxlabs.messenger.ui.main.contacts.PhotoSelectorFragment
 import kotlinx.android.synthetic.main.activity_main.*
 import kotlinx.android.synthetic.main.component_menu.*
-import kotlinx.android.synthetic.main.fragment_delete_account.*
 import kotlinx.coroutines.flow.launchIn
 import kotlinx.coroutines.flow.onEach
 import timber.log.Timber
 import javax.inject.Inject
+import kotlin.collections.MutableList
+import kotlin.collections.MutableMap
+import kotlin.collections.mutableListOf
+import kotlin.collections.mutableMapOf
+import kotlin.collections.removeLastOrNull
+import kotlin.collections.set
 
 private val Bundle.isPrivateMessage: Boolean
     get() = getByteArray(MainActivity.INTENT_PRIVATE_CHAT) != null
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/MainViewModel.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/MainViewModel.kt
index 46fc0cea936d2422c0984425ca51214859ca2b81..a63994a6b12d3bf05440de999de7bda31e9a554f 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/MainViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/MainViewModel.kt
@@ -27,7 +27,6 @@ import io.xxlabs.messenger.repository.base.BaseRepository
 import io.xxlabs.messenger.requests.data.group.GroupInvitationData
 import io.xxlabs.messenger.requests.data.group.GroupRequestsRepository
 import io.xxlabs.messenger.requests.data.group.InvitationMigrator
-import io.xxlabs.messenger.requests.model.GroupInvitation
 import io.xxlabs.messenger.support.extensions.toBase64String
 import io.xxlabs.messenger.support.isMockVersion
 import io.xxlabs.messenger.support.util.Utils
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/chat/PrivateMessagesViewModel.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/chat/PrivateMessagesViewModel.kt
index 11e20a1957946c1dd374d56927d13137868ebf13..5a3e848ceefbb20cf84e0e5d4fcb49b0d897222f 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/chat/PrivateMessagesViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/chat/PrivateMessagesViewModel.kt
@@ -30,6 +30,7 @@ import io.xxlabs.messenger.filetransfer.*
 import io.xxlabs.messenger.repository.DaoRepository
 import io.xxlabs.messenger.repository.PreferencesRepository
 import io.xxlabs.messenger.repository.base.BaseRepository
+import io.xxlabs.messenger.support.appContext
 import io.xxlabs.messenger.support.extensions.toBase64String
 import io.xxlabs.messenger.support.isMockVersion
 import io.xxlabs.messenger.support.misc.DummyGenerator
@@ -40,9 +41,6 @@ import kotlinx.coroutines.Job
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.launch
 import timber.log.Timber
-import kotlin.NoSuchElementException
-import kotlin.collections.HashMap
-import io.xxlabs.messenger.support.appContext
 
 private const val MINIMUM_RECORDING_DURATION_MS = 1000
 
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsFragment.kt
index 39be8ce48641d74638811ee8905f14d5b7ade24e..a80259b671b7b177ae2933b52564612a999472f8 100755
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsFragment.kt
@@ -3,9 +3,6 @@ package io.xxlabs.messenger.ui.main.chats
 import android.os.Bundle
 import android.os.Handler
 import android.os.Looper
-import android.text.Editable
-import android.text.SpannableString
-import android.text.SpannableStringBuilder
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
@@ -38,7 +35,6 @@ import io.xxlabs.messenger.ui.dialog.warning.showConfirmDialog
 import io.xxlabs.messenger.ui.global.ContactsViewModel
 import io.xxlabs.messenger.ui.global.NetworkViewModel
 import io.xxlabs.messenger.ui.main.MainViewModel
-import io.xxlabs.messenger.ui.dialog.warning.showConfirmDialog
 import io.xxlabs.messenger.ui.main.chats.newConnections.NewConnectionUI
 import io.xxlabs.messenger.ui.main.chats.newConnections.NewConnectionsAdapter
 import io.xxlabs.messenger.ui.main.chats.search.SearchResultAdapter
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsViewModel.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsViewModel.kt
index 5bd5a0c261df99b358557e2f6283aafdca10b4f3..17e996568bd540ee52098a8987f223d60df4f23e 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/ChatsViewModel.kt
@@ -29,7 +29,6 @@ import kotlinx.coroutines.withContext
 import timber.log.Timber
 import java.util.*
 import javax.inject.Inject
-import kotlin.collections.HashMap
 import kotlin.collections.set
 
 class ChatsViewModel @Inject constructor(
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/newConnections/NewConnectionsAdapter.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/newConnections/NewConnectionsAdapter.kt
index 203e79a7c5fe0a05192eb2d0d29819f69001bd4d..be3ea1c070dc0a5766bc1de2ec6c8f6b202fa607 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/newConnections/NewConnectionsAdapter.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/newConnections/NewConnectionsAdapter.kt
@@ -5,8 +5,6 @@ import android.view.ViewGroup
 import androidx.recyclerview.widget.DiffUtil
 import androidx.recyclerview.widget.ListAdapter
 import androidx.recyclerview.widget.RecyclerView
-import io.xxlabs.messenger.data.room.model.ContactData
-import io.xxlabs.messenger.data.room.model.GroupData
 import io.xxlabs.messenger.databinding.ListItemNewConnectionBinding
 
 class NewConnectionsAdapter :
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResult.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResult.kt
index 061571afb540f72f6f84f3b8ab9ba841bd064e7e..c99db61f33c7f205e7e395a47e7f8fc417bc4810 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResult.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResult.kt
@@ -4,7 +4,6 @@ import io.xxlabs.messenger.data.room.model.Contact
 import io.xxlabs.messenger.data.room.model.Group
 import io.xxlabs.messenger.data.room.model.thumbnail
 import io.xxlabs.messenger.requests.ui.list.adapter.ItemThumbnail
-import io.xxlabs.messenger.support.extensions.toBase64String
 
 sealed interface SearchResultItem {
     val id: Int
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResultAdapter.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResultAdapter.kt
index b1569a832deb7f7877788bad5589703c15a209f5..a0060bcefdaa033093e6d6de6e689b8b76067015 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResultAdapter.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/chats/search/SearchResultAdapter.kt
@@ -8,7 +8,6 @@ import androidx.recyclerview.widget.RecyclerView
 import io.xxlabs.messenger.databinding.ListItemSearchResultBinding
 import io.xxlabs.messenger.databinding.ListItemSectionHeaderBinding
 import io.xxlabs.messenger.ui.main.chat.setVisibility
-import java.lang.ClassCastException
 
 class SearchResultAdapter :
     ListAdapter<SearchResultItem, RecyclerView.ViewHolder>(SearchResultDiffUtil()) {
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/deprecated/ContactsFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/deprecated/ContactsFragment.kt
index fadcf3551dc6bc164df3cd69cd1ad75f13cc4a31..c630da109ccb3f74408dd5c6e136cd6e53c9eed1 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/deprecated/ContactsFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/deprecated/ContactsFragment.kt
@@ -16,14 +16,15 @@ import io.xxlabs.messenger.data.datatype.RequestStatus
 import io.xxlabs.messenger.data.room.model.ContactData
 import io.xxlabs.messenger.support.dialog.PopupActionBottomDialog
 import io.xxlabs.messenger.support.dialog.PopupActionBottomDialogFragment
-import io.xxlabs.messenger.support.extensions.*
+import io.xxlabs.messenger.support.extensions.setInsets
+import io.xxlabs.messenger.support.extensions.setOnSingleClickListener
+import io.xxlabs.messenger.support.extensions.toast
 import io.xxlabs.messenger.support.view.LooperCircularProgressBar
 import io.xxlabs.messenger.ui.base.BaseFragment
 import io.xxlabs.messenger.ui.dialog.info.showInfoDialog
 import io.xxlabs.messenger.ui.global.ContactsViewModel
 import io.xxlabs.messenger.ui.global.NetworkViewModel
 import io.xxlabs.messenger.ui.main.MainActivity
-import io.xxlabs.messenger.ui.main.contacts.*
 import io.xxlabs.messenger.ui.main.groups.create.CreateGroupDialog
 import io.xxlabs.messenger.ui.main.groups.create.CreateGroupDialogUI
 import kotlinx.android.synthetic.main.component_toolbar_generic.*
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/Connection.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/Connection.kt
index 8900d4c9c71e1f954c1cab6dfdb5cdb6e0bc5263..d66f504dfe145c16227636b6110475f573a09160 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/Connection.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/Connection.kt
@@ -1,6 +1,9 @@
 package io.xxlabs.messenger.ui.main.contacts.list
 
-import io.xxlabs.messenger.data.room.model.*
+import io.xxlabs.messenger.data.room.model.Contact
+import io.xxlabs.messenger.data.room.model.ContactData
+import io.xxlabs.messenger.data.room.model.Group
+import io.xxlabs.messenger.data.room.model.dummyThumbnail
 import io.xxlabs.messenger.requests.ui.list.adapter.ItemThumbnail
 import io.xxlabs.messenger.support.dummy.randomString
 import kotlinx.coroutines.flow.Flow
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/ConnectionsViewModel.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/ConnectionsViewModel.kt
index 99e6925996b3e11d85713e6a9a711d6ad2f0d5b6..f646e1bf02e2ae621081466f9da685182acebc8e 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/ConnectionsViewModel.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/list/ConnectionsViewModel.kt
@@ -14,7 +14,9 @@ import io.xxlabs.messenger.support.toolbar.*
 import io.xxlabs.messenger.ui.main.contacts.select.SelectedContact
 import io.xxlabs.messenger.ui.main.contacts.select.SelectedContactListener
 import io.xxlabs.messenger.ui.main.contacts.select.SelectedContactUI
-import kotlinx.coroutines.flow.*
+import kotlinx.coroutines.flow.MutableStateFlow
+import kotlinx.coroutines.flow.combine
+import kotlinx.coroutines.flow.map
 import kotlinx.coroutines.launch
 import javax.inject.Inject
 import kotlin.math.abs
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/profile/ContactProfileFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/profile/ContactProfileFragment.kt
index 8db46f7230ee6fa2f9d62d192f9e27a90bcaef45..ee0d113067c8b60b431dd126aedd27d32c14ba5c 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/profile/ContactProfileFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/profile/ContactProfileFragment.kt
@@ -9,11 +9,11 @@ import io.xxlabs.messenger.R
 import io.xxlabs.messenger.data.data.DataRequestState
 import io.xxlabs.messenger.data.room.model.ContactData
 import io.xxlabs.messenger.support.dialog.PopupActionBottomDialogFragment
-import io.xxlabs.messenger.ui.dialog.warning.WarningDialogUI
-import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI
 import io.xxlabs.messenger.support.extensions.setOnSingleClickListener
 import io.xxlabs.messenger.ui.base.BaseContactDetailsFragment
+import io.xxlabs.messenger.ui.dialog.info.InfoDialogUI
 import io.xxlabs.messenger.ui.dialog.info.showInfoDialog
+import io.xxlabs.messenger.ui.dialog.warning.WarningDialogUI
 import io.xxlabs.messenger.ui.main.MainActivity
 import io.xxlabs.messenger.ui.main.contacts.delete.DeleteConnectionDialog
 import io.xxlabs.messenger.ui.main.contacts.delete.DeleteConnectionDialogUI
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/select/ContactSelectionFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/select/ContactSelectionFragment.kt
index 5cc4fda8f98d72522583487ee7ea4cd9b82cb659..fe52d4cc36d640f71e6b079e09a72e663b6dc469 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/select/ContactSelectionFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/contacts/select/ContactSelectionFragment.kt
@@ -20,7 +20,6 @@ import io.xxlabs.messenger.ui.global.ContactsViewModel
 import io.xxlabs.messenger.ui.main.contacts.ContactsFragment
 import io.xxlabs.messenger.ui.main.contacts.list.ConnectionsListScrollHandler
 import io.xxlabs.messenger.ui.main.contacts.list.ConnectionsViewModel
-import io.xxlabs.messenger.ui.main.contacts.list.ContactListFragmentDirections
 import io.xxlabs.messenger.ui.main.groups.create.CreateGroupDialog
 import io.xxlabs.messenger.ui.main.groups.create.CreateGroupDialogUI
 import javax.inject.Inject
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/groups/GroupMessagesFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/groups/GroupMessagesFragment.kt
index edb94397d068e9f30f6e69cdcc6e4224cea6aac3..0e0eaf97014783a06b91e33eea544a38b95103de 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/groups/GroupMessagesFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/groups/GroupMessagesFragment.kt
@@ -13,7 +13,8 @@ import io.xxlabs.messenger.data.room.model.ChatMessage
 import io.xxlabs.messenger.data.room.model.GroupData
 import io.xxlabs.messenger.data.room.model.GroupMessage
 import io.xxlabs.messenger.support.dialog.MenuChatDialog
-import io.xxlabs.messenger.support.extensions.*
+import io.xxlabs.messenger.support.extensions.fromBase64toByteArray
+import io.xxlabs.messenger.support.extensions.navigateSafe
 import io.xxlabs.messenger.support.touch.MessageSwipeController
 import io.xxlabs.messenger.support.touch.SwipeActions
 import io.xxlabs.messenger.ui.dialog.warning.showConfirmDialog
@@ -21,7 +22,6 @@ import io.xxlabs.messenger.ui.main.MainActivity
 import io.xxlabs.messenger.ui.main.chat.ChatMessagesFragment
 import io.xxlabs.messenger.ui.main.chat.ChatMessagesUIController
 import io.xxlabs.messenger.ui.main.chat.adapters.ChatMessagesAdapter
-import io.xxlabs.messenger.ui.dialog.warning.showConfirmDialog
 import javax.inject.Inject
 
 class GroupMessagesFragment : ChatMessagesFragment<GroupMessage>() {
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/QrCodeScanFragment.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/QrCodeScanFragment.kt
index e6c62d00ef12f1d04a4346040e9d404517f9ec65..e607dc7268b86efe33db6950ca48b359b3b7f9ef 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/QrCodeScanFragment.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/QrCodeScanFragment.kt
@@ -26,8 +26,7 @@ import io.xxlabs.messenger.support.singleExecutorInstance
 import io.xxlabs.messenger.ui.base.BaseFragment
 import io.xxlabs.messenger.ui.main.qrcode.QrCodeViewModel
 import io.xxlabs.messenger.ui.main.qrcode.zxing.ZXingQrCodeAnalyzer
-import kotlinx.android.synthetic.main.fragment_qr_code_scan.cameraFlashControl
-import kotlinx.android.synthetic.main.fragment_qr_code_scan.cameraPreview
+import kotlinx.android.synthetic.main.fragment_qr_code_scan.*
 import javax.inject.Inject
 import com.google.zxing.Result as QrScanResult
 
diff --git a/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/RoundedSquareMaskView.kt b/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/RoundedSquareMaskView.kt
index e8453ae7b36bc150af0ed94059d90d4d5b5d71d2..98810ad8d5c936107df2802bc424a9fe31a63396 100644
--- a/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/RoundedSquareMaskView.kt
+++ b/app/src/main/java/io/xxlabs/messenger/ui/main/qrcode/scan/RoundedSquareMaskView.kt
@@ -2,12 +2,8 @@ package io.xxlabs.messenger.ui.main.qrcode.scan
 
 import android.content.Context
 import android.graphics.*
-import android.os.Build
-import android.os.Build.VERSION_CODES.S
 import android.util.AttributeSet
 import android.view.SurfaceView
-import android.view.View
-import androidx.core.graphics.toRectF
 import androidx.databinding.BindingAdapter
 import io.xxlabs.messenger.R
 import kotlin.math.abs