Android 12 対応
shibafu528 opened this issue · 2 comments
https://developer.android.com/about/versions/12?hl=ja
TODO
- Android 11 対応を完了させる (#283)
- リリースノートを読む
- コンポーネントのエクスポートの安全性を改善
- ペンディング インテントの可変性
- トーストのデザイン変更
動作の変更点: すべてのアプリ
戻るボタンを押してもルート ランチャー アクティビティが終了しない
戻るボタンのイベントをオーバーライドしているため、動作の変更は発生していない。
ただし、Android 12以降の普及によって戻るボタンの操作がActivityの終了ではないという認識が広まった場合、変更したほうが良い可能性がある。
動作の変更点: Android 12をターゲットとするアプリ
コンポーネントのエクスポートの安全性を改善
AndroidManifestにおいてIntent filterを使うコンポーネントには android:exported
属性が必須になる。ランチャーからの起動および外部からの呼び出しを想定しているコンポーネントは true
で設定する。
ペンディング インテントの可変性
通常はimmutableで大丈夫だが、mutableに設定する必要があるケースもあるとのこと。
トーストのデザイン変更
Android 12 では、トーストの外見が変更されています。トーストは、2 行のテキストに制限され、テキストの横にアプリアイコンが表示されるようになりました。
アプリが Android 12(API レベル 31)以上をターゲットにしている場合、トーストは 2 行のテキストに制限され、テキストの横にアプリアイコンが表示されます。このテキストの行の長さは画面サイズによって異なるため、テキストはできるだけ短くすることをおすすめします。
https://developer.android.com/guide/topics/ui/notifiers/toasts?hl=ja
トーストのデザイン変更で影響を受けそうな場所
✅ 行数が多い
完了画面を作れば良いか?
行数が多い
精査すれば、このチェック自体不要な可能性がある。どうしても必要な場所では適宜マウントを確認すべきだし、無くても動くなら内部ストレージにフォールバックしたほうが良い。
→ そもそも現代のAndroidで外部ストレージがマウントされてないことあるのか? どうテストすればいいのか分からない……。とりあえず放置しても良さそう。
Yukari/Yukari/src/main/java/shibafu/yukari/activity/MainActivity.java
Lines 129 to 133 in e6694f4
✅ 行数が多い
MainActivityだし、SnackBarか単に適当にView追加して結果表示すれば良さそう。
→ あまり意味なさそうだから省略する
✅ たぶん2行は越える
✅ たぶん2行は越える
Yukari/Yukari/src/main/java/shibafu/yukari/activity/TweetActivity.java
Lines 1398 to 1400 in d327a95
✅ 行数が多い
✅ 微妙に溢れそう
✅ 行数が多い
✅ 行数が多い
✅ たぶん溢れる
ここに関しては、機能廃止の方向にしたいが……
→ 非推奨扱いとして、設定画面に注釈を入れた。
Yukari/Yukari/src/main/java/shibafu/yukari/linkage/StatusNotifier.java
Lines 365 to 370 in 0b2b094
レートリミット通知
✅ 行数が多い
Yukari/Yukari/src/main/java/shibafu/yukari/linkage/StatusLoader.kt
Lines 77 to 121 in 05a4541
✅ 行数が多い
mruby関連
✅ たぶん2行は越える
Yukari/Yukari/src/main/java/shibafu/yukari/activity/TweetActivity.java
Lines 1794 to 1804 in d327a95
✅ 行数が多い
✅ たぶん溢れる
Yukari/Yukari/src/main/java/shibafu/yukari/service/TwitterService.java
Lines 280 to 282 in 0b2b094
✅ 行数が多い
Yukari/Yukari/src/main/java/shibafu/yukari/service/TwitterService.java
Lines 289 to 296 in 0b2b094
トーストのデザイン変更は明らかな部分について対応完了。targetSdkVersionを上げた後に発見されたものは個別に対応する。