/* Ċ Ġ* Ġ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 . gl ance . app widget . template Ċ Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . runtime . Composition Local Provider Ċ import Ġandroidx . compose . ui . unit . Dp Ċ import Ġandroidx . gl ance . Gl ance Composable Ċ import Ġandroidx . gl ance . Local Size Ċ import Ġandroidx . gl ance . app widget . Gl ance App Widget Ċ import Ġandroidx . gl ance . app widget . Size Mode Ċ import Ġandroidx . gl ance . state . Gl ance State Definition Ċ import Ġandroidx . gl ance . state . Preferences Gl ance State Definition Ċ import Ġandroidx . gl ance . template . Local Template Mode Ċ import Ġandroidx . gl ance . template . Template Mode Ċ Ċ /** Ċ Ġ* ĠA Ġ[ Gl ance App Widget ] Ġthat Ġprovides Ġtemplate Ġlocal Ġvalues . Ċ Ġ*/ Ċ abstract Ġclass ĠGl ance Template App Widget Ġ: ĠGl ance App Widget () Ġ{ ĊĊĠĠĠ Ġ/** ĠDefault Ġwidget Ġsize Ġmode Ġis Ġ[ Size Mode . Exact ] Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġsize Mode Ġ= ĠSize Mode . Exact ĊĊĠĠĠ Ġ/** ĠDefault Ġwidget Ġstate Ġdefinition Ġis Ġ[ Preferences Gl ance State Definition ] Ġ*/ ĊĠĠĠ Ġoverride Ġval Ġstate Definition : ĠGl ance State Definition < *> ? Ġ= ĠPreferences Gl ance State Definition ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġfinal Ġoverride Ġfun ĠContent () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠAdd Ġother Ġlocal Ġvalues ĊĠĠĠĠĠĠĠ Ġval Ġmode Ġ= Ġmode () ĊĠĠĠĠĠĠĠ ĠComp osition Local Provider ( Local Template Mode Ġprovides Ġmode ) Ġ{ ĠTemplate Content () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġ@ Gl ance Composable ĊĠĠĠ Ġabstract Ġfun ĠTemplate Content () ĊĊĠĠĠ Ġ/** ĠRes olves Ġthe Ġcurrent Ġdisplay Ġmode Ġ*/ ĊĠĠĠ Ġ@ Composable ĊĠĠĠ Ġprivate Ġfun Ġmode (): ĠTemplate Mode Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= ĠLocal Size . current . height ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= ĠLocal Size . current . width ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( height Ġ<= ĠD p ( 2 4 0 f ) Ġ&& Ġwidth Ġ<= ĠD p ( 2 4 0 f )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Mode . Collapsed ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(( width Ġ/ Ġheight ) Ġ< Ġ( 3 . 0 Ġ/ Ġ 2 . 0 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Mode . Vertical ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTemplate Mode . Horizontal ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ