ブラウザを開く処理でパッケージ名にcom.huawei.android.internal を含むアプリを除外する
This commit is contained in:
parent
351c495042
commit
926d40fcc0
|
@ -61,6 +61,7 @@
|
|||
<w>hhmm</w>
|
||||
<w>hohoemi</w>
|
||||
<w>hostdon</w>
|
||||
<w>huawei</w>
|
||||
<w>idat</w>
|
||||
<w>idempotency</w>
|
||||
<w>ietf</w>
|
||||
|
|
|
@ -1099,7 +1099,7 @@ class ActMain : AsyncActivity(), Column.Callback, View.OnClickListener,
|
|||
}
|
||||
|
||||
if(resultCode == Activity.RESULT_OK && data != null) {
|
||||
startAccessTokenUpdate(data)
|
||||
App1.openBrowser(this, data.data)
|
||||
} else if(resultCode == ActAccountSetting.RESULT_INPUT_ACCESS_TOKEN && data != null) {
|
||||
val db_id = data.getLongExtra(ActAccountSetting.EXTRA_DB_ID, - 1L)
|
||||
checkAccessToken2(db_id)
|
||||
|
@ -1707,10 +1707,6 @@ class ActMain : AsyncActivity(), Column.Callback, View.OnClickListener,
|
|||
|
||||
}
|
||||
|
||||
fun startAccessTokenUpdate(data : Intent) {
|
||||
App1.openBrowser(this, data.data)
|
||||
}
|
||||
|
||||
// ActOAuthCallbackで受け取ったUriを処理する
|
||||
private fun handleIntentUri(uri : Uri) {
|
||||
|
||||
|
|
|
@ -8,6 +8,7 @@ import android.content.Context
|
|||
import android.content.Intent
|
||||
import android.content.SharedPreferences
|
||||
import android.content.pm.PackageManager
|
||||
import android.content.pm.ResolveInfo
|
||||
import android.content.res.ColorStateList
|
||||
import android.database.sqlite.SQLiteDatabase
|
||||
import android.database.sqlite.SQLiteOpenHelper
|
||||
|
@ -620,9 +621,14 @@ class App1 : Application() {
|
|||
val pm = activity.packageManager !!
|
||||
val myName = activity.packageName
|
||||
|
||||
val filter : (ResolveInfo)->Boolean ={
|
||||
it.activityInfo.packageName != myName &&
|
||||
it.activityInfo.exported &&
|
||||
-1 == it.activityInfo.packageName.indexOf("com.huawei.android.internal")
|
||||
}
|
||||
|
||||
// resolveActivity がこのアプリ以外のActivityを返すなら、それがベストなんだろう
|
||||
// ただしAndroid M以降はMATCH_DEFAULT_ONLYだと「常時」が設定されてないとnullを返す
|
||||
|
||||
val ri = pm.resolveActivity(
|
||||
intent,
|
||||
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||
|
@ -630,7 +636,7 @@ class App1 : Application() {
|
|||
} else {
|
||||
PackageManager.MATCH_DEFAULT_ONLY
|
||||
}
|
||||
)?.takeIf { it.activityInfo.packageName != myName }
|
||||
)?.takeIf(filter)
|
||||
|
||||
if(ri != null) {
|
||||
intent.setClassName(ri.activityInfo.packageName, ri.activityInfo.name)
|
||||
|
@ -642,7 +648,7 @@ class App1 : Application() {
|
|||
activity,
|
||||
intent,
|
||||
autoSelect = true,
|
||||
filter = { it.activityInfo.packageName != myName }
|
||||
filter = filter
|
||||
) {
|
||||
try {
|
||||
intent.component = it.cn()
|
||||
|
|
|
@ -57,9 +57,7 @@ object Action_Account {
|
|||
when(action) {
|
||||
LoginForm.Action.Existing -> if(data is String) {
|
||||
// ブラウザ用URLが生成された
|
||||
val intent = Intent()
|
||||
intent.data = data.toUri()
|
||||
activity.startAccessTokenUpdate(intent)
|
||||
App1.openBrowser(activity, data.toUri())
|
||||
dialog.dismissSafe()
|
||||
return
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue