Added account/identity delete

This commit is contained in:
M66B
2018-08-07 19:35:21 +00:00
parent 847db6be1f
commit d3ed9271ab
8 changed files with 106 additions and 0 deletions

View File

@@ -21,6 +21,7 @@ package eu.faircode.email;
import android.arch.lifecycle.Observer;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -28,6 +29,7 @@ import android.support.design.widget.TextInputLayout;
import android.support.v4.app.LoaderManager;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.support.v7.app.AlertDialog;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
@@ -41,6 +43,7 @@ import android.widget.Button;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ProgressBar;
import android.widget.Spinner;
import android.widget.Toast;
@@ -48,6 +51,8 @@ import android.widget.Toast;
import java.util.List;
import java.util.Objects;
import java.util.Properties;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import javax.mail.Session;
import javax.mail.Transport;
@@ -68,8 +73,11 @@ public class FragmentIdentity extends FragmentEx {
private CheckBox cbPrimary;
private Button btnSave;
private ProgressBar pbCheck;
private ImageButton ibDelete;
// TODO: loading spinner
private ExecutorService executor = Executors.newCachedThreadPool();
@Override
@Nullable
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
@@ -99,6 +107,7 @@ public class FragmentIdentity extends FragmentEx {
cbPrimary = view.findViewById(R.id.cbPrimary);
btnSave = view.findViewById(R.id.btnSave);
pbCheck = view.findViewById(R.id.pbCheck);
ibDelete = view.findViewById(R.id.ibDelete);
// Wire controls
@@ -174,10 +183,38 @@ public class FragmentIdentity extends FragmentEx {
}
});
ibDelete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder = new AlertDialog.Builder(getContext());
builder
.setMessage(R.string.title_identity_delete)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
getFragmentManager().popBackStack();
// TODO: spinner
executor.submit(new Runnable() {
@Override
public void run() {
try {
DB.getInstance(getContext()).identity().deleteIdentity(id);
} catch (Throwable ex) {
Log.e(Helper.TAG, ex + "\n" + Log.getStackTraceString(ex));
}
}
});
}
})
.setNegativeButton(android.R.string.cancel, null).show();
}
});
// Initialize
etName.requestFocus();
tilPassword.setPasswordVisibilityToggleEnabled(id < 0);
pbCheck.setVisibility(View.GONE);
ibDelete.setVisibility(id < 0 ? View.GONE : View.VISIBLE);
// Observer
DB.getInstance(getContext()).identity().liveIdentity(id).observe(this, new Observer<EntityIdentity>() {