Added Outlook categories option

pull/217/head
M66B 7 months ago
parent 9b16d5af29
commit 0b141cd4c8

@ -4594,11 +4594,11 @@ class Core {
List<EntityRule> rules, State state, SyncStats stats) throws MessagingException, IOException { List<EntityRule> rules, State state, SyncStats stats) throws MessagingException, IOException {
DB db = DB.getInstance(context); DB db = DB.getInstance(context);
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean outlook_categories = prefs.getBoolean("outlook_categories", false);
boolean download_headers = prefs.getBoolean("download_headers", false); boolean download_headers = prefs.getBoolean("download_headers", false);
boolean download_plain = prefs.getBoolean("download_plain", false); boolean download_plain = prefs.getBoolean("download_plain", false);
boolean notify_known = prefs.getBoolean("notify_known", false); boolean notify_known = prefs.getBoolean("notify_known", false);
boolean native_dkim = prefs.getBoolean("native_dkim", false); boolean native_dkim = prefs.getBoolean("native_dkim", false);
boolean strict_alignment = prefs.getBoolean("strict_alignment", false);
boolean experiments = prefs.getBoolean("experiments", false); boolean experiments = prefs.getBoolean("experiments", false);
boolean mdn = prefs.getBoolean("mdn", experiments); boolean mdn = prefs.getBoolean("mdn", experiments);
boolean pro = ActivityBilling.isPro(context); boolean pro = ActivityBilling.isPro(context);
@ -4627,7 +4627,7 @@ class Core {
boolean flagged = helper.getFlagged(); boolean flagged = helper.getFlagged();
boolean deleted = helper.getDeleted(); boolean deleted = helper.getDeleted();
String flags = helper.getFlags(); String flags = helper.getFlags();
String[] keywords = helper.getKeywords(account.isOutlook()); String[] keywords = helper.getKeywords(outlook_categories && account.isOutlook());
String[] labels = helper.getLabels(); String[] labels = helper.getLabels();
boolean update = false; boolean update = false;
boolean process = false; boolean process = false;

@ -100,6 +100,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
private SwitchCompat swOutlookThread; private SwitchCompat swOutlookThread;
private SwitchCompat swSubjectThreading; private SwitchCompat swSubjectThreading;
private TextView tvSubjectThreading; private TextView tvSubjectThreading;
private SwitchCompat swOutlookCategories;
private SwitchCompat swSyncFolders; private SwitchCompat swSyncFolders;
private SwitchCompat swSyncFoldersPoll; private SwitchCompat swSyncFoldersPoll;
private SwitchCompat swSyncSharedFolders; private SwitchCompat swSyncSharedFolders;
@ -132,7 +133,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
"schedule", "schedule_start", "schedule_end", "schedule_start_weekend", "schedule_end_weekend", "weekend", "schedule", "schedule_start", "schedule_end", "schedule_start_weekend", "schedule_end_weekend", "weekend",
"sync_quick_imap", "sync_quick_pop", "sync_quick_imap", "sync_quick_pop",
"sync_nodate", "sync_unseen", "sync_flagged", "delete_unseen", "sync_kept", "sync_nodate", "sync_unseen", "sync_flagged", "delete_unseen", "sync_kept",
"gmail_thread_id", "outlook_thread_id", "subject_threading", "gmail_thread_id", "outlook_thread_id", "subject_threading", "outlook_categories",
"sync_folders", "sync_folders_poll", "sync_shared_folders", "sync_added_folders", "subscriptions", "sync_folders", "sync_folders_poll", "sync_shared_folders", "sync_added_folders", "subscriptions",
"check_authentication", "check_tls", "check_reply_domain", "check_mx", "check_authentication", "check_tls", "check_reply_domain", "check_mx",
"check_blocklist", "use_blocklist", "use_blocklist_pop", "check_blocklist", "use_blocklist", "use_blocklist_pop",
@ -202,6 +203,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
swOutlookThread = view.findViewById(R.id.swOutlookThread); swOutlookThread = view.findViewById(R.id.swOutlookThread);
swSubjectThreading = view.findViewById(R.id.swSubjectThreading); swSubjectThreading = view.findViewById(R.id.swSubjectThreading);
tvSubjectThreading = view.findViewById(R.id.tvSubjectThreading); tvSubjectThreading = view.findViewById(R.id.tvSubjectThreading);
swOutlookCategories = view.findViewById(R.id.swOutlookCategories);
swSyncFolders = view.findViewById(R.id.swSyncFolders); swSyncFolders = view.findViewById(R.id.swSyncFolders);
swSyncFoldersPoll = view.findViewById(R.id.swSyncFoldersPoll); swSyncFoldersPoll = view.findViewById(R.id.swSyncFoldersPoll);
swSyncSharedFolders = view.findViewById(R.id.swSyncSharedFolders); swSyncSharedFolders = view.findViewById(R.id.swSyncSharedFolders);
@ -456,6 +458,13 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
} }
}); });
swOutlookCategories.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("outlook_categories", checked).apply();
}
});
swSyncFolders.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { swSyncFolders.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override @Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@ -690,6 +699,7 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr
swOutlookThread.setChecked(prefs.getBoolean("outlook_thread_id", false)); swOutlookThread.setChecked(prefs.getBoolean("outlook_thread_id", false));
swSubjectThreading.setChecked(prefs.getBoolean("subject_threading", false)); swSubjectThreading.setChecked(prefs.getBoolean("subject_threading", false));
swSubjectThreading.setEnabled(!swGmailThread.isChecked() && !swOutlookThread.isChecked()); swSubjectThreading.setEnabled(!swGmailThread.isChecked() && !swOutlookThread.isChecked());
swOutlookCategories.setChecked(prefs.getBoolean("outlook_categories", false));
swSyncFolders.setChecked(prefs.getBoolean("sync_folders", true)); swSyncFolders.setChecked(prefs.getBoolean("sync_folders", true));
swSyncFoldersPoll.setChecked(prefs.getBoolean("sync_folders_poll", false)); swSyncFoldersPoll.setChecked(prefs.getBoolean("sync_folders_poll", false));
swSyncFoldersPoll.setEnabled(swSyncFolders.isChecked()); swSyncFoldersPoll.setEnabled(swSyncFolders.isChecked());

@ -825,6 +825,29 @@
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swSubjectThreading" /> app:layout_constraintTop_toBottomOf="@id/swSubjectThreading" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swOutlookCategories"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_advanced_outlook_categories"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvSubjectThreading"
app:switchPadding="12dp" />
<TextView
android:id="@+id/tvOutlookCategories"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginEnd="48dp"
android:text="@string/title_advanced_outlook_categories_hint"
android:textAppearance="@style/TextAppearance.AppCompat.Small"
android:textStyle="italic"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swOutlookCategories" />
<androidx.appcompat.widget.SwitchCompat <androidx.appcompat.widget.SwitchCompat
android:id="@+id/swSyncFolders" android:id="@+id/swSyncFolders"
android:layout_width="0dp" android:layout_width="0dp"
@ -834,7 +857,7 @@
android:text="@string/title_advanced_sync_folders" android:text="@string/title_advanced_sync_folders"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvSubjectThreading" app:layout_constraintTop_toBottomOf="@id/tvOutlookCategories"
app:switchPadding="12dp" /> app:switchPadding="12dp" />
<TextView <TextView

@ -455,6 +455,7 @@
<string name="title_advanced_gmail_thread">Gmail message grouping style for Gmail accounts</string> <string name="title_advanced_gmail_thread">Gmail message grouping style for Gmail accounts</string>
<string name="title_advanced_outlook_thread" translatable="false">Use Outlook thread index</string> <string name="title_advanced_outlook_thread" translatable="false">Use Outlook thread index</string>
<string name="title_advanced_subject_threading">Group messages by sender and subject</string> <string name="title_advanced_subject_threading">Group messages by sender and subject</string>
<string name="title_advanced_outlook_categories">Synchronize Outlook categories</string>
<string name="title_advanced_sync_folders">Synchronize folder list</string> <string name="title_advanced_sync_folders">Synchronize folder list</string>
<string name="title_advanced_sync_folders_poll">Actively synchronize folder list</string> <string name="title_advanced_sync_folders_poll">Actively synchronize folder list</string>
<string name="title_advanced_sync_shared_folders">Synchronize shared folder lists</string> <string name="title_advanced_sync_shared_folders">Synchronize shared folder lists</string>
@ -1069,6 +1070,7 @@
<string name="title_advanced_sync_kept_hint">This will transfer extra data and consume extra battery power, especially if a lot of messages are stored on the device</string> <string name="title_advanced_sync_kept_hint">This will transfer extra data and consume extra battery power, especially if a lot of messages are stored on the device</string>
<string name="title_advanced_gmail_thread_hint">This only applies to newly received messages and can break existing groups</string> <string name="title_advanced_gmail_thread_hint">This only applies to newly received messages and can break existing groups</string>
<string name="title_advanced_subject_threading_hint">Only messages received in the last %1$d hours</string> <string name="title_advanced_subject_threading_hint">Only messages received in the last %1$d hours</string>
<string name="title_advanced_outlook_categories_hint">Outlook categories can only be fetched and cannot refresh automatically due to Outlook IMAP server limitations</string>
<string name="title_advanced_sync_folders_hint">Disabling this will reduce data and battery usage somewhat, but will disable updating the list of folders too</string> <string name="title_advanced_sync_folders_hint">Disabling this will reduce data and battery usage somewhat, but will disable updating the list of folders too</string>
<string name="title_advanced_poll_folders_hint">Periodically synchronize the folder list in addition to after connecting to an account</string> <string name="title_advanced_poll_folders_hint">Periodically synchronize the folder list in addition to after connecting to an account</string>
<string name="title_advanced_check_authentication_hint">This will check the results of DKIM, SPF and DMARC authentication as performed by the email server</string> <string name="title_advanced_check_authentication_hint">This will check the results of DKIM, SPF and DMARC authentication as performed by the email server</string>

Loading…
Cancel
Save