Added option to skip storing tentative events

This commit is contained in:
M66B 2023-10-26 15:15:29 +02:00
parent 51e0613c54
commit 338f6f5f6f
4 changed files with 33 additions and 5 deletions

View File

@ -114,6 +114,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private SwitchCompat swSortAnswers;
private SwitchCompat swExternalAnswer;
private SwitchCompat swShortcuts;
private SwitchCompat swICalTentative;
private SwitchCompat swFts;
private SwitchCompat swClassification;
private TextView tvClassMinProbability;
@ -291,7 +292,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
private static final long MIN_FILE_SIZE = 1024 * 1024L;
private final static String[] RESET_OPTIONS = new String[]{
"sort_answers", "shortcuts", "fts",
"sort_answers", "shortcuts", "ical_tentative", "fts",
"classification", "class_min_probability", "class_min_difference",
"show_filtered",
"language",
@ -381,6 +382,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swSortAnswers = view.findViewById(R.id.swSortAnswers);
swExternalAnswer = view.findViewById(R.id.swExternalAnswer);
swShortcuts = view.findViewById(R.id.swShortcuts);
swICalTentative = view.findViewById(R.id.swICalTentative);
swFts = view.findViewById(R.id.swFts);
swClassification = view.findViewById(R.id.swClassification);
ibClassification = view.findViewById(R.id.ibClassification);
@ -608,6 +610,14 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
}
});
swICalTentative.setVisibility(BuildConfig.PLAY_STORE_RELEASE ? View.GONE : View.VISIBLE);
swICalTentative.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("ical_tentative", checked).apply();
}
});
swFts.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@ -2597,6 +2607,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc
swExternalSearch.setChecked(Helper.isComponentEnabled(getContext(), ActivitySearch.class));
swExternalAnswer.setChecked(Helper.isComponentEnabled(getContext(), ActivityAnswer.class));
swShortcuts.setChecked(prefs.getBoolean("shortcuts", true));
swICalTentative.setChecked(prefs.getBoolean("ical_tentative", true));
swFts.setChecked(prefs.getBoolean("fts", false));
swClassification.setChecked(prefs.getBoolean("classification", false));

View File

@ -4416,6 +4416,9 @@ public class MessageHelper {
private void decodeICalendar(Context context, EntityAttachment local) {
DB db = DB.getInstance(context);
try {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean ical_tentative = prefs.getBoolean("ical_tentative", true);
boolean permission = Helper.hasPermission(context, Manifest.permission.WRITE_CALENDAR);
EntityMessage message = db.message().getMessage(local.message);
@ -4427,13 +4430,14 @@ public class MessageHelper {
EntityFolder.SYSTEM.equals(folder.type) ||
EntityFolder.USER.equals(folder.type)));
if (!permission || !received || account == null || account.calendar == null) {
if (!permission || !received || account == null || account.calendar == null || !ical_tentative) {
EntityLog.log(context, "Event not processed" +
" permission=" + permission +
" account=" + (account != null) +
" calendar=" + (account == null ? null : account.calendar) +
" folder=" + (folder != null) + ":" + (folder == null ? null : folder.type) +
" received=" + received);
" received=" + received +
" calendar=" + (account == null ? null : account.calendar) +
" tentative=" + ical_tentative);
return;
}

View File

@ -156,6 +156,18 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swShortcuts" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swICalTentative"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:checked="true"
android:text="@string/title_advanced_ical_tentative"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvShortcutsHint"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swFts"
android:layout_width="0dp"
@ -164,7 +176,7 @@
android:text="@string/title_advanced_fts"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/tvShortcutsHint"
app:layout_constraintTop_toBottomOf="@id/swICalTentative"
app:switchPadding="12dp" />
<TextView

View File

@ -821,6 +821,7 @@
<string name="title_advanced_sort_answers">Sort reply templates by frequency of use</string>
<string name="title_advanced_external_answer" translatable="false">Provide reply templates to other apps</string>
<string name="title_advanced_shortcuts">Show frequently used contacts in Android share menu</string>
<string name="title_advanced_ical_tentative">Store received invitations as tentative</string>
<string name="title_advanced_fts">Build search index</string>
<string name="title_advanced_fts_indexed">%1$d / %2$d messages indexed (%3$s)</string>
<string name="title_advanced_classification">Classify messages</string>