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>2020-07-21 11:35:20 +0300
committerStefan Niedermann <info@niedermann.it>2020-07-21 11:35:20 +0300
commitc25a6a505796e74bf1a2d087d30c937728637e75 (patch)
tree08a81bfc01ef41a4b3b03b7e676308a16340c28f /app/src/main/java/it/niedermann/nextcloud/deck/ui/card
parent8dbe61e6bebcb3adea9073297edbbe1b7580e13f (diff)
#573 projects - Prepare to load project resources separately
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/ui/card')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardProjectsAdapter.java2
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourceAdapter.java12
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/projectresources/CardProjectResourcesDialog.java34
3 files changed, 21 insertions, 27 deletions
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 73f8cb0cc..c00718c35 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.getResources()).show(fragmentManager, CardProjectResourcesDialog.class.getSimpleName()));
+ holder.bind(project.getProject(), (v) -> CardProjectResourcesDialog.newInstance(project.getLocalId()).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 d17050605..575354a0f 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,12 +18,10 @@ public class CardProjectResourceAdapter extends RecyclerView.Adapter<CardProject
@NonNull
private final Account account;
@NonNull
- private final List<OcsProjectResource> resources;
+ private final List<OcsProjectResource> resources = new ArrayList<>();
- public CardProjectResourceAdapter(@NonNull Account account, @NonNull List<OcsProjectResource> resources) {
+ public CardProjectResourceAdapter(@NonNull Account account) {
this.account = account;
- this.resources = new ArrayList<>(resources.size());
- this.resources.addAll(resources);
setHasStableIds(true);
}
@@ -43,6 +41,12 @@ 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 a3414ecb5..8f10da69c 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,43 +10,34 @@ 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_RESOURCES = "resources";
-
- private CardProjectResourceAdapter adapter;
+ private static final String KEY_PROJECT_LOCAL_ID = "projectLocalId";
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();
- if (!args.containsKey(KEY_RESOURCES)) {
- throw new IllegalArgumentException("Provide at least " + KEY_RESOURCES);
+ 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.");
}
- this.resources.addAll((ArrayList<OcsProjectResource>) args.getSerializable(KEY_RESOURCES));
+ syncManager = new SyncManager(context);
}
@Override
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container,
Bundle savedInstanceState) {
- binding = DialogProjectResourcesBinding.inflate(inflater, container, false);
- viewModel = new ViewModelProvider(requireActivity()).get(EditCardViewModel.class);
+ final DialogProjectResourcesBinding binding = DialogProjectResourcesBinding.inflate(inflater, container, false);
+ final EditCardViewModel 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
@@ -56,11 +47,10 @@ public class CardProjectResourcesDialog extends BrandedDialogFragment {
return binding.getRoot();
}
- syncManager = new SyncManager(requireContext());
-
- // TODO parameter needed
- adapter = new CardProjectResourceAdapter(viewModel.getAccount(), resources);
+ final CardProjectResourceAdapter adapter = new CardProjectResourceAdapter(viewModel.getAccount());
binding.getRoot().setAdapter(adapter);
+
+// syncManager.getResourcesForProjectLocalId().observe((resources) -> adapter.setResources(resources));
return binding.getRoot();
}
@@ -69,10 +59,10 @@ public class CardProjectResourcesDialog extends BrandedDialogFragment {
}
- public static DialogFragment newInstance(@NonNull List<OcsProjectResource> resources) {
+ public static DialogFragment newInstance(@NonNull Long projectLocalId) {
final DialogFragment fragment = new CardProjectResourcesDialog();
final Bundle args = new Bundle();
- args.putSerializable(KEY_RESOURCES, (ArrayList<OcsProjectResource>)resources);
+ args.putSerializable(KEY_PROJECT_LOCAL_ID, projectLocalId);
fragment.setArguments(args);
return fragment;
}