From cf4c1f973c1eee578b6917903cd6b82476a9d40d Mon Sep 17 00:00:00 2001 From: cketti Date: Sat, 9 Jul 2022 01:41:55 +0200 Subject: [PATCH 1/9] Change the OAuth client ID used for Microsoft accounts --- app/k9mail/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/k9mail/build.gradle b/app/k9mail/build.gradle index a28dc75c2c..f7e78517b2 100644 --- a/app/k9mail/build.gradle +++ b/app/k9mail/build.gradle @@ -79,7 +79,7 @@ android { buildConfigField "String", "OAUTH_GMAIL_CLIENT_ID", "\"262622259280-hhmh92rhklkg2k1tjil69epo0o9a12jm.apps.googleusercontent.com\"" buildConfigField "String", "OAUTH_YAHOO_CLIENT_ID", "\"dj0yJmk9aHNUb3d2MW5TQnpRJmQ9WVdrOWVYbHpaRWM0YkdnbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PWIz\"" buildConfigField "String", "OAUTH_AOL_CLIENT_ID", "\"dj0yJmk9dUNqYXZhYWxOYkdRJmQ9WVdrOU1YQnZVRFZoY1ZrbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PWIw\"" - buildConfigField "String", "OAUTH_MICROSOFT_CLIENT_ID", "\"62b5988d-b86f-48e1-aba4-5e71d36c5b6a\"" + buildConfigField "String", "OAUTH_MICROSOFT_CLIENT_ID", "\"e647013a-ada4-4114-b419-e43d250f99c5\"" buildConfigField "String", "OAUTH_MICROSOFT_REDIRECT_URI", "\"msauth://com.fsck.k9/Dx8yUsuhyU3dYYba1aA16Wxu5eM%3D\"" manifestPlaceholders = ['appAuthRedirectScheme': 'com.fsck.k9'] @@ -94,7 +94,7 @@ android { buildConfigField "String", "OAUTH_GMAIL_CLIENT_ID", "\"262622259280-5qb3vtj68d5dtudmaif4g9vd3cpar8r3.apps.googleusercontent.com\"" buildConfigField "String", "OAUTH_YAHOO_CLIENT_ID", "\"dj0yJmk9ejRCRU1ybmZjQlVBJmQ9WVdrOVVrZEViak4xYmxZbWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PTZj\"" buildConfigField "String", "OAUTH_AOL_CLIENT_ID", "\"dj0yJmk9cHYydkJkTUxHcXlYJmQ9WVdrOWVHZHhVVXN4VVV3bWNHbzlNQT09JnM9Y29uc3VtZXJzZWNyZXQmc3Y9MCZ4PTdm\"" - buildConfigField "String", "OAUTH_MICROSOFT_CLIENT_ID", "\"62b5988d-b86f-48e1-aba4-5e71d36c5b6a\"" + buildConfigField "String", "OAUTH_MICROSOFT_CLIENT_ID", "\"e647013a-ada4-4114-b419-e43d250f99c5\"" buildConfigField "String", "OAUTH_MICROSOFT_REDIRECT_URI", "\"msauth://com.fsck.k9.debug/VZF2DYuLYAu4TurFd6usQB2JPts%3D\"" manifestPlaceholders = ['appAuthRedirectScheme': 'com.fsck.k9.debug'] -- GitLab From 1ff327eda82855962dad1f33bf9212735d67d3f5 Mon Sep 17 00:00:00 2001 From: cketti Date: Mon, 11 Jul 2022 18:00:29 +0200 Subject: [PATCH 2/9] Display an error notification when creating a notification fails When importing settings from another device, we could end up with a notification channel that references a non-existing notification sound. In that case creating a notification for a new message will lead to a `SecurityException`. We catch this case and display an error notification instead. This is fine because we create the "Miscellaneous" notification channel without a notification sound. --- .../fsck/k9/notification/CoreKoinModule.kt | 10 +-- .../k9/notification/NotificationHelper.kt | 71 ++++++++++++++++--- .../NotificationResourceProvider.kt | 3 + .../SingleMessageNotificationCreator.kt | 6 +- .../SummaryNotificationCreator.kt | 6 +- .../TestNotificationResourceProvider.kt | 9 +++ .../K9NotificationResourceProvider.kt | 4 ++ app/ui/legacy/src/main/res/values/strings.xml | 5 ++ 8 files changed, 92 insertions(+), 22 deletions(-) diff --git a/app/core/src/main/java/com/fsck/k9/notification/CoreKoinModule.kt b/app/core/src/main/java/com/fsck/k9/notification/CoreKoinModule.kt index de6797b498..f0ac2f20ec 100644 --- a/app/core/src/main/java/com/fsck/k9/notification/CoreKoinModule.kt +++ b/app/core/src/main/java/com/fsck/k9/notification/CoreKoinModule.kt @@ -18,7 +18,9 @@ val coreNotificationModule = module { ) } single { NotificationManagerCompat.from(get()) } - single { NotificationHelper(context = get(), notificationManager = get(), channelUtils = get()) } + single { + NotificationHelper(context = get(), notificationManager = get(), notificationChannelManager = get(), resourceProvider = get()) + } single { NotificationChannelManager( preferences = get(), @@ -82,8 +84,7 @@ val coreNotificationModule = module { notificationHelper = get(), actionCreator = get(), resourceProvider = get(), - lockScreenNotificationCreator = get(), - notificationManager = get() + lockScreenNotificationCreator = get() ) } factory { @@ -92,8 +93,7 @@ val coreNotificationModule = module { actionCreator = get(), lockScreenNotificationCreator = get(), singleMessageNotificationCreator = get(), - resourceProvider = get(), - notificationManager = get() + resourceProvider = get() ) } factory { LockScreenNotificationCreator(notificationHelper = get(), resourceProvider = get()) } diff --git a/app/core/src/main/java/com/fsck/k9/notification/NotificationHelper.kt b/app/core/src/main/java/com/fsck/k9/notification/NotificationHelper.kt index c51736c6c1..eef470e8d9 100644 --- a/app/core/src/main/java/com/fsck/k9/notification/NotificationHelper.kt +++ b/app/core/src/main/java/com/fsck/k9/notification/NotificationHelper.kt @@ -1,17 +1,25 @@ package com.fsck.k9.notification +import android.app.Notification +import android.app.PendingIntent import android.content.Context +import android.content.Intent import android.net.Uri import android.os.Build +import android.provider.Settings import androidx.core.app.NotificationCompat import androidx.core.app.NotificationManagerCompat import com.fsck.k9.Account import com.fsck.k9.K9 +import com.fsck.k9.helper.PendingIntentCompat +import com.fsck.k9.notification.NotificationChannelManager.ChannelType +import timber.log.Timber class NotificationHelper( private val context: Context, private val notificationManager: NotificationManagerCompat, - private val channelUtils: NotificationChannelManager + private val notificationChannelManager: NotificationChannelManager, + private val resourceProvider: NotificationResourceProvider ) { fun getContext(): Context { return context @@ -21,14 +29,59 @@ class NotificationHelper( return notificationManager } - fun createNotificationBuilder( - account: Account, - channelType: NotificationChannelManager.ChannelType - ): NotificationCompat.Builder { - return NotificationCompat.Builder( - context, - channelUtils.getChannelIdFor(account, channelType) - ) + fun createNotificationBuilder(account: Account, channelType: ChannelType): NotificationCompat.Builder { + val notificationChannel = notificationChannelManager.getChannelIdFor(account, channelType) + return NotificationCompat.Builder(context, notificationChannel) + } + + fun notify(account: Account, notificationId: Int, notification: Notification) { + try { + notificationManager.notify(notificationId, notification) + } catch (e: SecurityException) { + // When importing settings from another device, we could end up with a NotificationChannel that references a + // non-existing notification sound. In that case, we end up with a SecurityException with a message similar + // to this: + // UID 123 does not have permission to content://media/external_primary/audio/media/42?title=Coins&canonical=1 [user 0] + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O && + e.message?.contains("does not have permission to") == true + ) { + Timber.e(e, "Failed to create a notification for a new message") + showNotifyErrorNotification(account) + } else { + throw e + } + } + } + + private fun showNotifyErrorNotification(account: Account) { + val title = resourceProvider.notifyErrorTitle() + val text = resourceProvider.notifyErrorText() + + val messagesNotificationChannelId = notificationChannelManager.getChannelIdFor(account, ChannelType.MESSAGES) + val intent = Intent(Settings.ACTION_CHANNEL_NOTIFICATION_SETTINGS).apply { + putExtra(Settings.EXTRA_CHANNEL_ID, messagesNotificationChannelId) + putExtra(Settings.EXTRA_APP_PACKAGE, context.packageName) + } + + val notificationSettingsPendingIntent = + PendingIntent.getActivity(context, account.accountNumber, intent, PendingIntentCompat.FLAG_IMMUTABLE) + + val notification = createNotificationBuilder(account, ChannelType.MISCELLANEOUS) + .setSmallIcon(resourceProvider.iconWarning) + .setColor(account.chipColor) + .setWhen(System.currentTimeMillis()) + .setAutoCancel(true) + .setTicker(title) + .setContentTitle(title) + .setContentText(text) + .setContentIntent(notificationSettingsPendingIntent) + .setStyle(NotificationCompat.BigTextStyle().bigText(text)) + .setCategory(NotificationCompat.CATEGORY_ERROR) + .setErrorAppearance() + .build() + + val notificationId = NotificationIds.getNewMailSummaryNotificationId(account) + notificationManager.notify(notificationId, notification) } companion object { diff --git a/app/core/src/main/java/com/fsck/k9/notification/NotificationResourceProvider.kt b/app/core/src/main/java/com/fsck/k9/notification/NotificationResourceProvider.kt index e558cd5e74..d33055a7af 100644 --- a/app/core/src/main/java/com/fsck/k9/notification/NotificationResourceProvider.kt +++ b/app/core/src/main/java/com/fsck/k9/notification/NotificationResourceProvider.kt @@ -24,6 +24,9 @@ interface NotificationResourceProvider { fun authenticationErrorTitle(): String fun authenticationErrorBody(accountName: String): String + fun notifyErrorTitle(): String + fun notifyErrorText(): String + fun certificateErrorTitle(): String fun certificateErrorTitle(accountName: String): String fun certificateErrorBody(): String diff --git a/app/core/src/main/java/com/fsck/k9/notification/SingleMessageNotificationCreator.kt b/app/core/src/main/java/com/fsck/k9/notification/SingleMessageNotificationCreator.kt index 45027ec820..21553997b7 100644 --- a/app/core/src/main/java/com/fsck/k9/notification/SingleMessageNotificationCreator.kt +++ b/app/core/src/main/java/com/fsck/k9/notification/SingleMessageNotificationCreator.kt @@ -3,7 +3,6 @@ package com.fsck.k9.notification import android.app.PendingIntent import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat.WearableExtender -import androidx.core.app.NotificationManagerCompat import com.fsck.k9.notification.NotificationChannelManager.ChannelType import timber.log.Timber import androidx.core.app.NotificationCompat.Builder as NotificationBuilder @@ -12,8 +11,7 @@ internal class SingleMessageNotificationCreator( private val notificationHelper: NotificationHelper, private val actionCreator: NotificationActionCreator, private val resourceProvider: NotificationResourceProvider, - private val lockScreenNotificationCreator: LockScreenNotificationCreator, - private val notificationManager: NotificationManagerCompat + private val lockScreenNotificationCreator: LockScreenNotificationCreator ) { fun createSingleNotification( baseNotificationData: BaseNotificationData, @@ -52,7 +50,7 @@ internal class SingleMessageNotificationCreator( notification ) } - notificationManager.notify(notificationId, notification) + notificationHelper.notify(account, notificationId, notification) } private fun NotificationBuilder.setBigText(text: CharSequence) = apply { diff --git a/app/core/src/main/java/com/fsck/k9/notification/SummaryNotificationCreator.kt b/app/core/src/main/java/com/fsck/k9/notification/SummaryNotificationCreator.kt index bcd4f72b3f..eb55bc9eda 100644 --- a/app/core/src/main/java/com/fsck/k9/notification/SummaryNotificationCreator.kt +++ b/app/core/src/main/java/com/fsck/k9/notification/SummaryNotificationCreator.kt @@ -3,7 +3,6 @@ package com.fsck.k9.notification import android.app.PendingIntent import androidx.core.app.NotificationCompat import androidx.core.app.NotificationCompat.WearableExtender -import androidx.core.app.NotificationManagerCompat import com.fsck.k9.Account import com.fsck.k9.notification.NotificationChannelManager.ChannelType import com.fsck.k9.notification.NotificationIds.getNewMailSummaryNotificationId @@ -15,8 +14,7 @@ internal class SummaryNotificationCreator( private val actionCreator: NotificationActionCreator, private val lockScreenNotificationCreator: LockScreenNotificationCreator, private val singleMessageNotificationCreator: SingleMessageNotificationCreator, - private val resourceProvider: NotificationResourceProvider, - private val notificationManager: NotificationManagerCompat + private val resourceProvider: NotificationResourceProvider ) { fun createSummaryNotification( baseNotificationData: BaseNotificationData, @@ -75,7 +73,7 @@ internal class SummaryNotificationCreator( .build() Timber.v("Creating inbox-style summary notification (silent=%b): %s", notificationData.isSilent, notification) - notificationManager.notify(notificationData.notificationId, notification) + notificationHelper.notify(account, notificationData.notificationId, notification) } private fun buildInboxSummaryText(accountName: String, notificationData: SummaryInboxNotificationData): String { diff --git a/app/core/src/test/java/com/fsck/k9/notification/TestNotificationResourceProvider.kt b/app/core/src/test/java/com/fsck/k9/notification/TestNotificationResourceProvider.kt index ab235bbac5..ec8e9b59d9 100644 --- a/app/core/src/test/java/com/fsck/k9/notification/TestNotificationResourceProvider.kt +++ b/app/core/src/test/java/com/fsck/k9/notification/TestNotificationResourceProvider.kt @@ -26,6 +26,15 @@ class TestNotificationResourceProvider : NotificationResourceProvider { override fun authenticationErrorBody(accountName: String): String = "Authentication failed for $accountName. Update your server settings." + override fun notifyErrorTitle(): String = "Notification error" + + override fun notifyErrorText(): String { + return "An error has occurred while trying to create a system notification for a new message. " + + "The reason is most likely a missing notification sound.\n" + + "\n" + + "Tap to open notification settings." + } + override fun certificateErrorTitle(): String = "Certificate error" override fun certificateErrorTitle(accountName: String): String = "Certificate error for $accountName" diff --git a/app/k9mail/src/main/java/com/fsck/k9/notification/K9NotificationResourceProvider.kt b/app/k9mail/src/main/java/com/fsck/k9/notification/K9NotificationResourceProvider.kt index 5304232375..033030e8d0 100644 --- a/app/k9mail/src/main/java/com/fsck/k9/notification/K9NotificationResourceProvider.kt +++ b/app/k9mail/src/main/java/com/fsck/k9/notification/K9NotificationResourceProvider.kt @@ -36,6 +36,10 @@ class K9NotificationResourceProvider(private val context: Context) : Notificatio override fun authenticationErrorBody(accountName: String): String = context.getString(R.string.notification_authentication_error_text, accountName) + override fun notifyErrorTitle(): String = context.getString(R.string.notification_notify_error_title) + + override fun notifyErrorText(): String = context.getString(R.string.notification_notify_error_text) + override fun certificateErrorTitle(): String = context.getString(R.string.notification_certificate_error_public) override fun certificateErrorTitle(accountName: String): String = diff --git a/app/ui/legacy/src/main/res/values/strings.xml b/app/ui/legacy/src/main/res/values/strings.xml index d229ea0a99..8e2285d265 100644 --- a/app/ui/legacy/src/main/res/values/strings.xml +++ b/app/ui/legacy/src/main/res/values/strings.xml @@ -200,6 +200,11 @@ Please submit bug reports, contribute new features and ask questions at Authentication failed Authentication failed for %s. Update your server settings. + + Notification error + + An error has occurred while trying to create a system notification for a new message. The reason is most likely a missing notification sound.\n\nTap to open notification settings. + Checking mail: %s:%s Checking mail Sending mail: %s -- GitLab From d396e66c5780290235cf7b48af77d880e1490351 Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 13 Jul 2022 11:42:04 +0200 Subject: [PATCH 3/9] Set the "message list visible" flag when opening a folder from the drawer --- .../main/java/com/fsck/k9/activity/MessageList.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt index 56b054b5ad..8635e07bd4 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt @@ -595,8 +595,7 @@ open class MessageList : return object : DrawerListener { override fun onDrawerClosed(drawerView: View) { if (openFolderTransaction != null) { - openFolderTransaction!!.commit() - openFolderTransaction = null + commitOpenFolderTransaction() } } @@ -619,14 +618,20 @@ open class MessageList : search.addAllowedFolder(folderId) performSearch(search) - - onMessageListDisplayed() } private fun openFolderImmediately(folderId: Long) { openFolder(folderId) + commitOpenFolderTransaction() + } + + private fun commitOpenFolderTransaction() { openFolderTransaction!!.commit() openFolderTransaction = null + + messageListFragment!!.onListVisible() + + onMessageListDisplayed() } fun openUnifiedInbox() { -- GitLab From 15c24022605a20342dd20b8540c53258382b23c1 Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 13 Jul 2022 20:39:37 +0200 Subject: [PATCH 4/9] Remove unnecessary parameter --- .../src/main/java/com/fsck/k9/activity/MessageList.kt | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt index 56b054b5ad..3740dcf98d 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt @@ -1311,13 +1311,11 @@ open class MessageList : configureMenu(menu) } - private fun addMessageListFragment(fragment: MessageListFragment, addToBackStack: Boolean) { + private fun addMessageListFragment(fragment: MessageListFragment) { val fragmentTransaction = supportFragmentManager.beginTransaction() fragmentTransaction.replace(R.id.message_list_container, fragment) - if (addToBackStack) { - fragmentTransaction.addToBackStack(null) - } + fragmentTransaction.addToBackStack(null) messageListFragment = fragment @@ -1364,7 +1362,7 @@ open class MessageList : initializeFromLocalSearch(tmpSearch) val fragment = MessageListFragment.newInstance(tmpSearch, true, false) - addMessageListFragment(fragment, true) + addMessageListFragment(fragment) } private fun showMessageViewPlaceHolder() { -- GitLab From f78045c01f688aed93e820339d0c7f05231ca826 Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 13 Jul 2022 20:54:13 +0200 Subject: [PATCH 5/9] Change method to clear the fragment back stack in `MessageList` --- .../java/com/fsck/k9/activity/MessageList.kt | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt index 3740dcf98d..53eb98707e 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt @@ -105,7 +105,6 @@ open class MessageList : private var messageViewPlaceHolder: PlaceholderFragment? = null private var messageListFragment: MessageListFragment? = null private var messageViewFragment: MessageViewFragment? = null - private var firstBackStackId = -1 private var account: Account? = null private var search: LocalSearch? = null private var singleFolderMode = false @@ -224,10 +223,8 @@ open class MessageList : setIntent(intent) - if (firstBackStackId >= 0) { - supportFragmentManager.popBackStackImmediate(firstBackStackId, FragmentManager.POP_BACK_STACK_INCLUSIVE) - firstBackStackId = -1 - } + // Start with a fresh fragment back stack + supportFragmentManager.popBackStackImmediate(FIRST_FRAGMENT_TRANSACTION, FragmentManager.POP_BACK_STACK_INCLUSIVE) removeMessageListFragment() removeMessageViewFragment() @@ -565,7 +562,6 @@ open class MessageList : outState.putSerializable(STATE_DISPLAY_MODE, displayMode) outState.putBoolean(STATE_MESSAGE_VIEW_ONLY, messageViewOnly) outState.putBoolean(STATE_MESSAGE_LIST_WAS_DISPLAYED, messageListWasDisplayed) - outState.putInt(STATE_FIRST_BACK_STACK_ID, firstBackStackId) } public override fun onRestoreInstanceState(savedInstanceState: Bundle) { @@ -573,7 +569,6 @@ open class MessageList : messageViewOnly = savedInstanceState.getBoolean(STATE_MESSAGE_VIEW_ONLY) messageListWasDisplayed = savedInstanceState.getBoolean(STATE_MESSAGE_LIST_WAS_DISPLAYED) - firstBackStackId = savedInstanceState.getInt(STATE_FIRST_BACK_STACK_ID) } private fun initializeActionBar() { @@ -1315,7 +1310,12 @@ open class MessageList : val fragmentTransaction = supportFragmentManager.beginTransaction() fragmentTransaction.replace(R.id.message_list_container, fragment) - fragmentTransaction.addToBackStack(null) + fragmentTransaction.setReorderingAllowed(true) + if (supportFragmentManager.backStackEntryCount == 0) { + fragmentTransaction.addToBackStack(FIRST_FRAGMENT_TRANSACTION) + } else { + fragmentTransaction.addToBackStack(null) + } messageListFragment = fragment @@ -1323,10 +1323,7 @@ open class MessageList : lockDrawer() } - val transactionId = fragmentTransaction.commit() - if (transactionId >= 0 && firstBackStackId < 0) { - firstBackStackId = transactionId - } + fragmentTransaction.commit() } override fun startSearch(query: String, account: Account?, folderId: Long?): Boolean { @@ -1682,6 +1679,7 @@ open class MessageList : private const val STATE_MESSAGE_LIST_WAS_DISPLAYED = "messageListWasDisplayed" private const val STATE_FIRST_BACK_STACK_ID = "firstBackstackId" + private const val FIRST_FRAGMENT_TRANSACTION = "first" private const val FRAGMENT_TAG_MESSAGE_VIEW = "MessageViewFragment" private const val FRAGMENT_TAG_PLACEHOLDER = "MessageViewPlaceholder" -- GitLab From f0e81c6d4b5ebd4ca0e62225a13a62064de2c9a6 Mon Sep 17 00:00:00 2001 From: cketti Date: Wed, 13 Jul 2022 20:56:16 +0200 Subject: [PATCH 6/9] Use extension function for fragment transaction --- .../java/com/fsck/k9/activity/MessageList.kt | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt index 53eb98707e..20adb1e2e8 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt +++ b/app/ui/legacy/src/main/java/com/fsck/k9/activity/MessageList.kt @@ -23,6 +23,7 @@ import androidx.drawerlayout.widget.DrawerLayout import androidx.drawerlayout.widget.DrawerLayout.DrawerListener import androidx.fragment.app.FragmentManager import androidx.fragment.app.FragmentTransaction +import androidx.fragment.app.commit import androidx.lifecycle.Observer import com.fsck.k9.Account import com.fsck.k9.Account.SortType @@ -1307,14 +1308,16 @@ open class MessageList : } private fun addMessageListFragment(fragment: MessageListFragment) { - val fragmentTransaction = supportFragmentManager.beginTransaction() + supportFragmentManager.commit { + replace(R.id.message_list_container, fragment) - fragmentTransaction.replace(R.id.message_list_container, fragment) - fragmentTransaction.setReorderingAllowed(true) - if (supportFragmentManager.backStackEntryCount == 0) { - fragmentTransaction.addToBackStack(FIRST_FRAGMENT_TRANSACTION) - } else { - fragmentTransaction.addToBackStack(null) + setReorderingAllowed(true) + + if (supportFragmentManager.backStackEntryCount == 0) { + addToBackStack(FIRST_FRAGMENT_TRANSACTION) + } else { + addToBackStack(null) + } } messageListFragment = fragment @@ -1322,8 +1325,6 @@ open class MessageList : if (isDrawerEnabled) { lockDrawer() } - - fragmentTransaction.commit() } override fun startSearch(query: String, account: Account?, folderId: Long?): Boolean { -- GitLab From 5ef1930a591af111bfb1d634b6a9a4457e514e50 Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 14 Jul 2022 12:57:50 +0200 Subject: [PATCH 7/9] Update translations --- .../legacy/src/main/res/values-ar/strings.xml | 2 + .../legacy/src/main/res/values-be/strings.xml | 14 +-- .../legacy/src/main/res/values-bg/strings.xml | 2 + .../legacy/src/main/res/values-br/strings.xml | 2 + .../legacy/src/main/res/values-ca/strings.xml | 2 + .../legacy/src/main/res/values-cs/strings.xml | 6 ++ .../legacy/src/main/res/values-cy/strings.xml | 2 + .../legacy/src/main/res/values-da/strings.xml | 2 + .../legacy/src/main/res/values-de/strings.xml | 6 ++ .../legacy/src/main/res/values-el/strings.xml | 2 + .../src/main/res/values-en-rGB/strings.xml | 2 + .../legacy/src/main/res/values-eo/strings.xml | 2 + .../legacy/src/main/res/values-es/strings.xml | 6 ++ .../legacy/src/main/res/values-et/strings.xml | 2 + .../legacy/src/main/res/values-eu/strings.xml | 2 + .../legacy/src/main/res/values-fa/strings.xml | 3 + .../legacy/src/main/res/values-fi/strings.xml | 6 ++ .../legacy/src/main/res/values-fr/strings.xml | 6 ++ .../legacy/src/main/res/values-gd/strings.xml | 2 + .../src/main/res/values-gl-rES/strings.xml | 2 + .../legacy/src/main/res/values-gl/strings.xml | 2 + .../legacy/src/main/res/values-hr/strings.xml | 2 + .../legacy/src/main/res/values-hu/strings.xml | 2 + .../legacy/src/main/res/values-in/strings.xml | 2 + .../legacy/src/main/res/values-is/strings.xml | 2 + .../legacy/src/main/res/values-it/strings.xml | 2 + .../legacy/src/main/res/values-iw/strings.xml | 2 + .../legacy/src/main/res/values-ja/strings.xml | 5 + .../legacy/src/main/res/values-ko/strings.xml | 2 + .../legacy/src/main/res/values-lt/strings.xml | 2 + .../legacy/src/main/res/values-lv/strings.xml | 2 + .../legacy/src/main/res/values-ml/strings.xml | 2 + .../legacy/src/main/res/values-nb/strings.xml | 2 + .../legacy/src/main/res/values-nl/strings.xml | 2 + .../legacy/src/main/res/values-pl/strings.xml | 96 ++++++++++--------- .../src/main/res/values-pt-rBR/strings.xml | 4 + .../src/main/res/values-pt-rPT/strings.xml | 2 + .../legacy/src/main/res/values-ro/strings.xml | 2 + .../legacy/src/main/res/values-ru/strings.xml | 2 + .../legacy/src/main/res/values-sk/strings.xml | 2 + .../legacy/src/main/res/values-sl/strings.xml | 2 + .../legacy/src/main/res/values-sq/strings.xml | 6 ++ .../legacy/src/main/res/values-sr/strings.xml | 2 + .../legacy/src/main/res/values-sv/strings.xml | 6 ++ .../legacy/src/main/res/values-tr/strings.xml | 2 + .../legacy/src/main/res/values-uk/strings.xml | 2 + .../src/main/res/values-zh-rCN/strings.xml | 6 ++ .../src/main/res/values-zh-rTW/strings.xml | 4 + 48 files changed, 191 insertions(+), 51 deletions(-) diff --git a/app/ui/legacy/src/main/res/values-ar/strings.xml b/app/ui/legacy/src/main/res/values-ar/strings.xml index 3e44cbcea3..0176257ea9 100644 --- a/app/ui/legacy/src/main/res/values-ar/strings.xml +++ b/app/ui/legacy/src/main/res/values-ar/strings.xml @@ -160,6 +160,8 @@ تأكد من إعدادات الخادم فشل المصادقة فشل مصادقة %s. يرجى تحديث إعدادات الخادم. + + تفقد البريد: %s:%s التحقق من البريد إرسال البريد: %s diff --git a/app/ui/legacy/src/main/res/values-be/strings.xml b/app/ui/legacy/src/main/res/values-be/strings.xml index 3ff2552051..9d8f5f222c 100644 --- a/app/ui/legacy/src/main/res/values-be/strings.xml +++ b/app/ui/legacy/src/main/res/values-be/strings.xml @@ -63,7 +63,7 @@ K-9 Mail - шматфункцыянальны свабодны паштовы к Адказаць Адказаць усім Пераслаць - Пераслаць як укладзены + Пераслаць як далучаны файл Абраць акаўнт Абраць каталог %d абрана @@ -80,7 +80,7 @@ K-9 Mail - шматфункцыянальны свабодны паштовы к Архіў Спам Пераслаць - Пераслаць як укладзены + Пераслаць як далучаны файл Рэдагаваць як новы ліст Перамясціць Перамясціць у чарнавікі @@ -120,7 +120,7 @@ K-9 Mail - шматфункцыянальны свабодны паштовы к Апавяшчэнне Запытаць апавяшчэнне пра чытанне Без апавяшчэння пра чытанне - Укласці файлы + Далучыць файлы Ачысціць сметніцу Выдаліць Пра праграму @@ -159,6 +159,8 @@ K-9 Mail - шматфункцыянальны свабодны паштовы к Праверце налады сервера Аўтэнтыфікацыя схібіла Няўдалая аўтарызацыя для %s. Змяніце налады сервера. + + Праверка пошты: %s:%s Праверка пошты Адпраўка пошты: %s @@ -200,12 +202,12 @@ K-9 Mail - шматфункцыянальны свабодны паштовы к Уключыць цытаваны ліст Выдаліць цытату Рэдагаваць цытату - Выдаліць укладзеныя файлы + Выдаліць далучаныя файлы Ад: %s <%s> Каму: Копія: Схаваная копія: - Немагчыма захаваць укладзеныя файлы. + Немагчыма захаваць далучаныя файлы. Прагляд малюнкаў Няма праграмы для прагляду %s. Спампаваць ліст цалкам @@ -563,7 +565,7 @@ K-9 Mail - шматфункцыянальны свабодны паштовы к Спачатку не адзначаныя лісты Спачатку непрачытаныя лісты Спачатку прачытаныя лісты - Спачатку лісты з укладзенымі файламі + Спачатку лісты з далучанымі файламі Спачатку лісты без укладзеных файлаў Сартаваць па… Дата diff --git a/app/ui/legacy/src/main/res/values-bg/strings.xml b/app/ui/legacy/src/main/res/values-bg/strings.xml index d9c3ea0935..530e445c0f 100644 --- a/app/ui/legacy/src/main/res/values-bg/strings.xml +++ b/app/ui/legacy/src/main/res/values-bg/strings.xml @@ -163,6 +163,8 @@ K-9 Mail е мощен, безплатен имейл клиент за Андр Проверете настройките на сървара Неуспешна идентификация Идентификацията за %s е неуспешна. Обновете сървърните настройки. + + Проверка на поща: %s:%s Проверка на поща Изпраща писмо: %s diff --git a/app/ui/legacy/src/main/res/values-br/strings.xml b/app/ui/legacy/src/main/res/values-br/strings.xml index 03f1b41e14..19e80a9da3 100644 --- a/app/ui/legacy/src/main/res/values-br/strings.xml +++ b/app/ui/legacy/src/main/res/values-br/strings.xml @@ -147,6 +147,8 @@ Danevellit beugoù, kenlabourit war keweriusterioù nevez ha savit goulennoù wa Gwiriit an arventennoù dafariad C’hwiadenn war an dilesa C’hwitadenn war an dilesa evit %s. Hizivait an arventennoù dafariad. + + O kerc’hat ar posteloù: %s:%s Kerc’hat ar posteloù O kas ar postel: %s diff --git a/app/ui/legacy/src/main/res/values-ca/strings.xml b/app/ui/legacy/src/main/res/values-ca/strings.xml index 093fcbce8d..92e68f1ff5 100644 --- a/app/ui/legacy/src/main/res/values-ca/strings.xml +++ b/app/ui/legacy/src/main/res/values-ca/strings.xml @@ -166,6 +166,8 @@ Si us plau, envieu informes d\'errors, contribuïu-hi amb noves millores i feu p Comproveu la configuració del servidor. Ha fallat l\'autenticació Ha fallat l\'autenticació de %s. Actualitzeu la configuració del servidor. + + S\'està comprovant el correu: %s:%s S\'està comprovant el correu S\'està enviant correu: %s diff --git a/app/ui/legacy/src/main/res/values-cs/strings.xml b/app/ui/legacy/src/main/res/values-cs/strings.xml index 96570e9e21..a747a7c96a 100644 --- a/app/ui/legacy/src/main/res/values-cs/strings.xml +++ b/app/ui/legacy/src/main/res/values-cs/strings.xml @@ -12,6 +12,8 @@ Apache License, verze 2.0 Projekt s otevřeným zdrojovým kódem Webová stránka + Uživatelská příručka + Získat nápovědu Uživatelské fórum Fediverse Twitter @@ -170,6 +172,10 @@ Hlášení o chyb, úpravy pro nové funkce a dotazy zadávejte prostřednictví Zkontrolujte nastavení serveru Přihlášení se nezdařilo Přihlášení k %s se nezdařilo. Aktualizujte svá nastavení pro server. + + Chyba upozornění + + Vyskytla se chyba při pokusu o vytvoření systémového upozornění pro novou zprávu. Důvodem je nejspíš chybějící zvuk upozornění.\n\nKlepnutím otevřete nastavení upozorňování. Zjišťování pošty: %s:%s Zjišťování pošty Odesílání pošty: %s diff --git a/app/ui/legacy/src/main/res/values-cy/strings.xml b/app/ui/legacy/src/main/res/values-cy/strings.xml index 3f6289b1a4..feb2433950 100644 --- a/app/ui/legacy/src/main/res/values-cy/strings.xml +++ b/app/ui/legacy/src/main/res/values-cy/strings.xml @@ -170,6 +170,8 @@ Plîs rho wybod am unrhyw wallau, syniadau am nodweddion newydd, neu ofyn cwesti Gwiria osodiadau\'r gweinydd Methwyd a dilysu Methodd y dilysiad ar gyfer %s. Diweddara dy osodiadau gweinydd. + + Yn gwirio am negeseuon: %s:%s Yn gwirio am negeseuon Yn anfon negeseuon: %s diff --git a/app/ui/legacy/src/main/res/values-da/strings.xml b/app/ui/legacy/src/main/res/values-da/strings.xml index a980a8e1c4..663d0c276d 100644 --- a/app/ui/legacy/src/main/res/values-da/strings.xml +++ b/app/ui/legacy/src/main/res/values-da/strings.xml @@ -165,6 +165,8 @@ Rapporter venligst fejl, forslag til nye funktioner eller stil spørgsmål på: Kontroller dine serverindstillinger Godkendelse mislykkedes Godkendelse mislykkedes for %s. Opdater dine serverindstillinger. + + Synkroniserer mail: %s:%s Kontrollere post Sender mail: %s diff --git a/app/ui/legacy/src/main/res/values-de/strings.xml b/app/ui/legacy/src/main/res/values-de/strings.xml index 02b58f9306..eecd25df4c 100644 --- a/app/ui/legacy/src/main/res/values-de/strings.xml +++ b/app/ui/legacy/src/main/res/values-de/strings.xml @@ -12,6 +12,8 @@ Apache-Lizenz, Version 2.0 Open Source Projekt Webseite + Benutzerhandbuch + Hilfe erhalten Anwenderforum Fediverse Twitter @@ -165,6 +167,10 @@ Bitte senden Sie Fehlerberichte, Ideen für neue Funktionen und stellen Sie Frag Überprüfen Sie Ihre Servereinstellungen Authentifizierung fehlgeschlagen Authentifizierung fehlgeschlagen für %s. Überprüfen Sie Ihre Servereinstellungen. + + Benachrichtigungsfehler + + Beim Versuch, eine Systembenachrichtigung für eine neue Nachricht zu erstellen, ist ein Fehler aufgetreten. Der Grund dafür ist höchstwahrscheinlich ein fehlender Benachrichtigungston.\n\nAntippen, um die Benachrichtigungseinstellungen zu öffnen. Neue E-Mails in %s:%s werden abgerufen E-Mails werden abgerufen E-Mail in %s wird gesendet diff --git a/app/ui/legacy/src/main/res/values-el/strings.xml b/app/ui/legacy/src/main/res/values-el/strings.xml index 6b7e6e54f7..8a610f542e 100644 --- a/app/ui/legacy/src/main/res/values-el/strings.xml +++ b/app/ui/legacy/src/main/res/values-el/strings.xml @@ -162,6 +162,8 @@ Ελέγξτε τις ρυθμίσεις του εξυπηρετητή Αποτυχία πιστοποίησης Αποτυχία πιστοποίησης %s. Ενημερώστε τις ρυθμίσεις του εξυπηρετητή σας. + + Έλεγχος μηνύματος: %s:%s Έλεγχος μηνύματος Αποστολή μηνύματος: %s diff --git a/app/ui/legacy/src/main/res/values-en-rGB/strings.xml b/app/ui/legacy/src/main/res/values-en-rGB/strings.xml index 46f86e518c..359089c3f8 100644 --- a/app/ui/legacy/src/main/res/values-en-rGB/strings.xml +++ b/app/ui/legacy/src/main/res/values-en-rGB/strings.xml @@ -13,6 +13,8 @@ + + Colourise contacts Colourise names in your contact list diff --git a/app/ui/legacy/src/main/res/values-eo/strings.xml b/app/ui/legacy/src/main/res/values-eo/strings.xml index c59a8ef6c7..8384b37216 100644 --- a/app/ui/legacy/src/main/res/values-eo/strings.xml +++ b/app/ui/legacy/src/main/res/values-eo/strings.xml @@ -161,6 +161,8 @@ Bonvolu raporti erarojn, kontribui novajn eblojn kaj peti pri novaj funkcioj per Kontrolu agordojn de servilo Aŭtentigo malsukcesis Aŭtentigo por %s malsukcesis. Aktualigu agordojn de servilo. + + Kontrolado de retpoŝto: %s:%s Kontrolado de retpoŝto Sendado de retletero: %s diff --git a/app/ui/legacy/src/main/res/values-es/strings.xml b/app/ui/legacy/src/main/res/values-es/strings.xml index 5ca9edd16d..abf543fe8e 100644 --- a/app/ui/legacy/src/main/res/values-es/strings.xml +++ b/app/ui/legacy/src/main/res/values-es/strings.xml @@ -12,6 +12,8 @@ Licencia Apache, versión 2.0 Proyecto de código abierto Sitio web + Manual de uso + Ayuda Foro de usuarios Fediverse Twitter @@ -166,6 +168,10 @@ Puedes informar de fallos, contribuir con su desarrollo y hacer preguntas en Comprueba los ajustes del servidor Fallo de autenticación Fallo de autenticación en %s. Actualiza y revisa los ajustes del servidor. + + Notificación fallida + + Ha ocurrido un problema al intentar crear una notificación del sistema alertando de un correo nuevo. Seguramente sea por no tener un sonido de alerta puesto.\n\nToca para ver los ajustes de notificaciones. Comprobando correo: %s:%s Comprobando correo Enviando correo: %s diff --git a/app/ui/legacy/src/main/res/values-et/strings.xml b/app/ui/legacy/src/main/res/values-et/strings.xml index 85b1e70bb8..eb5d57b305 100644 --- a/app/ui/legacy/src/main/res/values-et/strings.xml +++ b/app/ui/legacy/src/main/res/values-et/strings.xml @@ -167,6 +167,8 @@ Veateated saad saata, kaastööd teha ning küsida teavet järgmisel lehel: Kontrolli serveri sätteid Autentimine ebaõnnestus Autentimine ebaõnnestus konto %s puhul. Uuenda serveri seadeid. + + Kontrollib e-kirju: %s:%s Kontrollib e-kirju Saadab e-kirja: %s diff --git a/app/ui/legacy/src/main/res/values-eu/strings.xml b/app/ui/legacy/src/main/res/values-eu/strings.xml index 002544e634..f8cf13713d 100644 --- a/app/ui/legacy/src/main/res/values-eu/strings.xml +++ b/app/ui/legacy/src/main/res/values-eu/strings.xml @@ -160,6 +160,8 @@ Mesedez akatsen berri emateko, ezaugarri berriak gehitzeko eta galderak egiteko Egiaztatu zerbitzariaren ezarpenak Autentifikazioak huts egin du Autentifikazioak huts egin du %s-(e)rako. Eguneratu zerbitzariaren ezarpenak. + + Posta egiaztatzen: %s:%s Posta egiaztatzen Posta bidaltzen: %s diff --git a/app/ui/legacy/src/main/res/values-fa/strings.xml b/app/ui/legacy/src/main/res/values-fa/strings.xml index 9f2796e03b..ec66e10b44 100644 --- a/app/ui/legacy/src/main/res/values-fa/strings.xml +++ b/app/ui/legacy/src/main/res/values-fa/strings.xml @@ -165,6 +165,8 @@ تنظیمات کارساز خود را بررسی کنید احراز هویت ناموفق بود اعتبارسنجی %s ناموفق بود. تنظیمات کارساز خود را به‌روز کنید. + + به‌روزآوری رایانامه‌ها: %s:%s به‌روزآوری رایانامه‌ها ارسال رایانامه: %s @@ -276,6 +278,7 @@ راه‌اندازی حساب کاربری جدید نشانی رایانامه گذرواژه + جهت استفاده‌ این حساب کاربری از K-9 Mail، نیاز است که وارد حساب کاربری خود شوید و اجازه دسترسی اپلیکیشن به ایمیل‌ها را صادر کنید. diff --git a/app/ui/legacy/src/main/res/values-fi/strings.xml b/app/ui/legacy/src/main/res/values-fi/strings.xml index f48e2ffda6..6e55cc11c6 100644 --- a/app/ui/legacy/src/main/res/values-fi/strings.xml +++ b/app/ui/legacy/src/main/res/values-fi/strings.xml @@ -12,6 +12,8 @@ Apache-lisenssi, versio 2.0 Avoimen lähdekoodin projekti Verkkosivusto + Käyttäjäopas + Tuki Käyttäjäfoorumi Fediverse Twitter @@ -165,6 +167,10 @@ Ilmoita virheistä, ota osaa sovelluskehitykseen ja esitä kysymyksiä osoittees Tarkista palvelinasetuksesi Tunnistautuminen epäonnistui Tilin %s tunnistautuminen epäonnistui. Päivitä palvelinasetuksesi. + + Ilmoitusvirhe + + Uuteen viestiin liittyvää järjestelmäilmoitusta luotaessa tapahtui virhe. Syy on mitä luultavimmin puuttuva ilmoitusääni.\n\nNapauta avataksesi ilmoitusasetukset. Tarkistetaan viestejä: %s:%s Tarkistetaan viestejä Lähetetään viestejä: %s diff --git a/app/ui/legacy/src/main/res/values-fr/strings.xml b/app/ui/legacy/src/main/res/values-fr/strings.xml index 0df2e55728..9bc3f709d0 100644 --- a/app/ui/legacy/src/main/res/values-fr/strings.xml +++ b/app/ui/legacy/src/main/res/values-fr/strings.xml @@ -12,6 +12,8 @@ Licence Apache, Version 2.0 Projet à code source ouvert Site Web + Guide d’utilisation + Obtenir de l’aide Forum des utilisateurs Fédivers Twitter @@ -169,6 +171,10 @@ Rapportez les bogues, recommandez de nouvelles fonctions et posez vos questions Vérifiez vos paramètres de serveur Échec d’authentification Échec d’authentification pour %s. Mettre à jour les paramètres du serveur. + + Erreur de notification + + Impossible de créer une notification système de nouveau message. Un son de notification manquant en est probablement la cause.\n\nToucher pour ouvrir les paramètres de notification. Relève des courriels : %s:%s Relève des courriels Envoi du courriel : %s diff --git a/app/ui/legacy/src/main/res/values-gd/strings.xml b/app/ui/legacy/src/main/res/values-gd/strings.xml index 5d401e7085..f78c709f96 100644 --- a/app/ui/legacy/src/main/res/values-gd/strings.xml +++ b/app/ui/legacy/src/main/res/values-gd/strings.xml @@ -133,6 +133,8 @@ Thoir sùil air roghainnean an fhrithealaiche agad Dh’fhàillig an dearbhadh Dh’fhàillig dearbhadh a’ chunntais %s. Ùraich roghainnean an fhrithealaiche agad. + + A’ toirt sùil airson post: %s:%s A’ toirt sùil airson post A’ cur a’ phuist: %s diff --git a/app/ui/legacy/src/main/res/values-gl-rES/strings.xml b/app/ui/legacy/src/main/res/values-gl-rES/strings.xml index 815d57eb87..af0ff0fa96 100644 --- a/app/ui/legacy/src/main/res/values-gl-rES/strings.xml +++ b/app/ui/legacy/src/main/res/values-gl-rES/strings.xml @@ -89,6 +89,8 @@ Lixo Erro de certificado para %s Comproba a configuración do servidor + + Comprobando correo: %s:%s Comprobando correo Enviando correo: %s diff --git a/app/ui/legacy/src/main/res/values-gl/strings.xml b/app/ui/legacy/src/main/res/values-gl/strings.xml index 16df5822ba..fb5e0e3369 100644 --- a/app/ui/legacy/src/main/res/values-gl/strings.xml +++ b/app/ui/legacy/src/main/res/values-gl/strings.xml @@ -164,6 +164,8 @@ Por favor envíen informes de fallos, contribúa con novas características e co Comprobe os axustes do servidor Fallo de autenticación Fallou a autenticación para %s. Actualice os axustes do servidor. + + Comprobando correo: %s:%s Comprobando correo Enviando correo: %s diff --git a/app/ui/legacy/src/main/res/values-hr/strings.xml b/app/ui/legacy/src/main/res/values-hr/strings.xml index 22b49c104c..83815e066a 100644 --- a/app/ui/legacy/src/main/res/values-hr/strings.xml +++ b/app/ui/legacy/src/main/res/values-hr/strings.xml @@ -119,6 +119,8 @@ provjerite postavke vašeg poslužitelja Identifikacija nije uspjela Identifikacija nije uspjela za %s. Ažurirajte vaše postavke servera. + + Provjeravam poštu: %s:%s Provjeravanje pošte Šaljem poštu: %s diff --git a/app/ui/legacy/src/main/res/values-hu/strings.xml b/app/ui/legacy/src/main/res/values-hu/strings.xml index 9ec7df9613..7f00550e51 100644 --- a/app/ui/legacy/src/main/res/values-hu/strings.xml +++ b/app/ui/legacy/src/main/res/values-hu/strings.xml @@ -161,6 +161,8 @@ Hibajelentések beküldésével közreműködhet az új funkciókban, és kérd Ellenőrizze a kiszolgálóbeállításokat. A hitelesítés sikertelen. A hitelesítés sikertelen: %s. Frissítse a kiszolgálóbeállításokat. + + Levelek ellenőrzése: %s:%s Levelek ellenőrzése Levél küldése: %s diff --git a/app/ui/legacy/src/main/res/values-in/strings.xml b/app/ui/legacy/src/main/res/values-in/strings.xml index 61694e55cb..a6ff5108a9 100644 --- a/app/ui/legacy/src/main/res/values-in/strings.xml +++ b/app/ui/legacy/src/main/res/values-in/strings.xml @@ -154,6 +154,8 @@ Kirimkan laporan bug, kontribusikan fitur baru dan ajukan pertanyaan di Periksa pengaturan server Anda Otentikasi gagal Otentikasi gagal untuk %s. Perbarui pengaturan server Anda. + + Memeriksa pesan: %s:%s Memeriksa pesan Mengirimkan pesan: %s diff --git a/app/ui/legacy/src/main/res/values-is/strings.xml b/app/ui/legacy/src/main/res/values-is/strings.xml index 0b9e4f3fb7..742e28c0af 100644 --- a/app/ui/legacy/src/main/res/values-is/strings.xml +++ b/app/ui/legacy/src/main/res/values-is/strings.xml @@ -163,6 +163,8 @@ Sendu inn villuskýrslur, leggðu fram nýja eiginleika og spurðu spurninga á Athugaðu stillingar póstþjónsins Auðkenning mistókst Auðkenning mistókst fyrir %s. Uppfærðu stillingar póstþjónsins þíns. + + Athuga með póst: %s:%s Athuga með póst Sendi póst: %s diff --git a/app/ui/legacy/src/main/res/values-it/strings.xml b/app/ui/legacy/src/main/res/values-it/strings.xml index 641af6658a..bab28d5de4 100644 --- a/app/ui/legacy/src/main/res/values-it/strings.xml +++ b/app/ui/legacy/src/main/res/values-it/strings.xml @@ -169,6 +169,8 @@ Invia segnalazioni di bug, contribuisci con nuove funzionalità e poni domande s Controlla le impostazioni del server Autenticazione non riuscita Autenticazione non riuscita per %s. Aggiorna le impostazioni del server. + + Controllo posta: %s:%s Controllo posta Invio posta: %s diff --git a/app/ui/legacy/src/main/res/values-iw/strings.xml b/app/ui/legacy/src/main/res/values-iw/strings.xml index 1ac8d8b46a..4d8c5a194c 100644 --- a/app/ui/legacy/src/main/res/values-iw/strings.xml +++ b/app/ui/legacy/src/main/res/values-iw/strings.xml @@ -134,6 +134,8 @@ נכשל באימות האימות נכשל עבור %s. עדכן את הגדרות השרת. + + בודק דוא"ל: %s:%s בודק דוא\"ל שולח דוא"ל: %s diff --git a/app/ui/legacy/src/main/res/values-ja/strings.xml b/app/ui/legacy/src/main/res/values-ja/strings.xml index 49d99e139e..e479d2962c 100644 --- a/app/ui/legacy/src/main/res/values-ja/strings.xml +++ b/app/ui/legacy/src/main/res/values-ja/strings.xml @@ -12,6 +12,7 @@ Apache License, Version 2.0 オープンソースプロジェクト ウェブサイト + ユーザーマニュアル ユーザーフォーラム Fediverse Twitter @@ -164,6 +165,10 @@ K-9 は大多数のメールクライアントと同様に、ほとんどのフ サーバの設定を確認してください 認証に失敗しました %s の認証に失敗しました。サーバの設定を更新してください。 + + 通知エラー + + 新着メッセージのためのシステム通知の作成中にエラーが発生しました。通知サウンドが不足していることが原因と思われます。\n\nタップして通知設定を開いてください。 メール確認中: %s:%s メール確認中 メール送信中: %s diff --git a/app/ui/legacy/src/main/res/values-ko/strings.xml b/app/ui/legacy/src/main/res/values-ko/strings.xml index 64f46e8525..7050bf0dcb 100644 --- a/app/ui/legacy/src/main/res/values-ko/strings.xml +++ b/app/ui/legacy/src/main/res/values-ko/strings.xml @@ -115,6 +115,8 @@ 서버 설정을 점검하십시오. 인증 실패 %s 계정 인증 오류. 서버 설정을 업데이트하세요. + + 메일 체크 중: %s:%s 메일 체크 중 메일 전송 중: %s diff --git a/app/ui/legacy/src/main/res/values-lt/strings.xml b/app/ui/legacy/src/main/res/values-lt/strings.xml index 5984d1b5ea..c1edc32ebb 100644 --- a/app/ui/legacy/src/main/res/values-lt/strings.xml +++ b/app/ui/legacy/src/main/res/values-lt/strings.xml @@ -171,6 +171,8 @@ Pateikite pranešimus apie klaidas, prisidėkite prie naujų funkcijų kūrimo i Patikrinkite serverio nustatymus Autentifikavimas nepavyko Nepavyko nustatyti autentiškumo %s. Atnaujinkite serverio nustatymus. + + Tikrinamas paštas: %s:%s Tikrinamas paštas Siunčiamas paštas: %s diff --git a/app/ui/legacy/src/main/res/values-lv/strings.xml b/app/ui/legacy/src/main/res/values-lv/strings.xml index 8f6d3842f6..ded9952a38 100644 --- a/app/ui/legacy/src/main/res/values-lv/strings.xml +++ b/app/ui/legacy/src/main/res/values-lv/strings.xml @@ -165,6 +165,8 @@ pat %d vairāk Pārbaudiet sava servera iestatījumus Identitātes pārbaude neizdevās Identifikācijas pārbaude kontam %s neizdevās. Atjaunojiet servera iestatījumus! + + Pārbauda pastu: %s:%s Pārbauda pastu Sūta pastu: %s diff --git a/app/ui/legacy/src/main/res/values-ml/strings.xml b/app/ui/legacy/src/main/res/values-ml/strings.xml index 154edbd742..4051047303 100644 --- a/app/ui/legacy/src/main/res/values-ml/strings.xml +++ b/app/ui/legacy/src/main/res/values-ml/strings.xml @@ -164,6 +164,8 @@ നിങ്ങളുടെ സെർവർ ക്രമീകരണങ്ങൾ പരിശോധിക്കുക പ്രാമാണീകരണം പരാജയപ്പെട്ടു %s നായുള്ള പ്രാമാണീകരണം പരാജയപ്പെട്ടു. നിങ്ങളുടെ സെർവർ ക്രമീകരണങ്ങൾ പുതുക്കുക. + + മെയിൽ പരിശോധിക്കുന്നു: %s:%s മെയിൽ പരിശോധിക്കുന്നു മെയിൽ അയയ്ക്കുന്നു: %s diff --git a/app/ui/legacy/src/main/res/values-nb/strings.xml b/app/ui/legacy/src/main/res/values-nb/strings.xml index b0608e5ff9..660828fec9 100644 --- a/app/ui/legacy/src/main/res/values-nb/strings.xml +++ b/app/ui/legacy/src/main/res/values-nb/strings.xml @@ -155,6 +155,8 @@ til %d flere Sjekk dine tjenerinnstillinger Autentisering feilet Autentisering feilet for %s. Oppdater serverinnstillingene dine. + + Sjekker e-post: %s:%s Sjekker e-post Sender e-post: %s diff --git a/app/ui/legacy/src/main/res/values-nl/strings.xml b/app/ui/legacy/src/main/res/values-nl/strings.xml index 80975278d2..487906a775 100644 --- a/app/ui/legacy/src/main/res/values-nl/strings.xml +++ b/app/ui/legacy/src/main/res/values-nl/strings.xml @@ -161,6 +161,8 @@ Graag foutrapporten sturen, bijdragen voor nieuwe functies en vragen stellen op Controleer de server instellingen Authenticatie mislukt Authenticatie mislukt voor %s. Werk de server instellingen bij. + + Controleer berichten: %s:%s Controleren berichten Versturen van berichten: %s diff --git a/app/ui/legacy/src/main/res/values-pl/strings.xml b/app/ui/legacy/src/main/res/values-pl/strings.xml index 1f81596721..366c2599b7 100644 --- a/app/ui/legacy/src/main/res/values-pl/strings.xml +++ b/app/ui/legacy/src/main/res/values-pl/strings.xml @@ -12,6 +12,8 @@ Licencja Apache, Wersja 2.0 Projekt otwartoźródłowy Strona internetowa + Instrukcja obsługi + Uzyskaj pomoc Forum użytkowników Fediverse Twitter @@ -61,7 +63,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Konto \"%s\" zostanie usunięte z K-9 Mail. Autorzy - O K-9 Mail + O aplikacji K-9 Mail Konta Zaawansowane Nowa wiadomość @@ -134,7 +136,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Dodaj załącznik Opróżnij kosz Wyczyść - O programie + O aplikacji Ustawienia (Brak tematu) @@ -170,6 +172,10 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Sprawdź ustawienia serwera Uwierzytelnianie nie powiodło się Uwierzytelnianie dla %s nie powiodło się. Zaktualizuj ustawienia serwera. + + Błąd powiadomienia + + Wystąpił błąd podczas próby utworzenia powiadomienia systemowego dla nowej wiadomości. Powodem jest najprawdopodobniej brak dźwięku powiadomienia.\n\nStuknij, aby otworzyć ustawienia powiadomień. Sprawdzam: %s:%s Sprawdzam Wysyłam: %s @@ -223,7 +229,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi UDW: Nie można zapisać załącznika. Wyświetl grafikę - Nie moge znaleźć programu do wyświetlenia pliku %s. + Nie moge znaleźć aplikacji do wyświetlenia pliku %s. Pobierz całą wiadomość przez %1$s Więcej od tego nadawcy @@ -232,17 +238,17 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Wiadomość zapisana jako wersja robocza Oznaczaj gwiazdkami Gwiazdki wskazują oznakowane wiadomości - Podglądaj linie - Pokazuj nazwiska korespondentów - Pokazuj nazwiska korespondentów zamiast ich adresów e-mail + Podgląd wierszy + Pokazuj imiona i nazwiska korespondentów + Pokazuj imiona i nazwiska korespondentów zamiast ich adresów e-mail Korespondent powyżej tematu - Wyświetlaj nazwę korespondenta powyżej, zamiast poniżej tematu + Pokazuj imiona i nazwiska korespondentów powyżej, a nie poniżej tematu Pokazuj nazwę kontaktu Użyj nazw nadawców, jeżeli występują w Twojej książce kontaktowej Koloruj kontakty Koloruj nazwiska na liście kontaktów Kolor nazwy kontaktu - Czcionka o stałej szer. + Czcionka o stałej szerokości Użyj czcionki o stałej szerokości do wyświetlania wiadomości tekstowych Dopasuj wiadomość do rozmiaru ekranu Zmniejsza wiadomości, aby mieściły się na ekranie @@ -333,7 +339,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Od razu Podczas każdego pobrania Tylko ręcznie - Wykrywaj automatycznie IMAP namespace + Automatycznie wykrywaj przestrzeń nazw IMAP Prefiks ścieżki IMAP Folder wersji roboczych Wysłane @@ -368,7 +374,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Co 24 godziny Odśwież połączenie IDLE Co 2 minuty - co 3 minuty + Co 3 minuty Co 6 minut Co 12 minut Co 24 minuty @@ -431,7 +437,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Od każdego Tworzenie wiadomości Cytuj oryginał - Gdy odpowiadasz tekst oryginalnej wiadomości zostanie cytowany + Gdy odpowiadasz, tekst oryginalnej wiadomości zostanie zacytowany Odpowiedź pod cytatem Podczas odpowiadania, wiadomość oryginalna (cytowana) pojawi się nad Twoją odpowiedzią Wycinaj podpis z tekstu @@ -453,10 +459,10 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Synchronizacja folderów Foldery Prefiks cytowania - Szyfrowanie pomiędzy urządzeniami końcowymi \"end-to-end\" + Szyfrowanie typu „end-to-end” Aktywuj wsparcie dla OpenPGP Wybierz aplikację OpenPGP - Skonfiguruj szyfrowanie pomiędzy urządzeniami końcowymi \"end-to-end\" + Skonfiguruj klucz szyfrowania typu „end-to-end” Brak skonfigurowanej aplikacji OpenPGP Połączono z %s Konfigurowanie… @@ -624,7 +630,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Data otrzymania Temat Nadawca - Gwiazdek + Gwiazdka Przeczytane/nieprzeczytane Załączniki Usuwanie @@ -645,8 +651,8 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Użyj stylu aplikacji Ciemna Jasna - Użyj domyślnego systemowego - Ustawienia globalne + Użyj domyślnej systemowej + Wyświetlanie Globalne Debugowanie Prywatność @@ -670,7 +676,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Gdy \'Autosynchronizacja\' jest włączona Zaznacz wszystko Sprawdzanie przez Push - 5 folderów + Do 5 folderów Do 10 folderów Do 25 folderów Do 50 folderów @@ -696,7 +702,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Żadne Automatyczne (%s) Rozmiar czcionki - Ustawienia rozmiarów czcionek + Ustawienia rozmiaru czcionki Lista kont Nazwa konta Opis konta @@ -727,7 +733,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Średnia Duża Wielka - Nie znaleiono odpowiedniej aplikacji. + Nie znaleziono odpowiedniej aplikacji. Wysyłanie nieudane: %s Zapisać wersję roboczą wiadomości? Zapisać czy porzucić wiadomość? @@ -791,7 +797,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Hasło wymagane Wymagane jest zalogowanie się - Nie zaimportowane + Niezaimportowane Import zakończony niepowodzeniem Później Import @@ -847,7 +853,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi 250 500 1000 - Maksymalna ilość wyników + Maksymalna liczba wyników Wysyłam żądanie do serwera Pobieram wyniki: %d @@ -914,7 +920,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Nie skonfigurowanego klucza dla tego konta! Sprawdź ustawienia. Aplikacja szyfrująca w niezgodnej wersji. Sprawdź ustawienia. Nie można połączyć się z dostawcą kryptografii, sprawdź ustawienia lub kliknij ikonę kryptografii, aby spróbować ponownie! - Inicjalizacja szyfrowania pomiędzy urządzeniami końcowymi \"end-to-end\" nie powiodła się. Sprawdź ustawienia. + Inicjalizacja szyfrowania typu „end-to-end” nie powiodła się. Sprawdź ustawienia. Tryb PGP/INLINE nie obsługuje załączników! Włącz PGP/INLINE Wyłącz PGP/INLINE @@ -938,34 +944,34 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi W przypadku niektórych klientów, podpisy mogą być wyświetlane jako załączniki \'signature.asc\' . Zaszyfrowane wiadomości są zawsze opatrzone podpisem. Czysty tekst - Podpis end-to-end zawiera błąd + podpis „end-to-end” zawiera błąd musisz w pełni pobrać wiadomość, aby przetworzyć podpis - zawiera niewspierany podpis end-to-end + zawiera niewspierany podpis „end-to-end” Wiadomość jest zaszyfrowana, ale w niewspieranym formacie. Wiadomość jest zaszyfrowana, ale deszyfrowanie zostało przerwane. - Podpis End-to-End czystego tekstu + „end-to-end” podpisane tekstem jawnym od zaufanego dostawcy Podpisany czysty tekst - ale klucz end-to-end nie pasuje do nadawcy - ale klucz end-to-end wygasł - ale klucz end-to-end jest unieważniony - ale klucz end-to-end nie jest uważany za bezpieczny - od nieznanego klucza end-to-end + ale klucz „end-to-end” nie pasuje do nadawcy + ale klucz „end-to-end” wygasł + ale klucz „end-to-end” jest unieważniony + ale klucz „end-to-end” nie jest uważany za bezpieczny + od nieznanego klucza „end-to-end” Zaszyfrowana ale jest tu błąd deszyfrowania musisz w pełni pobrać wiadomość, aby odszyfrować ale żadna aplikacja kryptograficzna nie jest skonfigurowana Zaszyfrowana - ale nie end-to-end - Zaszyfrowana end-to-end + ale nie „end-to-end” + Zaszyfrowana „end-to-end” od znanego nadawcy Zaszyfrowana - od nieznanego klucza end-to-end - ale klucz end-to-end nie pasuje do nadawcy - ale klucz end-to-end wygasł - ale klucz end-to-end jest unieważniony - ale klucz end-to-end nie jest uważany za bezpieczny - ale dane end-to-end mają błędy + od nieznanego klucza „end-to-end” + ale klucz „end-to-end” nie pasuje do nadawcy + ale klucz „end-to-end” wygasł + ale klucz „end-to-end” jest unieważniony + ale klucz „end-to-end” nie jest uważany za bezpieczny + ale dane „end-to-end” mają błędy ale szyfrowanie nie jest uważane za bezpieczne OK Klucz wyszukiwania @@ -982,7 +988,7 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Błąd odszyfrowywania wiadomości e-mail. Znaki specjalne nie są obecnie obsługiwane! Błąd analizowania adresu! - Ukryj nie zaszyfrowane podpisy. + Ukryj niezaszyfrowane podpisy. Tylko zaszyfrowane podpisy będą widoczne. Wszystkie podpisy będą widoczne. Szyfrowanie nie jest dostępne w trybie sign-only! @@ -1003,24 +1009,24 @@ Wysłane z urządzenia Android za pomocą K-9 Mail. Proszę wybaczyć moją zwi Cofnij Wyłącz szyfrowanie Szyfrowanie OpenPGP - Obustronny automatyczny tryb szyfrowania - Obustronny automatyczny tryb szyfrowania + Tryb wzajemny Autocrypt + Tryb wzajemny Autocrypt Wiadomości normalnie będą szyfrowane z wyboru lub kiedy odpowiadasz na szyfrowaną wiadomość. Jeśli nadawca i odbiorcy włączą tryb obustronnego automatycznego szyfrowania, szyfrowanie będzie włączone domyślnie. Możesz kliknąć tutaj, aby dowiedzieć się więcej. Ustawienia ogólne Brak aplikacji dla OpenPGP Instaluj - K-9 Mail wymaga OpenKeychain dla szyfrowania pomiędzy urządzeniami końcowymi \"end-to-end\". + K-9 Mail wymaga OpenKeychain do szyfrowania typu „end-to-end”. Zaszyfrowana wiadomość Zaszyfruj tematy wiadomości Może nie być wspierana przez niektórych odbiorców Błąd wewnętrzny: nieprawidłowe konto! Błąd połączenia z 1%s! Wyślij wiadomość konfiguracyjną Autocrypt - Bezpiecznie wymieniaj z innymi urządzeniami konfigurację szyfrowania end-to-end + Bezpiecznie wymieniaj z innymi urządzeniami konfigurację szyfrowania typu „end-to-end” Wiadomość konfiguracyjna Autocrypt - Wiadomość konfiguracyjna Autocrypt bezpiecznie udostępnia twoją konfigurację szyfrowania end-to-end z innymi urządzeniami. + Wiadomość konfiguracyjna Autocrypt bezpiecznie udostępnia Twoją konfigurację szyfrowania typu „end-to-end” innym urządzeniom. Wyślij wiadomość konfiguracyjną Wiadomość zostanie wysłana na adres: Generowanie wiadomości konfiguracyjnej @@ -1045,7 +1051,7 @@ Tą wiadomość można zachować i użyć w formie kopii zapasowej twojego klucz Oczekiwanie na nowe e-maile Uśpione, dopóki synchronizacja w tle nie będzie dozwolona Uśpione, dopóki sieć nie będzie dostępna - Dotknij, aby dowiedzieć się więcej. + Stuknij, aby dowiedzieć się więcej. Informacje push Podczas korzystania z funkcji powiadomień push, K-9 Mail utrzymuje połączenie z serwerem pocztowym. Android wymaga wyświetlania ciągłego, gdy aplikacja jest aktywna w tle. %s Jednak Android pozwala również ukryć powiadomienie. diff --git a/app/ui/legacy/src/main/res/values-pt-rBR/strings.xml b/app/ui/legacy/src/main/res/values-pt-rBR/strings.xml index b4707a4570..0cbf238634 100644 --- a/app/ui/legacy/src/main/res/values-pt-rBR/strings.xml +++ b/app/ui/legacy/src/main/res/values-pt-rBR/strings.xml @@ -12,6 +12,8 @@ Apache License, Versão 2.0 Projeto de código aberto Website + Manual do usuário + Obtenha ajuda Fórum de usuários Fediverse Twitter @@ -167,6 +169,8 @@ Por favor encaminhe relatórios de bugs, contribua com novos recursos e tire dú Verifique suas configurações de servidor Falha na autenticação Falha na autenticação de %s. Atualize suas configurações de servidor. + + Verificando email: %s:%s Verificando email Enviando mensagem: %s diff --git a/app/ui/legacy/src/main/res/values-pt-rPT/strings.xml b/app/ui/legacy/src/main/res/values-pt-rPT/strings.xml index ccdd7d58fd..d17db445df 100644 --- a/app/ui/legacy/src/main/res/values-pt-rPT/strings.xml +++ b/app/ui/legacy/src/main/res/values-pt-rPT/strings.xml @@ -149,6 +149,8 @@ Por favor envie relatórios de falhas, contribua com novas funcionalidades e col Verifique as configurações do servidor A autenticação falhou A autenticação falhou para %s. Atualize as configurações do servidor. + + A verificar correio: %s:%s A verificar correio A enviar correio: %s diff --git a/app/ui/legacy/src/main/res/values-ro/strings.xml b/app/ui/legacy/src/main/res/values-ro/strings.xml index c6bf6ac550..4807bcde05 100644 --- a/app/ui/legacy/src/main/res/values-ro/strings.xml +++ b/app/ui/legacy/src/main/res/values-ro/strings.xml @@ -167,6 +167,8 @@ cel mult încă %d Verifică setările serverului Autentificarea a eșuat Authentificare eșuată pentru %s. Actualizează setările serverului. + + Se verifică emailul: %s:%s Se verifică emailul Se trimite emailul: %s diff --git a/app/ui/legacy/src/main/res/values-ru/strings.xml b/app/ui/legacy/src/main/res/values-ru/strings.xml index 3dc05c0c94..ec1ea0a15a 100644 --- a/app/ui/legacy/src/main/res/values-ru/strings.xml +++ b/app/ui/legacy/src/main/res/values-ru/strings.xml @@ -169,6 +169,8 @@ K-9 Mail — почтовый клиент для Android. Проверьте настройки сервера Сбой аутентификации Сбой аутентификации для %s. Измените настройки сервера + + Проверка %s:%s Проверка почты Отправка %s diff --git a/app/ui/legacy/src/main/res/values-sk/strings.xml b/app/ui/legacy/src/main/res/values-sk/strings.xml index 5edd75afcf..2d21900d9d 100644 --- a/app/ui/legacy/src/main/res/values-sk/strings.xml +++ b/app/ui/legacy/src/main/res/values-sk/strings.xml @@ -160,6 +160,8 @@ Prosím, nahlasujte prípadné chyby, prispievajte novými funkciami a pýtajte Skontrolujte nastavenia servera Overenie zlyhalo Overenie pre %s zlyhalo. Aktualizujte nastavenia servera. + + Kontrolovanie pošty: %s:%s Kontrolovanie pošty Odosielanie pošty: %s diff --git a/app/ui/legacy/src/main/res/values-sl/strings.xml b/app/ui/legacy/src/main/res/values-sl/strings.xml index d3ad71bedd..32a9256a6d 100644 --- a/app/ui/legacy/src/main/res/values-sl/strings.xml +++ b/app/ui/legacy/src/main/res/values-sl/strings.xml @@ -170,6 +170,8 @@ dodatnih %d sporočil Preverite nastavitve strežnika Overjanje je spodletelo Overjanje je spodletelo za račun %s. Posodobiti je treba nastavitve strežnika. + + Preverjanje pošte: %s:%s Preverjanje pošte Pošiljanje pošte: %s diff --git a/app/ui/legacy/src/main/res/values-sq/strings.xml b/app/ui/legacy/src/main/res/values-sq/strings.xml index ddad3a15d4..ebc12c382c 100644 --- a/app/ui/legacy/src/main/res/values-sq/strings.xml +++ b/app/ui/legacy/src/main/res/values-sq/strings.xml @@ -12,6 +12,8 @@ Apache License, Version 2.0 Projekt Me Burim të Hapët Sajt + Doracak përdoruesi + Merrni ndihmë Forum përdoruesish Fedivers Twitter @@ -167,6 +169,10 @@ Ju lutemi, parashtrim njoftimesh për të meta, kontribute për veçori të reaj Kontrolloni rregullimet e shërbyesit tuaj Mirëfilltësimi dështoi Mirëfilltësimi për %s dështoi. Përditësoni rregullimet rreth shërbyesit tuaj. + + Gabim njoftimi + + Ndodhi një gabim teksa provohej të krijohej një njoftim sistemi për një mesazh të ri. Arsyeja ka shumë gjasa të jetë mungesa e një tingulli njoftimesh.\n\nPrekeni që të hapen rregullimet për njoftimet. Po merret postë: %s:%s Marrje poste Po dërgohet postë: %s diff --git a/app/ui/legacy/src/main/res/values-sr/strings.xml b/app/ui/legacy/src/main/res/values-sr/strings.xml index 3bd2460af0..1dc8d6c89e 100644 --- a/app/ui/legacy/src/main/res/values-sr/strings.xml +++ b/app/ui/legacy/src/main/res/values-sr/strings.xml @@ -158,6 +158,8 @@ Проверите поставке за сервер Аутентификација није успела Аутентификација није успела за %s. Ажурирајте поставке сервера. + + Проверавам пошту: %s:%s Проверавам пошту Шаљем пошту: %s diff --git a/app/ui/legacy/src/main/res/values-sv/strings.xml b/app/ui/legacy/src/main/res/values-sv/strings.xml index a4b7655ce7..052be388ac 100644 --- a/app/ui/legacy/src/main/res/values-sv/strings.xml +++ b/app/ui/legacy/src/main/res/values-sv/strings.xml @@ -12,6 +12,8 @@ Apache License, Version 2.0 Projekt med öppen källkod Webbplats + Användarmanual + Få hjälp Användarforum Fediversum Twitter @@ -166,6 +168,10 @@ Skicka in felrapporter, bidra med nya funktioner och ställ frågor på Kontrollera dina serverinställningar Autentisering misslyckades Autentisering misslyckades för %s. Uppdatera dina serverinställningar. + + Aviseringsfel + + Ett fel uppstod vid försök att skapa en systemavisering för ett nytt meddelande. Anledningen är troligen att ett aviseringsljud saknas.\n\nTryck för att öppna aviseringsinställningarna. Kontrollerar e-post: %s:%s Kontrollerar e-post Skickar e-post: %s diff --git a/app/ui/legacy/src/main/res/values-tr/strings.xml b/app/ui/legacy/src/main/res/values-tr/strings.xml index 71e09b34d6..a0f6688be6 100644 --- a/app/ui/legacy/src/main/res/values-tr/strings.xml +++ b/app/ui/legacy/src/main/res/values-tr/strings.xml @@ -163,6 +163,8 @@ Microsoft Exchange ile konuşurken bazı tuhaflıklar yaşadığını not ediniz Sunucu ayarlarınızı kontrol edin Kimlik Doğrulama Hatası %s için oturum açılamadı. Sunucu ayarlarınızı güncelleyin. + + Posta kontrol ediliyor: %s:%s Posta kontrol ediliyor Posta gönderiliyor: %s diff --git a/app/ui/legacy/src/main/res/values-uk/strings.xml b/app/ui/legacy/src/main/res/values-uk/strings.xml index c13d172e00..42f3b7b860 100644 --- a/app/ui/legacy/src/main/res/values-uk/strings.xml +++ b/app/ui/legacy/src/main/res/values-uk/strings.xml @@ -170,6 +170,8 @@ K-9 Mail — це вільний клієнт електронної пошти Перевірте налаштування вашого серверу Помилка автентифікації Помилка автентифікації для %s. Змініть налаштування сервера. + + Перевірка пошти: %s:%s Перевірка пошти Надсилання пошти: %s diff --git a/app/ui/legacy/src/main/res/values-zh-rCN/strings.xml b/app/ui/legacy/src/main/res/values-zh-rCN/strings.xml index 4688e8a00b..891b2d58a3 100644 --- a/app/ui/legacy/src/main/res/values-zh-rCN/strings.xml +++ b/app/ui/legacy/src/main/res/values-zh-rCN/strings.xml @@ -12,6 +12,8 @@ Apache 许可证,2.0 版 开源项目 网站 + 用户手册 + 获取帮助 用户论坛 多样性 推特 @@ -164,6 +166,10 @@ K-9 Mail 是 Android 上一款功能强大的免费邮件客户端。 请检查您的服务器设置 身份验证失败 %s 登录失败,请更新设置。 + + 通知错误 + + 尝试创建新消息的系统通知时出错。最有可能的原因是缺少通知声音。\n\n轻按打开通知设置。 正在检查邮件:%s%s 正在检查邮件 正在发送邮件:%s diff --git a/app/ui/legacy/src/main/res/values-zh-rTW/strings.xml b/app/ui/legacy/src/main/res/values-zh-rTW/strings.xml index ed8d2eaad2..2bb6ab8efa 100644 --- a/app/ui/legacy/src/main/res/values-zh-rTW/strings.xml +++ b/app/ui/legacy/src/main/res/values-zh-rTW/strings.xml @@ -12,6 +12,8 @@ Apache 授權條款, 版本 2.0 開放原始碼專案 網站 + 使用者手冊 + 取得說明 使用者論壇 Fediverse Twitter @@ -164,6 +166,8 @@ K-9 Mail 是 Android 上一款功能強大,免費的電子郵件用戶端。 檢查你的伺服器設定 身份驗證失敗 %s 登入失敗。請更新你的伺服器設定。 + + 正在檢查郵件:%s:%s 正在檢查郵件 正在寄送郵件:%s -- GitLab From 923453ad3f5abb6a90918e1b7c2be5071a23f995 Mon Sep 17 00:00:00 2001 From: cketti Date: Thu, 14 Jul 2022 17:06:31 +0200 Subject: [PATCH 8/9] Don't remove OAuth state on temporary errors --- .../k9/backends/RealOAuth2TokenProvider.kt | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/app/k9mail/src/main/java/com/fsck/k9/backends/RealOAuth2TokenProvider.kt b/app/k9mail/src/main/java/com/fsck/k9/backends/RealOAuth2TokenProvider.kt index 3fc93963c8..48402de426 100644 --- a/app/k9mail/src/main/java/com/fsck/k9/backends/RealOAuth2TokenProvider.kt +++ b/app/k9mail/src/main/java/com/fsck/k9/backends/RealOAuth2TokenProvider.kt @@ -5,10 +5,13 @@ import com.fsck.k9.Account import com.fsck.k9.mail.AuthenticationFailedException import com.fsck.k9.mail.oauth.OAuth2TokenProvider import com.fsck.k9.preferences.AccountManager +import java.io.IOException import java.util.concurrent.CountDownLatch import java.util.concurrent.TimeUnit import net.openid.appauth.AuthState import net.openid.appauth.AuthorizationException +import net.openid.appauth.AuthorizationException.AuthorizationRequestErrors +import net.openid.appauth.AuthorizationException.GeneralErrors import net.openid.appauth.AuthorizationService class RealOAuth2TokenProvider( @@ -42,21 +45,26 @@ class RealOAuth2TokenProvider( latch.await(timeoutMillis, TimeUnit.MILLISECONDS) - if (exception != null) { + val authException = exception + if (authException == GeneralErrors.NETWORK_ERROR || + authException == GeneralErrors.SERVER_ERROR || + authException == AuthorizationRequestErrors.SERVER_ERROR || + authException == AuthorizationRequestErrors.TEMPORARILY_UNAVAILABLE + ) { + throw IOException("Error while fetching an access token", authException) + } else if (authException != null) { account.oAuthState = null accountManager.saveAccount(account) - } else if (token != oldAccessToken) { - requestFreshToken = false - account.oAuthState = authState.jsonSerializeString() - accountManager.saveAccount(account) - } - exception?.let { authException -> throw AuthenticationFailedException( message = "Failed to fetch an access token", throwable = authException, messageFromServer = authException.error ) + } else if (token != oldAccessToken) { + requestFreshToken = false + account.oAuthState = authState.jsonSerializeString() + accountManager.saveAccount(account) } return token ?: throw AuthenticationFailedException("Failed to fetch an access token") -- GitLab From 74a58345d8de511a1d94b157a7dadddfd2202628 Mon Sep 17 00:00:00 2001 From: cketti Date: Fri, 15 Jul 2022 18:08:10 +0200 Subject: [PATCH 9/9] Version 6.201 --- app/k9mail/build.gradle | 4 ++-- app/ui/legacy/src/main/res/raw/changelog_master.xml | 8 ++++++++ fastlane/metadata/android/en-US/changelogs/32001.txt | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/32001.txt diff --git a/app/k9mail/build.gradle b/app/k9mail/build.gradle index f7e78517b2..85780b1332 100644 --- a/app/k9mail/build.gradle +++ b/app/k9mail/build.gradle @@ -47,8 +47,8 @@ android { applicationId "com.fsck.k9" testApplicationId "com.fsck.k9.tests" - versionCode 32000 - versionName '6.200' + versionCode 32001 + versionName '6.201' // Keep in sync with the resource string array 'supported_languages' resConfigs "in", "br", "ca", "cs", "cy", "da", "de", "et", "en", "en_GB", "es", "eo", "eu", "fr", "gd", "gl", diff --git a/app/ui/legacy/src/main/res/raw/changelog_master.xml b/app/ui/legacy/src/main/res/raw/changelog_master.xml index 332e3246ef..9acca0491d 100644 --- a/app/ui/legacy/src/main/res/raw/changelog_master.xml +++ b/app/ui/legacy/src/main/res/raw/changelog_master.xml @@ -5,6 +5,14 @@ Locale-specific versions are kept in res/raw-/changelog.xml. --> + + Added support for using OAuth 2.0 with Office365 accounts + Fixed a bug that could lead to two message lists being displayed on top of each other + Avoid a crash when trying to create new message notifications but the notification sound couldn't be accessed + Fixed a bug where multi-select mode was exited early in some cases + Don't require re-authorization when getting an OAuth token fails due to a temporary error + Updated translations + Added support for using OAuth 2.0 with Google, Yahoo, AOL, and personal Microsoft accounts (Office365 accounts are not supported yet) Added "Unsubscribe" action that is displayed in the menu when viewing a message that contains an Unsubscribe header diff --git a/fastlane/metadata/android/en-US/changelogs/32001.txt b/fastlane/metadata/android/en-US/changelogs/32001.txt new file mode 100644 index 0000000000..670ef32fdf --- /dev/null +++ b/fastlane/metadata/android/en-US/changelogs/32001.txt @@ -0,0 +1,6 @@ +- Added support for using OAuth 2.0 with Office365 accounts +- Fixed a bug that could lead to two message lists being displayed on top of each other +- Avoid a crash when trying to create new message notifications but the notification sound couldn't be accessed +- Fixed a bug where multi-select mode was exited early in some cases +- Don't require re-authorization when getting an OAuth token fails due to a temporary error +- Updated translations -- GitLab