Converted the copy-to-clipboard utility to kotlin

This commit is contained in:
Paul Hawke 2025-07-02 16:44:57 -05:00
parent 238956788d
commit 78c27f9b48
6 changed files with 31 additions and 28 deletions

View file

@ -16,6 +16,7 @@
<option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" /> <option name="NAMES_COUNT_TO_USE_IMPORT_ON_DEMAND" value="999" />
<option name="IMPORT_LAYOUT_TABLE"> <option name="IMPORT_LAYOUT_TABLE">
<value> <value>
<package name="" withSubpackages="true" static="false" module="true" />
<package name="" withSubpackages="true" static="true" /> <package name="" withSubpackages="true" static="true" />
<emptyLine /> <emptyLine />
<package name="" withSubpackages="true" static="false" /> <package name="" withSubpackages="true" static="false" />

View file

@ -37,11 +37,11 @@ import fr.free.nrw.commons.di.NetworkingModule
import fr.free.nrw.commons.filepicker.FilePicker import fr.free.nrw.commons.filepicker.FilePicker
import fr.free.nrw.commons.media.MediaClient import fr.free.nrw.commons.media.MediaClient
import fr.free.nrw.commons.profile.ProfileActivity import fr.free.nrw.commons.profile.ProfileActivity
import fr.free.nrw.commons.utils.ClipboardUtils
import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog import fr.free.nrw.commons.utils.DialogUtil.showAlertDialog
import fr.free.nrw.commons.utils.SystemThemeUtils import fr.free.nrw.commons.utils.SystemThemeUtils
import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.UrlUtils
import fr.free.nrw.commons.utils.ViewUtil.showShortToast import fr.free.nrw.commons.utils.ViewUtil.showShortToast
import fr.free.nrw.commons.utils.copyToClipboard
import fr.free.nrw.commons.wikidata.model.WikiSite import fr.free.nrw.commons.wikidata.model.WikiSite
import org.apache.commons.lang3.StringUtils import org.apache.commons.lang3.StringUtils
import javax.inject.Inject import javax.inject.Inject
@ -528,14 +528,13 @@ class ContributionsListFragment : CommonsDaggerSupportFragment(), ContributionsL
*/ */
override fun onConfirmClicked(contribution: Contribution?, copyWikicode: Boolean) { override fun onConfirmClicked(contribution: Contribution?, copyWikicode: Boolean) {
if (copyWikicode) { if (copyWikicode) {
val wikicode = contribution!!.media.wikiCode requireContext().copyToClipboard("wikicode", contribution!!.media.wikiCode)
ClipboardUtils.copy("wikicode", wikicode, context)
} }
val url = val url =
languageWikipediaSite!!.mobileUrl() + "/wiki/" + (contribution!!.wikidataPlace languageWikipediaSite!!.mobileUrl() + "/wiki/" + (contribution!!.wikidataPlace
?.getWikipediaPageTitle()) ?.getWikipediaPageTitle())
UrlUtils.handleWebUrl(context, Uri.parse(url)) UrlUtils.handleWebUrl(requireContext(), Uri.parse(url))
} }
fun getContributionStateAt(position: Int): Int { fun getContributionStateAt(position: Int): Int {

View file

@ -122,6 +122,7 @@ import fr.free.nrw.commons.utils.UrlUtils
import fr.free.nrw.commons.utils.ViewUtil import fr.free.nrw.commons.utils.ViewUtil
import fr.free.nrw.commons.utils.ViewUtil.showShortToast import fr.free.nrw.commons.utils.ViewUtil.showShortToast
import fr.free.nrw.commons.utils.ViewUtilWrapper import fr.free.nrw.commons.utils.ViewUtilWrapper
import fr.free.nrw.commons.utils.copyToClipboard
import fr.free.nrw.commons.utils.setUnderlinedText import fr.free.nrw.commons.utils.setUnderlinedText
import fr.free.nrw.commons.wikidata.mwapi.MwQueryPage.Revision import fr.free.nrw.commons.wikidata.mwapi.MwQueryPage.Revision
import io.reactivex.Observable import io.reactivex.Observable
@ -927,10 +928,10 @@ class MediaDetailFragment : CommonsDaggerSupportFragment(), CategoryEditHelper.C
private fun onCopyWikicodeClicked() { private fun onCopyWikicodeClicked() {
val data: String = val data: String =
"[[" + media!!.filename + "|thumb|" + media!!.fallbackDescription + "]]" "[[" + media!!.filename + "|thumb|" + media!!.fallbackDescription + "]]"
ClipboardUtils.copy("wikiCode", data, context) requireContext().copyToClipboard("wikiCode", data)
Timber.d("Generated wikidata copy code: %s", data) Timber.d("Generated wikidata copy code: %s", data)
Toast.makeText(context, getString(R.string.wikicode_copied), Toast.LENGTH_SHORT) Toast.makeText(requireContext(), getString(R.string.wikicode_copied), Toast.LENGTH_SHORT)
.show() .show()
} }

View file

@ -106,6 +106,7 @@ import fr.free.nrw.commons.utils.NetworkUtils.isInternetConnectionEstablished
import fr.free.nrw.commons.utils.SystemThemeUtils import fr.free.nrw.commons.utils.SystemThemeUtils
import fr.free.nrw.commons.utils.UrlUtils import fr.free.nrw.commons.utils.UrlUtils
import fr.free.nrw.commons.utils.ViewUtil.showLongToast import fr.free.nrw.commons.utils.ViewUtil.showLongToast
import fr.free.nrw.commons.utils.copyToClipboard
import fr.free.nrw.commons.wikidata.WikidataConstants import fr.free.nrw.commons.wikidata.WikidataConstants
import fr.free.nrw.commons.wikidata.WikidataEditListener import fr.free.nrw.commons.wikidata.WikidataEditListener
import fr.free.nrw.commons.wikidata.WikidataEditListener.WikidataP18EditListener import fr.free.nrw.commons.wikidata.WikidataEditListener.WikidataP18EditListener
@ -1017,11 +1018,10 @@ class NearbyParentFragment : CommonsDaggerSupportFragment(),
*/ */
private fun addActionToTitle() { private fun addActionToTitle() {
binding!!.bottomSheetDetails.title.setOnLongClickListener { view -> binding!!.bottomSheetDetails.title.setOnLongClickListener { view ->
ClipboardUtils.copy( requireContext().copyToClipboard(
"place", binding!!.bottomSheetDetails.title.text.toString(), "place", binding!!.bottomSheetDetails.title.text.toString()
context
) )
Toast.makeText(context, fr.free.nrw.commons.R.string.text_copy, Toast.LENGTH_SHORT) Toast.makeText(requireContext(), fr.free.nrw.commons.R.string.text_copy, Toast.LENGTH_SHORT)
.show() .show()
true true
} }

View file

@ -1,18 +0,0 @@
package fr.free.nrw.commons.utils;
import android.content.ClipData;
import android.content.ClipboardManager;
import android.content.Context;
public final class ClipboardUtils {
/*
*Copies the content to the clipboard
*
*/
public static void copy(String label,String text, Context context){
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
ClipData clip = ClipData.newPlainText(label, text);
clipboard.setPrimaryClip(clip);
}
}

View file

@ -0,0 +1,20 @@
package fr.free.nrw.commons.utils
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context
import android.content.Context.CLIPBOARD_SERVICE
object ClipboardUtils {
// Convenience for Java usages - remove when they are converted.
@JvmStatic
fun copy(label: String?, text: String?, context: Context) {
context.copyToClipboard(label, text)
}
}
fun Context.copyToClipboard(label: String?, text: String?) {
with(getSystemService(CLIPBOARD_SERVICE) as ClipboardManager) {
setPrimaryClip(ClipData.newPlainText(label, text))
}
}