diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-07-21 12:27:09 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-07-21 12:27:09 +0300 |
commit | a8e72143151a1dd6480b24c055f25607edf04e14 (patch) | |
tree | 56cefb7852c96be2b6ecf0fd0b18efd0ea43c56c /app/src/main/java/it/niedermann/nextcloud/deck/ui/card | |
parent | 30886962fd6c5c32fdaccc3d39fbbf8ce3794f54 (diff) |
#573 projects - Fix build
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card')
4 files changed, 34 insertions, 28 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java index c8c93c838..62fe6785f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/EditCardViewModel.java @@ -8,15 +8,15 @@ import java.util.ArrayList; import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.model.Account; import it.niedermann.nextcloud.deck.model.Card; -import it.niedermann.nextcloud.deck.model.full.FullCard; +import it.niedermann.nextcloud.deck.model.full.FullCardWithProjects; @SuppressWarnings("WeakerAccess") public class EditCardViewModel extends ViewModel { private Account account; private long boardId; - private FullCard originalCard; - private FullCard fullCard; + private FullCardWithProjects originalCard; + private FullCardWithProjects fullCard; private boolean isSupportedVersion = false; private boolean hasCommentsAbility = false; private boolean pendingCreation = false; @@ -29,10 +29,10 @@ public class EditCardViewModel extends ViewModel { * @param boardId Local ID, expecting a positive long value * @param fullCard The card that is currently edited */ - public void initializeExistingCard(long boardId, @NonNull FullCard fullCard, boolean isSupportedVersion) { + public void initializeExistingCard(long boardId, @NonNull FullCardWithProjects fullCard, boolean isSupportedVersion) { this.boardId = boardId; this.fullCard = fullCard; - this.originalCard = new FullCard(this.fullCard); + this.originalCard = new FullCardWithProjects(this.fullCard); this.isSupportedVersion = isSupportedVersion; } @@ -43,7 +43,7 @@ public class EditCardViewModel extends ViewModel { * @param stackId Local ID, expecting a positive long value where the card should be created */ public void initializeNewCard(long boardId, long stackId, boolean isSupportedVersion) { - final FullCard fullCard = new FullCard(); + final FullCardWithProjects fullCard = new FullCardWithProjects(); fullCard.setLabels(new ArrayList<>()); fullCard.setAssignedUsers(new ArrayList<>()); fullCard.setAttachments(new ArrayList<>()); @@ -74,7 +74,7 @@ public class EditCardViewModel extends ViewModel { return account; } - public FullCard getFullCard() { + public FullCardWithProjects getFullCard() { return fullCard; } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java index c00718c35..73f8cb0cc 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java @@ -42,7 +42,7 @@ public class CardProjectsAdapter extends RecyclerView.Adapter<CardProjectsViewHo @Override public void onBindViewHolder(@NonNull CardProjectsViewHolder holder, int position) { final OcsProjectWithResources project = projects.get(position); - holder.bind(project.getProject(), (v) -> CardProjectResourcesDialog.newInstance(project.getLocalId()).show(fragmentManager, CardProjectResourcesDialog.class.getSimpleName())); + holder.bind(project.getProject(), (v) -> CardProjectResourcesDialog.newInstance(project.getResources()).show(fragmentManager, CardProjectResourcesDialog.class.getSimpleName())); } @Override diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceAdapter.java index 575354a0f..d17050605 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceAdapter.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceAdapter.java @@ -18,10 +18,12 @@ public class CardProjectResourceAdapter extends RecyclerView.Adapter<CardProject @NonNull private final Account account; @NonNull - private final List<OcsProjectResource> resources = new ArrayList<>(); + private final List<OcsProjectResource> resources; - public CardProjectResourceAdapter(@NonNull Account account) { + public CardProjectResourceAdapter(@NonNull Account account, @NonNull List<OcsProjectResource> resources) { this.account = account; + this.resources = new ArrayList<>(resources.size()); + this.resources.addAll(resources); setHasStableIds(true); } @@ -41,12 +43,6 @@ public class CardProjectResourceAdapter extends RecyclerView.Adapter<CardProject holder.bind(account, resources.get(position)); } - public void setResources(@NonNull List<OcsProjectResource> resources) { - this.resources.clear(); - this.resources.addAll(resources); - notifyDataSetChanged(); - } - @Override public int getItemCount() { return this.resources.size(); diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java index 8f10da69c..a6464c247 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java @@ -10,34 +10,43 @@ import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; import androidx.lifecycle.ViewModelProvider; +import java.util.ArrayList; +import java.util.List; + import it.niedermann.nextcloud.deck.DeckLog; import it.niedermann.nextcloud.deck.databinding.DialogProjectResourcesBinding; +import it.niedermann.nextcloud.deck.model.ocs.projects.OcsProjectResource; import it.niedermann.nextcloud.deck.persistence.sync.SyncManager; import it.niedermann.nextcloud.deck.ui.branding.BrandedDialogFragment; import it.niedermann.nextcloud.deck.ui.card.EditCardViewModel; public class CardProjectResourcesDialog extends BrandedDialogFragment { - private static final String KEY_PROJECT_LOCAL_ID = "projectLocalId"; + private static final String KEY_RESOURCES = "resources"; + + private CardProjectResourceAdapter adapter; private SyncManager syncManager; + private DialogProjectResourcesBinding binding; + private EditCardViewModel viewModel; + @NonNull + private List<OcsProjectResource> resources = new ArrayList<>(); @Override public void onAttach(@NonNull Context context) { super.onAttach(context); final Bundle args = requireArguments(); - final long projectLocalId = args.getLong(KEY_PROJECT_LOCAL_ID, -1L); - if (projectLocalId < 0L) { - throw new IllegalArgumentException("Provide at least " + KEY_PROJECT_LOCAL_ID + " which must be a value greater than 0."); + if (!args.containsKey(KEY_RESOURCES)) { + throw new IllegalArgumentException("Provide at least " + KEY_RESOURCES); } - syncManager = new SyncManager(context); + this.resources.addAll((ArrayList<OcsProjectResource>) args.getSerializable(KEY_RESOURCES)); } @Override public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { - final DialogProjectResourcesBinding binding = DialogProjectResourcesBinding.inflate(inflater, container, false); - final EditCardViewModel viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); + binding = DialogProjectResourcesBinding.inflate(inflater, container, false); + viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class); // TODO check if necessary // This might be a zombie fragment with an empty EditCardViewModel after Android killed the activity (but not the fragment instance @@ -47,10 +56,11 @@ public class CardProjectResourcesDialog extends BrandedDialogFragment { return binding.getRoot(); } - final CardProjectResourceAdapter adapter = new CardProjectResourceAdapter(viewModel.getAccount()); - binding.getRoot().setAdapter(adapter); + syncManager = new SyncManager(requireContext()); -// syncManager.getResourcesForProjectLocalId().observe((resources) -> adapter.setResources(resources)); + // TODO parameter needed + adapter = new CardProjectResourceAdapter(viewModel.getAccount(), resources); + binding.getRoot().setAdapter(adapter); return binding.getRoot(); } @@ -59,10 +69,10 @@ public class CardProjectResourcesDialog extends BrandedDialogFragment { } - public static DialogFragment newInstance(@NonNull Long projectLocalId) { + public static DialogFragment newInstance(@NonNull List<OcsProjectResource> resources) { final DialogFragment fragment = new CardProjectResourcesDialog(); final Bundle args = new Bundle(); - args.putSerializable(KEY_PROJECT_LOCAL_ID, projectLocalId); + args.putSerializable(KEY_RESOURCES, new ArrayList<>(resources)); fragment.setArguments(args); return fragment; } |