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) }