From beac03a322001ec94b8c7224bd89c598d66f92c5 Mon Sep 17 00:00:00 2001
From: HuanCheng65 <22636177+HuanCheng65@users.noreply.github.com>
Date: Wed, 15 Jun 2022 15:29:51 +0800
Subject: [PATCH] =?UTF-8?q?pref:=20=E4=BC=98=E5=8C=96=E5=AE=98=E6=96=B9?=
=?UTF-8?q?=E5=AE=A2=E6=88=B7=E7=AB=AF=E6=98=AF=E5=90=A6=E5=AE=89=E8=A3=85?=
=?UTF-8?q?=E7=9A=84=E5=88=A4=E6=96=AD=E6=96=B9=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 8 +++++++
.../tieba/post/activities/ForumActivity.kt | 22 +++++++++++--------
.../tieba/post/activities/ReplyActivity.kt | 9 ++++++--
3 files changed, 28 insertions(+), 11 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index eb400685..c0346249 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -33,6 +33,14 @@
android:resizeable="true"
android:smallScreens="true" />
+
+
+
+
+
+
- try {
- if (isOfficialClientInstalled()) {
- startActivity(
- Intent(Intent.ACTION_VIEW).setData(
- Uri.parse(
- "com.baidu.tieba://unidispatch/frs?obj_locate=frs_top_diverse&obj_source=wise&obj_name=index&obj_param2=chrome&has_token=0&qd=scheme&refer=tieba.baidu.com&wise_sample_id=3000232_2&fr=bpush&kw=$forumName"
- )
- )
+ val intent =
+ Intent(Intent.ACTION_VIEW).setData(
+ Uri.parse(
+ "com.baidu.tieba://unidispatch/frs?obj_locate=frs_top_diverse&obj_source=wise&obj_name=index&obj_param2=chrome&has_token=0&qd=scheme&refer=tieba.baidu.com&wise_sample_id=3000232_2&fr=bpush&kw=$forumName"
)
+ )
+ val resolveInfos = packageManager.queryIntentActivities(
+ intent,
+ PackageManager.MATCH_DEFAULT_ONLY
+ ).filter { it.resolvePackageName != packageName }
+ try {
+ if (resolveInfos.isNotEmpty()) {
+ startActivity(intent)
} else {
toastShort(R.string.toast_official_client_not_install)
}
} catch (e: ActivityNotFoundException) {
toastShort(R.string.toast_official_client_not_install)
}
- finish()
}
}
} else {
diff --git a/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt b/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt
index 8ed37bb2..ecdf74e9 100644
--- a/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt
+++ b/app/src/main/java/com/huanchengfly/tieba/post/activities/ReplyActivity.kt
@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.ActivityNotFoundException
import android.content.Intent
import android.content.Intent.ACTION_VIEW
+import android.content.pm.PackageManager
import android.graphics.Color
import android.net.Uri
import android.os.Bundle
@@ -132,9 +133,13 @@ class ReplyActivity : BaseActivity(), View.OnClickListener,
}
setNeutralButton(R.string.btn_continue_reply, null)
setPositiveButton(R.string.button_official_client_reply) { _, _ ->
+ val intent = Intent(ACTION_VIEW).setData(getDispatchUri())
+ val resolveInfos =
+ packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
+ .filter { it.resolvePackageName != packageName }
try {
- if (isOfficialClientInstalled()) {
- startActivity(Intent(ACTION_VIEW).setData(getDispatchUri()))
+ if (resolveInfos.isNotEmpty()) {
+ startActivity(intent)
} else {
toastShort(R.string.toast_official_client_not_install)
}