mirror of https://github.com/M66B/FairEmail.git
Scroll to top and double tap
This commit is contained in:
parent
41ac05ac6e
commit
7b61ae2dbf
|
@ -1661,9 +1661,7 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
.putExtra("found", viewType == ViewType.SEARCH);
|
||||
|
||||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
boolean doubletap =
|
||||
(!prefs.getBoolean("autoscroll", false) &&
|
||||
prefs.getBoolean("doubletap", false));
|
||||
boolean doubletap = prefs.getBoolean("doubletap", false);
|
||||
|
||||
if (!doubletap || message.folderReadOnly || EntityFolder.OUTBOX.equals(message.folderType)) {
|
||||
lbm.sendBroadcast(viewThread);
|
||||
|
@ -3308,7 +3306,13 @@ public class AdapterMessage extends RecyclerView.Adapter<AdapterMessage.ViewHold
|
|||
this.differ.addPagedListListener(new AsyncPagedListDiffer.PagedListListener<TupleMessageEx>() {
|
||||
@Override
|
||||
public void onCurrentListChanged(@Nullable PagedList<TupleMessageEx> previousList, @Nullable PagedList<TupleMessageEx> currentList) {
|
||||
if (gotoTop) {
|
||||
int prev = (previousList == null ? 0 : previousList.size());
|
||||
int cur = (currentList == null ? 0 : currentList.size());
|
||||
boolean autoscroll =
|
||||
(prefs.getBoolean("autoscroll", false) ||
|
||||
viewType == AdapterMessage.ViewType.THREAD);
|
||||
|
||||
if (gotoTop || (autoscroll && cur > prev)) {
|
||||
gotoTop = false;
|
||||
properties.scrollTo(0);
|
||||
}
|
||||
|
|
|
@ -201,7 +201,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
private boolean date;
|
||||
private boolean threading;
|
||||
private boolean swipenav;
|
||||
private boolean autoscroll;
|
||||
private boolean seekbar;
|
||||
private boolean actionbar;
|
||||
private boolean autoexpand;
|
||||
|
@ -219,7 +218,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
private boolean initialized = false;
|
||||
private boolean loading = false;
|
||||
private boolean manual = false;
|
||||
private Integer lastUnseen = null;
|
||||
private boolean swiping = false;
|
||||
|
||||
private AdapterMessage adapter;
|
||||
|
@ -303,9 +301,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
|
||||
|
||||
swipenav = prefs.getBoolean("swipenav", true);
|
||||
autoscroll =
|
||||
(prefs.getBoolean("autoscroll", false) ||
|
||||
viewType == AdapterMessage.ViewType.THREAD);
|
||||
cards = prefs.getBoolean("cards", true);
|
||||
date = prefs.getBoolean("date", true);
|
||||
threading = prefs.getBoolean("threading", true);
|
||||
|
@ -2324,20 +2319,13 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
|
||||
case THREAD:
|
||||
db.message().liveThreadStats(account, thread, null).observe(getViewLifecycleOwner(), new Observer<TupleThreadStats>() {
|
||||
Integer lastUnseen = null;
|
||||
|
||||
@Override
|
||||
public void onChanged(TupleThreadStats stats) {
|
||||
setSubtitle(stats == null || stats.accountName == null ? "" : stats.accountName);
|
||||
if (stats == null)
|
||||
return;
|
||||
|
||||
if (stats != null && stats.count != null && stats.seen != null) {
|
||||
int unseen = stats.count - stats.seen;
|
||||
if (lastUnseen == null || lastUnseen != unseen) {
|
||||
if (autoscroll && lastUnseen != null && lastUnseen < unseen)
|
||||
loadMessages(true);
|
||||
lastUnseen = unseen;
|
||||
}
|
||||
}
|
||||
int unseen = stats.count - stats.seen;
|
||||
setSubtitle(getString(R.string.title_name_count, stats.accountName, NF.format(unseen)));
|
||||
}
|
||||
});
|
||||
db.message().liveHiddenThread(account, thread).observe(getViewLifecycleOwner(), new Observer<List<Long>>() {
|
||||
|
@ -2876,15 +2864,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
|
|||
else
|
||||
fabError.hide();
|
||||
|
||||
// Auto scroll
|
||||
if (lastUnseen == null || lastUnseen != unseen) {
|
||||
if ((!refreshing && manual) ||
|
||||
(autoscroll && lastUnseen != null && lastUnseen < unseen))
|
||||
loadMessages(true);
|
||||
manual = false;
|
||||
lastUnseen = unseen;
|
||||
}
|
||||
|
||||
swipeRefresh.setRefreshing(refreshing);
|
||||
}
|
||||
|
||||
|
|
|
@ -104,7 +104,6 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
|
|||
@Override
|
||||
public void onCheckedChanged(CompoundButton compoundButton, boolean checked) {
|
||||
prefs.edit().putBoolean("autoscroll", checked).apply();
|
||||
swDoubleTap.setEnabled(!checked);
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -259,7 +258,6 @@ public class FragmentOptionsBehavior extends FragmentBase implements SharedPrefe
|
|||
swPull.setChecked(prefs.getBoolean("pull", true));
|
||||
swAutoScroll.setChecked(prefs.getBoolean("autoscroll", false));
|
||||
swDoubleTap.setChecked(prefs.getBoolean("doubletap", false));
|
||||
swDoubleTap.setEnabled(!swAutoScroll.isChecked());
|
||||
swSwipeNav.setChecked(prefs.getBoolean("swipenav", true));
|
||||
swReversed.setChecked(prefs.getBoolean("reversed", false));
|
||||
swAutoExpand.setChecked(prefs.getBoolean("autoexpand", true));
|
||||
|
|
Loading…
Reference in New Issue