From 70d5b798b26ec350586cf443e25ebaf4c0950460 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 13 Feb 2020 16:02:12 -0500 Subject: [PATCH] Add some developer utils. --- .../securesms/RecipientPreferenceActivity.java | 9 +++++++++ .../org/thoughtcrime/securesms/util/ServiceUtil.java | 6 ++++++ .../main/java/org/thoughtcrime/securesms/util/Util.java | 4 ++++ 3 files changed, 19 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java index 97c027722..1ce0440fa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/RecipientPreferenceActivity.java @@ -78,8 +78,10 @@ import org.thoughtcrime.securesms.util.DynamicLanguage; import org.thoughtcrime.securesms.util.DynamicTheme; import org.thoughtcrime.securesms.util.FeatureFlags; import org.thoughtcrime.securesms.util.IdentityUtil; +import org.thoughtcrime.securesms.util.ServiceUtil; import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.ThemeUtil; +import org.thoughtcrime.securesms.util.Util; import org.thoughtcrime.securesms.util.ViewUtil; import org.thoughtcrime.securesms.util.concurrent.ListenableFuture; import org.thoughtcrime.securesms.util.concurrent.SignalExecutors; @@ -235,6 +237,13 @@ public class RecipientPreferenceActivity extends PassphraseRequiredActionBarActi this.avatar.setBackgroundColor(recipient.getColor().toActionBarColor(this)); this.toolbarLayout.setTitle(recipient.toShortString(this)); this.toolbarLayout.setContentScrimColor(recipient.getColor().toActionBarColor(this)); + if (recipient.getUuid().isPresent()) { + toolbarLayout.setOnLongClickListener(v -> { + Util.copyToClipboard(this, recipient.getUuid().get().toString()); + ServiceUtil.getVibrator(this).vibrate(200); + return true; + }); + } } @Override diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/ServiceUtil.java b/app/src/main/java/org/thoughtcrime/securesms/util/ServiceUtil.java index 536fe5186..a7ed94afa 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/ServiceUtil.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/ServiceUtil.java @@ -5,6 +5,8 @@ import android.app.ActivityManager; import android.app.AlarmManager; import android.app.NotificationManager; import android.app.job.JobScheduler; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.hardware.display.DisplayManager; import android.location.LocationManager; @@ -69,6 +71,10 @@ public class ServiceUtil { return (AccessibilityManager) context.getSystemService(Context.ACCESSIBILITY_SERVICE); } + public static ClipboardManager getClipboardManager(@NonNull Context context) { + return (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE); + } + @RequiresApi(26) public static JobScheduler getJobScheduler(Context context) { return (JobScheduler) context.getSystemService(JobScheduler.class); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/Util.java b/app/src/main/java/org/thoughtcrime/securesms/util/Util.java index 79988edea..69f80a9c2 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/Util.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/Util.java @@ -569,6 +569,10 @@ public class Util { } } + public static void copyToClipboard(@NonNull Context context, @NonNull String text) { + ServiceUtil.getClipboardManager(context).setPrimaryClip(ClipData.newPlainText("text", text)); + } + private static Handler getHandler() { if (handler == null) { synchronized (Util.class) {