mirror of https://github.com/M66B/FairEmail.git
Use dialog fragments for account/identitie
This commit is contained in:
parent
22cedd0a84
commit
5354e4eadd
|
@ -21,7 +21,6 @@ package eu.faircode.email;
|
||||||
|
|
||||||
import android.app.NotificationManager;
|
import android.app.NotificationManager;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.DialogInterface;
|
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
import android.graphics.Color;
|
import android.graphics.Color;
|
||||||
import android.graphics.drawable.GradientDrawable;
|
import android.graphics.drawable.GradientDrawable;
|
||||||
|
@ -142,6 +141,8 @@ public class FragmentAccount extends FragmentBase {
|
||||||
private int color = Color.TRANSPARENT;
|
private int color = Color.TRANSPARENT;
|
||||||
|
|
||||||
private static final int REQUEST_COLOR = 1;
|
private static final int REQUEST_COLOR = 1;
|
||||||
|
private static final int REQUEST_SAVE = 2;
|
||||||
|
private static final int REQUEST_DELETE = 3;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -1026,29 +1027,15 @@ public class FragmentAccount extends FragmentBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onExecuted(Bundle args, Boolean dirty) {
|
protected void onExecuted(Bundle args, Boolean dirty) {
|
||||||
if (dirty)
|
if (dirty) {
|
||||||
new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
|
Bundle aargs = new Bundle();
|
||||||
.setMessage(R.string.title_ask_save)
|
aargs.putString("question", getString(R.string.title_ask_save));
|
||||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
FragmentDialogAsk fragment = new FragmentDialogAsk();
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
fragment.setArguments(aargs);
|
||||||
new Handler().post(new Runnable() {
|
fragment.setTargetFragment(FragmentAccount.this, REQUEST_SAVE);
|
||||||
@Override
|
fragment.show(getFragmentManager(), "account:save");
|
||||||
public void run() {
|
} else
|
||||||
scroll.smoothScrollTo(0, btnSave.getBottom());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
onSave(false);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialogInterface, int i) {
|
|
||||||
getFragmentManager().popBackStack();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.show();
|
|
||||||
else
|
|
||||||
getFragmentManager().popBackStack();
|
getFragmentManager().popBackStack();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1257,11 +1244,61 @@ public class FragmentAccount extends FragmentBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onMenuDelete() {
|
private void onMenuDelete() {
|
||||||
new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
|
Bundle aargs = new Bundle();
|
||||||
.setMessage(R.string.title_account_delete)
|
aargs.putString("question", getString(R.string.title_account_delete));
|
||||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
||||||
|
FragmentDialogAsk fragment = new FragmentDialogAsk();
|
||||||
|
fragment.setArguments(aargs);
|
||||||
|
fragment.setTargetFragment(FragmentAccount.this, REQUEST_DELETE);
|
||||||
|
fragment.show(getFragmentManager(), "account:delete");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
|
switch (requestCode) {
|
||||||
|
case REQUEST_COLOR:
|
||||||
|
if (resultCode == RESULT_OK && data != null) {
|
||||||
|
if (!Helper.isPro(getContext())) {
|
||||||
|
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
|
||||||
|
lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_SHOW_PRO));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bundle args = data.getBundleExtra("args");
|
||||||
|
setColor(args.getInt("color"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case REQUEST_SAVE:
|
||||||
|
if (resultCode == RESULT_OK) {
|
||||||
|
new Handler().post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
scroll.smoothScrollTo(0, btnSave.getBottom());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
onSave(false);
|
||||||
|
} else
|
||||||
|
getFragmentManager().popBackStack();
|
||||||
|
break;
|
||||||
|
case REQUEST_DELETE:
|
||||||
|
if (resultCode == RESULT_OK)
|
||||||
|
onDelete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setColor(int color) {
|
||||||
|
this.color = color;
|
||||||
|
|
||||||
|
GradientDrawable border = new GradientDrawable();
|
||||||
|
border.setColor(color);
|
||||||
|
border.setStroke(1, Helper.resolveColor(getContext(), R.attr.colorSeparator));
|
||||||
|
vwColor.setBackground(border);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onDelete() {
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putLong("id", id);
|
args.putLong("id", id);
|
||||||
|
|
||||||
|
@ -1295,39 +1332,6 @@ public class FragmentAccount extends FragmentBase {
|
||||||
}
|
}
|
||||||
}.execute(FragmentAccount.this, args, "account:delete");
|
}.execute(FragmentAccount.this, args, "account:delete");
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
|
||||||
.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
|
|
||||||
switch (requestCode) {
|
|
||||||
case REQUEST_COLOR:
|
|
||||||
if (resultCode == RESULT_OK && data != null) {
|
|
||||||
if (!Helper.isPro(getContext())) {
|
|
||||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
|
|
||||||
lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_SHOW_PRO));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bundle args = data.getBundleExtra("args");
|
|
||||||
setColor(args.getInt("color"));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setColor(int color) {
|
|
||||||
this.color = color;
|
|
||||||
|
|
||||||
GradientDrawable border = new GradientDrawable();
|
|
||||||
border.setColor(color);
|
|
||||||
border.setStroke(1, Helper.resolveColor(getContext(), R.attr.colorSeparator));
|
|
||||||
vwColor.setBackground(border);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setFolders(List<EntityFolder> _folders, EntityAccount account) {
|
private void setFolders(List<EntityFolder> _folders, EntityAccount account) {
|
||||||
List<EntityFolder> folders = new ArrayList<>();
|
List<EntityFolder> folders = new ArrayList<>();
|
||||||
|
|
|
@ -132,6 +132,8 @@ public class FragmentIdentity extends FragmentBase {
|
||||||
private int color = Color.TRANSPARENT;
|
private int color = Color.TRANSPARENT;
|
||||||
|
|
||||||
private static final int REQUEST_COLOR = 1;
|
private static final int REQUEST_COLOR = 1;
|
||||||
|
private static final int REQUEST_SAVE = 2;
|
||||||
|
private static final int REQUEST_DELETE = 3;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle savedInstanceState) {
|
public void onCreate(Bundle savedInstanceState) {
|
||||||
|
@ -759,29 +761,15 @@ public class FragmentIdentity extends FragmentBase {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onExecuted(Bundle args, Boolean dirty) {
|
protected void onExecuted(Bundle args, Boolean dirty) {
|
||||||
if (dirty)
|
if (dirty) {
|
||||||
new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
|
Bundle aargs = new Bundle();
|
||||||
.setMessage(R.string.title_ask_save)
|
aargs.putString("question", getString(R.string.title_ask_save));
|
||||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
FragmentDialogAsk fragment = new FragmentDialogAsk();
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
fragment.setArguments(aargs);
|
||||||
new Handler().post(new Runnable() {
|
fragment.setTargetFragment(FragmentIdentity.this, REQUEST_SAVE);
|
||||||
@Override
|
fragment.show(getFragmentManager(), "identity:save");
|
||||||
public void run() {
|
} else
|
||||||
scroll.smoothScrollTo(0, btnSave.getBottom());
|
|
||||||
}
|
|
||||||
});
|
|
||||||
onSave(false);
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onClick(DialogInterface dialogInterface, int i) {
|
|
||||||
getFragmentManager().popBackStack();
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.show();
|
|
||||||
else
|
|
||||||
getFragmentManager().popBackStack();
|
getFragmentManager().popBackStack();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1009,11 +997,61 @@ public class FragmentIdentity extends FragmentBase {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void onMenuDelete() {
|
private void onMenuDelete() {
|
||||||
new DialogBuilderLifecycle(getContext(), getViewLifecycleOwner())
|
Bundle aargs = new Bundle();
|
||||||
.setMessage(R.string.title_identity_delete)
|
aargs.putString("question", getString(R.string.title_identity_delete));
|
||||||
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
|
|
||||||
|
FragmentDialogAsk fragment = new FragmentDialogAsk();
|
||||||
|
fragment.setArguments(aargs);
|
||||||
|
fragment.setTargetFragment(FragmentIdentity.this, REQUEST_DELETE);
|
||||||
|
fragment.show(getFragmentManager(), "identity:delete");
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onClick(DialogInterface dialog, int which) {
|
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
||||||
|
super.onActivityResult(requestCode, resultCode, data);
|
||||||
|
|
||||||
|
switch (requestCode) {
|
||||||
|
case REQUEST_COLOR:
|
||||||
|
if (resultCode == RESULT_OK && data != null) {
|
||||||
|
if (!Helper.isPro(getContext())) {
|
||||||
|
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
|
||||||
|
lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_SHOW_PRO));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bundle args = data.getBundleExtra("args");
|
||||||
|
setColor(args.getInt("color"));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case REQUEST_SAVE:
|
||||||
|
if (resultCode == RESULT_OK) {
|
||||||
|
new Handler().post(new Runnable() {
|
||||||
|
@Override
|
||||||
|
public void run() {
|
||||||
|
scroll.smoothScrollTo(0, btnSave.getBottom());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
onSave(false);
|
||||||
|
} else
|
||||||
|
getFragmentManager().popBackStack();
|
||||||
|
break;
|
||||||
|
case REQUEST_DELETE:
|
||||||
|
if (resultCode == RESULT_OK)
|
||||||
|
onDelete();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void setColor(int color) {
|
||||||
|
this.color = color;
|
||||||
|
|
||||||
|
GradientDrawable border = new GradientDrawable();
|
||||||
|
border.setColor(color);
|
||||||
|
border.setStroke(1, Helper.resolveColor(getContext(), R.attr.colorSeparator));
|
||||||
|
vwColor.setBackground(border);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void onDelete() {
|
||||||
Bundle args = new Bundle();
|
Bundle args = new Bundle();
|
||||||
args.putLong("id", id);
|
args.putLong("id", id);
|
||||||
|
|
||||||
|
@ -1047,37 +1085,4 @@ public class FragmentIdentity extends FragmentBase {
|
||||||
}
|
}
|
||||||
}.execute(FragmentIdentity.this, args, "identity:delete");
|
}.execute(FragmentIdentity.this, args, "identity:delete");
|
||||||
}
|
}
|
||||||
})
|
|
||||||
.setNegativeButton(android.R.string.cancel, null)
|
|
||||||
.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
||||||
super.onActivityResult(requestCode, resultCode, data);
|
|
||||||
|
|
||||||
switch (requestCode) {
|
|
||||||
case REQUEST_COLOR:
|
|
||||||
if (resultCode == RESULT_OK && data != null) {
|
|
||||||
if (!Helper.isPro(getContext())) {
|
|
||||||
LocalBroadcastManager lbm = LocalBroadcastManager.getInstance(getContext());
|
|
||||||
lbm.sendBroadcast(new Intent(ActivitySetup.ACTION_SHOW_PRO));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
Bundle args = data.getBundleExtra("args");
|
|
||||||
setColor(args.getInt("color"));
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void setColor(int color) {
|
|
||||||
this.color = color;
|
|
||||||
|
|
||||||
GradientDrawable border = new GradientDrawable();
|
|
||||||
border.setColor(color);
|
|
||||||
border.setStroke(1, Helper.resolveColor(getContext(), R.attr.colorSeparator));
|
|
||||||
vwColor.setBackground(border);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue