WindowManager
最新の更新 | 安定版リリース | リリース候補版 | ベータ版リリース | アルファ版リリース |
---|---|---|---|---|
2024 年 5 月 29 日 | 1.3.0 | - | - | - |
依存関係の宣言
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.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 については、こちらをご覧ください。
新機能
RequiresApi
チェックを追加して、正しく機能させるために特定のバージョンの拡張機能が必要な API をチェックしました。- デバイス上の拡張機能のバージョンを公開するための 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 を試験運用版としてマークし、API の変更を 1.3 の安定版リリースで継続できるようにしました。(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)- 背景色の API が削除され、安定性が向上しました。(I34c3e)
- Window Area 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
のサポートを終了add
/removeSplitCallback
をSplitControllerCallbackAdapter
に移動SplitInfo
リストを取得するためのFlow
サポートを追加しました。(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
を作成します。TestSplitInfo
を追加してテスト用のSplitInfo
を作成します。(I8e779)
- デベロッパーがカスタマイズした
SplitAttributesCalculator
を検証できるように、架空のSplitAttributesCalculatorParams
を作成する方法を追加しました。(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
でオーバーライドすると、Context ベースの API を含むwindowLayoutInfo
のすべての値がオーバーライドされます。
API の変更
- 未指定の中央折りたたみ機能の定数を追加しました。(I7530c)
バグの修正
WindowLayoutInfoPublishRule
を更新して、Context
ベースのWindowLayoutInfo
ベースのオーバーライドをサポートするようにしました。(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
クラスを追加しました。 - 分割レイアウトをカスタマイズするため、
SplitAttributes
計算関数をSplitController
に追加しました。setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
:SplitAttributesCalculator
API がデバイスでサポートされているかどうかを確認する
EmbeddingRule#tag
フィールドを追加しました。SplitRule
での API の更新:defaultSplitAttributes
を追加しました。splitRatio
とlayoutDirection
に代わる、分割のデフォルトの分割レイアウトを定義します。- XML プロパティ
splitRatio
とsplitLayoutDirection
のdefaultSplitAttributes
への翻訳を追加しました。 - 最小サイズの定義を変更し、ピクセルではなく密度非依存ピクセル(dp)を使用するようにしました。
- デフォルト値 600 dp の
minHeightDp
を追加しました。 minWidth
をminWidthDp
(デフォルト値: 600 dp)に変更しました。minSmallestWidth
をminSmallestWidthDp
(デフォルト値: 600 dp)に変更しました。- デフォルト値
ALWAYS_ALLOW
のmaxAspectRatioInHorizontal
を追加しました。 - デフォルト値 1.4 の
maxAspectRatioInPortrait
を追加しました。 - 終了動作の定数を置き換えるために、ネストされたクラス
FinishBehavior
を定義しました。 - プロパティの変更をビルダーのネストクラス(
SplitPairRule
とSplitPlaceholderRule
)に適用しました。
- 分割関連の追加の情報を提供するため、
SplitInfo#getSplitRatio()
をSplitInfo#getSplitAttributes()
に置き換えました。
WindowLayout
- 試験運用版の非アクティビティ UI コンテキストのサポートを
WindowInfoTracker
に追加しました。 - 試験運用版の非アクティビティ 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.
に変更されます。kotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
に対するsetLayoutDirection(layoutDirection)
とsetSplitRatio(ratio)
の変更setFinishPrimaryWithSecondary
とsetFinishSecondaryWithPrimary
は、FinishBehavior
列挙型のような定数を受け取ります。詳しくは、「SplitRule の移行」をご覧ください。- 縦向きのデバイスで分割を表示するには、
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
を使用します。
SplitPlaceholder.Builder
の移行:filters
パラメータとplaceholderIntent
パラメータのみを持ちます。他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。setFinishPrimaryWithPlaceholder
は、FinishBehavior
列挙型のような定数を受け取ります。詳しくは、「SplitRule の移行」をご覧ください。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 については、こちらをご覧ください。
新機能
ActivityEmbedding
を安定版 API としてリリースします。- 各種バグを修正しました。
バージョン 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
クラスを追加しました。 - 分割レイアウトをカスタマイズするため、
SplitAttributes
計算関数をSplitController
に追加しました。setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
: SplitAttributesCalculator API がデバイスでサポートされているかどうかを確認する
EmbeddingRule#tag
フィールドを追加しました。SplitRule
での API の更新:defaultSplitAttributes
を追加しました。splitRatio
とlayoutDirection
に代わる、分割のデフォルトの分割レイアウトを定義します。- XML プロパティ
splitRatio
とsplitLayoutDirection
のdefaultSplitAttributes
への翻訳を追加しました。 - 最小サイズの定義を変更し、ピクセルではなく密度非依存ピクセル(dp)を使用するようにしました。
- デフォルト値 600 dp の
minHeightDp
を追加しました。 minWidth
をminWidthDp
(デフォルト値: 600 dp)に変更しました。minSmallestWidth
をminSmallestWidthDp
(デフォルト値: 600 dp)に変更しました。- デフォルト値
ALWAYS_ALLOW
のmaxAspectRatioInHorizontal
を追加しました。 - デフォルト値
1.4
のmaxAspectRatioInPortrait
を追加しました。 - 終了動作の定数を置き換えるために、ネストされたクラス
FinishBehavior
を定義しました。 - プロパティの変更を
SplitPairRule
とSplitPlaceholderRule
のBuilder
ネストクラスに適用しました。
- 分割関連の追加の情報を提供するため、
SplitInfo#getSplitRatio()
をSplitInfo#getSplitAttributes()
に置き換えました。
WindowLayout
- アクティビティ以外の UI コンテキストのサポートを
WindowInfoTracker
に追加しました。 - アクティビティ以外の 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
列挙型のような定数を受け取ります。詳しくは、「SplitRule の移行」をご覧ください。- 縦向きのデバイスで分割を表示するには、
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)
を使用します。
SplitPlaceholder.Builder
の移行:filters
パラメータとplaceholderIntent
パラメータのみを持ちます。他のプロパティはセッターに移動します。詳しくは、「SplitPairRule.Builder の移行」をご覧ください。setFinishPrimaryWithPlaceholder
は、FinishBehavior
列挙型のような定数を受け取ります。詳しくは、「SplitRule の移行」をご覧ください。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
など)のリストの中から現在の物理状態を提供します。