diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-05-26 19:35:05 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-05-26 19:35:05 +0300 |
commit | b2ac9575bb02ad8798dc1ef8d6f5cb8c8fcd6438 (patch) | |
tree | 5aba559a42232d391fb569f3031e05c2ca3e6f33 /cross-tab-drag-and-drop | |
parent | 6c5fec47419fa634a6e628da29fdb251dd7b3ca5 (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.java | 9 |
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; } |