mirror of https://github.com/M66B/FairEmail.git
Added long press account to edit account color
This commit is contained in:
parent
b417e28fd1
commit
c744fc9904
|
@ -90,10 +90,11 @@ public class ActivitySetup extends ActivityBase implements FragmentManager.OnBac
|
|||
static final int REQUEST_SELECT_IDENTITY = 8;
|
||||
static final int REQUEST_EDIT_SIGNATURE = 9;
|
||||
static final int REQUEST_CHANGE_PASSWORD = 10;
|
||||
static final int REQUEST_DELETE_ACCOUNT = 11;
|
||||
static final int REQUEST_IMPORT_PROVIDERS = 12;
|
||||
static final int REQUEST_GRAPH_CONTACTS = 13;
|
||||
static final int REQUEST_GRAPH_CONTACTS_OAUTH = 14;
|
||||
static final int REQUEST_EDIT_ACCOUNT_COLOR = 11;
|
||||
static final int REQUEST_DELETE_ACCOUNT = 12;
|
||||
static final int REQUEST_IMPORT_PROVIDERS = 13;
|
||||
static final int REQUEST_GRAPH_CONTACTS = 14;
|
||||
static final int REQUEST_GRAPH_CONTACTS_OAUTH = 15;
|
||||
static final int REQUEST_DEBUG_INFO = 7000;
|
||||
|
||||
static final int PI_CONNECTION = 1;
|
||||
|
|
|
@ -494,6 +494,8 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
|
|||
}
|
||||
popupMenu.getMenu().add(Menu.NONE, R.string.title_primary, order++, R.string.title_primary)
|
||||
.setCheckable(true).setChecked(account.primary);
|
||||
if (parentFragment instanceof FragmentAccounts)
|
||||
popupMenu.getMenu().add(Menu.NONE, R.string.title_color, order++, R.string.title_color);
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
String channelId = EntityAccount.getNotificationChannelId(account.id);
|
||||
|
@ -536,6 +538,9 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
|
|||
} else if (itemId == R.string.title_primary) {
|
||||
onActionPrimary(!item.isChecked());
|
||||
return true;
|
||||
} else if (itemId == R.string.title_color) {
|
||||
onActionEditColor();
|
||||
return true;
|
||||
} else if (itemId == R.string.title_create_channel) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O)
|
||||
onActionCreateChannel();
|
||||
|
@ -676,6 +681,19 @@ public class AdapterAccount extends RecyclerView.Adapter<AdapterAccount.ViewHold
|
|||
}.execute(context, owner, args, "account:primary");
|
||||
}
|
||||
|
||||
private void onActionEditColor() {
|
||||
Bundle args = new Bundle();
|
||||
args.putLong("id", account.id);
|
||||
args.putInt("color", account.color == null ? Color.TRANSPARENT : account.color);
|
||||
args.putString("title", context.getString(R.string.title_color));
|
||||
args.putBoolean("reset", true);
|
||||
|
||||
FragmentDialogColor fragment = new FragmentDialogColor();
|
||||
fragment.setArguments(args);
|
||||
fragment.setTargetFragment(parentFragment, ActivitySetup.REQUEST_EDIT_ACCOUNT_COLOR);
|
||||
fragment.show(parentFragment.getParentFragmentManager(), "edit:color");
|
||||
}
|
||||
|
||||
@TargetApi(Build.VERSION_CODES.O)
|
||||
private void onActionCreateChannel() {
|
||||
if (!ActivityBilling.isPro(context)) {
|
||||
|
|
|
@ -488,6 +488,10 @@ public class FragmentAccounts extends FragmentBase {
|
|||
|
||||
try {
|
||||
switch (requestCode) {
|
||||
case ActivitySetup.REQUEST_EDIT_ACCOUNT_COLOR:
|
||||
if (resultCode == RESULT_OK && data != null)
|
||||
onEditAccountColor(data.getBundleExtra("args"));
|
||||
break;
|
||||
case ActivitySetup.REQUEST_DELETE_ACCOUNT:
|
||||
if (resultCode == RESULT_OK && data != null)
|
||||
onDeleteAccount(data.getBundleExtra("args"));
|
||||
|
@ -506,6 +510,33 @@ public class FragmentAccounts extends FragmentBase {
|
|||
}
|
||||
}
|
||||
|
||||
private void onEditAccountColor(Bundle args) {
|
||||
if (!ActivityBilling.isPro(getContext())) {
|
||||
startActivity(new Intent(getContext(), ActivityBilling.class));
|
||||
return;
|
||||
}
|
||||
|
||||
new SimpleTask<Void>() {
|
||||
@Override
|
||||
protected Void onExecute(Context context, Bundle args) {
|
||||
long id = args.getLong("id");
|
||||
Integer color = args.getInt("color");
|
||||
|
||||
if (color == Color.TRANSPARENT)
|
||||
color = null;
|
||||
|
||||
DB db = DB.getInstance(context);
|
||||
db.account().setAccountColor(id, color);
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onException(Bundle args, Throwable ex) {
|
||||
Log.unexpectedError(getParentFragmentManager(), ex);
|
||||
}
|
||||
}.execute(this, args, "edit:color");
|
||||
}
|
||||
|
||||
private void onDeleteAccount(Bundle args) {
|
||||
long account = args.getLong("account");
|
||||
String name = args.getString("name");
|
||||
|
|
Loading…
Reference in New Issue