Continuity is The Father of Success

Androidアプリとかゲームとか。毎日続けてるものについて。

Android Oreoから導入されたNotification Channelを管理するライブラリを作った

やったこと

NotificationChannel と NotificationChannelGroupをざっくり登録&更新するライブラリを作りました。
github.com

モチベーション

Android OからNotificationChannelとNotificationChannelGroupですが、現行の実装だと次の2点がイケてないと思ってます。

  • アプリ側でLocation ChangeのIntentを受け取って言語を更新して再設定しなければならない
  • Android NやAndroid Oで追加されたAPIを叩かねばならない

実際のアプリケーションを開発していると、最低APIが21(場合によっては19? それ以下もあるところにはあるんですかね……)で開発することになると思います。 かつ、通知チャンネル対応を行うとするとアプリのバージョンアップ時に更新処理として追加しなければなりません。 その辺りの処理をアプリごとに書くのがめんどくさいなぁ……というのが、開発動機になります。

ライブラリがやること

-Intent.ACTION_LOCALE_CHANGED を監視し、端末の言語設定が切り替えられたとき、新たな言語でリソース取得を行い再設定(表示言語の更新)を行います - assets/easynotificaitonchannel/group.jsonassets/easynotificationchannel/channel.json に記載された情報を読み込み、NotificationChannelとNotificationChannelGroupを生成します - アプリのバージョン更新がされたとき、上記の設定を再読込し追加/削除処理をします - 内部で端末のOSバージョンを確認し、N以下では処理を走らせないことでアプリクラッシュを防ぎます

その他

初めてライブラリを作ったり公開してみたので、よければ使ってみたり「こっちのほうがいい!!!」とかコメント貰えたりすると嬉しいです。