Skip to content

Commit ea45335

Browse files
vanshikaaroramaskaravivek
authored andcommitted
Copy text to clipboard on Long Click (commons-app#2411)
* Fixed issue commons-app#2405 * Final changes
1 parent 9867143 commit ea45335

File tree

3 files changed

+30
-3
lines changed

3 files changed

+30
-3
lines changed

app/src/main/java/fr/free/nrw/commons/Utils.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package fr.free.nrw.commons;
22

33
import android.content.ActivityNotFoundException;
4+
import android.content.ClipData;
5+
import android.content.ClipboardManager;
46
import android.content.Context;
57
import android.content.Intent;
68
import android.graphics.Bitmap;
@@ -237,5 +239,14 @@ public static <K,V> Map<K,V> arraysToMap(K[] kArray, V[] vArray){
237239
}
238240
return map;
239241
}
242+
/*
243+
*Copies the content to the clipboard
244+
*
245+
*/
246+
public static void copy(String label,String text, Context context){
247+
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
248+
ClipData clip = ClipData.newPlainText(label, text);
249+
clipboard.setPrimaryClip(clip);
250+
}
240251

241252
}

app/src/main/java/fr/free/nrw/commons/media/MediaDetailFragment.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import fr.free.nrw.commons.MediaDataExtractor;
4545
import fr.free.nrw.commons.MediaWikiImageView;
4646
import fr.free.nrw.commons.R;
47+
import fr.free.nrw.commons.Utils;
4748
import fr.free.nrw.commons.auth.SessionManager;
4849
import fr.free.nrw.commons.category.CategoryDetailsActivity;
4950
import fr.free.nrw.commons.contributions.ContributionsFragment;
@@ -385,9 +386,7 @@ public void onMediaDetailCoordinatesClicked(){
385386
@OnClick(R.id.copyWikicode)
386387
public void onCopyWikicodeClicked(){
387388
String data = "[[" + media.getFilename() + "|thumb|" + media.getDescription() + "]]";
388-
ClipboardManager clipboard = (ClipboardManager) getContext().getApplicationContext().getSystemService(CLIPBOARD_SERVICE);
389-
clipboard.setPrimaryClip(ClipData.newPlainText("wikiCode", data));
390-
389+
Utils.copy("wikiCode",data,getContext());
391390
Timber.d("Generated wikidata copy code: %s", data);
392391

393392
Toast.makeText(getContext(), getString(R.string.wikicode_copied), Toast.LENGTH_SHORT).show();

app/src/main/java/fr/free/nrw/commons/nearby/NearbyMapFragment.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import android.animation.ObjectAnimator;
44
import android.animation.TypeEvaluator;
55
import android.animation.ValueAnimator;
6+
import android.content.ClipData;
7+
import android.content.ClipboardManager;
8+
import android.content.Context;
69
import android.content.Intent;
710
import android.graphics.Bitmap;
811
import android.graphics.Color;
@@ -27,6 +30,7 @@
2730
import android.widget.LinearLayout;
2831
import android.widget.ProgressBar;
2932
import android.widget.TextView;
33+
import android.widget.Toast;
3034

3135
import com.google.gson.Gson;
3236
import com.google.gson.reflect.TypeToken;
@@ -489,6 +493,19 @@ public void onSlide(@NonNull View bottomSheet, float slideOffset) {
489493
commonsButtonText.setVisibility(View.GONE);
490494
directionsButtonText.setVisibility(View.GONE);
491495
}
496+
title.setOnLongClickListener(view -> {
497+
Utils.copy("place",title.getText().toString(),getContext());
498+
Toast.makeText(getContext(),"Text copied to clipboard",Toast.LENGTH_SHORT).show();
499+
return true;
500+
}
501+
);
502+
title.setOnClickListener(view -> {
503+
if (bottomSheetDetailsBehavior.getState() == BottomSheetBehavior.STATE_COLLAPSED) {
504+
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_EXPANDED);
505+
} else {
506+
bottomSheetDetailsBehavior.setState(BottomSheetBehavior.STATE_COLLAPSED);
507+
}
508+
});
492509
}
493510

494511
/**

0 commit comments

Comments
 (0)