WindowManager
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 8 月 7 日 | 1.3.0 | - | - | 1.4.0-alpha01 |
依存関係の宣言
Window Manager への依存関係を追加するには、Google の Maven リポジトリをプロジェクトに追加する必要があります。詳しくは、Google の Maven リポジトリをご覧ください。
アプリまたはモジュールの build.gradle
ファイルに、必要なアーティファクトの依存関係を追加します。
Groovy
dependencies { implementation "androidx.window:window:1.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.0") }
フィードバック
お寄せいただいたフィードバックは Jetpack 改善の参考にさせていただきます。新しい問題が見つかった場合や、このライブラリを改善するアイデアをお持ちの場合は、お知らせください。新しい問題を報告していただく前に、このライブラリの既存の問題をご確認ください。スターボタンをクリックすると、既存の問題に投票できます。
詳細については、Issue Tracker のドキュメントをご覧ください。
バージョン 1.4
バージョン 1.4.0-alpha01
2024 年 8 月 7 日
androidx.window:window-*:1.4.0-alpha01
がリリースされました。バージョン 1.4.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- ActivityStack の固定を使用すると、アプリでコンテンツを 1 つのコンテナに固定し、そのナビゲーションを他のコンテナから分離できます。
- [Interactive Divider] を使用すると、アプリで分割プレゼンテーション内の 2 つのアクティビティの間に固定またはドラッグ可能な分割線を表示できます。
- 全画面ダイアログの減光では、アプリでダイアログの減光領域を指定できます。タスク ウィンドウ全体を暗くするか、ダイアログを表示するコンテナのみを暗くすることができます。
- 埋め込みアクティビティ ウィンドウ情報コールバックを使用すると、アプリは埋め込みアクティビティ ウィンドウの更新を継続的に受信できます。
- Embedding Animation Background では、アプリでアニメーションの背景を指定できるようになり、
ActivityEmbedding
を使用した場合の遷移アニメーションの品質が向上しました。 - ActivityStack 管理の改善により、
ActivityEmbedding
の使用時に、アプリがActivityStacks
をより細かく制御できるようになりました。次に例を示します。 - 指定された
ActivityStack
でアクティビティを起動する ActivityStack
の終了
API の変更
新しい API
WindowInfoTracker#supportedPostures
:- デバイスが折りたたみ式デバイスのテーブルトップ モードをサポートしているかどうかを判断するための API。WindowAreaSessionPresenter#getWindow を追加
ActivityStack
の固定をサポートする API を追加します。SplitPinRule
クラスSplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
インタラクティブな分割線を有効にして構成するための API を追加する
DividerAttributes
クラスSplitAttributes.Builder#setDividerAttributes
ダイアログの
EmbeddingConfiguration
とDimAreaBehavior
を設定する API を追加EmbeddingConfiguration
クラスDimAreaBehavior
クラスActivityEmbeddingController#setEmbeddingConfiguration
埋め込みアクティビティ ウィンドウ情報の更新を受信する API を追加
EmbeddedActivityWindowInfo
クラスActivityEmbeddingController#embeddedActivityWindowInfo
エンベディング アニメーションの背景を設定する API を追加する
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
ActivityStacks
を完了するには API を追加してくださいActivityEmbeddingController#finishActivityStacks
起動
ActivityStack
を設定する API を追加ActivityEmbeddingOptions#setLaunchingActivityStack
次の API は安定版であり、試験運用版ではなくなりました。
ActivityEmbeddingController#invalidateVisibleActivityStacks
(SplitController#invalidateTopVisibleSplitAttributes から移動)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
1.4 の API を追加しました。(I56774)。
バグの修正
- セッションがアクティブなときに ACTIVE ではなく UNAVAILABLE が返される特定のデバイスでのバグを修正しました。
- API サポートが不安定なため、
vendorApiLevel
が 2 のデバイスでのtransferActivityToWindowArea
のサポートを終了しました。 - アクティビティの埋め込みのドラッグ可能な分割線で、ドラッグから全画面表示を可能にする API を導入しました。(I645c9)。
SplitAttributes
のアニメーション パラメータでActivityEmbedding
アニメーションを無効にすることをアプリに許可します。(Idc01a)。- 新しいプラットフォーム API へのアクセスに関する手動概要を削除しました。これは、AGP 7.3 以降(R8 バージョン 3.3 など)で R8 を使用する場合は API モデリングを介して自動的に行われ、AGP 8.1 以降(D8 バージョン 8.1 など)を使用する場合はすべてのビルドで行われるためです。AGP を使用していないクライアントには、D8 バージョン 8.1 以降に更新することが推奨されます。詳しくは、こちらの記事をご覧ください。(Ia60e0、b/345472586)。
- 拡張機能が
SplitAttributes
のアニメーション パラメータを取得し、デバイスがアニメーションの遷移で使用できるようにします。(Iede00)。 - オーバーレイ API を非表示(Ic4251)
- 分割の固定またはドラッグ可能な分割線を構成する API を導入しました。(Ia7a78)
WindowMetrics
に密度を追加しました(Id6723)。SupportedPostures
を取得する API を追加しました。(If557a)。- 試験運用版 API から
setLaunchingActivityStack
を削除しました(I191cf) ActivityEmbeddingController#embeddedActivityWindowInfo
を導入しました。(I24312)#getToken
のサポートが終了し、#getActivityStackToken
を追加しました。(Ie0471)embeddedActivityWindowInfo
Flow API のコールバック アダプターを導入(Ida77f)- overridesInfo Flow API のコールバック アダプターを追加しました(I7264f)。
WindowSdkExtensionsRule
を導入し、テスト用にextensionsVersion
をオーバーライドします。(Ifb928)。- -
ActivityOptionsCompat
の使用に対応するために#setLaunchingActivityStack
を Bundle に移行しました。- ユーザーは
ActvityOptions
自体ではなくactivityOptions.toBundle
を渡す必要があります。 #setLaunchingActivityStack(Activity)
を削除しました。ユーザーは、ActivityEmbeddingController#getActivityStac(Activity)
を使用してActivityStack
を取得し、ActivityStack
を#setLaunchingActivityStack
に渡すよう移行する必要があります。(Ie0ccc)。
- ユーザーは
- - WM Jetpack と拡張機能の間で通信するための識別子として、
ActivityStack.Token
とSpltInfo.Token
を導入しました。- IBinder の代わりにトークンを取得/返す API のサポートを終了/置換。(I12b24)。
- -
ActivityEmbeddingController#invalidateVisibleActivityStacks
の紹介- この機能は
#invalidateVisibleActivityStacks
に統合されているため、SplitController#invalidateTopVisibleSplitAttributes
を削除しました。(I02ef5)
- この機能は
- - エンベディング構成を設定する API を追加。(I59a4a)。
- - 上位
ActivityStack
個のandroidx.Window
API の固定/固定解除を追加 <ph type="x-smartling-placeholder">- </ph>
- 上部の
ActivityStack
を固定/固定解除できるようにデモアプリを更新しました(I24dd3)
- 上部の
#finishActivityStacks
とActivityEmbeddingOptions
を再追加しました。(Ic1ab3)- 不安定な API を削除します。(Ibc534、b/302380585)。
バージョン 1.3
バージョン 1.3.0
2024 年 5 月 29 日
androidx.window:window-*:1.3.0
がリリースされました。バージョン 1.3.0 に含まれる commit については、こちらをご覧ください。
1.2.0 以降の重要な変更
- ウィンドウ サイズクラスの Kotlin マルチプラットフォーム サポート。
バージョン 1.3.0-rc01
2024 年 5 月 14 日
WindowManager
Jetpack 1.3 では、Kotlin マルチプラットフォームが WindowSizeClass
の機能に対応し、複数のバグが修正されました。
androidx.window:window-*:1.3.0-rc01
がリリースされました。バージョン 1.3.0-rc01 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0-beta02
2024 年 5 月 1 日
androidx.window:window-*:1.3.0-beta02
がリリースされました。バージョン 1.3.0-beta02 に含まれる commit については、こちらをご覧ください。
API の変更
- カスタム
WindowSizeClass
の作成と使用のサポートを終了しました。(Id1143)。
バグの修正
- 特定のデバイス実装で ProGuard によって一部のファイルが削除されることで発生する
KotlinReflectionInternalError
を修正しました。(I01b02)。
バージョン 1.3.0-beta01
2024 年 4 月 3 日
androidx.window:window-*:1.3.0-beta01
がリリースされました。バージョン 1.3.0-beta01 に含まれる commit については、こちらをご覧ください。
バージョン 1.3.0-alpha03
2024 年 3 月 6 日
androidx.window:window-*:1.3.0-alpha03
がリリースされました。バージョン 1.3.0-alpha03 に含まれる commit については、こちらをご覧ください。
API の変更
WindowSizeClassUtil
をより焦点を絞ったメソッドに分割しました。(Ie9292)。WindowSizeClass#compute
を復元(I21355、b/324293374)
バグの修正
- 提供されたコンテキストが正しくラップ解除されなかったクラッシュを修正しました。(94d10ce、b/318787482)。
バージョン 1.3.0-alpha02
2024 年 2 月 7 日
androidx.window:window-*:1.3.0-alpha02
がリリースされました。バージョン 1.3.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- 独自のサイズクラスを使用するデベロッパーの柔軟性を高めるために、Window Size Class API の API サーフェスが更新されました。
API の変更
- 幅セレクタに高さの制約を追加します。(I23393)。
- セットから
WindowSizeClass
を選択するユーティリティ関数を追加します。デベロッパーが独自のセレクタを作成できるように、試験運用版のスコアリング関数を追加します。特定の境界内で最も幅の広いWindowSizeClass
を選択するセレクタ拡張関数を追加します。(I0c944)。 WindowSizeClass
コンストラクタを開いて、カスタム ブレークポイントを追加できるようにします。(Ic1ff3)。- 幅、高さ、密度からサイズクラスを作成するコンビニエンス関数を追加します。(If67f4)。
バグの修正
- 浮動小数点値が 0 に切り捨てられた場合の例外を修正。(272ffac)。
バージョン 1.3.0-alpha01
2023 年 11 月 15 日
androidx.window:window-*:1.3.0-alpha01
がリリースされました。バージョン 1.3.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- 背面画面にアクセスするための試験運用版の window API を公開しました。
FoldingFeature
を作成するためのテスト API が安定版になりました。- 疑似
ActivityEmbedding
値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRule
がUiContext
から値を取得する際にオーバーライドを報告するようになりました。WindowInfoTracker
は、折りたたみ特徴データをUiContext
パラメータに報告します。- デバイスで拡張機能のバージョンを公開します。
- ユーザーごとにオーバーライドする
WindowProperties
定数:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
- 通知 アプリがユーザー向けのアスペクト比の互換性を無効にしているシステム オーバーライドできますPROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
- 通知 アプリがユーザーの全画面オプションをオプトアウトしているシステム アスペクト比の互換性のオーバーライド設定
バージョン 1.2
バージョン 1.2.0
2023 年 11 月 15 日
androidx.window:window-*:1.2.0
がリリースされました。バージョン 1.2.0 に含まれる commit については、こちらをご覧ください。
1.1.0 以降の重要な変更
- 背面画面にアクセスするための試験運用版の window API を公開しました。
FoldingFeature
を作成するためのテスト API が安定版になりました。- 疑似
ActivityEmbedding
値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRule
がUiContext
から値を取得する際にオーバーライドを報告するようになりました。WindowInfoTracker
は、折りたたみ特徴データをUiContext
パラメータに報告します。- デバイスで拡張機能のバージョンを公開します。
バージョン 1.2.0-rc01
2023 年 11 月 1 日
androidx.window:window-*:1.2.0-rc01
がリリースされました。バージョン 1.2.0-rc01 に含まれる commit については、こちらをご覧ください。
新機能
- 背面画面にアクセスするための試験運用版の window API を公開しました。
FoldingFeature
を作成するためのテスト API が安定版になりました。- 疑似
ActivityEmbedding
値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRule
がUiContext
から値を取得する際にオーバーライドを報告するようになりました。WindowInfoTracker
は、折りたたみ特徴データをUiContext
パラメータに報告します。- デバイスで拡張機能のバージョンを公開します。
バージョン 1.2.0-beta04
2023 年 10 月 18 日
androidx.window:window-*:1.2.0-beta04
がリリースされました。バージョン 1.2.0-beta04 に含まれる commit については、こちらをご覧ください。
API の変更
- 不安定な API を削除します。(Ibc534、b/302380585)。
バージョン 1.2.0-beta03
2023 年 9 月 20 日
androidx.window:window-*:1.2.0-beta03
がリリースされました。バージョン 1.2.0-beta03 に含まれる commit については、こちらをご覧ください。
新機能
- 正しく機能するために特定のバージョンの拡張機能が必要な API 用の
RequiresApi
チェックを追加しました。 - 拡張機能のバージョンをデバイスで公開するための API を追加します。
API の変更
- 公開 API で必要な window SDK 拡張機能バージョンにアノテーションを付けます。
- アクティビティ埋め込みコンポーネント内の
isXXXSupported
を削除しました。(Ie3dae)。
- アクティビティ埋め込みコンポーネント内の
- デバイス上の拡張機能のバージョンを報告する
WindowSdkExtensions
を導入しました。- 必要最小限の拡張機能バージョンにアノテーションを付ける
RequiresWindowSdkExtension
を導入しました。(I05fd4)。
- 必要最小限の拡張機能バージョンにアノテーションを付ける
WindowAreaInfo#getCapability
を null 値非許容にします。(I17048)。
バージョン 1.2.0-beta01
2023 年 7 月 26 日
androidx.window:window-*:1.2.0-beta01
がリリースされました。バージョン 1.2.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- 背面画面にアクセスするための試験運用版の window API を公開しました。
FoldingFeature
を作成するためのテスト API が安定版になりました。- 疑似
ActivityEmbedding
値を設定するためのテスト API が安定版になりました。 WindowLayoutInfoPublisherRule
がUiContext
から値を取得する際にオーバーライドを報告するようになりました。WindowInfoTracker
は、折りたたみ特徴データをUiContext
パラメータに報告します。
API の変更
WindowArea
API を試験運用版としてマークし、1.3 の安定版リリースで API の変更を継続できるようにしました(I857f5)。- 互換性の抑制にアノテーションを付けるように API ファイルを更新しました(I8e87a、b/287516207)。
バージョン 1.2.0-alpha03
2023 年 6 月 21 日
androidx.window:window-*:1.2.0-alpha03
がリリースされました。バージョン 1.2.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- 非推奨の API を API サーフェスから削除します。
- 同時ディスプレイをサポートする API を追加します。
- サイズ変更の強制オーバーライドをオプトアウトするプロパティを追加します。
- 最小アスペクト比のオーバーライドをオプトアウトするプロパティを追加。
- アクティビティの埋め込みに関する単体テストをサポートするため、
ActivityEmbeddingRule
を安定させました。
API の変更
バグの修正
- 強制サイズ変更オーバーライドのオプトアウト互換プロパティを追加しました(Ie7ab1)
- 拡張機能のインターフェースから
SESSION_STATE_CONTENT_INVISIBLE
を削除しました。(I6ed19)。 - アクティビティの埋め込みに関する単体テストをサポートするため、
ActivityEmbeddingRule
を安定させます。(I8d6b6)。 - 最小アスペクト比のオーバーライドのオプトアウト互換プロパティを追加しました。(I66390)。
- 非推奨の WindowArea API を削除しました(Ieb67c)。
- 画面の向きリクエストのループ プロパティの名前を
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED
に変更しました。(Ie2fbd)。 - ウィンドウ領域のセッション定数名を更新しました。(I83675)
- 検出時に画面の向きのリクエストのループを無視するオプトアウト互換プロパティを追加しました(I0a7a2)。
WindowAreaComponent#STATUS_ACTIVE
を追加して、機能がすでにアクティブであることを示します。(I62bc3)。RearDisplayPresentationMode
API を追加しました。(I0401c)- Stable の背景色 API を削除。(I34c3e)。
- ウィンドウ領域 API を非表示にします。(I39de0)。
SplitController
のSplitInfo
をオーバーライドするメソッドを追加しました。SplitInfo
とActivityStack
の double を作成するテストメソッドを追加。(Icd69f)。ActivityRule.Builder
のタグをオプションに設定。(Ib0b44)。RatioSplitType
、ExpandContainersSplit
、HingeSplitType
を削除しました。現在はSplitType
です。#splitEqually()
、#expandContainers()
、#splitByHinge
を定数SplitType SPLIT_TYPE_EQUAL
、SPLIT_TYPE_EXPAND
、SPLIT_TYPE_HINGE
に置き換えます。- ヒンジの分割タイプのフォールバック タイプを設定する機能を削除しました。現在のデバイスまたはウィンドウの状態が原因でヒンジの分割タイプを適用できない場合、フォールバックして親タスクコンテナを均等に分割します。
SplitController#setSplitAttributesCalculator
を使用して、代替の分割タイプをカスタマイズします。(Ifcc59)。
add
/removeSplitCallback
のサポートを終了する <ph type="x-smartling-placeholder">- </ph>
add
/removeSplitCallback
をSplitControllerCallbackAdapter
に移動Flow
のサポートを追加してSplitInfo
リストを取得(I7f1b6)
ActivityEmbeddingController
のテストルールを追加(I42e9b)ActivityOptionsCompat
の名前をActivityEmbeddingOptions
に変更しました(I89301)- アクティビティの埋め込みが利用可能かどうかを示す
splitSupportStatus
を追加しました。(I10024) DEFAULT
値をより適切に表現するためにSplitAttributes.BackgroundColor
を導入しました。アニメーションの不透明な背景色はサポートされていないため、不透明でない色はすべてデフォルトとして扱われ、現在のテーマ ウィンドウの背景色が使用されることを明確にしました。(Ic6b95)。alwaysAllow()
とalwaysDisallow()
をALWAYS_ALLOW
とALWAYS_DISALLOW
に置き換えます。(I3057b)。SplitRule
、SplitAttributes
、SplitAttributesCalculator
の API を追加しました。(I92d23)TestActivityStack
を追加してテスト用のActivityStack
を作成する <ph type="x-smartling-placeholder">- </ph>
TestSplitInfo
を追加してテスト用のSplitInfo
を作成します。(I8e779)。
- 架空の
SplitAttributesCalculatorParams
を作成する方法を追加し、デベロッパーがカスタマイズしたSplitAttributesCalculator
を確認できるようにしました(Id4a6e) WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)
とWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context)
を追加しました。(I66c7f)
バージョン 1.2.0-alpha02
2023 年 6 月 7 日
androidx.window:window-*:1.2.0-alpha02
がリリースされました。バージョン 1.2.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- テスト API を更新して、未指定の折りたたみ機能用の定数を追加しました。
WindowLayoutInfoPublishRule
でオーバーライドすると、コンテキスト ベースの API を含むwindowLayoutInfo
のすべての値がオーバーライドされます。
API の変更
- 指定されていない中央折りたたみ機能用の定数を追加。(I7530c)。
バグの修正
WindowLayoutInfo
に基づくContext
に基づくオーバーライドをサポートするようにWindowLayoutInfoPublishRule
を更新します。(I2037a)。
バージョン 1.2.0-alpha01
2023 年 5 月 24 日
androidx.window:window-*:1.2.0-alpha01
がリリースされました。バージョン 1.2.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
アクティビティの埋め込みと WindowLayoutInfoTracker
に関するテスト API の安定化ActivityEmbeddingRule
が安定版に昇格しました。
WindowMetricsCalculatorRule
が安定版に昇格しました。
テスト用の FoldingFeature
を作成するユーティリティ関数が安定版に昇格しました。
API の変更
- アクティビティの埋め込みに関する単体テストをサポートするため、
ActivityEmbeddingRule
を安定させます。(I8d6b6)。 WindowMetrisCalculatorTestRule
が安定版になり、JVM テストのスタブ指標が可能になります。正確な結果を得るには、エミュレータを使用することをおすすめします。- JVM テストをサポートするため、
WindowLayoutInfo
のテスト API を安定化しました。(Ie036e)。 - テスト折りたたみの特徴値用に
IntRange
を追加。(I69f7d)。
バージョン 1.1
バージョン 1.1.0
2023 年 6 月 7 日
androidx.window:window-*:1.1.0
がリリースされました。バージョン 1.1.0 に含まれる commit については、こちらをご覧ください。
1.0.0 以降の重要な変更
アクティビティの埋め込み
- アプリ マニフェストに
<application>
タグのブール値プロパティとしてPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
を追加しました。 - 分割機能が利用できない理由について、より詳細な情報を提供するため、
isSplitSupported
を非推奨とし、splitSupportStatus
に置き換えました。 splitSupportStatus
プロパティの状態定数を指定するために、ネストされたクラスSplitController.SplitSupportStatus
を追加しました。SplitController
をいくつかのモジュールにリファクタリングしました。Activity
またはActivityStack
関連の API 用のActivityEmbeddingController
モジュール。isActivityEmbedded
をSplitController
からActivityEmbeddingController
に移動しました。EmbeddingRule
関連のオペレーション用のRuleController
モジュール:- 以下の
SplitController
API を削除しました。 clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API を追加しました。addRule()
- ルールを追加するか、同じタグを持つルールを更新します。removeRule()
- 登録済みのルールのコレクションからルールを削除します。setRules()
- ルールのコレクションを確立します。clearRules()
- 登録済みのすべてのルールを削除します。parseRules()
- XML ルール定義からルールを解析します。
- すべてのモジュールでは、次のようなコンテキストを
#getInstance()
メソッドで初期化する必要があります。ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- ディスプレイのアスペクト比に関連する列挙型のような動作定数を定義する
EmbeddingAspectRatio
クラスを追加しました。 - 分割レイアウトを定義する
SplitAttributes
クラスを追加しました。 - 分割レイアウトをカスタマイズするために、
SplitController
にSplitAttributes
計算関数を追加しました。 <ph type="x-smartling-placeholder">- </ph>
setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
:SplitAttributesCalculator
API がデバイスでサポートされているかどうかを確認
EmbeddingRule#tag
フィールドを追加しました。SplitRule
での API の更新:defaultSplitAttributes
が追加されました。分割のデフォルトの分割レイアウトを定義します。splitRatio
とlayoutDirection
に代わるものです。- XML プロパティ
splitRatio
とsplitLayoutDirection
の変換をdefaultSplitAttributes
に追加しました。 - 最小寸法の定義を変更して、ピクセルではなく密度非依存ピクセル(dp)を使用するようにしました。
minHeightDp
を追加しました(デフォルト値: 600 dp)。minWidth
をminWidthDp
(デフォルト値: 600 dp)に変更しました。minSmallestWidth
をminSmallestWidthDp
(デフォルト値: 600 dp)に変更しました。maxAspectRatioInHorizontal
を追加しました(デフォルト値:ALWAYS_ALLOW
)。maxAspectRatioInPortrait
を追加しました(デフォルト値は 1.4)。- 終了動作定数を置き換えるために、ネストされたクラス
FinishBehavior
を定義しました。 - プロパティの変更を、
SplitPairRule
とSplitPlaceholderRule
の Builder ネストクラスに適用しました。
SplitInfo#getSplitRatio()
をSplitInfo#getSplitAttributes()
に置き換えて、追加の分割関連情報を提供しました。
WindowLayout
WindowInfoTracker
に試験運用版の非アクティビティ UI コンテキストのサポートを追加しました。- 試験運用版の非アクティビティ UI コンテキストを
WindowMetricsCalculator
に追加しました。
移行手順
- アクティビティの埋め込みを有効にして、分割にアクティビティを表示するには、アプリで
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
プロパティをマニフェストの<application>
タグに追加する必要があります。xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
これにより、事前にシステムでアプリケーションの分割動作を最適化できます。 - 比率
SplitInfo
- 現在の分割がスタックされているかどうかを確認します。
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- 現在の比率を確認します。
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- 現在の分割がスタックされているかどうかを確認します。
- SplitController の移行:
SplitController.getInstance()
がSplitController.getInstance(Context)
に変更されます。SplitController.initialize(Context, @ResId int)
がRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
に変更されます。SplitController.getInstance().isActivityEmbedded(Activity)
がActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
に変更されます。SplitController.getInstance().registerRule(rule)
がRuleController.getInstance(Context).addRule(rule)
に変更されます。SplitController.getInstance().unregisterRule(rule)
がRuleController.getInstance(Context).removeRule(rule)
に変更されます。SplitController.getInstance().clearRegisteredRules()
がRuleController.getInstance(Context).clearRules()
に変更されます。SplitController.getInstance().getSplitRules()
がRuleController.getInstance(Context).getRules()
に変更されます。
SplitRule
プロパティの移行:minWidth
とminSmallestWidth
で、ピクセルではなく dp 単位が使用されるようになりました。アプリは次の呼び出しを使用できます。kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
または、minWith
をピクセル単位でdisplayMetrics#density
で割ります。
- 終了動作定数は、
FinishBehavior
列挙型のようなクラス定数に移行する必要があります。FINISH_NEVER
がFinishBehavior.NEVER
に変更されます。FINISH_ALWAYS
がFinishBehavior.ALWAYS
に変更されます。FINISH_ADJACENT
がFinishBehavior.ADJACENT
に変更されます。
- レイアウト方向を
SplitAttributes.LayoutDirection
に移行する必要があります。ltr
がSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
に変更されます。rtl
がSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
に変更されます。locale
がSplitAttributes.LayoutDirection.LOCALE
に変更されます。splitRatio
をSplitAttributes.SplitType.ratio(splitRatio)
に移行する必要があります。
SplitPairRule.Builder
の移行:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
件の変更:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
とsetSplitRatio(ratio)
の変更kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
とsetFinishSecondaryWithPrimary
はFinishBehavior
列挙型のような定数を受け取ります。詳しくは、「分割ルールの移行」をご覧ください。- 縦向きデバイスで分割を表示するには、
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
を使用します。
SplitPlaceholder.Builder
の移行:filters
パラメータとplaceholderIntent
パラメータのみを持ちます。他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。setFinishPrimaryWithPlaceholder
はFinishBehavior
列挙型のような定数を受け取ります。詳しくは、「分割ルールの移行」をご覧ください。setLayoutDirection(layoutDirection)
とsetSplitRatio(ratio)
は次のように変更されます。kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- 縦向きデバイスで分割を表示するには、
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
を使用します。
バージョン 1.1.0-rc01
2023 年 5 月 10 日
androidx.window:window-*:1.1.0-rc01
がリリースされました。バージョン 1.1.0-rc01 に含まれる commit については、こちらをご覧ください。
新機能
- 安定版 API として
ActivityEmbedding
をリリース。 - 各種バグを修正しました。
バージョン 1.1.0-beta02
2023 年 4 月 5 日
androidx.window:window-*:1.1.0-beta02
がリリースされました。バージョン 1.1.0-beta02 に含まれる commit については、こちらをご覧ください。
新機能
- 内部での修正とクリーンアップ。
バージョン 1.1.0-beta01
2023 年 3 月 22 日
androidx.window:window-*:1.1.0-beta01
がリリースされました。バージョン 1.1.0-beta01 に含まれる commit については、こちらをご覧ください。
アクティビティの埋め込み
- アプリ マニフェストに
<application>
タグのブール値プロパティとしてPROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
を追加しました。 - 分割機能が利用できない理由について、より詳細な情報を提供するため、
isSplitSupported
を非推奨とし、splitSupportStatus
に置き換えました。 splitSupportStatus
プロパティの状態定数を指定するために、ネストされたクラスSplitController.SplitSupportStatus
を追加しました。SplitController
をいくつかのモジュールにリファクタリングしました。Activity
またはActivityStack
関連の API 用のActivityEmbeddingController
モジュール。isActivityEmbedded
をSplitController
からActivityEmbeddingController
に移動しました。EmbeddingRule
関連のオペレーション用のRuleController
モジュール:- 以下の
SplitController
API を削除しました。clearRegisteredRules()
getSplitRules()
initialize()
registerRule()
unregisterRule()
RuleController
API を追加しました。addRule()
- ルールを追加するか、同じタグを持つルールを更新します。removeRule()
- 登録済みのルールのコレクションからルールを削除します。setRules()
- ルールのコレクションを確立します。clearRules()
- 登録済みのすべてのルールを削除します。- `parseRules() - XML ルール定義からルールを解析します。
- すべてのモジュールでは、次のようなコンテキストを
#getInstance()
メソッドで初期化する必要があります。ActivityEmbeddingController#getInstance(Context)
SplitController#getInstance(Context)
RuleController#getInstance(Context)
- ディスプレイのアスペクト比に関連する列挙型のような動作定数を定義する
EmbeddingAspectRatio
クラスを追加しました。 - 分割レイアウトを定義する
SplitAttributes
クラスを追加しました。 - 分割レイアウトをカスタマイズするために、
SplitController
にSplitAttributes
計算関数を追加しました。 <ph type="x-smartling-placeholder">- </ph>
setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
: SplitAttributesCalculator API がデバイスでサポートされているかどうかを確認
EmbeddingRule#tag
フィールドを追加しました。SplitRule
での API の更新:defaultSplitAttributes
が追加されました。分割のデフォルトの分割レイアウトを定義します。splitRatio
とlayoutDirection
に代わるものです。- XML プロパティ
splitRatio
とsplitLayoutDirection
の変換をdefaultSplitAttributes
に追加しました。 - 最小寸法の定義を変更して、ピクセルではなく密度非依存ピクセル(dp)を使用するようにしました。
minHeightDp
を追加しました(デフォルト値: 600 dp)。minWidth
をminWidthDp
(デフォルト値: 600 dp)に変更しました。minSmallestWidth
をminSmallestWidthDp
(デフォルト値: 600 dp)に変更しました。maxAspectRatioInHorizontal
を追加しました(デフォルト値:ALWAYS_ALLOW
)。maxAspectRatioInPortrait
を追加しました(デフォルト値:1.4
)。- 終了動作定数を置き換えるために、ネストされたクラス
FinishBehavior
を定義しました。 - プロパティの変更を
SplitPairRule
とSplitPlaceholderRule
のネストクラスBuilder
に適用しました。
SplitInfo#getSplitRatio()
をSplitInfo#getSplitAttributes()
に置き換えて、追加の分割関連情報を提供しました。
WindowLayout
WindowInfoTracker
に非アクティビティ UI コンテキストのサポートを追加しました。- アクティビティ以外の UI コンテキストを
WindowMetricsCalculator
に追加しました。
移行手順
- アクティビティの埋め込みを有効にして、分割にアクティビティを表示するには、アプリで
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED
プロパティをマニフェストの<application>
タグに追加する必要があります。xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />
これにより、事前にシステムでアプリケーションの分割動作を最適化できます。 - 比率
SplitInfo
- 現在の分割がスタックされているかどうかを確認します。
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType
- 現在の比率を確認します。
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- 現在の分割がスタックされているかどうかを確認します。
SplitController
の移行:SplitController.getInstance()
がSplitController.getInstance(Context)
に変更されます。SplitController.initialize(Context, @ResId int)
件の変更:RuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int))
。SplitController.getInstance().isActivityEmbedded(Activity)
がActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity)
に変更されます。SplitController.getInstance().registerRule(rule)
がRuleController.getInstance(Context).addRule(rule)
に変更されます。SplitController.getInstance().unregisterRule(rule)
がRuleController.getInstance(Context).removeRule(rule)
に変更されます。SplitController.getInstance().clearRegisteredRules()
がRuleController.getInstance(Context).clearRules()
に変更されます。SplitController.getInstance().getSplitRules()
がRuleController.getInstance(Context).getRules()
に変更されます。
SplitRule
プロパティの移行:minWidth
とminSmallestWidth
で、ピクセルではなく dp 単位が使用されるようになりました。アプリは次の呼び出しを使用できます。kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )
または、minWith
をピクセル単位でdisplayMetrics#density
で割ります。
- 終了動作定数は、
FinishBehavior
列挙型のようなクラス定数に移行する必要があります。FINISH_NEVER
がFinishBehavior.NEVER
に変更されます。FINISH_ALWAYS
がFinishBehavior.ALWAYS
に変更されます。FINISH_ADJACENT
がFinishBehavior.ADJACENT
に変更されます。
- レイアウト方向を
SplitAttributes.LayoutDirection
に移行する必要があります。ltr
がSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
に変更されます。rtl
がSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
に変更されます。locale
がSplitAttributes.LayoutDirection.LOCALE
に変更されます。splitRatio
をSplitAttributes.SplitType.ratio(splitRatio)
に移行する必要があります。
SplitPairRule.Builder
の移行:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)
件の変更:kotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600.
setLayoutDirection(layoutDirection)
とsetSplitRatio(ratio)
の変更kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
とsetFinishSecondaryWithPrimary
はFinishBehavior
列挙型のような定数を受け取ります。詳しくは、「分割ルールの移行」をご覧ください。- 縦向きデバイスで分割を表示するには、
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
を使用します。
SplitPlaceholder.Builder
の移行:filters
パラメータとplaceholderIntent
パラメータのみを持ちます。他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。setFinishPrimaryWithPlaceholder
はFinishBehavior
列挙型のような定数を受け取ります。詳しくは、「分割ルールの移行」をご覧ください。setLayoutDirection(layoutDirection)
とsetSplitRatio(ratio)
は次のように変更されます。kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
- 縦向きデバイスで分割を表示するには、
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
を使用します。
バージョン 1.1.0-alpha06
2023 年 2 月 22 日
androidx.window:window-*:1.1.0-alpha06
がリリースされました。バージョン 1.1.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- UI コンテキストから
WindowLayoutInfo
を取得する試験運用版を公開しました。
API の変更
- アクティビティの埋め込みが利用可能かどうかを示す
splitSupportStatus
を追加しました。(I10024) - UI Context
WindowLayoutInfo
API を試験運用版にしました。(I58ee0) RearDisplay
モードを有効にするためのWindowAreaController
と API を導入しました。このモードは、現在のウィンドウを背面カメラに合わせたディスプレイに移動する際に使用します。(Iffcbf)- デフォルトの背景色を更新しました。(I1ac1b)
SplitAttributes
パラメータを追加しました。(I18bdd)SplitRule
、SplitAttributes
、SplitAttributesCalculator
の API を追加しました。(I92d23)maxAspectRatio
に関する API を改善しました。alwaysAllow()
とalwaysDisallow()
をALWAYS_ALLOW
とALWAYS_DISALLOW
に置き換えました。- @see の API ドキュメントを独立したドキュメントとして更新しました。(I3057b)
- 以下のコンストラクタは、アプリによって呼び出されるものではないため、公開 API から削除されました。
SplitInfo
コンストラクタActivityStack
コンストラクタ(Ide534)
SplitRule
がmaxAspectRatioInPortrait/Landscape
を受け取るようになりました。親境界のアスペクト比がリクエストされたmaxAspectRatio
以下の場合にのみ、アクティビティを分割できます。(Ia5990)RuleController#parseRules
を静的に変更しました。(I785df)- ActivityEmbedding に関する API を改善しました。
- API 命名規則の調整 - 次のインスタンスについては add / remove を使用します
registerRule
をaddRule
に変更unregisterRule
をremoveRule
に変更ActivityRule
は分割ルールではないため、getSplitRules
をgetRules
に置き換えました- 多数のルールを設定できる
RuleController#setRules
を追加しました SplitController
のルール関連の API がシングルトンRuleController
に抽出されます。該当する API は次のとおりです。addRule
removeRule
getRules
setRules
clearRules
parseRules
SplitController
の#isActivityEmbedded
がシングルトンActivityEmbeddingController
に抽出されます。該当する API は次のとおりです。isActivityEmbedded
SplitController#initialize
を削除しました。XML ファイルからルールを設定するには、RuleController#parseRules
と#setRules
を使用してください。変更前:SplitController.initialize(context, R.xml.static_rules)
変更後:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
- 静的ルールとランタイム ルールが区別されなくなりました。つまり、
#clearRules
を呼び出すと、静的 XML ルールの定義に登録されているか実行時かどうかにかかわらず、すべてのルールがクリアされます。SplitController#clearRegisteredRules
の従来の動作を利用するには、XML リソース ID を指定してRuleController#parseRules
を呼び出し、RuleController#setRules
を呼び出してルールを再度設定してください。 変更前:SplitController.getInstance(context).clearRegisteredRules()
変更後:val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)
(Ib3967)
- SplitRule API を改善しました。
- 最小サイズは、
SplitRule
のピクセルではなく DP で指定します。 - 最小サイズをオプションとして受け取るように
SplitRule
Builder をリファクタリングしました。(I95f17)
- 最小サイズは、
SplitController
を初期化するためにコンテキストを渡すようにしました。(I42549)SplitRule#layoutDir
の名前を#layoutDirection
に、SplitRule Builder#setLayoutDir
の名前をBuilder#setLayoutDirection
に変更しました。(I3f6d1)
バージョン 1.1.0-alpha04
2022 年 11 月 9 日
androidx.window:window-*:1.1.0-alpha04
がリリースされました。バージョン 1.1.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
ActivityEmbedding
のActivityStack
が空かどうかを判断するためのメソッドを公開しました。ActivityEmbedding
API から試験運用版 API タグを削除しました。- 構築には
Builder
がおすすめの方法であるため、ActivityRule
コンストラクタを非表示にしました。 WindowMetrics
でWindowInsets
を取得する試験運用版のメソッドを追加しました。- プレースホルダが終了しないように
SplitPlaceholderFinishBehavior
を更新しました。プレースホルダが終了すると、混乱を招く動作が発生していました。
API の変更
- val
isEmpty
を一般公開しました。これは funisEmpty
を置き換わるものです。 ActivityStack
パラメータのアクティビティの名前をactivitiesInProcess
に変更しました。(Ia5055)ActivityFilter#matchesClassName
とActivityFilter#matchesClassNameOrWildCard
は混乱を招くため、削除しました。- 呼び出し元がさまざまなフィルタを区別できるように、
ActivityFilter#componentName
とActivityFilter#intentAction
を追加しました。(I41f22) - 試験運用版 API から
@Deprecated
API を削除しました。(I216b3) - アクティビティ埋め込み API の
@ExperimentalWindowApi
を削除しました。(I69ebe) ActivityRule
コンストラクタを非表示にしました。代わりに Builder を使用してください。(If4eb6)- アクティビティが
ActivityFilter
に含まれているかどうかを確認する API を追加しました。(Ia43cf) WindowMetrics
クラスとWindowMetricsCalculatorCompat
クラスの変更を反映するように API ファイルを更新しました。(I667fe)ActivityEmbedding
プロパティの Javadoc とクラス名を更新しました。(Ia1386)- AndroidManifest.xml で使用する
ActivityEmbedding
プロパティ タグ名を追加しました。(Id1ad4) - 新しい API
SplitPlaceholderFinishBehavior
とSplitPlaceholderRule.finishPrimaryWithPlaceholder
を追加しました。これは、プレースホルダのアクティビティが終了するタイミング、およびアクティビティの埋め込みにおける関連するアクティビティの動作を定義する既存のSplitPlaceholderRule.finishPrimaryWithSecondary
に代わるものです。(I64647)
バグの修正
RearDisplay
モードを有効にするためのWindowAreaController
と API を導入しました。このモードは、現在のウィンドウを背面カメラに合わせたディスプレイに移動する際に使用します。(I388ab)
バージョン 1.1.0-alpha03
2022 年 7 月 27 日
androidx.window:window-*:1.1.0-alpha03
がリリースされました。バージョン 1.1.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- 埋め込みルールのデフォルト値を更新しました。
API の変更
- 埋め込みルール プロパティのデフォルト値を更新しました。(Ic4d35)
バージョン 1.1.0-alpha02
2022 年 5 月 11 日
androidx.window:window-*:1.1.0-alpha02
がリリースされました。バージョン 1.1.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
- Java と RxJava をサポートするためのアダプタ ライブラリをリリースします。
バージョン 1.1.0-alpha01
2022 年 5 月 11 日
androidx.window:window-*:1.1.0-alpha01
がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- Java と RxJava をサポートするためのアダプタをリリースします。
バージョン 1.1.0-alpha01
2022 年 4 月 20 日
androidx.window:window:1.1.0-alpha01
がリリースされました。バージョン 1.1.0-alpha01 に含まれる commit については、こちらをご覧ください。
新機能
- アプリがバックグラウンド処理に移行すると折りたたみ機能の出力が停止するバグを修正しました。
- 試験運用版の ActivityEmbedding API を拡張しました。
API の変更
- アクティビティが埋め込まれているかどうかを確認する公開 API。(I39eb7)
バグの修正
バージョン 1.0
バージョン 1.0.0
2022 年 1 月 26 日
androidx.window:window-*:1.0.0
がリリースされました。バージョン 1.0.0 に含まれる commit については、こちらをご覧ください。
1.0.0 の主な機能
WindowInfoTracker
とFoldingFeature
により折りたたみ式スマートフォンをサポートします。WindowMetricsCalculator
は現在の WindowMetrics の計算に役立ちます。
バージョン 1.0.0-rc01
2021 年 12 月 15 日
androidx.window:window-*:1.0.0-rc01
がリリースされました。バージョン 1.0.0-rc01 に含まれる commit については、こちらをご覧ください。
新機能
WindowInfoTracker
による折りたたみ式スマートフォンのサポートを追加しました。WindowMetrics
の現在値と最大値を計算するメソッドを追加しました。- サポート用のテスト API を追加しました。
バージョン 1.0.0-beta04
2021 年 11 月 17 日
androidx.window:window-*:1.0.0-beta04
がリリースされました。バージョン 1.0.0-beta04 に含まれる commit については、こちらをご覧ください。
新機能
- WindowInfoRepository の名前を WindowInfoTracker に変更しました。
- Activity を WindowInfoTracker の明示的なメソッド依存関係にします。
- Robolectric を使用するデベロッパーをサポートするために、WindowMetricsCalculator に簡単な TestRule を追加しました。
API の変更
- 拡張機能の抽出(I25a5f)
- ActivityStack に isEmpty を追加しました(I5a4e6)
- WindowInfoRepository の名前を WindowInfoTracker に変更しました。
- java/rxjava/testing の依存関係を一致するように更新しました。(I0da63)
- 単純な WindowMetricsCalculator のテストルールを追加しました。(Ibacdb)
バージョン 1.0.0-beta03
2021 年 10 月 27 日
androidx.window:window-*:1.0.0-beta03
がリリースされました。バージョン 1.0.0-beta03 に含まれる commit については、こちらをご覧ください。
新機能
- 試験運用版のアクティビティ埋め込み API を追加しました。この最初のレイアウト バージョンでは、2 つのアクティビティを並べて表示できます。
API の変更
- currentWindowMetrics API は、正確に提供できないため削除しました。代わりに WindowMetricsCalculator を使用してください。(Icda5f)
- 拡張機能 API を更新しました。(Ica92b)
- アクティビティを埋め込んで親タスク ウィンドウ内に並べて表示できる新機能のインターフェースを追加しました。(I5711d)
- WindowMetrics と WindowLayoutInfo のコンストラクタを非表示にしました。代わりにテスト API を使用してください。(I5a1b5)
- 偽の WindowLayoutInfo オブジェクトを作成する API を追加しました。(I4a2fd)
バグの修正
- メモリリークを解決しました。(I3fc79、b/202989046)
バージョン 1.0.0-beta02
2021 年 9 月 1 日
androidx.window:window-*:1.0.0-beta02
がリリースされました。バージョン 1.0.0-beta02 に含まれる commit については、こちらをご覧ください。
新機能
- 試験運用版 API にアノテーションを付けるために、試験運用版アノテーションを追加します。(I9f1b6)
- Rect を受け入れるテスト用 FoldingFeature を作成するテストメソッドを追加します。これにより、実際の Activity ではなく Robolectric を使用する場合のテストが容易になります。(Id1cca)
バージョン 1.0.0-beta01
2021 年 8 月 18 日
androidx.window:window-*:1.0.0-beta01
がリリースされました。バージョン 1.0.0-beta01 に含まれる commit については、こちらをご覧ください。
新機能
- 古い定数を削除し、
FoldingFeature
をインターフェースに変更しました。
API の変更
- 古い定数を削除し、FoldFeature をインターフェースに変更します。(I9a2d5)
バグの修正
Test Core
ライブラリに依存するライブラリがバージョン1.4.0
にアップグレードされました。Android プラットフォーム バージョン S で動作するようになります。(I88b72、b/189353863)
バージョン 1.0.0-alpha10
2021 年 8 月 4 日
androidx.window:window-*:1.0.0-alpha10
がリリースされました。バージョン 1.0.0-alpha10 に含まれる commit については、こちらをご覧ください。
新機能
- WindowInfoRepo の名前を WindowInfoRepository に変更し、対応するクラス / ファイルを調整します。
- 時間の経過とともに値が変化するため、現在のウィンドウ指標を WindowInfoRepository の Flow に変換します。
- WindowInfoRepoJavaAdapter の名前を WindowInfoRepoCallbackAdapter に変更します。
- テスト用の FoldingFeature オブジェクトを作成するヘルパー メソッドを追加します。
- パッケージを更新し、クラスがサポートする機能に基づいてクラスをグループ化します。
API の変更
- ActivityExt の名前を ActivityExtensions に変更し、Repo を Repository に変更します。(I61a16)
- クラスのパッケージを更新します。(I23ae2)
- WindowInfoRepo から WindowMetrics を削除します。(I24663)
- WindowManager を削除し、WindowInfoRepo を使用します。
- WindowBackend を内部化します。(I06d9a)
- ウィンドウ指標を Flow に変換します。
- Java アダプタの名前を WindowInfoRepoCallbackAdapter に変更します。
- callbackFlow を削除します。したがって、今後は試験運用版 API を使用しません。(Ia4d15)
- テスト表示機能を作成するヘルパー メソッドを追加します。
- occlusionMode を occlusionType に変更します。(If4cff)
バグの修正
- core ライブラリが削除される ProGuard エラーを修正しました。
- WindowLayoutInfo が追加のサブスクライバーに配信されないエラーを修正しました。
- 構成を変更しても折りたたみ機能の更新がトリガーされないエラーを修正しました。
バージョン 1.0.0-alpha09
2021 年 6 月 30 日
androidx.window:window-*:1.0.0-alpha09
がリリースされました。バージョン 1.0.0-alpha09 に含まれる commit については、こちらをご覧ください。
新機能
- 整数の定数を制限なしの列挙型に変更します。
- テスト用の折りたたみ機能を作成するためのテスト ユーティリティを追加します。
API の変更
- テスト表示機能を作成するヘルパー メソッドを追加します。(I3cf54)
occlusionMode
をocclusionType
に変更します。
バグの修正
- データ ストリームの複数のコンシューマを追加する際に、初期値を出力します。
バージョン 1.0.0-alpha08
2021 年 6 月 16 日
androidx.window:window-*:1.0.0-alpha08
がリリースされました。バージョン 1.0.0-alpha08 に含まれる commit については、こちらをご覧ください。
新機能
- WindowInfoRepository を使用する場合のテストを容易にするため、テスト アーティファクトをリリースしました。WindowInfoRepository を使用して、DisplayFeatures と WindowMetrics に関する情報を取得できます。(I57f66、Ida620)
バージョン 1.0.0-alpha07
2021 年 6 月 2 日
androidx.window:window-*:1.0.0-alpha07
がリリースされました。バージョン 1.0.0-alpha07 に含まれる commit については、こちらをご覧ください。
新機能
- ウィンドウ ライブラリのコアを Kotlin に移行します。今後は、コルーチンと suspend 関数を使用して非同期データを公開します。
- WindowLayoutInfo のストリームと WindowMetrics を取得するための主要な接点として WindowInfoRepo を追加します。
- コールバックの登録と登録解除を行う Java 対応 API を公開する
window-java
アーティファクトを導入しました。 - RxJava に対応させた API を公開するアーティファクト
window-rxjava2
、window-rxjava3
を導入しました。
API の変更
- 依存関係を全体に提供する
WindowServices
を追加しました。- ウィンドウ レイアウト情報を消費するコルーチン ベースの API を追加しました。(Iab70f)
- ウィンドウ マネージャー ライブラリのコアを Kotlin に移行しました。(Icca34)
バグの修正
- 形状の境界を表すデータクラスを追加しました。(I6dcd1)
バージョン 1.0.0-alpha06
2021 年 5 月 5 日
androidx.window:window:1.0.0-alpha06
がリリースされました。バージョン 1.0.0-alpha06 に含まれる commit については、こちらをご覧ください。
新機能
- Google は Kotlin への移行を開始しており、次のリリースで完了する予定です。
- DeviceState が公開 API から削除されました。代わりに FoldingFeature を使用してください。
- 現時点で
STATE_FLIPPED
はいかなるユースケースでもサポートされていないため、FoldingFeature の状態から削除しました。 - サポートが終了した他の API も削除しました。
API の変更
- Kotlin を依存関係として追加しました。
- コアライブラリを Kotlin に移行しました。(Idd995)
DisplayFeature
ビルダーを削除しました。(I61fa4)- 公開 API から
DeviceState
を削除しました。代わりにFoldingFeature
を使用してください。(Id6079) - 拡張機能からデバイス状態のコールバックを削除しました。(I5ea83)
- FoldingFeature から
STATE_FLIPPED
を削除しました。(I9c4e1) - 非推奨となった登録メソッドを削除しました。(Ib381b)
バージョン 1.0.0-alpha05
2021 年 3 月 24 日
androidx.window:window:1.0.0-alpha05
がリリースされました。バージョン 1.0.0-alpha05 に含まれる commit については、こちらをご覧ください。
新機能
FoldingFeature に便利なメソッドを追加し、機能が分離しているかどうか、覆い隠しているかどうか、ヒンジの向きをアプリが判断できるようにしました。また、以下のために、ヒンジタイプを非表示にします。
WindowManager から同期読み取りメソッドを削除します。同期読み取りメソッドは、暗黙的な競合状態が生じるため、エラーが発生しやすくなります。WindowLayoutInfo のアップデートを受け取るため、リスナーとコールバックを登録します。
API の変更
バージョン 1.0.0-alpha04
2021 年 3 月 10 日
androidx.window:window:1.0.0-alpha04
がリリースされました。バージョン 1.0.0-alpha04 に含まれる commit については、こちらをご覧ください。
新機能
- OEM が実装されていない場合、WindowLayoutInfo が出力されないバグを修正しました。ここでは空の WIndowLayoutInfo を出力するようにします。
- アプリがバックグラウンドで動作しているときにヒンジ状態が変わると、状態が正しく更新されないバグを修正しました。この状態は統一されるようになります。
- ランタイム依存関係からの警告を無視するように、ProGuard ファイルを更新しました。
バグの修正
- OEM ライブラリがない場合は、空の値を出力します。(Ide935)
バージョン 1.0.0-alpha03
2021 年 2 月 18 日
androidx.window:window:1.0.0-alpha03
がリリースされました。バージョン 1.0.0-alpha03 に含まれる commit については、こちらをご覧ください。
新機能
- OEM の実装が空の場合は、WindowLayoutInfo に空の値を出力します。これにより、より多くのデバイスでライブラリを簡単に使用できるようになります。ただし、API は非同期であるため、アプリで防御のためのコードを作成してタイムアウト後にデフォルト値を出力することをおすすめします。OEM の実装について Google はいかなる保証もいたしません。また、初期値が遅延する可能性もあります。
バグの修正
- OEM ライブラリがない場合は、空の値を出力します。(Ide935)
バージョン 1.0.0-alpha02
2021 年 1 月 27 日
androidx.window:window:1.0.0-alpha02
がリリースされました。バージョン 1.0.0-alpha02 に含まれる commit については、こちらをご覧ください。
新機能
API を合理化して誤りを減らすために、いくつかの API のサポートを終了しました。重要な変更の 1 つは、WindowManager から同期読み取りオペレーションを削除して DeviceState のサポートを終了したことです。同期読み取りオペレーションは競合状態を引き起こし、正しく UI が表示されない原因になることがあります。
DisplayFeature は、他の機能で今後実装されるインターフェースに移行されました。最初に提供される機能は FoldingFeature で、これは画面の折りたたみまたはヒンジを表現します。これには、DeviceState に取って代わるヒンジの状態も含まれます。
WindowMetrics は Android 11 で導入されましたが、その目的は、デベロッパーがウィンドウに関する指標(ウィンドウの画面上の位置とサイズ、システム インセットなど)を簡単にクエリできるようにすることでした。このリリースでは、デベロッパーが WindowMetrics を利用して古い Android バージョンのサポートを継続できるように、API をバックポートしました。WindowMetrics は、
WindowManager#getCurrentWindowMetrics()
API および WindowManager#getMaximumWindowMetrics() API で取得できます。
API の変更
- 次のアルファ版で削除される API のサポートを終了しました(Ib7cc4)
ExtensionInterface
を更新して明示的なアクティビティ参照を受け入れるようにしました。(I07ded)- WindowMetrics API を導入しました。(I3ccee)
- WindowManager から同期読み取りメソッドを削除しました(I69983)
- ExtensionWindowBackend パッケージが保護されるようにしました。(Ied208)
バグの修正
- 視覚的コンテキストを受け入れるように
ExtensionInterface
API を更新しました。(I8e827)
外部からの協力
- DeviceState と WindowLayoutInfo を結合して、データに簡単にアクセスできるようにしました。(Id34f4)
バージョン 1.0.0-alpha01
2020 年 2 月 27 日
androidx.window:window:1.0.0-alpha01
と androidx.window:window-extensions:1.0.0-alpha01
がリリースされました。バージョン 1.0.0-alpha01 に含まれる commit については、こちらをご覧ください。
これは、Window Manager ライブラリの最初のリリースです。
新機能
DisplayFeature
: この新しい API は、連続する平坦な画面サーフェスが蝶番や折りたたみの部分で途切れた状態を識別します。DeviceState
: この新しい API は、スマートフォンの定義済みの物理状態(CLOSED
、OPENED
、HALF_OPENED
など)のリストの中から現在の物理状態を提供します。