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 @@ + + + + + + + + + + + + + + +