|
3 | 3 | import android.annotation.SuppressLint;
|
4 | 4 | import android.app.Activity;
|
5 | 5 | import android.content.ActivityNotFoundException;
|
| 6 | +import android.content.ClipData; |
| 7 | +import android.content.ClipboardManager; |
6 | 8 | import android.content.Context;
|
7 | 9 | import android.content.Intent;
|
8 | 10 | import android.content.res.ColorStateList;
|
|
20 | 22 | import android.os.Bundle;
|
21 | 23 | import android.os.Handler;
|
22 | 24 | import android.os.Looper;
|
| 25 | +import android.os.VibrationEffect; |
| 26 | +import android.os.Vibrator; |
23 | 27 | import android.provider.OpenableColumns;
|
24 | 28 | import android.text.SpannableStringBuilder;
|
25 | 29 | import android.text.Spanned;
|
@@ -587,4 +591,15 @@ public void onError(ErrorResponse error){
|
587 | 591 | }
|
588 | 592 | launchWebBrowser(context, url);
|
589 | 593 | }
|
| 594 | + |
| 595 | + public static void copyText(Context context, String text) { |
| 596 | + context.getSystemService(ClipboardManager.class).setPrimaryClip(ClipData.newPlainText(null, text)); |
| 597 | + // fork: always show toast because MIUI doesn't play along |
| 598 | + // if(Build.VERSION.SDK_INT<Build.VERSION_CODES.TIRAMISU){ // Android 13+ SystemUI shows its own thing when you put things into the clipboard |
| 599 | + Toast.makeText(context, R.string.text_copied, Toast.LENGTH_SHORT).show(); |
| 600 | + // } |
| 601 | + Vibrator vibrator = (Vibrator) context.getSystemService(Context.VIBRATOR_SERVICE); |
| 602 | + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) vibrator.vibrate(VibrationEffect.createOneShot(50, VibrationEffect.DEFAULT_AMPLITUDE)); |
| 603 | + else vibrator.vibrate(50); |
| 604 | + } |
590 | 605 | }
|
0 commit comments