/* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġandroidx . sl iding panel ayout . widget Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . sl iding panel ayout . test . R Ċ import Ġandroidx . sl iding panel ayout . widget . helpers . Fake Window Backend Ċ import Ġandroidx . sl iding panel ayout . widget . helpers . Test Activity Ċ import Ġandroidx . sl iding panel ayout . widget . helpers . findViewById Ċ import Ġandroidx . sl iding panel ayout . widget . helpers . find View X Ċ import Ġandroidx . test . core . app . Activity Scenario Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Large Test Ċ import Ġandroidx . test utils . with Activity Ċ import Ġandroidx . window . WindowManager Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . After Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ /** Ċ Ġ* ĠTest Ġviews Ġsplit Ġon Ġthe Ġfold Ċ Ġ*/ Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ @ Large Test Ċ public Ġclass ĠFold Test Ġ{ ĊĊĠĠĠ Ġ@ After ĊĠĠĠ Ġpublic Ġfun ĠtearDown () Ġ{ ĊĠĠĠĠĠĠĠ ĠTest Activity . on Activity Created Ġ= Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġsplit Ġviews Ġin Ġmiddle Ġwhen Ġfold Ġvert ically ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Fold Vertical () Ġ{ ĊĠĠĠĠĠĠĠ ĠTest Activity . on Activity Created Ġ= Ġ{ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . set ContentView ( R . layout . activity _ test _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsl iding Pane Layout Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . findViewById < Sl iding Pane Layout >( R . id . sl iding _ pane _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfold ing Feature Observer Ġ= ĠSl iding Pane Layout . Fold ing Feature Observer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Window Backend ( Fake Window Backend . Fold Axis . VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsl iding Pane Layout . set Fold ing Feature Observer ( fold ing Feature Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( Activity Scenario . launch ( Test Activity :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfold Position Ġ= Ġwith Activity Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Window Backend . get Fold Position ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Window Backend . Fold Axis . VERTICAL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( findViewById ( R . id . list _ pane ). width ). isEqualTo ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . detail _ pane ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find View X ( R . id . detail _ pane )). isEqualTo ( fold Position . left ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġsplit Ġviews Ġnot Ġapplicable Ġwhen Ġfold Ġh orizontally . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Fold Horizontal () Ġ{ ĊĠĠĠĠĠĠĠ ĠTest Activity . on Activity Created Ġ= Ġ{ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . set ContentView ( R . layout . activity _ test _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsl iding Pane Layout Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . findViewById < Sl iding Pane Layout >( R . id . sl iding _ pane _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfold ing Feature Observer Ġ= ĠSl iding Pane Layout . Fold ing Feature Observer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Window Backend ( Fake Window Backend . Fold Axis . HORIZONTAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsl iding Pane Layout . set Fold ing Feature Observer ( fold ing Feature Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( Activity Scenario . launch ( Test Activity :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( findViewById ( R . id . list _ pane ). width ). is LessThan ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. detail _ pane ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find View X ( R . id . list _ pane )). is LessThan ( find View X ( R . id . detail _ pane )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġsplit Ġviews Ġwhen Ġfold Ġpane Ġis Ġsmaller Ġthan Ġrequired Ġmin Ġwidth ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Fold Ex ceed Min Width () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdetail View Extra Width Ġ= Ġ 2 0 0 ĊĠĠĠĠĠĠĠ ĠTest Activity . on Activity Created Ġ= Ġ{ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . set ContentView ( R . layout . activity _ test _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsl iding Pane Layout Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . findViewById < Sl iding Pane Layout >( R . id . sl iding _ pane _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfold ing Feature Observer Ġ= ĠSl iding Pane Layout . Fold ing Feature Observer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFake Window Backend ( Fake Window Backend . Fold Axis . VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsl iding Pane Layout . set Fold ing Feature Observer ( fold ing Feature Observer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdetail View Ġ= Ġactivity . findViewById < View >( R . id . detail _ pane ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= ĠWindow Manager ( activity ). current Window Metrics . bounds ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetail View . minimum Width Ġ= Ġwindow . width () Ġ/ Ġ 2 Ġ+ Ġdetail View Extra Width ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( Activity Scenario . launch ( Test Activity :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġwith Activity Ġ{ ĠWindow Manager ( this ). current Window Metrics . bounds Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( findViewById ( R . id . detail _ pane ). width ). isEqualTo ( window . width ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTest Ġlayout Ġupdates Ġwhen Ġun fold Ġa Ġfold able Ġdevice ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġpublic Ġfun Ġtest Un fold () Ġ{ ĊĠĠĠĠĠĠĠ ĠTest Activity . on Activity Created Ġ= Ġ{ Ġactivity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . set ContentView ( R . layout . activity _ test _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsl iding Pane Layout Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . findViewById < Sl iding Pane Layout >( R . id . sl iding _ pane _ fold _ layout ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfake Window Backend Ġ= ĠFake Window Backend ( Fake Window Backend . Fold Axis . VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfake Window Backend . toggle Fold State ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfold ing Feature Observer Ġ= ĠSl iding Pane Layout . Fold ing Feature Observer ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfake Window Backend ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsl iding Pane Layout . set Fold ing Feature Observer ( fold ing Feature Observer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith ( Activity Scenario . launch ( Test Activity :: class . java )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( findViewById ( R . id . list _ pane ). width ). is LessThan ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. detail _ pane ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). width ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( find View X ( R . id . list _ pane )). is LessThan ( find View X ( R . id . detail _ pane )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }