Commit graph

362 commits

Author SHA1 Message Date
cketti
0392f86a63 Extract values from ServerSettings when creating an IMAP account 2023-07-17 15:49:39 +02:00
cketti
8c35dd5b34 Log error when creating an account fails 2023-07-17 12:39:18 +02:00
cketti
037b39a566 Fix setting account name and sender name when creating an account 2023-07-17 12:37:44 +02:00
cketti
8b07c61d18 Use signature when one was configured during account setup 2023-07-17 12:22:26 +02:00
cketti
248fd3dc2a Set folderPushMode to NONE when creating account 2023-07-17 12:17:44 +02:00
Wolf-Martell Montwé
878cc45c04
Merge pull request #7040 from thundernest/add_feature_flags
Add feature flags
2023-07-03 16:04:27 +02:00
Wolf-Martell Montwé
c781e7032d
Add FeatureFlagFactory to K9 app and use the flag in MessageList 2023-07-03 15:37:22 +02:00
Wolf-Martell Montwé
1aa69635f5
Add launch import settings 2023-07-03 15:30:57 +02:00
Wolf-Martell Montwé
6cfd9481aa
Move AccountSetupFinishedLauncher to feature launcher 2023-07-03 10:21:14 +02:00
Wolf-Martell Montwé
9bf80c2266
Change AccountSetupFinishedLauncher to use custom intent for properly launching MessageList 2023-06-30 13:18:19 +02:00
Wolf-Martell Montwé
fe180f282d
Add createAccount use case to account setup 2023-06-30 12:13:16 +02:00
Wolf-Martell Montwé
5c076d4f69
Change AccountSetupExternalContract to suspend and wrap IO operations with coroutine IO dispatcher 2023-06-30 12:04:27 +02:00
Wolf-Martell Montwé
32a8f23dc7
Add create account use case 2023-06-30 12:04:27 +02:00
Wolf-Martell Montwé
1c142876d0
Add AccountOptions and state mapper 2023-06-30 12:04:27 +02:00
Wolf-Martell Montwé
5384350689
Add AccountCreator as external dependency for the account setup 2023-06-30 12:04:27 +02:00
Wolf-Martell Montwé
88a4b7913f
Add AccountOwnerNameProvider 2023-06-29 12:24:28 +02:00
Wolf-Martell Montwé
dbdbb25cdb
Add AccountSetupFinishedLauncher 2023-06-29 12:24:28 +02:00
cketti
1e42e92b1b Include more information in IMAP-specific ServerSettings
The additional properties are necessary to validate server settings.
2023-06-23 17:13:22 +02:00
cketti
6d53e41114 Use constructor injection for "clientIdAppName" 2023-06-23 14:35:12 +02:00
Wolf-Martell Montwé
00148f1a99
Change OAuth to not use OAuthProvider enum and delegate configuration creation to the app 2023-06-21 14:05:28 +02:00
Wolf-Martell Montwé
e64d030d22
Refactor OauthConfiguration to be placed in common module with added OAuthProvder and OAuthProviderSettings 2023-06-20 15:17:47 +02:00
Wolf-Martell Montwé
9e0f1bd815
Resolve app.core dependency blocking oauth extraction 2023-06-20 15:17:45 +02:00
cketti
656a9d3862 Use relaxed mode to parse email addresses from message headers 2023-06-15 19:32:56 +02:00
cketti
fa487b2016 Always use extension function to create EmailAddress instance 2023-06-01 14:29:28 +02:00
cketti
b1f876cbdc
Merge pull request #6876 from thundernest/manifest_changes
Explicitly set manifest attribute "hasFragileUserData" to false
2023-05-05 18:06:03 +02:00
cketti
b56e444a74 Explicitly set manifest attribute "hasFragileUserData" to false 2023-05-05 16:21:26 +02:00
cketti
ff188cdfb5 Remove WebDAV code 2023-05-04 22:14:00 +02:00
Self Not Found
f2ce1fe344 IMAP: Add support for sending ID command with app name 2023-04-26 14:58:44 +02:00
cketti
692b03a550 Enable home screen widgets by default 2023-04-17 15:13:08 +02:00
Wolf Montwé
9cdf3e2b7a
Add ContactRepository 2023-03-09 13:48:06 +01:00
Wolf Montwé
5e09e067b0
Add email value type 2023-03-07 18:12:38 +01:00
Wolf Montwé
cab1c71524
Cleanup remaining code style issues for Kotlin sources 2023-02-17 16:14:14 +01:00
Wolf Montwé
29d5220995
Add trailing comma allowance to code style 2023-02-17 16:14:13 +01:00
cketti
487787bdd2 Simplify creation of FolderNameFormatter
`FolderNameFormatter` is only retrieving string resources. For this the global `Resources` instance will do. There's no need to pass instances retrieved from an `Activity`.
2023-02-08 16:09:32 +01:00
Wolf Montwe
1854a2c911
Change Kotlin code format 2023-02-03 17:23:57 +01:00
cketti
c93f5ea799
Merge pull request #6612 from thundernest/message_counts
Refactoring: Message counts
2023-02-01 17:36:59 +01:00
cketti
4cc1643643 Remove message count functionality from MessagingController 2023-02-01 14:39:59 +01:00
cketti
3e90f8b85e Remove unused methods 2023-01-27 19:50:46 +01:00
cketti
8e0a97a439 Don't disable home screen widgets on Android versions prior to 12
Due to a bug in older Android versions home screen widgets that are disabled by default won't be available even after the component has been enabled dynamically.
2023-01-09 13:05:46 +01:00
cketti
9b4941c67d Move manifest entry so we don't get a RemoveWorkManagerInitializer lint error 2023-01-06 18:39:46 +01:00
cketti
8108787957 Change the way WorkManager is initialized 2023-01-06 16:29:23 +01:00
cketti
fc3c9b3035 Add comments to components that are disabled by default 2023-01-06 16:08:56 +01:00
cketti
996f7e28ef Disable more Android components by default
Only enable launcher shortcuts and home screen widgets after an account has been set up.
2023-01-06 16:08:56 +01:00
Goooler
280ec9ccb1 Remove unnecessary "enabled" attributes in manifests 2023-01-04 13:03:33 +01:00
cketti
f0b369711b Remove support for old launcher shortcuts 2022-10-22 18:20:34 +02:00
cketti
da283a7c32 Change the way the message list widget listens to changes
Also change the code to only listen for message list changes when the message list widget has been added to the home screen.
2022-10-19 18:38:03 +02:00
cketti
343ed16ae0 Update the message list widget on app start
Now that we've changed the component name of `MessageListWidgetService` this is necessary so widget hosts learn of the new name. It's also a good idea in general to update all RemoteViews on app startup (since the app might have been updated).
2022-10-18 15:16:36 +02:00
cketti
2640c0e0a7 Retain fully-qualified name of MessageListWidgetProvider in the manifest 2022-10-17 20:31:32 +02:00
cketti
c9d89657b0 Create a separate Gradle module for the message list widget 2022-10-17 19:15:17 +02:00
cketti
af11ca5e4e Remove now unused MessageProvider 2022-10-17 11:37:57 +02:00
cketti
e75d15d7e6 Don't use MessageProvider for message list widget 2022-10-17 11:37:57 +02:00
cketti
dfef2d9ece Convert MessageListRemoteViewFactory to Kotlin 2022-10-14 14:34:45 +02:00
cketti
2015fe7905 Rename .java to .kt 2022-10-14 14:33:54 +02:00
cketti
6ad7d022fe Convert MessageListWidgetProvider to Kotlin 2022-10-14 13:58:50 +02:00
cketti
ee98a96cba Rename .java to .kt 2022-10-14 13:58:50 +02:00
cketti
f464b3be6d Convert MessageListWidgetService to Kotlin 2022-10-14 13:37:02 +02:00
cketti
755885bb2b Rename .java to .kt 2022-10-14 13:37:02 +02:00
cketti
1690781e7a Merge WebDavTransport into WebDavStore 2022-10-10 16:45:16 +02:00
cketti
88d3f8b828 Change minimum size for message list widget to 2x2 cells
See https://developer.android.com/guide/practices/ui_guidelines/widget_design.html#anatomy_determining_size
2022-10-06 11:31:18 +02:00
cketti
3dc9dd2629 Enable nonTransitiveRClass=true 2022-09-26 16:51:50 +02:00
cketti
66739b4b70 Switch to using 'namespace' property in build.gradle 2022-09-20 14:53:19 +02:00
cketti
1766bbe2ce Remove direct share support
We (can) no longer use the contacts database to keep track on how often someone has been contacted. Without that information we can't make meaningful automatic suggestions for share targets.
In the future we want to add support for app shortcuts to create a new message to a specific contact (see issue #2145).
2022-09-15 17:49:50 +02:00
cketti
7ea928bba5 Finally get rid of EmailProvider 2022-08-31 17:50:00 +02:00
cketti
46ca47facd Remove unused parameter 2022-08-09 18:18:31 +02:00
cketti
713082fe55 Remove unnecessary elvis operator 2022-08-09 17:50:46 +02:00
cketti
bc7758b9cf Remove notificationId parameters from methods in NotificationActionCreator 2022-07-26 23:31:20 +02:00
cketti
147945f757 Make sure Intents used by K9NotificationActionCreator are unique 2022-07-26 23:31:20 +02:00
cketti
923453ad3f Don't remove OAuth state on temporary errors 2022-07-14 17:06:31 +02:00
cketti
1ff327eda8 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.
2022-07-11 18:06:22 +02:00
cketti
7d69ada798
Merge pull request #6115 from thundernest/oauth_outlook
Add OAuth support for Microsoft accounts
2022-07-05 17:19:35 +02:00
cketti
f96154f0b0 Display "authentication failed" notification when OAuth sign-in is required 2022-06-16 14:55:34 +02:00
cketti
598a171464 Add OAuth support for Microsoft accounts 2022-06-15 13:02:50 +02:00
cketti
6290e9b2a6 Add OAuth support for AOL accounts 2022-06-08 20:28:08 +02:00
cketti
79dd0fe1b2 Add OAuth support for Yahoo accounts 2022-06-08 20:28:08 +02:00
Olivier Blin
4c937ad7a6 Move redirectUri in OAuthConfiguration
Not all providers accept the redirect URI Google requires Android apps to use.
2022-06-08 20:28:08 +02:00
cketti
d08aa55853 Add proper way to retrieve OAuth credentials 2022-06-05 16:35:39 +02:00
cketti
d4883d1921 Add "Sign in with Google" button
This flow is not a great user experience. But it's the fastest way I could think of to add the button that was requested by Google.
2022-06-03 23:25:58 +02:00
cketti
14a7f1b0d3 Add support for OAuth 2.0 (Gmail) 2022-05-23 22:26:49 +02:00
cketti
7f343e4fd1 Move DefaultTrustedSocketFactory 2022-04-28 22:18:14 +02:00
cketti
4ad2e04cff Decouple WebDavSocketFactory from DefaultTrustedSocketFactory 2022-04-28 22:02:48 +02:00
cketti
7be4ea62fe Remove ImapStore's dependency on ConnectivityManager 2022-04-12 21:58:15 +02:00
cketti
a796b1d941 Change IMAP code to use single compression setting 2022-04-12 21:58:15 +02:00
cketti
903d0f43c4 Change Account to use a single setting for IMAP compression 2022-04-12 21:58:15 +02:00
cketti
372252710d Update name/description of notification channels when app locale changes 2022-03-17 18:35:59 +01:00
cketti
51457a6859 Simplify LocalStore.searchForMessages() 2022-02-24 20:28:03 +01:00
cketti
5d102ec610 Set targetSdkVersion to 31 2022-02-21 18:43:01 +01:00
cketti
13b57b7eba Use android:exported="false" when possible 2022-02-21 18:42:27 +01:00
cketti
8847e30cb7 Add appropriate mutability flags to PendingIntents 2022-02-21 18:42:27 +01:00
cketti
f6e03ff040 Don't expose MessageProvider to third-party apps
If this was an important feature to you, please contact us and tell us a little bit about your use case.
2022-02-17 20:56:31 +01:00
cketti
dee2ca345d Convert 'BaseAccount' to Kotlin 2022-02-08 16:54:15 +01:00
cketti
bfc708df19 Use Account.getDisplayName() when appropriate 2022-02-08 02:05:05 +01:00
cketti
19829eb2a2 Rename Account.getDescription() to Account.getName() 2022-02-08 01:13:30 +01:00
cketti
1d601c5c59 Rename Account.getName() to Account.getSenderName() 2022-02-08 00:50:26 +01:00
cketti
91c0787fa5 Open message from notification in Unified Inbox if possible 2022-01-09 23:10:04 +01:00
cketti
8e12d05a1d Update summary notification click behavior
Open "New messages" view when tapping the summary notification and not all messages either belong to the Unified Inbox or to a single folder.
2021-12-11 15:41:15 +01:00
cketti
c289c74238 Update summary notification click behavior
When tapping the summary notification and all new messages belong to folders that are included in the Unified Inbox, we display the Unified Inbox.
2021-12-09 22:21:55 +01:00
cketti
514802e010 Make sure the message list widget reuses an existing MessageList activity 2021-12-09 02:01:40 +01:00
cketti
6c54b324d6 Switch back to using launchMode="singleTop" for MessageList
We previously removed it because using the default launcher intent would open the default folder instead of just bringing the app to the foreground. We now handle that case by ignoring the default launcher intent in MessageList.onNewIntent().

See 97a75a54ef
2021-12-09 01:50:56 +01:00
cketti
57d7616d5a Create public version for certificate error notifications
Don't expose account name or error details when Android is configured to hide sensitive information on the lock screen.
2021-12-08 02:37:21 +01:00
cketti
981e7fbe70 Improve support for RTL languages in layouts 2021-11-26 22:45:48 +01:00