Added option to automatically hide toolbar

pull/161/head
M66B 5 years ago
parent 76b37b70bf
commit e0779c74fb

@ -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);

@ -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;
}

@ -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));

@ -64,6 +64,17 @@
app:layout_constraintTop_toBottomOf="@id/swSwipeNav"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swAutoToolbar"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:text="@string/title_advanced_autotoolbar"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swDoubleTap"
app:switchPadding="12dp" />
<androidx.appcompat.widget.SwitchCompat
android:id="@+id/swAutoExpand"
android:layout_width="0dp"
@ -73,7 +84,7 @@
android:text="@string/title_advanced_autoexpand"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/swDoubleTap"
app:layout_constraintTop_toBottomOf="@id/swAutoToolbar"
app:switchPadding="12dp" />
<TextView

@ -240,6 +240,7 @@
<string name="title_advanced_autoscroll">Scroll to top on receiving new messages</string>
<string name="title_advanced_swipenav">Swipe left/right to go to next/previous conversation</string>
<string name="title_advanced_double_tap">Double tap to mark message read/unread</string>
<string name="title_advanced_autotoolbar">Automatically hide message actions</string>
<string name="title_advanced_autoexpand">Automatically expand messages</string>
<string name="title_advanced_collapse">Collapse messages in conversations on \'back\'</string>
<string name="title_advanced_autoclose">Automatically close conversations</string>

Loading…
Cancel
Save