@@ -3,35 +3,45 @@ package com.qianxu.image.shareimagetoclipboard
3
3
import android.app.Activity
4
4
import android.content.ClipData
5
5
import android.content.ClipboardManager
6
- import android.content.Context
7
6
import android.content.Intent
8
7
import android.net.Uri
9
8
import android.os.Bundle
10
9
import android.widget.Toast
11
10
12
11
class MainActivity : Activity () {
13
- override fun onCreate (savedInstanceState : Bundle ? ) {
14
- super .onCreate(savedInstanceState)
15
-
16
- // 如果接收到的是图片分享,就复制到剪贴板
17
- if (intent?.action == Intent .ACTION_SEND && intent.type?.startsWith(" image/" ) == true ) {
18
- val imageUri: Uri ? = intent.getParcelableExtra(Intent .EXTRA_STREAM , Uri ::class .java)
19
- if (imageUri != null ) {
20
- copyImageToClipboard(imageUri)
21
- } else {
22
- Toast .makeText(this , R .string.toast_image_error, Toast .LENGTH_SHORT ).show()
23
- }
24
- } else {
25
- Toast .makeText(this , R .string.toast_share_image, Toast .LENGTH_SHORT ).show()
26
- }
27
-
28
- finish()
12
+ override fun onCreate (savedInstanceState : Bundle ? ) {
13
+ super .onCreate(savedInstanceState)
14
+
15
+ if (! isImageShareIntent(intent)) {
16
+ showToast(R .string.toast_need_image)
17
+ finish()
18
+ return
29
19
}
30
20
31
- private fun copyImageToClipboard (imageUri : Uri ) {
32
- val clipboardManager = getSystemService(Context .CLIPBOARD_SERVICE ) as ClipboardManager
33
- clipboardManager.setPrimaryClip(ClipData .newUri(contentResolver, " Image" , imageUri))
21
+ val imageUri: Uri ? =
22
+ if (android.os.Build .VERSION .SDK_INT >= android.os.Build .VERSION_CODES .TIRAMISU ) {
23
+ intent.getParcelableExtra(Intent .EXTRA_STREAM , Uri ::class .java)
24
+ } else {
25
+ @Suppress(" DEPRECATION" ) intent.getParcelableExtra(Intent .EXTRA_STREAM )
26
+ }
34
27
35
- Toast .makeText(this , R .string.toast_copy_success, Toast .LENGTH_SHORT ).show()
36
- }
37
- }
28
+ imageUri?.let { copyImageToClipboard(it) } ? : showToast(R .string.toast_image_error)
29
+
30
+ finish()
31
+ }
32
+
33
+ private fun copyImageToClipboard (imageUri : Uri ) {
34
+ val clipboardManager = getSystemService(CLIPBOARD_SERVICE ) as ClipboardManager
35
+ clipboardManager.setPrimaryClip(ClipData .newUri(contentResolver, " Image" , imageUri))
36
+
37
+ showToast(R .string.toast_copy_success)
38
+ }
39
+
40
+ private fun showToast (message : Int ) {
41
+ Toast .makeText(this , message, Toast .LENGTH_SHORT ).show()
42
+ }
43
+
44
+ private fun isImageShareIntent (intent : Intent ? ): Boolean {
45
+ return intent?.action == Intent .ACTION_SEND && intent.type?.startsWith(" image/" ) == true
46
+ }
47
+ }
0 commit comments