Scroll to top and double tap

This commit is contained in:
M66B 2019-10-01 15:20:24 +02:00
parent 41ac05ac6e
commit 7b61ae2dbf
3 changed files with 12 additions and 31 deletions

View File

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

View File

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

View File

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