ヘッドアップ通知パネルを実装する

Android 17 以降では、ヘッドアップ通知(HUN)のスケーラブル UI により、ランタイム リソース オーバーレイ(RRO)を備えたスケーラブル UI フレームワークを使用して、HUN パネルのウィンドウ管理(位置、背景スクリム、アニメーション)をカスタマイズできます。この機能を使用すると、内部コンテンツのレンダリングに影響を与えることなく、通知のコンテナを制御できます。

実装

HUN のスケーラブル UI の実装には、次の作業が含まれます。

  • 公開 API とシステム API: スケーラブル UI パーサー内の HunWindow クラスと <HunPanel> XML タグの解析ロジックを導入します。
  • パートナーの実装:
    • カスタム RRO オーバーレイを定義します。
    • XML ファイル(res/xml/hun_panel.xml など)を作成するには、<HunPanel> ルートタグを使用します。
    • 境界、グラビティ(TOP または BOTTOM)、可視性、背景(スクリム ドローアブル)を制御する <Variant> 要素を定義します。
    • <Transitions> を使用して、バリエーションをシステム イベント(_System_Show_Panel など)にマッピングします。
  • 新しいデバイスとアップグレードされたデバイス: これは RRO によって行われる構成変更です。デバイスをアップグレードして新しいシステム イメージを受け取るには、適切な RRO を作成して HUN の動作を定義します。これにより、ユーザーはデフォルトから逸脱できます。
  • 有効または無効にする: この機能を有効または無効にするには、window_states 構成から @xml/hun_panel を追加または削除します。
  • デフォルト設定: システムのデフォルト構成をオーバーライドする独自の RRO を適用して、デフォルト設定を変更します。

要件と検証

オーバーレイの有効化と無効化をテストするには、次の手順を使用します。

adb shell cmd overlay disable --user current com.example.overlay.scalableUI.hun.bottom

RRO を有効または無効にすると、HUN はそれぞれ下部または上部に表示されます。

手動検証

  • ポジショニング: HUN が指定されたグラビティ(TOP または BOTTOM)と境界に表示されることを確認します。
  • インタラクション: スワイプして閉じる機能が動作することを確認します(閉じることができない場合は、ボタンが動作することを確認します)。
  • アニメーション: 開いた状態と閉じた状態の間の遷移アニメーションを確認します。