Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-05-26 19:35:05 +0300
committerStefan Niedermann <info@niedermann.it>2020-05-26 19:35:05 +0300
commitb2ac9575bb02ad8798dc1ef8d6f5cb8c8fcd6438 (patch)
tree5aba559a42232d391fb569f3031e05c2ca3e6f33 /cross-tab-drag-and-drop
parent6c5fec47419fa634a6e628da29fdb251dd7b3ca5 (diff)
Fix #512 Issue with dragging card to another list in RTL layout
Diffstat (limited to 'cross-tab-drag-and-drop')
-rw-r--r--cross-tab-drag-and-drop/src/main/java/it/niedermann/android/crosstabdnd/CrossTabDragAndDrop.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/cross-tab-drag-and-drop/src/main/java/it/niedermann/android/crosstabdnd/CrossTabDragAndDrop.java b/cross-tab-drag-and-drop/src/main/java/it/niedermann/android/crosstabdnd/CrossTabDragAndDrop.java
index 57c6cd71a..dcedc584b 100644
--- a/cross-tab-drag-and-drop/src/main/java/it/niedermann/android/crosstabdnd/CrossTabDragAndDrop.java
+++ b/cross-tab-drag-and-drop/src/main/java/it/niedermann/android/crosstabdnd/CrossTabDragAndDrop.java
@@ -27,6 +27,7 @@ public class CrossTabDragAndDrop<
private static final String TAG = CrossTabDragAndDrop.class.getCanonicalName();
private static final ScrollHelper SCROLL_HELPER = new ScrollHelper();
+ private final boolean isLayoutLtr;
private final float pxToReact;
private final float pxToReactTopBottom;
private final int dragAndDropMsToReact;
@@ -37,13 +38,14 @@ public class CrossTabDragAndDrop<
private final Set<ItemMovedByDragListener<ItemModel>> moveListenerList = new HashSet<>(1);
- public CrossTabDragAndDrop(@NonNull Resources resources) {
+ public CrossTabDragAndDrop(@NonNull Resources resources, boolean isLayoutLtr) {
this.displayX = resources.getDisplayMetrics().widthPixels;
final float density = resources.getDisplayMetrics().density;
this.pxToReact = resources.getInteger(R.integer.drag_n_drop_dp_to_react) * density;
this.dragAndDropMsToReactTopBottom = resources.getInteger(R.integer.drag_n_drop_dp_to_react_top_bottom);
this.pxToReactTopBottom = dragAndDropMsToReactTopBottom * density;
this.dragAndDropMsToReact = resources.getInteger(R.integer.drag_n_drop_ms_to_react);
+ this.isLayoutLtr = isLayoutLtr;
}
public void register(final ViewPager2 viewPager, TabLayout stackLayout, FragmentManager fm) {
@@ -68,11 +70,10 @@ public class CrossTabDragAndDrop<
int newTabPosition = -1;
// change tab? if yes, which direction?
- // FIXME respect RTL layout https://github.com/stefan-niedermann/nextcloud-deck/issues/512
if (dragEvent.getX() <= pxToReact) {
- newTabPosition = oldTabPosition - 1;
+ newTabPosition = isLayoutLtr ? oldTabPosition - 1 : oldTabPosition + 1;
} else if (dragEvent.getX() >= displayX - pxToReact) {
- newTabPosition = oldTabPosition + 1;
+ newTabPosition = isLayoutLtr ? oldTabPosition + 1 : oldTabPosition - 1;
} else {
shouldSwitchTab = false;
}