diff options
author | stefan-niedermann <info@niedermann.it> | 2019-12-14 13:06:14 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2019-12-14 13:06:14 +0300 |
commit | 70cdd71f1da1a4ef88e70b6a84bba11d8b13e2e3 (patch) | |
tree | ca16416595f5e3d722481ce7d57a575208cfef04 /app/src | |
parent | 75582ee8db42c5c0403e095a39d36019fef36d6e (diff) |
#175 Menu to move cards between columns
Do fetch available stacks for each card (Sadly, FullStack is not serializable)
Diffstat (limited to 'app/src')
3 files changed, 9 insertions, 9 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 57b11bec8..46c42a128 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 @@ -25,7 +25,6 @@ import com.google.android.material.snackbar.Snackbar; import com.google.android.material.tabs.TabLayout; import com.h6ah4i.android.tablayouthelper.TabLayoutHelper; -import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -415,7 +414,7 @@ public class MainActivity extends DrawerActivity implements StackAdapter newStackAdapter = new StackAdapter(getSupportFragmentManager()); for (int i = 0; i < fullStacks.size(); i++) { FullStack stack = fullStacks.get(i); - newStackAdapter.addFragment(StackFragment.newInstance(board.getLocalId(), stack.getStack().getLocalId(), account, new ArrayList<>(fullStacks), currentBoardHasEditPermission), stack.getStack().getTitle()); + newStackAdapter.addFragment(StackFragment.newInstance(board.getLocalId(), stack.getStack().getLocalId(), account, currentBoardHasEditPermission), stack.getStack().getTitle()); if (stack.getLocalId() == savedStackId) { stackPositionInAdapter = i; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java index b61dd3ea5..9b89f071c 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/CardAdapter.java @@ -88,12 +88,11 @@ public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder @BindInt(R.integer.max_labels_chars) int maxLabelsChars; - public CardAdapter(long boardId, boolean canEdit, @NonNull SyncManager syncManager, List<FullStack> stacks, @NonNull Fragment fragment) { + public CardAdapter(long boardId, boolean canEdit, @NonNull SyncManager syncManager, @NonNull Fragment fragment) { ButterKnife.bind(this, Objects.requireNonNull(fragment.getActivity())); this.lifecycleOwner = fragment; this.boardId = boardId; this.canEdit = canEdit; - this.availableStacks = stacks; this.syncManager = syncManager; } @@ -142,6 +141,7 @@ public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder DeckLog.log("onLongClickListener"); return true; }); + setupMoveMenu(card.getAccountId(), boardId); } viewHolder.cardTitle.setText(card.getCard().getTitle()); String description = card.getCard().getDescription(); @@ -203,6 +203,10 @@ public class CardAdapter extends RecyclerView.Adapter<CardAdapter.CardViewHolder viewHolder.cardMenu.setOnClickListener(v -> onOverflowIconClicked(v, card)); } + private void setupMoveMenu(long accountId, long boardId) { + syncManager.getStacksForBoard(accountId, boardId).observe(lifecycleOwner, (stacks) -> availableStacks = stacks); + } + private void setupLabels(@NonNull ChipGroup labels, List<Label> labelList) { Chip chip; for (int i = 0; i < labelList.size(); i++) { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java index 8f2b9e798..1678398b2 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/stack/StackFragment.java @@ -12,7 +12,6 @@ import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.recyclerview.widget.RecyclerView; -import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -30,7 +29,6 @@ public class StackFragment extends Fragment { private static final String KEY_BOARD_ID = "boardId"; private static final String KEY_STACK_ID = "stackId"; private static final String KEY_ACCOUNT = "account"; - private static final String KEY_STACKS = "stacks"; private static final String KEY_HAS_EDIT_PERMISSION = "hasEditPermission"; private CardAdapter adapter = null; private SyncManager syncManager; @@ -51,13 +49,12 @@ public class StackFragment extends Fragment { * @return new fragment instance * @see <a href="https://gunhansancar.com/best-practice-to-instantiate-fragments-with-arguments-in-android/">Best Practice to Instantiate Fragments with Arguments in Android</a> */ - public static StackFragment newInstance(long boardId, long stackId, Account account, ArrayList<FullStack> fullStacks, boolean hasEditPermission) { + public static StackFragment newInstance(long boardId, long stackId, Account account, boolean hasEditPermission) { Bundle bundle = new Bundle(); bundle.putLong(KEY_BOARD_ID, boardId); bundle.putLong(KEY_STACK_ID, stackId); bundle.putBoolean(KEY_HAS_EDIT_PERMISSION, hasEditPermission); bundle.putSerializable(KEY_ACCOUNT, account); - bundle.putSerializable(KEY_STACKS, fullStacks); StackFragment fragment = new StackFragment(); fragment.setArguments(bundle); @@ -90,7 +87,7 @@ public class StackFragment extends Fragment { syncManager = new SyncManager(activity); - adapter = new CardAdapter(boardId, getArguments().getBoolean(KEY_HAS_EDIT_PERMISSION), syncManager, (List<FullStack>) getArguments().getSerializable(KEY_STACKS), this); + adapter = new CardAdapter(boardId, getArguments().getBoolean(KEY_HAS_EDIT_PERMISSION), syncManager, this); recyclerView.setAdapter(adapter); if (onScrollListener != null) { recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { |