/* Ċ Ġ* ĠThe ĠMIT ĠLicense Ġ( MIT ) Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 - 2 0 2 1 ĠD mit ri y ĠG or bun ov Ġ( d mit ri y . goto @ gmail . com ) Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġme . dm dev . pre mo . sample Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . compose . setContent Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . remember Ċ import Ġandroidx . compose . ui . graphics . to Compose Rect Ċ import Ġandroidx . compose . ui . platform . Local Configuration Ċ import Ġandroidx . compose . ui . platform . Local Density Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġandroidx . window . layout . Window Metrics Calculator Ċ import Ġme . dm dev . pre mo . Pm Activity Ċ import Ġme . dm dev . pre mo . Pm Activity Delegate Ċ import Ġme . dm dev . pre mo . navigation . handle Back Ċ Ċ class ĠMainActivity Ġ: ĠP m Activity < Main Pm >() Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġdelegate : ĠP m Activity Delegate < Main Pm > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠP m Activity Delegate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpm Activity Ġ= Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpm Description Ġ= ĠMain Pm . Description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpm Factory Ġ= ĠMain Pm Factory (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpm State Saver Ġ= ĠJson Pm State Saver (), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġset Content Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Sizes Ġ= Ġremember Window Sizes () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMain Screen ( delegate . presentation Model , Ġwindow Sizes ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( delegate . presentation Model . handle Back (). not ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Composable Ċ fun ĠActivity . remember Window Sizes (): ĠWindow Sizes Ġ{ ĊĠĠĠ Ġval Ġconfiguration Ġ= ĠLocal Configuration . current ĊĠĠĠ Ġval Ġwindow Metrics Ġ= Ġremember ( configuration ) Ġ{ ĊĠĠĠĠĠĠĠ ĠWindow Metrics Calculator . get OrCreate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. compute Current Window Metrics ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġwindow Dp Size Ġ= Ġwith ( Local Density . current ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow Metrics . bounds . to Compose Rect (). size . to Dp Size () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġwidth Window Size Class Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow Dp Size . width Ġ< Ġ 6 0 0 . dp Ġ-> ĠWindow Size Class . Compact ĊĠĠĠĠĠĠĠ Ġwindow Dp Size . width Ġ< Ġ 8 4 0 . dp Ġ-> ĠWindow Size Class . Medium ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠWindow Size Class . Expanded ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġheight Window Size Class Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġwindow Dp Size . height Ġ< Ġ 4 8 0 . dp Ġ-> ĠWindow Size Class . Compact ĊĠĠĠĠĠĠĠ Ġwindow Dp Size . height Ġ< Ġ 9 0 0 . dp Ġ-> ĠWindow Size Class . Medium ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠWindow Size Class . Expanded ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn ĠWindow Sizes ( width Window Size Class , Ġheight Window Size Class ) Ċ }