rememberNarratorOverlayBounds
fun <T> rememberNarratorOverlayBounds(transform: (x: Int?, y: Int?, width: Int, height: Int) -> T): T?
オーバーレイウィンドウの位置・サイズの保存値を購読し、transform で呼び出し側の型へ変換して返す。 読み込みが完了するまでは null を返す。
rememberNarratorOverlayVisible と同じ理由で、読み込み前を null で表現する。保存値より先に 既定位置でウィンドウを生成してしまうと、復元位置へ移動する様子がユーザーに見えてしまうため、 呼び出し側は値が揃うまでウィンドウを生成しない。
ウィンドウをホストする app:desktopApp と、その橋渡しをする app:shared は :core:domain を 参照できない(moduleGraphAssert の :app:.*App -X> :core:domain / :app:shared -X> :core:.*)。 そのため OverlayWindowBounds をそのまま返さず、transform に位置・サイズを渡して呼び出し側の 型へ変換する。位置が未保存の場合は OVERLAY_WINDOW_POSITION_UNSPECIFIED という番兵ではなく x / y を null として渡し、呼び出し側が番兵の値を知らなくて済むようにする。
application スコープからの利用となり ViewModelStoreOwner が無いため、ViewModel を経由せず UseCase を直接 inject する(rememberNarratorOverlayVisible の KDoc を参照)。