diff --git a/CHANGELOG.md b/CHANGELOG.md
index 631cb106c1..e3c9cc25a7 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -9,6 +9,7 @@
* Added image dimensions to mini gallery
* Added PGP and S/MIME key indicators to address bubbles
* Added delete existing accounts option to import dialog
+* Added clear all data settings tile
* Small improvements and minor bug fixes
* Updated translations
diff --git a/app/src/amazon/AndroidManifest.xml b/app/src/amazon/AndroidManifest.xml
index 0cce33697e..8f3f5ff1f5 100644
--- a/app/src/amazon/AndroidManifest.xml
+++ b/app/src/amazon/AndroidManifest.xml
@@ -294,6 +294,12 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
.
+
+ Copyright 2018-2022 by Marcel Bokhorst (M66B)
+*/
+
+import android.app.ActivityManager;
+import android.content.Context;
+import android.content.Intent;
+import android.os.Bundle;
+import android.text.method.LinkMovementMethod;
+import android.view.View;
+import android.widget.Button;
+import android.widget.ImageButton;
+import android.widget.TextView;
+
+import java.util.List;
+
+public class ActivityClear extends ActivityBase {
+ private Button btnClearAll;
+ private Button btnCancel;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ getSupportActionBar().setDisplayHomeAsUpEnabled(true);
+ getSupportActionBar().setSubtitle(getString(R.string.title_advanced_clear_all));
+ setContentView(R.layout.activity_clear);
+
+ btnClearAll = findViewById(R.id.btnClearAll);
+ btnCancel = findViewById(R.id.btnCancel);
+
+ btnClearAll.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
+ am.clearApplicationUserData();
+
+ finish();
+ }
+ });
+
+ btnCancel.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ finishAndRemoveTask();
+ }
+ });
+ }
+
+ static Intent getIntent(Context context) {
+ return new Intent(context, ActivityClear.class)
+ .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK |
+ Intent.FLAG_ACTIVITY_CLEAR_TASK);
+ }
+}
diff --git a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java
index def6d5b803..12688e121d 100644
--- a/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java
+++ b/app/src/main/java/eu/faircode/email/FragmentOptionsPrivacy.java
@@ -19,7 +19,6 @@ package eu.faircode.email;
Copyright 2018-2022 by Marcel Bokhorst (M66B)
*/
-import android.app.ActivityManager;
import android.app.Dialog;
import android.content.Context;
import android.content.DialogInterface;
@@ -440,23 +439,10 @@ public class FragmentOptionsPrivacy extends FragmentBase implements SharedPrefer
}
});
- btnClearAll.setVisibility(BuildConfig.DEBUG ? View.VISIBLE : View.GONE);
btnClearAll.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
- new AlertDialog.Builder(getContext())
- .setIcon(R.drawable.twotone_dangerous_24)
- .setTitle(R.string.title_advanced_clear_all)
- .setMessage(R.string.title_advanced_clear_all_remark)
- .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- ActivityManager am = (ActivityManager) getContext().getSystemService(Context.ACTIVITY_SERVICE);
- am.clearApplicationUserData();
- }
- })
- .setNegativeButton(android.R.string.cancel, null)
- .show();
+ startActivity(ActivityClear.getIntent(v.getContext()));
}
});
diff --git a/app/src/main/java/eu/faircode/email/ServiceTileClear.java b/app/src/main/java/eu/faircode/email/ServiceTileClear.java
new file mode 100644
index 0000000000..bc237075f3
--- /dev/null
+++ b/app/src/main/java/eu/faircode/email/ServiceTileClear.java
@@ -0,0 +1,31 @@
+package eu.faircode.email;
+
+/*
+ This file is part of FairEmail.
+
+ FairEmail is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ FairEmail is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with FairEmail. If not, see .
+
+ Copyright 2018-2022 by Marcel Bokhorst (M66B)
+*/
+
+import android.annotation.TargetApi;
+import android.os.Build;
+import android.service.quicksettings.TileService;
+
+@TargetApi(Build.VERSION_CODES.N)
+public class ServiceTileClear extends TileService {
+ public void onClick() {
+ startActivityAndCollapse(ActivityClear.getIntent(this));
+ }
+}
diff --git a/app/src/main/res/layout/activity_clear.xml b/app/src/main/res/layout/activity_clear.xml
new file mode 100644
index 0000000000..7adb391ed4
--- /dev/null
+++ b/app/src/main/res/layout/activity_clear.xml
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/fragment_options_privacy.xml b/app/src/main/res/layout/fragment_options_privacy.xml
index c06a9040a0..d683cf563c 100644
--- a/app/src/main/res/layout/fragment_options_privacy.xml
+++ b/app/src/main/res/layout/fragment_options_privacy.xml
@@ -640,7 +640,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
- android:drawableEnd="@drawable/twotone_dangerous_24"
+ android:drawableEnd="@drawable/twotone_warning_24"
android:drawablePadding="6dp"
android:text="@string/title_advanced_clear_all"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/play/AndroidManifest.xml b/app/src/play/AndroidManifest.xml
index 2fa6df9d04..dd0aa93119 100644
--- a/app/src/play/AndroidManifest.xml
+++ b/app/src/play/AndroidManifest.xml
@@ -294,6 +294,12 @@
+
+
+
+
+
+
+
+
+