diff options
author | stefan-niedermann <info@niedermann.it> | 2019-12-14 12:46:57 +0300 |
---|---|---|
committer | stefan-niedermann <info@niedermann.it> | 2019-12-14 12:46:57 +0300 |
commit | c0fe95fe5040a8627783bb98cd40ae5a1d154112 (patch) | |
tree | ab0e5be4871243beafb89b3554702d8651652d94 /app/src/main | |
parent | 88c5ef5dc0cb9ba9f951b103d6cdc9dc880090a7 (diff) |
#175 Menu to move cards between columns
Do not fetch available stacks for each card
Diffstat (limited to 'app/src/main')
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 1d5451553..6b1e09d35 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,6 +25,7 @@ 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; @@ -414,7 +415,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, currentBoardHasEditPermission), stack.getStack().getTitle()); + newStackAdapter.addFragment(StackFragment.newInstance(board.getLocalId(), stack.getStack().getLocalId(), account, new ArrayList<>(fullStacks), 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 9b89f071c..b61dd3ea5 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,11 +88,12 @@ 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, @NonNull Fragment fragment) { + public CardAdapter(long boardId, boolean canEdit, @NonNull SyncManager syncManager, List<FullStack> stacks, @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; } @@ -141,7 +142,6 @@ 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,10 +203,6 @@ 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 1678398b2..8f2b9e798 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,6 +12,7 @@ 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; @@ -29,6 +30,7 @@ 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; @@ -49,12 +51,13 @@ 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, boolean hasEditPermission) { + public static StackFragment newInstance(long boardId, long stackId, Account account, ArrayList<FullStack> fullStacks, 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); @@ -87,7 +90,7 @@ public class StackFragment extends Fragment { syncManager = new SyncManager(activity); - adapter = new CardAdapter(boardId, getArguments().getBoolean(KEY_HAS_EDIT_PERMISSION), syncManager, this); + adapter = new CardAdapter(boardId, getArguments().getBoolean(KEY_HAS_EDIT_PERMISSION), syncManager, (List<FullStack>) getArguments().getSerializable(KEY_STACKS), this); recyclerView.setAdapter(adapter); if (onScrollListener != null) { recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() { |