From 9c597d3497ff743725bb6b8a5800bb2be91bd184 Mon Sep 17 00:00:00 2001 From: Pablo Ortigosa <55493443+PabloOQ@users.noreply.github.com> Date: Sun, 9 Oct 2022 16:42:40 +0100 Subject: [PATCH] Extract copy to clipboard --- .../urlchecker/modules/list/DebugModule.java | 28 ++++--------------- .../urlchecker/modules/list/OpenModule.java | 21 ++------------ .../urlchecker/utilities/AndroidUtils.java | 24 ++++++++++++++++ build.gradle | 2 +- 4 files changed, 32 insertions(+), 43 deletions(-) diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/list/DebugModule.java b/app/src/main/java/com/trianguloy/urlchecker/modules/list/DebugModule.java index 48f2209..5689cb8 100644 --- a/app/src/main/java/com/trianguloy/urlchecker/modules/list/DebugModule.java +++ b/app/src/main/java/com/trianguloy/urlchecker/modules/list/DebugModule.java @@ -1,13 +1,8 @@ package com.trianguloy.urlchecker.modules.list; -import android.content.ClipData; -import android.content.ClipboardManager; -import android.content.Context; -import android.os.Build; import android.view.View; import android.widget.CheckBox; import android.widget.TextView; -import android.widget.Toast; import com.trianguloy.urlchecker.R; import com.trianguloy.urlchecker.activities.ConfigActivity; @@ -17,6 +12,7 @@ import com.trianguloy.urlchecker.modules.AModuleData; import com.trianguloy.urlchecker.modules.AModuleDialog; import com.trianguloy.urlchecker.services.CustomTabs; import com.trianguloy.urlchecker.url.UrlData; +import com.trianguloy.urlchecker.utilities.AndroidUtils; import com.trianguloy.urlchecker.utilities.GenericPref; /** @@ -89,10 +85,10 @@ class DebugDialog extends AModuleDialog implements View.OnClickListener ,View.On public void onClick(View v) { switch (v.getId()) { case R.id.intent: - copyToClipboard(R.string.mD_copyIntent, txt_intent.getText().toString()); + AndroidUtils.copyToClipboard(getActivity(), R.string.mD_copyIntent, txt_intent.getText().toString()); break; case R.id.urlData: - copyToClipboard(R.string.mD_copyUrlData, txt_urlData.getText().toString()); + AndroidUtils.copyToClipboard(getActivity(), R.string.mD_copyUrlData, txt_urlData.getText().toString()); break; } } @@ -102,27 +98,13 @@ class DebugDialog extends AModuleDialog implements View.OnClickListener ,View.On switch (v.getId()) { case R.id.intent: case R.id.urlData: - copyToClipboard(R.string.mD_copyAll, txt_intent.getText() + "\n" + txt_urlData.getText()); + AndroidUtils.copyToClipboard(getActivity(), R.string.mD_copyAll, txt_intent.getText() + "\n" + txt_urlData.getText()); break; default: return false; } return true; } - - /** - * Copy to the clipboard, retrieves string from id - */ - private void copyToClipboard(int id, String text) { - ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); - if (clipboard == null) return; - - clipboard.setPrimaryClip(ClipData.newPlainText("", text)); - - // show toast to notify it was copied (except on Android 13+, where the device shows a popup itself) - if (Build.VERSION.SDK_INT < /*Build.VERSION_CODES.TIRAMISU*/33) - Toast.makeText(getActivity(), id, Toast.LENGTH_LONG).show(); - } } class DebugConfig extends AModuleConfig { @@ -150,4 +132,4 @@ class DebugConfig extends AModuleConfig { chk_ctabs.setChecked(show_toasts.get()); chk_ctabs.setOnCheckedChangeListener((buttonView, isChecked) -> show_toasts.set(isChecked)); } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java b/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java index b0c43da..263fbd4 100644 --- a/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java +++ b/app/src/main/java/com/trianguloy/urlchecker/modules/list/OpenModule.java @@ -1,11 +1,7 @@ package com.trianguloy.urlchecker.modules.list; -import android.content.ClipData; -import android.content.ClipboardManager; -import android.content.Context; import android.content.Intent; import android.net.Uri; -import android.os.Build; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; @@ -24,6 +20,7 @@ import com.trianguloy.urlchecker.modules.AModuleDialog; import com.trianguloy.urlchecker.modules.companions.CTabs; import com.trianguloy.urlchecker.modules.companions.LastOpened; import com.trianguloy.urlchecker.url.UrlData; +import com.trianguloy.urlchecker.utilities.AndroidUtils; import com.trianguloy.urlchecker.utilities.GenericPref; import com.trianguloy.urlchecker.utilities.PackageUtilities; import com.trianguloy.urlchecker.utilities.UrlUtilities; @@ -190,7 +187,7 @@ class OpenDialog extends AModuleDialog implements View.OnClickListener, PopupMen Toast.makeText(getActivity(), R.string.mOpen_tabsDesc, Toast.LENGTH_SHORT).show(); break; case R.id.share: - copyToClipboard(); + AndroidUtils.copyToClipboard(getActivity(), R.string.mOpen_clipboard, getUrl()); break; default: return false; @@ -317,20 +314,6 @@ class OpenDialog extends AModuleDialog implements View.OnClickListener, PopupMen } } - /** - * Copy the url to the clipboard - */ - private void copyToClipboard() { - ClipboardManager clipboard = (ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); - if (clipboard == null) return; - - clipboard.setPrimaryClip(ClipData.newPlainText("", getUrl())); - - // show toast to notify it was copied (except on Android 13+, where the device shows a popup itself) - if (Build.VERSION.SDK_INT < /*Build.VERSION_CODES.TIRAMISU*/33) - Toast.makeText(getActivity(), R.string.mOpen_clipboard, Toast.LENGTH_LONG).show(); - } - /** * Toggle the custom tabs state */ diff --git a/app/src/main/java/com/trianguloy/urlchecker/utilities/AndroidUtils.java b/app/src/main/java/com/trianguloy/urlchecker/utilities/AndroidUtils.java index 830e7dc..88c6eef 100644 --- a/app/src/main/java/com/trianguloy/urlchecker/utilities/AndroidUtils.java +++ b/app/src/main/java/com/trianguloy/urlchecker/utilities/AndroidUtils.java @@ -1,6 +1,8 @@ package com.trianguloy.urlchecker.utilities; import android.app.Activity; +import android.content.ClipData; +import android.content.ClipboardManager; import android.content.Context; import android.content.res.Configuration; import android.graphics.PorterDuff; @@ -11,6 +13,7 @@ import android.text.style.ClickableSpan; import android.util.Log; import android.view.View; import android.widget.TextView; +import android.widget.Toast; import com.trianguloy.urlchecker.BuildConfig; import com.trianguloy.urlchecker.R; @@ -109,4 +112,25 @@ public class AndroidUtils { : cntx.getResources().getConfiguration().locale ).format(new Date(millis)); } + + /** + * Copy to the clipboard, retrieves string from id + */ + public static void copyToClipboard(Activity activity, int id, String text) { + copyToClipboard(activity, activity.getString(id), text); + } + + /** + * Copy to the clipboard + */ + public static void copyToClipboard(Activity activity, String toast, String text) { + ClipboardManager clipboard = (ClipboardManager) activity.getSystemService(Context.CLIPBOARD_SERVICE); + if (clipboard == null) return; + + clipboard.setPrimaryClip(ClipData.newPlainText("", text)); + + // show toast to notify it was copied (except on Android 13+, where the device shows a popup itself) + if (Build.VERSION.SDK_INT < /*Build.VERSION_CODES.TIRAMISU*/33) + Toast.makeText(activity, toast, Toast.LENGTH_LONG).show(); + } } diff --git a/build.gradle b/build.gradle index 53e995e..f1ac6ef 100644 --- a/build.gradle +++ b/build.gradle @@ -7,7 +7,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:7.3.0' + classpath 'com.android.tools.build:gradle:7.2.2' // NOTE: Do not place your application dependencies here; they belong