Skip to content

Commit 951a5b4

Browse files
committed
handle rapid start of activity
1 parent 4628811 commit 951a5b4

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

app/src/main/java/io/github/ratul/topactivity/App.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,15 @@
3434

3535
public class App extends Application {
3636
private static App instance;
37+
private ClipboardManager clipboardManager;
3738
private SharedPreferences sharedPreferences;
3839
private NotificationManagerCompat notificationManager;
3940

4041
@Override
4142
public void onCreate() {
4243
super.onCreate();
4344
instance = this;
45+
clipboardManager = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
4446
sharedPreferences = getSharedPreferences(getPackageName(), 0);
4547
notificationManager = NotificationManagerCompat.from(this);
4648
createNotificationChannel(notificationManager);
@@ -54,15 +56,18 @@ public NotificationManagerCompat getNotificationManager() {
5456
return notificationManager;
5557
}
5658

59+
public ClipboardManager getClipboardManager() {
60+
return clipboardManager;
61+
}
62+
5763
public static App getInstance() {
5864
return instance;
5965
}
6066

6167
public static void copyString(Context context, String str, String msg) {
6268
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
63-
ClipboardManager clipboard = (ClipboardManager) context.getSystemService(Context.CLIPBOARD_SERVICE);
64-
ClipData clip = ClipData.newPlainText(context.getString(R.string.app_name), str);
65-
clipboard.setPrimaryClip(clip);
69+
ClipData clip = ClipData.newPlainText("Current Activity", str);
70+
getInstance().getClipboardManager().setPrimaryClip(clip);
6671
} else {
6772
Intent copyActivity = new Intent(context, CopyToClipboardActivity.class)
6873
.putExtra(Intent.EXTRA_TEXT, str)

app/src/main/java/io/github/ratul/topactivity/ui/CopyToClipboardActivity.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
import androidx.appcompat.app.AppCompatActivity;
2727

28+
import io.github.ratul.topactivity.App;
2829
import io.github.ratul.topactivity.R;
2930

3031
/**
@@ -35,17 +36,24 @@ public class CopyToClipboardActivity extends AppCompatActivity {
3536
@Override
3637
protected void onCreate(Bundle savedInstanceState) {
3738
super.onCreate(savedInstanceState);
39+
copyToClipboard(getIntent());
40+
finish();
41+
}
3842

39-
if (getIntent().hasExtra(Intent.EXTRA_TEXT)) {
40-
String text = getIntent().getStringExtra(Intent.EXTRA_TEXT);
43+
@Override
44+
protected void onNewIntent(Intent intent) {
45+
super.onNewIntent(intent);
46+
copyToClipboard(intent);
47+
}
4148

49+
private void copyToClipboard(Intent intent) {
50+
if (intent.hasExtra(Intent.EXTRA_TEXT)) {
51+
String text = intent.getStringExtra(Intent.EXTRA_TEXT);
4252
if (!isNullOrEmpty(text)) {
43-
ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE);
44-
ClipData clip = new ClipData(ClipData.newPlainText(
45-
getString(R.string.app_name), text));
46-
clipboard.setPrimaryClip(clip);
53+
ClipData clipData = ClipData.newPlainText("Current Activity", text);
54+
App.getInstance().getClipboardManager()
55+
.setPrimaryClip(clipData);
4756
}
4857
}
49-
finish();
5058
}
5159
}

0 commit comments

Comments
 (0)