diff options
author | stefan-niedermann <info@niedermann.it> | 2019-11-16 12:56:45 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2019-11-16 12:56:45 +0300 |
commit | 0c5ad621a94a0bd99ca8f2bca9302fedf56af81b (patch) | |
tree | 022a0308884c116c3c566bbf6b4f13d664cebff3 /app/src/main | |
parent | 82f7449881cf03cc5c94a20ac635ccfb9430445c (diff) |
Fix #209 No mark of the selected column
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java | 2 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/dnd/CrossTabDragAndDrop.java | 12 |
2 files changed, 9 insertions, 5 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java index 08e51e760..f8ee3919a 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/MainActivity.java @@ -121,7 +121,7 @@ public class MainActivity extends DrawerActivity implements AppCompatDelegate.setCompatVectorFromResourcesEnabled(true); CrossTabDragAndDrop dragAndDrop = new CrossTabDragAndDrop(this); - dragAndDrop.register(viewPager); + dragAndDrop.register(viewPager, stackLayout); dragAndDrop.addCardMovedByDragListener((movedCard, stackId, position) -> { //FIXME: implement me por favour! syncManager.reorder(account.getId(), movedCard, stackId, position); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/dnd/CrossTabDragAndDrop.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/dnd/CrossTabDragAndDrop.java index e8f076cb6..f35edaed3 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/dnd/CrossTabDragAndDrop.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/dnd/CrossTabDragAndDrop.java @@ -10,8 +10,11 @@ import androidx.cardview.widget.CardView; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.ViewPager; +import com.google.android.material.tabs.TabLayout; + import java.util.HashSet; import java.util.List; +import java.util.Objects; import java.util.Set; import butterknife.BindInt; @@ -56,7 +59,7 @@ public class CrossTabDragAndDrop { this.pxToReactTopBottom = dragAndDropDPtoReactTopBottom * density; } - public void register(final ViewPager viewPager) { + public void register(final ViewPager viewPager, TabLayout stackLayout) { viewPager.setOnDragListener((View v, DragEvent dragEvent) -> { DraggedCardLocalState draggedCardLocalState = (DraggedCardLocalState) dragEvent.getLocalState(); @@ -93,7 +96,7 @@ public class CrossTabDragAndDrop { if (shouldSwitchTab && isMovePossible(viewPager, newTabPosition)) { removeItem(currentRecyclerView, cardView, cardAdapter); detectAndKillDuplicatesInNeighbourTab(viewPager, draggedCardLocalState.getDraggedCard(), oldTabPosition, newTabPosition); - switchTab(viewPager, draggedCardLocalState, now, newTabPosition); + switchTab(viewPager, stackLayout, draggedCardLocalState, now, newTabPosition); return true; } } @@ -138,9 +141,10 @@ public class CrossTabDragAndDrop { }); } - private void switchTab(ViewPager viewPager, final DraggedCardLocalState draggedCardLocalState, long now, int newPosition) { + private void switchTab(ViewPager viewPager, TabLayout stackLayout, final DraggedCardLocalState draggedCardLocalState, long now, int newPosition) { draggedCardLocalState.onTabChanged(viewPager, newPosition); viewPager.setCurrentItem(newPosition); + Objects.requireNonNull(stackLayout.getTabAt(newPosition)).select(); final RecyclerView recyclerView = draggedCardLocalState.getRecyclerView(); CardAdapter cardAdapter = draggedCardLocalState.getCardAdapter(); @@ -174,7 +178,7 @@ public class CrossTabDragAndDrop { } private static boolean isMovePossible(ViewPager viewPager, int newPosition) { - return newPosition < viewPager.getAdapter().getCount() && newPosition >= 0; + return newPosition < Objects.requireNonNull(viewPager.getAdapter()).getCount() && newPosition >= 0; } private void detectAndKillDuplicatesInNeighbourTab(ViewPager viewPager, FullCard cardToFind, int oldTabPosition, int newTabPosition) { |