From 0735441c42ff4541aa9b8ea8976dfabfd5a41cb2 Mon Sep 17 00:00:00 2001 From: tateisu Date: Wed, 9 Sep 2020 07:22:54 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=AB=E3=82=B9=E3=82=BF=E3=83=A0=E5=85=B1?= =?UTF-8?q?=E6=9C=89=E3=82=82=E3=83=91=E3=83=83=E3=82=B1=E3=83=BC=E3=82=B8?= =?UTF-8?q?=E5=8F=AF=E8=A6=96=E6=80=A7=E3=81=AE=E5=AF=BE=E5=BF=9C=E3=81=8C?= =?UTF-8?q?=E5=BF=85=E8=A6=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 27 ++++++++++----- .../java/jp/juggler/subwaytooter/ActMain.kt | 33 +++++++++---------- 2 files changed, 34 insertions(+), 26 deletions(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 51f7bfec..3180e626 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,21 +12,32 @@ + + - - - - - - - - + + + + + + + + + + + + + + + + + () - for(ri in resolveInfoList) { - - // 選択肢からこのアプリを除外 - if(my_name == ri.activityInfo.packageName) continue - - // 選択肢のIntentは目的のUriで作成する - val choice = Intent(Intent.ACTION_VIEW, uri) - intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK - choice.`package` = ri.activityInfo.packageName - choice.setClassName(ri.activityInfo.packageName, ri.activityInfo.name) - choice_list.add(choice) - } + val choice_list = resolveInfoList + .map{ + Intent(Intent.ACTION_VIEW, uri).apply{ + addFlags(Intent.FLAG_ACTIVITY_NEW_TASK) + `package` = it.activityInfo.packageName + setClassName(it.activityInfo.packageName, it.activityInfo.name) + } + }.toMutableList() - if(choice_list.isEmpty()) { - throw RuntimeException("choice_list is empty.") - } - // 指定した選択肢でチューザーを作成して開く val chooser = Intent.createChooser(choice_list.removeAt(0), error_message) + // 2つめ以降はEXTRAに渡す chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, choice_list.toTypedArray()) + + // 指定した選択肢でチューザーを作成して開く startActivity(chooser) return } catch(ex : Throwable) {