package Ġapp . l awn ch air Ċ Ċ import Ġandroid . app widget . App Widget Provider Info Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . ViewGroup . LayoutParams . MATCH _ PARENT Ċ import Ġandroid . widget . Remote Views Ċ import Ġapp . l awn ch air . smart space . Smart space App Widget Provider Ċ import Ġcom . android . launcher 3 . R Ċ import Ġcom . android . launcher 3 . util . Themes Ċ import Ġcom . android . launcher 3 . widget . Launcher App Widget Host View Ċ Ċ class ĠL awn ch air App Widget Host View Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġvar Ġpreview Mode : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠLaunch er App Widget Host View ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġcustom View : ĠViewGroup ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġset App Widget ( app Widget Id : ĠInt , Ġinfo : ĠApp Widget Provider Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinf late Custom View ( info ) ĊĠĠĠĠĠĠĠ Ġsuper . set App Widget ( app Widget Id , Ġinfo ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdisable Preview Mode () Ġ{ ĊĠĠĠĠĠĠĠ Ġpreview Mode Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġinf late Custom View ( app Widget Info ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinf late Custom View ( info : ĠApp Widget Provider Info ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcustom View Ġ= Ġinf late Custom View ( context , Ġinfo , Ġpreview Mode ) ĊĠĠĠĠĠĠĠ Ġif Ġ( custom View Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcustom View !!. setOn Long ClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġremove All Views () ĊĠĠĠĠĠĠĠ Ġadd View ( custom View , ĠMATCH _ PARENT , ĠMATCH _ PARENT ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate App Widget ( remote Views : ĠRemote Views ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( custom View Ġ!= Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ Ġsuper . update App Widget ( remote Views ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetDefault View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( custom View Ġ!= Ġnull ) Ġreturn Ġget Empty View () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getDefault View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Error View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( custom View Ġ!= Ġnull ) Ġreturn Ġget Empty View () ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . getError View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Empty View (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠView ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcustom Layouts Ġ= Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSmart space App Widget Provider . component Name Ġto ĠR . layout . smart space _ widget ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġinf late Custom View ( context : ĠContext , Ġinfo : ĠApp Widget Provider Info , Ġpreview Mode : ĠBoolean ): ĠViewGroup ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Id Ġ= Ġcustom Layouts [ info . provider ] Ġ?: Ġreturn Ġnull ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinfl ation Context Ġ= Ġif Ġ( preview Mode ) ĠThe mes . create Widget Preview Context ( context ) Ġelse Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLayoutInflater . from ( in fl ation Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( layout Id , Ġnull , Ġfalse ) Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ