diff --git a/app/src/main/java/eu/faircode/email/DnsBlockList.java b/app/src/main/java/eu/faircode/email/DnsBlockList.java index 5db1537446..770a3d697d 100644 --- a/app/src/main/java/eu/faircode/email/DnsBlockList.java +++ b/app/src/main/java/eu/faircode/email/DnsBlockList.java @@ -79,7 +79,10 @@ public class DnsBlockList { static void setEnabled(Context context, BlockList blocklist, boolean enabled) { SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); - prefs.edit().putBoolean("blocklist." + blocklist.name, enabled).apply(); + if (blocklist.enabled == enabled) + prefs.edit().remove("blocklist." + blocklist.name).apply(); + else + prefs.edit().putBoolean("blocklist." + blocklist.name, enabled).apply(); synchronized (cache) { cache.clear(); @@ -91,6 +94,18 @@ public class DnsBlockList { return prefs.getBoolean("blocklist." + blocklist.name, blocklist.enabled); } + static void reset(Context context) { + SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context); + SharedPreferences.Editor editor = prefs.edit(); + for (BlockList blocklist : BLOCKLISTS) + editor.remove("blocklist." + blocklist.name); + editor.apply(); + + synchronized (cache) { + cache.clear(); + } + } + static List getNames(Context context) { List names = new ArrayList<>(); for (BlockList blocklist : BLOCKLISTS) diff --git a/app/src/main/java/eu/faircode/email/FragmentOptions.java b/app/src/main/java/eu/faircode/email/FragmentOptions.java index 95afe42fb3..d915283e8b 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptions.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptions.java @@ -348,7 +348,7 @@ public class FragmentOptions extends FragmentBase { } } - static void reset(Context context, String[] options) { + static void reset(Context context, String[] options, Runnable confirmed) { new AlertDialog.Builder(context) .setTitle(R.string.title_setup_defaults) .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @@ -360,6 +360,9 @@ public class FragmentOptions extends FragmentBase { editor.remove(option); editor.apply(); + if (confirmed != null) + confirmed.run(); + ToastEx.makeText(context, R.string.title_setup_done, Toast.LENGTH_LONG).show(); } }) diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java index 8ee73a76f7..55c711a35a 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsBehavior.java @@ -445,7 +445,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, null); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java b/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java index b8ea5d76e3..29f9e9df9a 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsConnection.java @@ -323,7 +323,7 @@ public class FragmentOptionsConnection extends FragmentBase implements SharedPre @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, null); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java index 6b71e37ca6..f4cd590ae9 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsDisplay.java @@ -913,8 +913,12 @@ public class FragmentOptionsDisplay extends FragmentBase implements SharedPrefer @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); - setNavigationBarColor(Color.BLACK); + FragmentOptions.reset(getContext(), RESET_OPTIONS, new Runnable() { + @Override + public void run() { + setNavigationBarColor(Color.BLACK); + } + }); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java b/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java index 4b51665363..ec35b45ef3 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsEncryption.java @@ -386,7 +386,7 @@ public class FragmentOptionsEncryption extends FragmentBase implements SharedPre @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, null); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java index 2982736453..40ccd51190 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsMisc.java @@ -886,7 +886,7 @@ public class FragmentOptionsMisc extends FragmentBase implements SharedPreferenc @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, null); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java index 333b7bf775..1b64e9e7fc 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsNotifications.java @@ -570,7 +570,7 @@ public class FragmentOptionsNotifications extends FragmentBase implements Shared @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, null); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java index 640ca2d06f..c12a15f868 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java @@ -394,7 +394,7 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, null); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java index f16a79adf7..db455143fd 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSend.java @@ -489,7 +489,7 @@ public class FragmentOptionsSend extends FragmentBase implements SharedPreferenc @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, null); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java index 048e3d3b2a..6f44b98dd5 100644 --- a/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java +++ b/app/src/main/java/eu/faircode/email/FragmentOptionsSynchronize.java @@ -85,8 +85,8 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr private SwitchCompat swCheckReply; private SwitchCompat swCheckMx; private SwitchCompat swCheckBlocklist; - private RecyclerView rvBlocklist; private SwitchCompat swUseBlocklist; + private RecyclerView rvBlocklist; private SwitchCompat swTuneKeepAlive; private Group grpExempted; @@ -143,8 +143,8 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr swCheckReply = view.findViewById(R.id.swCheckReply); swCheckMx = view.findViewById(R.id.swCheckMx); swCheckBlocklist = view.findViewById(R.id.swCheckBlocklist); - rvBlocklist = view.findViewById(R.id.rvBlocklist); swUseBlocklist = view.findViewById(R.id.swUseBlocklist); + rvBlocklist = view.findViewById(R.id.rvBlocklist); swTuneKeepAlive = view.findViewById(R.id.swTuneKeepAlive); grpExempted = view.findViewById(R.id.grpExempted); @@ -348,11 +348,6 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr } }); - rvBlocklist.setHasFixedSize(false); - rvBlocklist.setLayoutManager(new LinearLayoutManager(getContext())); - AdapterBlocklist badapter = new AdapterBlocklist(getContext(), DnsBlockList.BLOCKLISTS); - rvBlocklist.setAdapter(badapter); - swUseBlocklist.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -360,6 +355,11 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr } }); + rvBlocklist.setHasFixedSize(false); + rvBlocklist.setLayoutManager(new LinearLayoutManager(getContext())); + AdapterBlocklist badapter = new AdapterBlocklist(getContext(), DnsBlockList.BLOCKLISTS); + rvBlocklist.setAdapter(badapter); + swTuneKeepAlive.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton compoundButton, boolean checked) { @@ -411,7 +411,13 @@ public class FragmentOptionsSynchronize extends FragmentBase implements SharedPr @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.getItemId() == R.id.menu_default) { - FragmentOptions.reset(getContext(), RESET_OPTIONS); + FragmentOptions.reset(getContext(), RESET_OPTIONS, new Runnable() { + @Override + public void run() { + DnsBlockList.reset(getContext()); + rvBlocklist.getAdapter().notifyDataSetChanged(); + } + }); return true; } return super.onOptionsItemSelected(item); diff --git a/app/src/main/res/layout/fragment_options_synchronize.xml b/app/src/main/res/layout/fragment_options_synchronize.xml index 5d8af04786..4b9373fcfe 100644 --- a/app/src/main/res/layout/fragment_options_synchronize.xml +++ b/app/src/main/res/layout/fragment_options_synchronize.xml @@ -666,17 +666,6 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/swCheckBlocklist" /> - - + +