diff --git a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java index 35d6a73920..60a8a19aab 100644 --- a/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java +++ b/app/src/main/java/eu/faircode/email/FragmentDialogOpenLink.java @@ -184,6 +184,7 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { final CheckBox cbSecure = dview.findViewById(R.id.cbSecure); final CheckBox cbSanitize = dview.findViewById(R.id.cbSanitize); final CheckBox cbNotAgain = dview.findViewById(R.id.cbNotAgain); + final CheckBox cbNeverAgain = dview.findViewById(R.id.cbNeverAgain); final Spinner spOpenWith = dview.findViewById(R.id.spOpenWith); ibMore = dview.findViewById(R.id.ibMore); @@ -350,6 +351,13 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { } }); + cbNeverAgain.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { + cbNotAgain.setEnabled(!isChecked); + } + }); + spOpenWith.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView parent, View view, int position, long id) { @@ -608,6 +616,8 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { cbNotAgain.setText(context.getString(R.string.title_no_ask_for_again, chost)); cbNotAgain.setVisibility(!always_confirm && !sanitize_links && chost != null ? View.VISIBLE : View.GONE); + cbNeverAgain.setVisibility(!always_confirm && !sanitize_links ? View.VISIBLE : View.GONE); + setMore(false); if (UriHelper.isHyperLink(uri)) { @@ -782,13 +792,16 @@ public class FragmentDialogOpenLink extends FragmentDialogBase { .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { - if (chost != null && - cbNotAgain.getVisibility() == View.VISIBLE && cbNotAgain.isChecked()) + if (cbNeverAgain.getVisibility() == View.VISIBLE && cbNeverAgain.isChecked()) + prefs.edit().putBoolean("confirm_links", false).apply(); + else if (chost != null && + cbNotAgain.getVisibility() == View.VISIBLE && cbNotAgain.isChecked()) { prefs.edit() .putBoolean(chost + ".link_view", false) .putBoolean(chost + ".link_sanitize", cbSanitize.getVisibility() == View.VISIBLE && cbSanitize.isChecked()) .apply(); + } Uri theUri = Uri.parse(etLink.getText().toString()); Package pkg = (Package) spOpenWith.getSelectedItem(); diff --git a/app/src/main/res/layout/dialog_open_link.xml b/app/src/main/res/layout/dialog_open_link.xml index 6b8cb02a76..72f9b9929a 100644 --- a/app/src/main/res/layout/dialog_open_link.xml +++ b/app/src/main/res/layout/dialog_open_link.xml @@ -204,6 +204,16 @@ app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/cbSanitize" /> + + + app:layout_constraintTop_toBottomOf="@id/cbNeverAgain" />