From 6ed09e6103fa38e0f2bb1682779d164d96ea47af Mon Sep 17 00:00:00 2001 From: r-ca Date: Sun, 28 Jan 2024 16:27:24 +0900 Subject: [PATCH 1/7] =?UTF-8?q?getAppliedTagList=E5=AE=9F=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../one/nem/lacerta/data/LacertaLibrary.java | 2 ++ .../lacerta/data/impl/LacertaLibraryImpl.java | 16 ++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/data/src/main/java/one/nem/lacerta/data/LacertaLibrary.java b/data/src/main/java/one/nem/lacerta/data/LacertaLibrary.java index 7e8ba899..764dcb5a 100644 --- a/data/src/main/java/one/nem/lacerta/data/LacertaLibrary.java +++ b/data/src/main/java/one/nem/lacerta/data/LacertaLibrary.java @@ -35,6 +35,8 @@ public interface LacertaLibrary { // Tag CompletableFuture> getTagList(); + CompletableFuture> getAppliedTagList(String documentId); + CompletableFuture createTag(DocumentTag tag); CompletableFuture updateTag(DocumentTag tag); diff --git a/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java b/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java index e6c19bd9..b0052b70 100644 --- a/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java +++ b/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java @@ -248,6 +248,22 @@ public class LacertaLibraryImpl implements LacertaLibrary { }); } + @Override + public CompletableFuture> getAppliedTagList(String documentId) { + return CompletableFuture.supplyAsync(() -> { + List toxiDocumentTagEntities = database.toxiDocumentTagDao().findByDocumentId(documentId); + logger.debug("LacertaLibraryImpl", "Database Query: Get ToxiDocumentTagEntity List (Size: " + toxiDocumentTagEntities.size() + ")"); + ArrayList documentTags = new ArrayList<>(); + for (ToxiDocumentTagEntity toxiDocumentTagEntity : toxiDocumentTagEntities) { + TagEntity tagEntity = database.tagDao().findById(toxiDocumentTagEntity.tagId); + if (tagEntity != null) { + documentTags.add(convertTagEntityToDocumentTag(tagEntity)); + } + } + return documentTags; + }); + } + @Override public CompletableFuture createTag(DocumentTag tag) { return CompletableFuture.supplyAsync(() -> { From 45c2b5f0fb39066ea36c635690868fe84e39fc5a Mon Sep 17 00:00:00 2001 From: r-ca Date: Sun, 28 Jan 2024 16:34:37 +0900 Subject: [PATCH 2/7] =?UTF-8?q?Chip=E3=81=A4=E3=81=8D=E3=81=AE=E3=83=AC?= =?UTF-8?q?=E3=82=A4=E3=82=A2=E3=82=A6=E3=83=88=E3=82=92=E4=BD=9C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../res/layout/common_list_item_with_tag.xml | 63 +++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 shared/ui/src/main/res/layout/common_list_item_with_tag.xml diff --git a/shared/ui/src/main/res/layout/common_list_item_with_tag.xml b/shared/ui/src/main/res/layout/common_list_item_with_tag.xml new file mode 100644 index 00000000..dadf574c --- /dev/null +++ b/shared/ui/src/main/res/layout/common_list_item_with_tag.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file From 10621d2935749e60187cb1e88023769ef1bace66 Mon Sep 17 00:00:00 2001 From: r-ca Date: Sun, 28 Jan 2024 16:40:24 +0900 Subject: [PATCH 3/7] =?UTF-8?q?ListItem=E3=81=ABtagList=E3=82=92=E8=BF=BD?= =?UTF-8?q?=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/one/nem/lacerta/model/ListItem.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/model/src/main/java/one/nem/lacerta/model/ListItem.java b/model/src/main/java/one/nem/lacerta/model/ListItem.java index b987b616..533aee20 100644 --- a/model/src/main/java/one/nem/lacerta/model/ListItem.java +++ b/model/src/main/java/one/nem/lacerta/model/ListItem.java @@ -2,6 +2,10 @@ package one.nem.lacerta.model; import android.graphics.drawable.Drawable; +import java.util.ArrayList; + +import one.nem.lacerta.model.document.tag.DocumentTag; + public class ListItem { // Properties @@ -11,6 +15,7 @@ public class ListItem { ListItemType itemType; String itemId; boolean hasCombined; + ArrayList tagList; // Constructor @@ -29,6 +34,15 @@ public class ListItem { this.hasCombined = hasCombined; } + public ListItem(String title, String description, ListItemType itemType, String itemId,boolean hasCombined, ArrayList tagList) { + this.title = title; + this.description = description; + this.itemType = itemType; + this.itemId = itemId; + this.hasCombined = hasCombined; + this.tagList = tagList; + } + public ListItem() { // Empty constructor } @@ -55,6 +69,10 @@ public class ListItem { return hasCombined; } + public ArrayList getTagList() { + return tagList; + } + // Setter public void setTitle(String title) { @@ -77,4 +95,7 @@ public class ListItem { this.hasCombined = hasCombined; } + public void setTagList(ArrayList tagList) { + this.tagList = tagList; + } } From ab92c6ce93b365c04daf736db9632044781625dd Mon Sep 17 00:00:00 2001 From: r-ca Date: Sun, 28 Jan 2024 22:50:09 +0900 Subject: [PATCH 4/7] =?UTF-8?q?TagAdapter=E5=AE=9F=E8=A3=85=20WIP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lacerta/feature/library/TagAdapter.java | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 feature/library/src/main/java/one/nem/lacerta/feature/library/TagAdapter.java diff --git a/feature/library/src/main/java/one/nem/lacerta/feature/library/TagAdapter.java b/feature/library/src/main/java/one/nem/lacerta/feature/library/TagAdapter.java new file mode 100644 index 00000000..f184caaa --- /dev/null +++ b/feature/library/src/main/java/one/nem/lacerta/feature/library/TagAdapter.java @@ -0,0 +1,44 @@ +package one.nem.lacerta.feature.library; + +import android.view.View; +import android.view.ViewGroup; +import android.widget.BaseAdapter; + +import com.google.android.material.chip.Chip; + +import java.util.ArrayList; + +import one.nem.lacerta.model.document.tag.DocumentTag; + +public class TagAdapter extends BaseAdapter { + + private ArrayList tagList; + + @Override + public int getCount() { + return 0; + } + + @Override + public Object getItem(int position) { + return null; + } + + @Override + public long getItemId(int position) { + return 0; + } + + @Override + public View getView(int position, View convertView, ViewGroup parent) { + Chip chip; + if (convertView == null) { + chip = new Chip(parent.getContext()); + } + else { + chip = (Chip) convertView; + } + chip.setText(tagList.get(position).getName()); + return chip; + } +} From 9045cec67d189c83df92c1fd90e8ffd78c233446 Mon Sep 17 00:00:00 2001 From: r-ca Date: Sun, 28 Jan 2024 23:13:20 +0900 Subject: [PATCH 5/7] =?UTF-8?q?=E3=81=A8=E3=82=8A=E3=81=82=E3=81=88?= =?UTF-8?q?=E3=81=9A=E3=82=BF=E3=82=B0=E3=82=92=E8=A1=A8=E7=A4=BA=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=82=8B=E3=82=88=E3=81=86=E3=81=AB=E3=81=97=E3=81=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lacerta/data/impl/LacertaLibraryImpl.java | 13 +++++++++++ .../feature/library/LibraryPageFragment.java | 8 +++++++ .../feature/library/ListItemAdapter.java | 23 ++++++++++++++++++- 3 files changed, 43 insertions(+), 1 deletion(-) diff --git a/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java b/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java index b0052b70..5c65a2af 100644 --- a/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java +++ b/data/src/main/java/one/nem/lacerta/data/impl/LacertaLibraryImpl.java @@ -121,6 +121,19 @@ public class LacertaLibraryImpl implements LacertaLibrary { listItem.setDescription(simpleDateFormat.format(documentEntity.updatedAt)); listItem.setItemId(documentEntity.id); listItem.setHasCombined(documentEntity.isCombineParent); + // タグを取得して関連付ける処理 TODO-rca: わかりにくい + 責任がめちゃくちゃ + めちゃくちゃ重いのでなんとかする + List documentTagEntities = database.toxiDocumentTagDao().findByDocumentId(documentEntity.id); + ArrayList documentTags = new ArrayList<>(); + for (ToxiDocumentTagEntity toxiDocumentTagEntity : documentTagEntities) { + logger.debug("LacertaLibraryImpl", "toxiDocumentTagEntity.tagId: " + toxiDocumentTagEntity.tagId); + TagEntity tagEntity = database.tagDao().findById(toxiDocumentTagEntity.tagId); + if (tagEntity != null) { + logger.debug("LacertaLibraryImpl", "tagEntity.tagName: " + tagEntity.tagName); + documentTags.add(convertTagEntityToDocumentTag(tagEntity)); + } + } + listItem.setTagList(documentTags); + logger.debug("LacertaLibraryImpl", "documentTags.size(): " + documentTags.size()); listItems.add(listItem); } diff --git a/feature/library/src/main/java/one/nem/lacerta/feature/library/LibraryPageFragment.java b/feature/library/src/main/java/one/nem/lacerta/feature/library/LibraryPageFragment.java index 7a37e9f1..158e61e1 100644 --- a/feature/library/src/main/java/one/nem/lacerta/feature/library/LibraryPageFragment.java +++ b/feature/library/src/main/java/one/nem/lacerta/feature/library/LibraryPageFragment.java @@ -21,9 +21,11 @@ import javax.inject.Inject; import dagger.hilt.android.AndroidEntryPoint; import one.nem.lacerta.component.viewer.ViewerMainActivity; +import one.nem.lacerta.data.Document; import one.nem.lacerta.data.LacertaLibrary; import one.nem.lacerta.model.LibraryItemPage; import one.nem.lacerta.model.ListItemType; +import one.nem.lacerta.model.document.tag.DocumentTag; import one.nem.lacerta.utils.FeatureSwitch; import one.nem.lacerta.utils.LacertaLogger; @@ -53,6 +55,9 @@ public class LibraryPageFragment extends Fragment { @Inject LacertaLogger logger; + @Inject + Document document; + ListItemAdapter listItemAdapter; public LibraryPageFragment() { @@ -233,6 +238,9 @@ public class LibraryPageFragment extends Fragment { }); } + private void getTag(String documentId) { //debug + } + /** * Toolbarのサブタイトルを更新 * @param subtitle サブタイトル diff --git a/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java b/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java index 57edf131..63014f09 100644 --- a/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java +++ b/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java @@ -1,14 +1,19 @@ package one.nem.lacerta.feature.library; +import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.google.android.material.chip.Chip; +import com.google.android.material.chip.ChipGroup; + import one.nem.lacerta.model.LibraryItemPage; import one.nem.lacerta.model.ListItem; import one.nem.lacerta.model.ListItemType; @@ -31,7 +36,7 @@ public class ListItemAdapter extends RecyclerView.Adapter { if (listItem.getItemType() == ListItemType.ITEM_TYPE_DOCUMENT) { listener.onDocumentSelected(listItem.getItemId(), listItem.getTitle(), listItem.getHasCombined()); @@ -64,12 +83,14 @@ public class ListItemAdapter extends RecyclerView.Adapter Date: Sun, 28 Jan 2024 23:27:14 +0900 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/one/nem/lacerta/feature/library/ListItemAdapter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java b/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java index 63014f09..023bdb76 100644 --- a/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java +++ b/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java @@ -48,7 +48,7 @@ public class ListItemAdapter extends RecyclerView.Adapter Date: Sun, 28 Jan 2024 23:28:59 +0900 Subject: [PATCH 7/7] =?UTF-8?q?=E3=83=87=E3=83=90=E3=83=83=E3=82=B0?= =?UTF-8?q?=E3=83=AD=E3=82=B0=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/one/nem/lacerta/feature/library/ListItemAdapter.java | 1 - 1 file changed, 1 deletion(-) diff --git a/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java b/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java index 023bdb76..ee310413 100644 --- a/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java +++ b/feature/library/src/main/java/one/nem/lacerta/feature/library/ListItemAdapter.java @@ -58,7 +58,6 @@ public class ListItemAdapter extends RecyclerView.Adapter