0
0
mirror of https://github.com/thunderbird/thunderbird-android.git synced 2024-09-20 12:12:15 +02:00

Add getAccounts to AccountManager and replace usage

This commit is contained in:
Wolf-Martell Montwé 2023-12-01 11:35:23 +01:00
parent e2e583ef41
commit 4d2a07e9a7
No known key found for this signature in database
GPG Key ID: 6D45B21512ACBF72
13 changed files with 50 additions and 24 deletions

View File

@ -45,7 +45,7 @@ object Core : EarlyInit {
@JvmStatic
fun setServicesEnabled(context: Context) {
val appContext = context.applicationContext
val acctLength = Preferences.getPreferences().accounts.size
val acctLength = Preferences.getPreferences().getAccounts().size
val enable = acctLength > 0
setServicesEnabled(appContext, enable)
@ -82,7 +82,7 @@ object Core : EarlyInit {
private fun restoreNotifications() {
appCoroutineScope.launch(Dispatchers.IO) {
val accounts = preferences.accounts
val accounts = preferences.getAccounts()
notificationController.restoreNewMailNotifications(accounts)
}
}

View File

@ -98,8 +98,7 @@ class Preferences internal constructor(
}
}
val accounts: List<Account>
get() {
override fun getAccounts(): List<Account> {
synchronized(accountLock) {
if (accountsMap == null) {
loadAccounts()
@ -110,7 +109,7 @@ class Preferences internal constructor(
}
private val completeAccounts: List<Account>
get() = accounts.filter { it.isFinishedSetup }
get() = getAccounts().filter { it.isFinishedSetup }
override fun getAccount(accountUuid: String): Account? {
synchronized(accountLock) {
@ -203,7 +202,7 @@ class Preferences internal constructor(
}
val defaultAccount: Account?
get() = accounts.firstOrNull()
get() = getAccounts().firstOrNull()
override fun saveAccount(account: Account) {
ensureAssignedAccountNumber(account)
@ -236,7 +235,7 @@ class Preferences internal constructor(
}
fun generateAccountNumber(): Int {
val accountNumbers = accounts.map { it.accountNumber }
val accountNumbers = getAccounts().map { it.accountNumber }
return findNewAccountNumber(accountNumbers)
}

View File

@ -30,7 +30,7 @@ internal class NotificationOperations(
}
private fun clearUnifiedInboxNotifications() {
for (account in preferences.accounts) {
for (account in preferences.getAccounts()) {
val messageStore = messageStoreManager.getMessageStore(account)
val folderIds = messageStore.getFolders(excludeLocalOnly = true) { folderDetails ->
@ -46,7 +46,7 @@ internal class NotificationOperations(
}
private fun clearAllNotifications() {
for (account in preferences.accounts) {
for (account in preferences.getAccounts()) {
notificationController.clearNewMailNotifications(account, clearNewMessageState = false)
}
}

View File

@ -74,7 +74,7 @@ class PushController internal constructor(
Timber.v("PushController.disablePush()")
coroutineScope.launch(coroutineDispatcher) {
for (account in preferences.accounts) {
for (account in preferences.getAccounts()) {
account.folderPushMode = FolderMode.NONE
preferences.saveAccount(account)
}
@ -191,18 +191,22 @@ class PushController internal constructor(
realPushAccounts.isEmpty() -> {
stopServices()
}
backgroundSyncDisabledViaSystem -> {
setPushNotificationState(WAIT_BACKGROUND_SYNC)
startServices()
}
networkNotAvailable -> {
setPushNotificationState(WAIT_NETWORK)
startServices()
}
arePushersActive -> {
setPushNotificationState(LISTENING)
startServices()
}
else -> {
stopServices()
}
@ -210,7 +214,7 @@ class PushController internal constructor(
}
private fun getPushAccounts(): List<Account> {
return preferences.accounts.filter { account ->
return preferences.getAccounts().filter { account ->
account.folderPushMode != FolderMode.NONE && backendManager.getBackend(account).isPushCapable
}
}

View File

@ -23,7 +23,7 @@ class K9JobManager(
private fun scheduleMailSync() {
cancelAllMailSyncJobs()
preferences.accounts.forEach { account ->
preferences.getAccounts().forEach { account ->
mailSyncWorkerManager.scheduleMailSync(account)
}
}

View File

@ -41,7 +41,7 @@ class NotificationChannelManager(
backgroundExecutor.execute {
addGeneralChannels()
val accounts = preferences.accounts
val accounts = preferences.getAccounts()
removeChannelsForNonExistingOrChangedAccounts(notificationManager, accounts)
addChannelsForAccounts(notificationManager, accounts)

View File

@ -6,6 +6,7 @@ import com.fsck.k9.AccountsChangeListener
import kotlinx.coroutines.flow.Flow
interface AccountManager {
fun getAccounts(): List<Account>
fun getAccountsFlow(): Flow<List<Account>>
fun getAccount(accountUuid: String): Account?
fun getAccountFlow(accountUuid: String): Flow<Account>

View File

@ -19,7 +19,7 @@ val LocalSearch.isSingleFolder: Boolean
@JvmName("getAccountsFromLocalSearch")
fun LocalSearch.getAccounts(preferences: Preferences): List<Account> {
val accounts = preferences.accounts
val accounts = preferences.getAccounts()
return if (searchAllAccounts()) {
accounts
} else {

View File

@ -9,7 +9,7 @@ class AccountColorPicker(
private val resources: Resources,
) {
fun pickColor(): Int {
val accounts = preferences.accounts
val accounts = preferences.getAccounts()
val usedAccountColors = accounts.map { it.chipColor }.toSet()
val accountColors = resources.getIntArray(R.array.account_colors).toList()

View File

@ -11,6 +11,8 @@ class FakeAccountManager(
private val isFailureOnSave: Boolean = false,
) : AccountManager {
override fun getAccounts(): List<Account> = accounts.values.toList()
override fun getAccountsFlow(): Flow<List<Account>> {
TODO("Not yet implemented")
}

View File

@ -138,7 +138,7 @@ open class MessageList :
return
}
val accounts = preferences.accounts
val accounts = preferences.getAccounts()
deleteIncompleteAccounts(accounts)
val hasAccountSetup = accounts.any { it.isFinishedSetup }
if (!hasAccountSetup) {
@ -332,9 +332,11 @@ open class MessageList :
DisplayMode.MESSAGE_LIST -> {
showMessageList()
}
DisplayMode.MESSAGE_VIEW -> {
showMessageView()
}
DisplayMode.SPLIT_VIEW -> {
val messageListFragment = checkNotNull(this.messageListFragment)
@ -712,6 +714,7 @@ open class MessageList :
return true
}
}
KeyEvent.KEYCODE_VOLUME_DOWN -> {
if (messageViewContainerFragment != null && displayMode != DisplayMode.MESSAGE_LIST &&
K9.isUseVolumeKeysForNavigation
@ -720,10 +723,12 @@ open class MessageList :
return true
}
}
KeyEvent.KEYCODE_DEL -> {
onDeleteHotKey()
return true
}
KeyEvent.KEYCODE_DPAD_LEFT -> {
return if (messageViewContainerFragment != null && displayMode == DisplayMode.MESSAGE_VIEW) {
showPreviousMessage()
@ -731,6 +736,7 @@ open class MessageList :
false
}
}
KeyEvent.KEYCODE_DPAD_RIGHT -> {
return if (messageViewContainerFragment != null && displayMode == DisplayMode.MESSAGE_VIEW) {
showNextMessage()
@ -745,22 +751,27 @@ open class MessageList :
messageListFragment!!.onCompose()
return true
}
'o' -> {
messageListFragment!!.onCycleSort()
return true
}
'i' -> {
messageListFragment!!.onReverseSort()
return true
}
'd' -> {
onDeleteHotKey()
return true
}
's' -> {
messageListFragment!!.toggleMessageSelect()
return true
}
'g' -> {
if (displayMode == DisplayMode.MESSAGE_LIST) {
messageListFragment!!.onToggleFlagged()
@ -769,6 +780,7 @@ open class MessageList :
}
return true
}
'm' -> {
if (displayMode == DisplayMode.MESSAGE_LIST) {
messageListFragment!!.onMove()
@ -777,6 +789,7 @@ open class MessageList :
}
return true
}
'v' -> {
if (displayMode == DisplayMode.MESSAGE_LIST) {
messageListFragment!!.onArchive()
@ -785,6 +798,7 @@ open class MessageList :
}
return true
}
'y' -> {
if (displayMode == DisplayMode.MESSAGE_LIST) {
messageListFragment!!.onCopy()
@ -793,6 +807,7 @@ open class MessageList :
}
return true
}
'z' -> {
if (displayMode == DisplayMode.MESSAGE_LIST) {
messageListFragment!!.onToggleRead()
@ -801,30 +816,35 @@ open class MessageList :
}
return true
}
'f' -> {
if (messageViewContainerFragment != null) {
messageViewContainerFragment!!.onForward()
}
return true
}
'a' -> {
if (messageViewContainerFragment != null) {
messageViewContainerFragment!!.onReplyAll()
}
return true
}
'r' -> {
if (messageViewContainerFragment != null) {
messageViewContainerFragment!!.onReply()
}
return true
}
'j', 'p' -> {
if (messageViewContainerFragment != null) {
showPreviousMessage()
}
return true
}
'n', 'k' -> {
if (messageViewContainerFragment != null) {
showNextMessage()

View File

@ -460,7 +460,7 @@ class MessageListFragment :
}
val subtitle = account.let { account ->
if (account == null || isUnifiedInbox || preferences.accounts.size == 1) {
if (account == null || isUnifiedInbox || preferences.getAccounts().size == 1) {
null
} else {
account.displayName

View File

@ -58,7 +58,7 @@ class SettingsExportViewModel(
uiModelLiveData.value = uiModel
viewModelScope.launch {
val accounts = withContext(Dispatchers.IO) { preferences.accounts }
val accounts = withContext(Dispatchers.IO) { preferences.getAccounts() }
accountsMap = accounts.map { it.accountNumber to it.uuid }.toMap()