Fix by simplifying

This commit is contained in:
M66B 2019-09-20 08:39:15 +02:00
parent 76cc0027a1
commit 9c64ac20f0
1 changed files with 24 additions and 22 deletions

View File

@ -229,7 +229,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
private SelectionPredicateMessage selectionPredicate = null; private SelectionPredicateMessage selectionPredicate = null;
private SelectionTracker<Long> selectionTracker = null; private SelectionTracker<Long> selectionTracker = null;
private Long previous = null; private Long prev = null;
private Long next = null; private Long next = null;
private Long closeId = null; private Long closeId = null;
private int autoCloseCount = 0; private int autoCloseCount = 0;
@ -647,8 +647,6 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() { bottom_navigation.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@Override @Override
public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) {
boolean reversed = prefs.getBoolean("reversed", false);
switch (menuItem.getItemId()) { switch (menuItem.getItemId()) {
case R.id.action_delete: case R.id.action_delete:
onActionMove(EntityFolder.TRASH); onActionMove(EntityFolder.TRASH);
@ -663,11 +661,11 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
return true; return true;
case R.id.action_prev: case R.id.action_prev:
navigate(reversed ? next : previous, true); navigate(prev, true);
return true; return true;
case R.id.action_next: case R.id.action_next:
navigate(reversed ? previous : next, false); navigate(next, false);
return true; return true;
default: default:
@ -924,14 +922,24 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
model.observePrevNext(getViewLifecycleOwner(), id, new ViewModelMessages.IPrevNext() { model.observePrevNext(getViewLifecycleOwner(), id, new ViewModelMessages.IPrevNext() {
@Override @Override
public void onPrevious(boolean exists, Long id) { public void onPrevious(boolean exists, Long id) {
previous = id; boolean reversed = prefs.getBoolean("reversed", false);
bottom_navigation.getMenu().findItem(R.id.action_prev).setEnabled(id != null); if (reversed)
next = id;
else
prev = id;
bottom_navigation.getMenu().findItem(R.id.action_prev).setEnabled(prev != null);
bottom_navigation.getMenu().findItem(R.id.action_next).setEnabled(next != null);
} }
@Override @Override
public void onNext(boolean exists, Long id) { public void onNext(boolean exists, Long id) {
next = id; boolean reversed = prefs.getBoolean("reversed", false);
bottom_navigation.getMenu().findItem(R.id.action_next).setEnabled(id != null); if (reversed)
prev = id;
else
next = id;
bottom_navigation.getMenu().findItem(R.id.action_prev).setEnabled(prev != null);
bottom_navigation.getMenu().findItem(R.id.action_next).setEnabled(next != null);
} }
@Override @Override
@ -954,30 +962,24 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
final SwipeListener swipeListener = new SwipeListener(getContext(), new SwipeListener.ISwipeListener() { final SwipeListener swipeListener = new SwipeListener(getContext(), new SwipeListener.ISwipeListener() {
@Override @Override
public boolean onSwipeRight() { public boolean onSwipeRight() {
boolean reversed = prefs.getBoolean("reversed", false); if (prev == null) {
Long go = (reversed ? next : previous);
if (go == null) {
Animation bounce = AnimationUtils.loadAnimation(getContext(), R.anim.bounce_right); Animation bounce = AnimationUtils.loadAnimation(getContext(), R.anim.bounce_right);
view.startAnimation(bounce); view.startAnimation(bounce);
} else } else
navigate(go, true); navigate(prev, true);
return (go != null); return (prev != null);
} }
@Override @Override
public boolean onSwipeLeft() { public boolean onSwipeLeft() {
boolean reversed = prefs.getBoolean("reversed", false); if (next == null) {
Long go = (reversed ? previous : next);
if (go == null) {
Animation bounce = AnimationUtils.loadAnimation(getContext(), R.anim.bounce_left); Animation bounce = AnimationUtils.loadAnimation(getContext(), R.anim.bounce_left);
view.startAnimation(bounce); view.startAnimation(bounce);
} else } else
navigate(go, false); navigate(next, false);
return (go != null); return (next != null);
} }
}); });
@ -3212,7 +3214,7 @@ public class FragmentMessages extends FragmentBase implements SharedPreferences.
return null; return null;
EntityFolder folder = db.folder().getFolder(message.folder); EntityFolder folder = db.folder().getFolder(message.folder);
if (folder == null) if (folder == null || folder.account == null)
return null; return null;
EntityAccount account = db.account().getAccount(folder.account); EntityAccount account = db.account().getAccount(folder.account);