diff --git a/.idea/dictionaries/tateisu.xml b/.idea/dictionaries/tateisu.xml
index f6d65232..72bc1900 100644
--- a/.idea/dictionaries/tateisu.xml
+++ b/.idea/dictionaries/tateisu.xml
@@ -61,6 +61,7 @@
hhmm
hohoemi
hostdon
+ huawei
idat
idempotency
ietf
diff --git a/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt b/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt
index 28450937..e30169ad 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt
+++ b/app/src/main/java/jp/juggler/subwaytooter/ActMain.kt
@@ -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) {
diff --git a/app/src/main/java/jp/juggler/subwaytooter/App1.kt b/app/src/main/java/jp/juggler/subwaytooter/App1.kt
index d6f6af33..3222ee49 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/App1.kt
+++ b/app/src/main/java/jp/juggler/subwaytooter/App1.kt
@@ -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()
diff --git a/app/src/main/java/jp/juggler/subwaytooter/action/Action_Account.kt b/app/src/main/java/jp/juggler/subwaytooter/action/Action_Account.kt
index c5d69f82..0282e85a 100644
--- a/app/src/main/java/jp/juggler/subwaytooter/action/Action_Account.kt
+++ b/app/src/main/java/jp/juggler/subwaytooter/action/Action_Account.kt
@@ -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
}