diff --git a/app/src/main/java/fr/free/nrw/commons/Media.kt b/app/src/main/java/fr/free/nrw/commons/Media.kt index 293321c271..1222cd8b0e 100644 --- a/app/src/main/java/fr/free/nrw/commons/Media.kt +++ b/app/src/main/java/fr/free/nrw/commons/Media.kt @@ -125,6 +125,19 @@ class Media constructor( categoriesHiddenStatus = categoriesHiddenStatus ) + /** + * Returns Author if it's not null or empty, otherwise + * returns user + * @return Author or User + */ + fun getAuthorOrUser(): String? { + return if (!author.isNullOrEmpty()) { + author + } else{ + user + } + } + /** * Gets media display title * @return Media title diff --git a/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt b/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt index 5dbcc59fda..0198c61a5e 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/category/GridViewAdapter.kt @@ -98,14 +98,9 @@ class GridViewAdapter( */ @SuppressLint("StringFormatInvalid") private fun setUploaderView(item: Media, uploader: TextView) { - if (!item.author.isNullOrEmpty()) { - uploader.visibility = View.VISIBLE - uploader.text = context.getString( - R.string.image_uploaded_by, - item.user - ) - } else { - uploader.visibility = View.GONE - } + uploader.text = context.getString( + R.string.image_uploaded_by, + item.getAuthorOrUser() + ) } } diff --git a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt index d1dbf4509c..32028cfd2a 100644 --- a/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt +++ b/app/src/main/java/fr/free/nrw/commons/contributions/ContributionViewHolder.kt @@ -54,7 +54,7 @@ an upload might take a dozen seconds. */ this.contribution = contribution this.position = position binding.contributionTitle.text = contribution.media.mostRelevantCaption - binding.authorView.text = contribution.media.author + binding.authorView.text = contribution.media.getAuthorOrUser() //Removes flicker of loading image. binding.contributionImage.hierarchy.fadeDuration = 0 diff --git a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt index be0b2bd798..09959d0ef5 100644 --- a/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt +++ b/app/src/main/java/fr/free/nrw/commons/delete/DeleteHelper.kt @@ -111,7 +111,7 @@ class DeleteHelper @Inject constructor( val userPageString = "\n{{subst:idw|${media.filename}}} ~~~~" - val creator = media.author + val creator = media.getAuthorOrUser() ?: throw RuntimeException("Failed to nominate for deletion") return pageEditClient.prependEdit( diff --git a/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt b/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt index de084ba50c..0cfb270a31 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/media/MediaConverter.kt @@ -39,7 +39,7 @@ class MediaConverter metadata.licenseShortName(), metadata.prefixedLicenseUrl, getAuthor(metadata), - getAuthor(metadata), + imageInfo.getUser(), MediaDataExtractorUtil.extractCategoriesFromList(metadata.categories()), metadata.latLng, entity.labels().mapValues { it.value.value() }, diff --git a/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt b/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt index c987b76c29..364b5d3637 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/explore/media/PagedMediaAdapter.kt @@ -52,12 +52,7 @@ class SearchImagesViewHolder( binding.categoryImageView.setOnClickListener { onImageClicked(item.second) } binding.categoryImageTitle.text = media.mostRelevantCaption binding.categoryImageView.setImageURI(media.thumbUrl) - if (media.author?.isNotEmpty() == true) { - binding.categoryImageAuthor.visibility = View.VISIBLE - binding.categoryImageAuthor.text = - containerView.context.getString(R.string.image_uploaded_by, media.user) - } else { - binding.categoryImageAuthor.visibility = View.GONE - } + binding.categoryImageAuthor.text = + containerView.context.getString(R.string.image_uploaded_by, media.getAuthorOrUser()) } } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index b4b4e9c57d..cba582a35a 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -328,7 +328,7 @@ private String getTechInfo(final Media media, final String type) { .append("\n\n"); builder.append("User that you want to report: ") - .append(media.getAuthor()) + .append(media.getUser()) .append("\n\n"); if (sessionManager.getUserName() != null) { @@ -423,7 +423,7 @@ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { // Initialize bookmark object bookmark = new Bookmark( m.getFilename(), - m.getAuthor(), + m.getAuthorOrUser(), BookmarkPicturesContentProvider.uriForName(m.getFilename()) ); updateBookmarkState(menu.findItem(R.id.menu_bookmark_current_image)); diff --git a/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt b/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt index 80cced5c99..2300998108 100644 --- a/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt +++ b/app/src/test/kotlin/fr/free/nrw/commons/delete/DeleteHelperTest.kt @@ -96,7 +96,7 @@ class DeleteHelperTest { ).thenReturn("Media successfully deleted: Test Media Title") val creatorName = "Creator" - whenever(media.author).thenReturn("$creatorName") + whenever(media.getAuthorOrUser()).thenReturn("$creatorName") whenever(media.filename).thenReturn("Test file.jpg") val makeDeletion = deleteHelper.makeDeletion( context, @@ -133,7 +133,7 @@ class DeleteHelperTest { whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn("Creator (page does not exist)") + whenever(media.getAuthorOrUser()).thenReturn("Creator (page does not exist)") deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() } @@ -148,7 +148,7 @@ class DeleteHelperTest { .thenReturn(Observable.just(false)) whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn("Creator (page does not exist)") + whenever(media.getAuthorOrUser()).thenReturn("Creator (page does not exist)") deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() } @@ -163,7 +163,7 @@ class DeleteHelperTest { .thenReturn(Observable.just(true)) whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn("Creator (page does not exist)") + whenever(media.getAuthorOrUser()).thenReturn("Creator (page does not exist)") deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() } @@ -221,7 +221,7 @@ class DeleteHelperTest { whenever(media.displayTitle).thenReturn("Test file") whenever(media.filename).thenReturn("Test file.jpg") - whenever(media.author).thenReturn(null) + whenever(media.getAuthorOrUser()).thenReturn(null) deleteHelper.makeDeletion(context, media, "Test reason")?.blockingGet() }