0
0
mirror of https://github.com/TrianguloY/UrlChecker.git synced 2024-09-19 20:02:16 +02:00

Extract copy to clipboard

This commit is contained in:
Pablo Ortigosa 2022-10-09 16:42:40 +01:00
parent 8fff9e8c4d
commit 9c597d3497
4 changed files with 32 additions and 43 deletions

View File

@ -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));
}
}
}

View File

@ -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
*/

View File

@ -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();
}
}

View File

@ -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