/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ // ĠSide car Ġis Ġdeprecated Ġbut Ġconsuming Ġcode Ġmust Ġbe Ġmaintained Ġfor Ġcompatibility Ġreasons Ċ @ file : Suppress (" DE PREC ATION ") Ċ Ċ package Ġandroidx . window . layout Ċ Ċ import Ġandroid . graphics . Rect Ċ import Ġandroidx . window . core . Bounds Ċ import Ġandroidx . window . layout . Fold ing Feature . State . Companion . FLAT Ċ import Ġandroidx . window . layout . Fold ing Feature . Type . Companion . FOLD Ċ import Ġandroidx . window . side car . Side car Device State Ċ import Ġandroidx . window . side car . Side car Display Feature Ċ import Ġandroidx . window . side car . Side car Window Layout Info Ċ import Ġorg . junit . Assert . assertEquals Ċ import Ġorg . junit . Assert . assertTrue Ċ import Ġorg . junit . Test Ċ Ċ public Ġclass ĠSide car Adapter Test Ġ: ĠTrans lator Test Interface Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġoverride Ġfun Ġtest Translate _ valid Feature () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠRect ( WINDOW _ BOUN DS . left , Ġ 0 , ĠWINDO W _ BOUN DS . right , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfold Feature Ġ= Ġside car Display Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbounds , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Display Feature . TYPE _ FOLD ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Display Features Ġ= ĠlistOf ( fold Feature ) ĊĠĠĠĠĠĠĠ Ġval Ġwindow Layout Info Ġ= Ġside car Window Layout Info ( side car Display Features ) ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġside car Device State ( Side car Device State . POST URE _ OPEN ED ) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Features Ġ= ĠlistOf ( Fold ing Feature ( Bounds ( fold Feature . rect ), ĠF OLD , ĠFL AT )) ĊĠĠĠĠĠĠĠ Ġval Ġexpected Ġ= ĠWindow Layout Info ( expected Features ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Adapter Ġ= ĠSide car Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġside car Adapter . translate ( window Layout Info , Ġstate ) ĊĠĠĠĠĠĠĠ ĠassertEquals ( expected , Ġactual ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Translate Window Layout Info _ filter Remov es Empty Bounds Feature () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġside car Display Features Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside car Display Feature ( Rect (), ĠSide car Display Feature . TYPE _ FOLD ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Adapter Ġ= ĠSide car Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġwindow Layout Info Ġ= Ġside car Window Layout Info ( side car Display Features ) ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġside car Device State ( Side car Device State . POST URE _ OPEN ED ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġside car Adapter . translate ( window Layout Info , Ġstate ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( actual . display Features . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Translate Window Layout Info _ filter Remov es Non Empty Area Fold Feature () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfull Width Bounds Ġ= ĠRect ( 0 , Ġ 1 , ĠWINDO W _ BOUN DS . width (), Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġval Ġfull Height Bounds Ġ= ĠRect ( 1 , Ġ 0 , Ġ 2 , ĠWINDO W _ BOUN DS . height ()) ĊĠĠĠĠĠĠĠ Ġval Ġside car Display Features Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside car Display Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Width Bounds , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Display Feature . TYPE _ FOLD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside car Display Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Height Bounds , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Display Feature . TYPE _ FOLD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Callback Adapter Ġ= ĠSide car Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġwindow Layout Info Ġ= Ġside car Window Layout Info ( side car Display Features ) ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġside car Device State ( Side car Device State . POST URE _ OPEN ED ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġside car Callback Adapter . translate ( window Layout Info , Ġstate ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( actual . display Features . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO ( b / 1 7 5 5 0 7 3 1 0 ): ĠRe in state Ġafter Ġfix . ĊĠĠĠ Ġ// Ġ@ Test ĊĠĠĠ Ġoverride Ġfun Ġtest Translate Window Layout Info _ filter Remov es H inge Feature Not Sp anning Full Dimension () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfull Width Bounds Ġ= ĠRect ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . left , ĠWINDO W _ BOUN DS . top , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . right Ġ/ Ġ 2 , Ġ 2 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġfull Height Bounds Ġ= ĠRect ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . left , ĠWINDO W _ BOUN DS . top , Ġ 2 , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . bottom Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Display Features Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside car Display Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Width Bounds , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Display Feature . TYPE _ H INGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside car Display Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Height Bounds , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Display Feature . TYPE _ H INGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Adapter Ġ= ĠSide car Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġwindow Layout Info Ġ= Ġside car Window Layout Info ( side car Display Features ) ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġside car Device State ( Side car Device State . POST URE _ OPEN ED ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġside car Adapter . translate ( window Layout Info , Ġstate ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( actual . display Features . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠTODO ( b / 1 7 5 5 0 7 3 1 0 ): ĠRe in state Ġafter Ġfix . ĊĠĠĠ Ġ// Ġ@ Test ĊĠĠĠ Ġoverride Ġfun Ġtest Translate Window Layout Info _ filter Remov es Fold Feature Not Sp anning Full Dimension () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfull Width Bounds Ġ= ĠRect ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . left , ĠWINDO W _ BOUN DS . top , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . right Ġ/ Ġ 2 , ĠWINDO W _ BOUN DS . top ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġfull Height Bounds Ġ= ĠRect ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . left , ĠWINDO W _ BOUN DS . top , ĠWINDO W _ BOUN DS . left , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠWINDO W _ BOUN DS . bottom Ġ/ Ġ 2 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġextension Display Features Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside car Display Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Width Bounds , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Display Feature . TYPE _ H INGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġside car Display Feature ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfull Height Bounds , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Display Feature . TYPE _ H INGE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Callback Adapter Ġ= ĠSide car Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġwindow Layout Info Ġ= Ġside car Window Layout Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension Display Features ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġside car Device State ( Side car Device State . POST URE _ OPEN ED ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġside car Callback Adapter . translate ( window Layout Info , Ġstate ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( actual . display Features . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġoverride Ġfun Ġtest Translate Window Layout Info _ filter Remov es Unknown Feature () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠRect ( WINDOW _ BOUN DS . left , Ġ 0 , ĠWINDO W _ BOUN DS . right , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġunknown Feature Ġ= Ġside car Display Feature ( bounds , Ġ 0 Ġ/* Ġunknown Ġ*/) ĊĊĠĠĠĠĠĠĠ Ġval Ġside car Display Features Ġ= ĠlistOf ( unknown Feature ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Adapter Ġ= ĠSide car Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġwindow Layout Info Ġ= Ġside car Window Layout Info ( side car Display Features ) ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġside car Device State ( Side car Device State . POST URE _ OPEN ED ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġside car Adapter . translate ( window Layout Info , Ġstate ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( actual . display Features . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Translate Window Layout Info _ filter Remov es Invalid Posture Feature () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbounds Ġ= ĠRect ( WINDOW _ BOUN DS . left , Ġ 0 , ĠWINDO W _ BOUN DS . right , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġunknown Feature Ġ= Ġside car Display Feature ( bounds , Ġ- 1 0 0 0 Ġ/* Ġinvalid Ġ*/) ĊĠĠĠĠĠĠĠ Ġval Ġside car Display Features Ġ= ĠlistOf ( unknown Feature ) ĊĠĠĠĠĠĠĠ Ġval Ġside car Adapter Ġ= ĠSide car Adapter () ĊĠĠĠĠĠĠĠ Ġval Ġwindow Layout Info Ġ= Ġside car Window Layout Info ( side car Display Features ) ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= Ġside car Device State ( Side car Device State . POST URE _ OPEN ED ) ĊĠĠĠĠĠĠĠ Ġval Ġactual Ġ= Ġside car Adapter . translate ( window Layout Info , Ġstate ) ĊĠĠĠĠĠĠĠ ĠassertTrue ( actual . display Features . isEmpty ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠWINDO W _ BOUN DS Ġ= ĠRect ( 0 , Ġ 0 , Ġ 5 0 , Ġ 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġside car Display Feature ( bounds : ĠRect , Ġtype : ĠInt ): ĠSide car Display Feature Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfeature Ġ= ĠSide car Display Feature () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature . rect Ġ= Ġbounds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeature . type Ġ= Ġtype ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfeature ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġside car Window Layout Info ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeatures : ĠList < Side car Display Feature > ĊĠĠĠĠĠĠĠ Ġ): ĠSide car Window Layout Info Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Info Ġ= ĠSide car Window Layout Info () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Adapter . set Side car Display Features ( layout Info , Ġfeatures ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġlayout Info ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġside car Device State ( post ure : ĠInt ): ĠSide car Device State Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdevice State Ġ= ĠSide car Device State () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSide car Adapter . set Side car Device Posture ( device State , Ġpost ure ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġdevice State ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ