From 3c0e148afb72683947ebb3edbe173086bbea5dc2 Mon Sep 17 00:00:00 2001 From: Khushbu Date: Sun, 13 Apr 2025 21:00:08 +0530 Subject: [PATCH 1/7] Exclude past locations (P585) from Nearby query --- app/src/main/java/fr/free/nrw/commons/nearby/Place.java | 3 ++- .../java/fr/free/nrw/commons/nearby/model/NearbyResultItem.kt | 3 +++ app/src/main/resources/queries/query_for_item.rq | 2 ++ 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java index 402399a244..cff2ed4de9 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/Place.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/Place.java @@ -154,7 +154,8 @@ public static Place from(NearbyResultItem item) { item.getPic().getValue(), // Checking if the place exists or not (item.getDestroyed().getValue() == "") && (item.getEndTime().getValue() == "") - && (item.getDateOfOfficialClosure().getValue() == ""), + && (item.getDateOfOfficialClosure().getValue() == "") + && (item.getPointInTime().getValue()==""), entityId); } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/model/NearbyResultItem.kt b/app/src/main/java/fr/free/nrw/commons/nearby/model/NearbyResultItem.kt index a6227a1456..c39d8901d5 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/model/NearbyResultItem.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/model/NearbyResultItem.kt @@ -19,6 +19,7 @@ class NearbyResultItem( @field:SerializedName("endTime") private val endTime: ResultTuple?, @field:SerializedName("monument") private val monument: ResultTuple?, @field:SerializedName("dateOfOfficialClosure") private val dateOfOfficialClosure: ResultTuple?, + @field:SerializedName("pointInTime") private val pointInTime: ResultTuple?, ) { fun getItem(): ResultTuple = item ?: ResultTuple() @@ -52,4 +53,6 @@ class NearbyResultItem( fun getMonument(): ResultTuple? = monument + fun getPointInTime(): ResultTuple = pointInTime ?: ResultTuple() + } diff --git a/app/src/main/resources/queries/query_for_item.rq b/app/src/main/resources/queries/query_for_item.rq index edcb29ddfd..2957b9b5b5 100644 --- a/app/src/main/resources/queries/query_for_item.rq +++ b/app/src/main/resources/queries/query_for_item.rq @@ -11,6 +11,7 @@ SELECT (SAMPLE(?commonsArticle) AS ?commonsArticle) (SAMPLE(?commonsCategory) AS ?commonsCategory) (SAMPLE(?dateOfOfficialClosure) AS ?dateOfOfficialClosure) + (SAMPLE(?pointInTime) AS ?pointInTime) WHERE { SERVICE { values ?item { @@ -47,6 +48,7 @@ WHERE { OPTIONAL {?item wdt:P576 ?destroyed} OPTIONAL {?item wdt:P582 ?endTime} OPTIONAL {?item wdt:P3999 ?dateOfOfficialClosure} + OPTIONAL {?item wdt:P585 ?pointInTime} # Get Commons category OPTIONAL {?item wdt:P373 ?commonsCategory} From cd952d4d187cbdc75ffb1b64989345fff91ab18d Mon Sep 17 00:00:00 2001 From: Khushbu Date: Mon, 14 Apr 2025 18:38:08 +0530 Subject: [PATCH 2/7] "Send" button text should be white --- app/src/main/res/layout/activity_wikidata_feedback.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/activity_wikidata_feedback.xml b/app/src/main/res/layout/activity_wikidata_feedback.xml index 5f6647efe8..52034b3ac0 100644 --- a/app/src/main/res/layout/activity_wikidata_feedback.xml +++ b/app/src/main/res/layout/activity_wikidata_feedback.xml @@ -102,6 +102,7 @@ android:layout_marginEnd="8dp" android:text="SEND" android:visibility="visible" + android:textColor="@color/white" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="@+id/textHeader" app:layout_constraintHorizontal_bias="1.0" From a6f499a92002557fe7b693e48ec13f87ba981e02 Mon Sep 17 00:00:00 2001 From: Khushbu Date: Sat, 19 Apr 2025 21:35:32 +0530 Subject: [PATCH 3/7] Custom picker: logic --- .../customselector/ui/adapter/ImageAdapter.kt | 34 ++++++++++++------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt index abb2dc84a5..8d48e063b6 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt @@ -230,7 +230,13 @@ class ImageAdapter( } holder.itemView.setOnClickListener { - onThumbnailClicked(position, holder) + // pick the exact Image you displayed + val clicked = if (showAlreadyActionedImages) { + images[position] + } else { + ArrayList(actionableImagesMap.values)[position] + } + onThumbnailClicked(clicked, position, holder) } // launch media preview on long click. @@ -294,6 +300,7 @@ class ImageAdapter( * Handles click on thumbnail */ private fun onThumbnailClicked( + image: Image, position: Int, holder: ImageViewHolder, ) { @@ -306,10 +313,10 @@ class ImageAdapter( // added inside map if (!switchState) { if (actionableImagesMap.size > position) { - selectOrRemoveImage(holder, position) + selectOrRemoveImage(image,holder, position) } } else { - selectOrRemoveImage(holder, position) + selectOrRemoveImage(image,holder, position) } } @@ -317,6 +324,7 @@ class ImageAdapter( * Handle click event on an image, update counter on images. */ private fun selectOrRemoveImage( + image:Image, holder: ImageViewHolder, position: Int, ) { @@ -327,15 +335,15 @@ class ImageAdapter( // Getting clicked index from all images index when show_already_actioned_images // switch is on - val clickedIndex: Int = - if (showAlreadyActionedImages) { - ImageHelper.getIndex(selectedImages, images[position]) - - // Getting clicked index from actionable images when show_already_actioned_images - // switch is off - } else { - ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position]) - } + val clickedIndex: Int =ImageHelper.getIndex(selectedImages, image) +// if (showAlreadyActionedImages) { +// ImageHelper.getIndex(selectedImages, images[position]) +// +// // Getting clicked index from actionable images when show_already_actioned_images +// // switch is off +// } else { +// ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position]) +// } if (clickedIndex != -1) { selectedImages.removeAt(clickedIndex) @@ -344,7 +352,7 @@ class ImageAdapter( } notifyItemChanged(position, ImageUnselected()) } else { - val image = images[position] +// val image = images[position] scope.launch(ioDispatcher) { val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher) withContext(Dispatchers.Main) { From abf1c76b04ab83c1ec52e5d08d8220bec763e51d Mon Sep 17 00:00:00 2001 From: Khushbu Date: Mon, 21 Apr 2025 03:53:20 +0530 Subject: [PATCH 4/7] Revert back changes --- .../customselector/ui/adapter/ImageAdapter.kt | 42 ++++++++----------- 1 file changed, 17 insertions(+), 25 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt index 8d48e063b6..20a2fe70a0 100644 --- a/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/customselector/ui/adapter/ImageAdapter.kt @@ -230,13 +230,7 @@ class ImageAdapter( } holder.itemView.setOnClickListener { - // pick the exact Image you displayed - val clicked = if (showAlreadyActionedImages) { - images[position] - } else { - ArrayList(actionableImagesMap.values)[position] - } - onThumbnailClicked(clicked, position, holder) + onThumbnailClicked(position, holder) } // launch media preview on long click. @@ -300,7 +294,6 @@ class ImageAdapter( * Handles click on thumbnail */ private fun onThumbnailClicked( - image: Image, position: Int, holder: ImageViewHolder, ) { @@ -313,10 +306,10 @@ class ImageAdapter( // added inside map if (!switchState) { if (actionableImagesMap.size > position) { - selectOrRemoveImage(image,holder, position) + selectOrRemoveImage(holder, position) } } else { - selectOrRemoveImage(image,holder, position) + selectOrRemoveImage(holder, position) } } @@ -324,7 +317,6 @@ class ImageAdapter( * Handle click event on an image, update counter on images. */ private fun selectOrRemoveImage( - image:Image, holder: ImageViewHolder, position: Int, ) { @@ -335,15 +327,15 @@ class ImageAdapter( // Getting clicked index from all images index when show_already_actioned_images // switch is on - val clickedIndex: Int =ImageHelper.getIndex(selectedImages, image) -// if (showAlreadyActionedImages) { -// ImageHelper.getIndex(selectedImages, images[position]) -// -// // Getting clicked index from actionable images when show_already_actioned_images -// // switch is off -// } else { -// ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position]) -// } + val clickedIndex: Int = + if (showAlreadyActionedImages) { + ImageHelper.getIndex(selectedImages, images[position]) + + // Getting clicked index from actionable images when show_already_actioned_images + // switch is off + } else { + ImageHelper.getIndex(selectedImages, ArrayList(actionableImagesMap.values)[position]) + } if (clickedIndex != -1) { selectedImages.removeAt(clickedIndex) @@ -352,16 +344,16 @@ class ImageAdapter( } notifyItemChanged(position, ImageUnselected()) } else { -// val image = images[position] + val image = images[position] scope.launch(ioDispatcher) { val imageSHA1 = imageLoader.getSHA1(image, defaultDispatcher) withContext(Dispatchers.Main) { - if (holder.isItemUploaded()) { - Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show() + if (holder.isItemUploaded()) { + Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show() return@withContext } - if (imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null) { + if (imageSHA1.isNotEmpty() && imageLoader.getFromUploaded(imageSHA1) != null) { holder.itemUploaded() Toast.makeText(context, R.string.custom_selector_already_uploaded_image_text, Toast.LENGTH_SHORT).show() return@withContext @@ -377,7 +369,7 @@ class ImageAdapter( selectedImages.add(image) notifyItemChanged(position, ImageSelectedOrUpdated()) - imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload) + imageSelectListener.onSelectedImagesChanged(selectedImages, numberOfSelectedImagesMarkedAsNotForUpload) } } } From efdff5e9c5ec74467588b1e112750ccbd4cf3014 Mon Sep 17 00:00:00 2001 From: Khushbu Date: Mon, 21 Apr 2025 06:28:25 +0530 Subject: [PATCH 5/7] Enhancement :- Explore Map information --- .../nrw/commons/explore/map/ExploreMapFragment.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java index 60758ac201..af39902359 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java @@ -717,8 +717,17 @@ private void addMarkerToMap(BaseMarker nearbyBaseMarker) { authorUser = Html.fromHtml(authorUser, Html.FROM_HTML_MODE_LEGACY).toString(); } - OverlayItem item = new OverlayItem(nearbyBaseMarker.getPlace().name, - authorUser, point); + String title = nearbyBaseMarker.getPlace().name; + if (title.startsWith("File:")) { + title = title.substring(5); + } + title = title.replaceAll("(?i)\\.(jpg|jpeg|png|svg)$", ""); + title = title.replace("_", " "); + if (title.length() >43) { + title = title.substring(0, 40) + "..."; + } + + OverlayItem item = new OverlayItem(title, authorUser, point); item.setMarker(d); items.add(item); ItemizedOverlayWithFocus overlay = new ItemizedOverlayWithFocus(items, From 1b67b8643b8237c9d7e20a55723fad44ad8018b8 Mon Sep 17 00:00:00 2001 From: Khushbu Date: Mon, 21 Apr 2025 07:11:32 +0530 Subject: [PATCH 6/7] Enhancement :- Explore Map information --- .../fr/free/nrw/commons/explore/map/ExploreMapFragment.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java index af39902359..0f1f368849 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java @@ -718,11 +718,14 @@ private void addMarkerToMap(BaseMarker nearbyBaseMarker) { } String title = nearbyBaseMarker.getPlace().name; + // Remove "File:" if present at start if (title.startsWith("File:")) { title = title.substring(5); } + // Remove extensions like .jpg, .jpeg, .png, .svg (case insensitive) title = title.replaceAll("(?i)\\.(jpg|jpeg|png|svg)$", ""); title = title.replace("_", " "); + //Truncate if too long because it doesn't fit the screen if (title.length() >43) { title = title.substring(0, 40) + "..."; } From b8b9359d4b6c03c34d7e00f72a8a366eff12a2fc Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Mon, 21 Apr 2025 10:59:54 +0900 Subject: [PATCH 7/7] Style --- .../fr/free/nrw/commons/explore/map/ExploreMapFragment.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java index 0f1f368849..a222a98ac7 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/map/ExploreMapFragment.java @@ -726,8 +726,8 @@ private void addMarkerToMap(BaseMarker nearbyBaseMarker) { title = title.replaceAll("(?i)\\.(jpg|jpeg|png|svg)$", ""); title = title.replace("_", " "); //Truncate if too long because it doesn't fit the screen - if (title.length() >43) { - title = title.substring(0, 40) + "..."; + if (title.length() > 43) { + title = title.substring(0, 40) + "…"; } OverlayItem item = new OverlayItem(title, authorUser, point);