Added option to automatically hide toolbar

This commit is contained in:
M66B
2019-08-15 12:41:28 +02:00
parent 76b37b70bf
commit e0779c74fb
5 changed files with 55 additions and 11 deletions

View File

@@ -970,7 +970,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
vSeparatorBody.setVisibility(View.VISIBLE);
initToolbar();
initToolbar(message);
ibFull.setVisibility(View.GONE);
ibImages.setVisibility(View.GONE);
@@ -1483,16 +1483,19 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
break;
case R.id.ibExpander:
onToggleToolbar();
onToggleToolbar(message);
break;
case R.id.ibFull:
onShowFull(message);
autoToolbar(message);
break;
case R.id.ibImages:
onShowImages(message);
autoToolbar(message);
break;
case R.id.ibDecrypt:
onActionDecrypt(message);
autoToolbar(message);
break;
case R.id.ibReply:
@@ -1500,21 +1503,25 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
break;
case R.id.ibForward:
onActionForward(message);
autoToolbar(message);
break;
case R.id.ibArchive:
if (EntityFolder.JUNK.equals(message.folderType))
onActionMoveJunk(message);
else
onActionArchive(message);
autoToolbar(message);
break;
case R.id.ibMove:
if (EntityFolder.OUTBOX.equals(message.folderType))
onActionMoveOutbox(message);
else
onActionMove(message, false);
autoToolbar(message);
break;
case R.id.ibDelete:
onActionDelete(message);
autoToolbar(message);
break;
case R.id.ibMore:
onActionMore(message);
@@ -1882,18 +1889,18 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
bindExpanded(message);
}
private void onToggleToolbar() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean toolbar = prefs.getBoolean("toolbar", true);
prefs.edit().putBoolean("toolbar", !toolbar).apply();
initToolbar();
private void onToggleToolbar(TupleMessageEx message) {
boolean toolbar = !properties.getValue("toolbar", message.id);
properties.setValue("toolbar", message.id, toolbar);
initToolbar(message);
}
private void initToolbar() {
private void initToolbar(TupleMessageEx message) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean toolbar = prefs.getBoolean("toolbar", true);
boolean cards = prefs.getBoolean("cards", true);
boolean toolbar = properties.getValue("toolbar", message.id);
ConstraintLayout.LayoutParams lparam = (ConstraintLayout.LayoutParams) ibExpander.getLayoutParams();
lparam.setMarginEnd(cards ? 0 : Helper.dp2pixels(ibExpander.getContext(), 6));
ibExpander.setLayoutParams(lparam);
@@ -1924,6 +1931,15 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
}
}
private void autoToolbar(TupleMessageEx message) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
boolean autotoolbar = prefs.getBoolean("autotoolbar", false);
if (autotoolbar) {
properties.setValue("toolbar", message.id, false);
initToolbar(message);
}
}
private void expand(View view, boolean cards) {
int dp6 = Helper.dp2pixels(view.getContext(), 6);
int dp36 = Helper.dp2pixels(view.getContext(), 36);
@@ -2140,6 +2156,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem target) {
autoToolbar(message);
switch (target.getItemId()) {
case R.id.menu_reply_to_sender:
onMenuReply(message, "reply");
@@ -2381,6 +2398,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem target) {
autoToolbar(message);
switch (target.getItemId()) {
case R.id.menu_editasnew:
onMenuEditAsNew(message);

View File

@@ -1127,6 +1127,10 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
return values.get(name).contains(id);
else if ("addresses".equals(name))
return !addresses;
else if ("toolbar".equals(name)) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
return !prefs.getBoolean("autotoolbar", false);
}
return false;
}

View File

@@ -43,6 +43,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
private SwitchCompat swAutoScroll;
private SwitchCompat swSwipeNav;
private SwitchCompat swDoubleTap;
private SwitchCompat swAutoToolbar;
private SwitchCompat swAutoExpand;
private SwitchCompat swAutoClose;
private Spinner spOnClose;
@@ -53,7 +54,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
private SwitchCompat swDisableTracking;
private final static String[] RESET_OPTIONS = new String[]{
"pull", "autoscroll", "swipenav", "doubletap", "autoexpand", "autoclose", "onclose",
"pull", "autoscroll", "swipenav", "doubletap", "autotoolbar", "autoexpand", "autoclose", "onclose",
"collapse", "autoread", "automove", "authentication", "disable_tracking"
};
@@ -71,6 +72,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
swAutoScroll = view.findViewById(R.id.swAutoScroll);
swSwipeNav = view.findViewById(R.id.swSwipeNav);
swDoubleTap = view.findViewById(R.id.swDoubleTap);
swAutoToolbar = view.findViewById(R.id.swAutoToolbar);
swAutoExpand = view.findViewById(R.id.swAutoExpand);
swAutoClose = view.findViewById(R.id.swAutoClose);
spOnClose = view.findViewById(R.id.spOnClose);
@@ -114,6 +116,13 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
}
});
swAutoToolbar.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
prefs.edit().putBoolean("autotoolbar", checked).apply();
}
});
swAutoExpand.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
@@ -230,6 +239,7 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
swAutoScroll.setChecked(prefs.getBoolean("autoscroll", false));
swSwipeNav.setChecked(prefs.getBoolean("swipenav", true));
swDoubleTap.setChecked(prefs.getBoolean("doubletap", false));
swAutoToolbar.setChecked(prefs.getBoolean("autotoolbar", false));
swAutoExpand.setChecked(prefs.getBoolean("autoexpand", true));
swAutoClose.setChecked(prefs.getBoolean("autoclose", true));