/* Ċ Ġ* Ġ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 . trans l ators Ċ Ċ import Ġandroid . graphics . drawable . Icon Ċ import Ġandroid . os . Build Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Remote Views Ċ import Ġandroidx . annotation . DoNot Inline Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . gl ance . Android Resource Image Provider Ċ import Ġandroidx . gl ance . Bitmap Image Provider Ċ import Ġandroidx . gl ance . layout . Content Scale Ċ import Ġandroidx . gl ance . Emit table Image Ċ import Ġandroidx . gl ance . Icon Image Provider Ċ import Ġandroidx . gl ance . app widget . Gl ance App Widget Tag Ċ import Ġandroidx . gl ance . app widget . Layout Type Ċ import Ġandroidx . gl ance . app widget . Translation Context Ċ import Ġandroidx . gl ance . app widget . Uri Image Provider Ċ import Ġandroidx . gl ance . app widget . apply Modifiers Ċ import Ġandroidx . gl ance . app widget . insert View Ċ Ċ internal Ġfun ĠRemote Views . translate Emit table Image ( ĊĠĠĠ Ġtranslation Context : ĠTranslation Context , ĊĠĠĠ Ġelement : ĠEmit table Image Ċ ) Ġ{ ĊĠĠĠ Ġval Ġselector Ġ= Ġwhen Ġ( element . content Scale ) Ġ{ ĊĠĠĠĠĠĠĠ ĠContent Scale . Crop Ġ-> ĠLayout Type . Image Crop ĊĠĠĠĠĠĠĠ ĠContent Scale . Fit Ġ-> ĠLayout Type . Image Fit ĊĠĠĠĠĠĠĠ ĠContent Scale . Fill Bounds Ġ-> ĠLayout Type . Image Fill Bounds ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . w ( Gl ance App Widget Tag , Ġ" Unsupported ĠContent Scale Ġuser : Ġ${ element . content Scale }") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayout Type . Image Fit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġview Def Ġ= Ġinsert View ( translation Context , Ġselector , Ġelement . modifier ) ĊĠĠĠ Ġset Content Description ( view Def . main View Id , Ġelement . content Description ) ĊĠĠĠ Ġwhen Ġ( val Ġprovider Ġ= Ġelement . provider ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠAndroid Resource Image Provider Ġ-> Ġset ImageView Resource ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Def . main View Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprovider . res Id ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġis ĠBitmap Image Provider Ġ-> Ġset ImageView Bitmap ( view Def . main View Id , Ġprovider . bitmap ) ĊĠĠĠĠĠĠĠ Ġis ĠUri Image Provider Ġ-> Ġset ImageView Uri ( view Def . main View Id , Ġprovider . uri ) ĊĠĠĠĠĠĠĠ Ġis ĠIcon Image Provider Ġ-> Ġset ImageView Icon ( this , Ġview Def . main View Id , Ġprovider ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" An Ġunsupported ĠImage Provider Ġtype Ġwas Ġused .") ĊĠĠĠ Ġ} ĊĠĠĠ Ġapply Modifiers ( translation Context , Ġthis , Ġelement . modifier , Ġview Def ) Ċ } Ċ Ċ private Ġfun Ġset ImageView Icon ( rv : ĠRemote Views , Ġview Id : ĠInt , Ġprovider : ĠIcon Image Provider ) Ġ{ ĊĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ< ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠIllegalStateException (" Cannot Ġuse ĠIcon ĠImage Provider Ġbefore ĠAPI Ġ 2 3 .") ĊĠĠĠ Ġ} ĊĠĠĠ ĠImage Translator Api 2 3 Impl . set ImageView Icon ( rv , Ġview Id , Ġprovider . icon ) Ċ } Ċ Ċ @ Requires Api ( Build . VERSION _ CODES . M ) Ċ private Ġobject ĠImage Translator Api 2 3 Impl Ġ{ ĊĠĠĠ Ġ@ DoNot Inline ĊĠĠĠ Ġfun Ġset ImageView Icon ( rv : ĠRemote Views , Ġview Id : ĠInt , Ġicon : ĠIcon ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrv . set ImageView Icon ( view Id , Ġicon ) ĊĠĠĠ Ġ} Ċ } Ċ