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>2019-11-16 12:56:45 +0300
committerstefan-niedermann <info@niedermann.it>2019-11-16 12:56:45 +0300
commit0c5ad621a94a0bd99ca8f2bca9302fedf56af81b (patch)
tree022a0308884c116c3c566bbf6b4f13d664cebff3 /app/src/main
parent82f7449881cf03cc5c94a20ac635ccfb9430445c (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.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/helper/dnd/CrossTabDragAndDrop.java12
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) {