mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-31 06:08:31 +02:00
Added setup more options
This commit is contained in:
@@ -19,6 +19,8 @@ package eu.faircode.email;
|
||||
Copyright 2018-2022 by Marcel Bokhorst (M66B)
|
||||
*/
|
||||
|
||||
import static android.app.Activity.RESULT_OK;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.ActivityManager;
|
||||
import android.app.Dialog;
|
||||
@@ -110,6 +112,7 @@ public class FragmentSetup extends FragmentBase {
|
||||
private TextView tvSyncStopped;
|
||||
|
||||
private Button btnApp;
|
||||
private Button btnDelete;
|
||||
|
||||
private Group grpInexactAlarms;
|
||||
private Group grpBackgroundRestricted;
|
||||
@@ -178,6 +181,7 @@ public class FragmentSetup extends FragmentBase {
|
||||
tvSyncStopped = view.findViewById(R.id.tvSyncStopped);
|
||||
|
||||
btnApp = view.findViewById(R.id.btnApp);
|
||||
btnDelete = view.findViewById(R.id.btnDelete);
|
||||
|
||||
grpInexactAlarms = view.findViewById(R.id.grpInexactAlarms);
|
||||
grpBackgroundRestricted = view.findViewById(R.id.grpBackgroundRestricted);
|
||||
@@ -579,6 +583,19 @@ public class FragmentSetup extends FragmentBase {
|
||||
}
|
||||
});
|
||||
|
||||
btnDelete.setOnClickListener(new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Bundle args = new Bundle();
|
||||
args.putBoolean("all", true);
|
||||
|
||||
FragmentDialogSelectAccount fragment = new FragmentDialogSelectAccount();
|
||||
fragment.setArguments(args);
|
||||
fragment.setTargetFragment(FragmentSetup.this, ActivitySetup.REQUEST_DELETE_ACCOUNT);
|
||||
fragment.show(getParentFragmentManager(), "setup:delete");
|
||||
}
|
||||
});
|
||||
|
||||
// Initialize
|
||||
FragmentDialogTheme.setBackground(getContext(), view, false);
|
||||
|
||||
@@ -772,6 +789,22 @@ public class FragmentSetup extends FragmentBase {
|
||||
cardManual.setVisibility(manual ? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||
super.onActivityResult(requestCode, resultCode, data);
|
||||
|
||||
try {
|
||||
switch (requestCode) {
|
||||
case ActivitySetup.REQUEST_DELETE_ACCOUNT:
|
||||
if (resultCode == RESULT_OK && data != null)
|
||||
onDeleteAccount(data.getBundleExtra("args"));
|
||||
break;
|
||||
}
|
||||
} catch (Throwable ex) {
|
||||
Log.e(ex);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
for (int i = 0; i < permissions.length; i++)
|
||||
@@ -790,6 +823,48 @@ public class FragmentSetup extends FragmentBase {
|
||||
btnPermissions.setEnabled(!granted);
|
||||
}
|
||||
|
||||
private void onDeleteAccount(Bundle args) {
|
||||
long account = args.getLong("account");
|
||||
String name = args.getString("name");
|
||||
|
||||
new AlertDialog.Builder(view.getContext())
|
||||
.setIcon(R.drawable.twotone_warning_24)
|
||||
.setTitle(name)
|
||||
.setMessage(R.string.title_account_delete)
|
||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", account);
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) throws Throwable {
|
||||
long id = args.getLong("id");
|
||||
|
||||
DB db = DB.getInstance(context);
|
||||
db.account().deleteAccount(id);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
Log.unexpectedError(getParentFragmentManager(), ex);
|
||||
}
|
||||
}.execute(FragmentSetup.this, args, "setup:delete");
|
||||
}
|
||||
})
|
||||
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(DialogInterface dialog, int which) {
|
||||
// Do nothing
|
||||
}
|
||||
})
|
||||
.show();
|
||||
|
||||
}
|
||||
|
||||
private ConnectivityManager.NetworkCallback networkCallback = new ConnectivityManager.NetworkCallback() {
|
||||
@Override
|
||||
public void onAvailable(Network network) {
|
||||
|
||||
Reference in New Issue
Block a user