Skip to content

Commit 2f26ab6

Browse files
committed
chore: improve image sharing handling and toast messages in MainActivity
1 parent d013183 commit 2f26ab6

File tree

1 file changed

+33
-23
lines changed

1 file changed

+33
-23
lines changed

app/src/main/java/com/qianxu/image/shareimagetoclipboard/MainActivity.kt

+33-23
Original file line numberDiff line numberDiff line change
@@ -3,35 +3,45 @@ package com.qianxu.image.shareimagetoclipboard
33
import android.app.Activity
44
import android.content.ClipData
55
import android.content.ClipboardManager
6-
import android.content.Context
76
import android.content.Intent
87
import android.net.Uri
98
import android.os.Bundle
109
import android.widget.Toast
1110

1211
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
2919
}
3020

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+
}
3427

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

Comments
 (0)