package Ġcom . jon ny hs ia . composer . widget Ċ Ċ import Ġandroid . support . design . widget . Bottom Sheet Behavior Ċ import Ġandroid . support . design . widget . Bottom Sheet Dialog Fragment Ċ import Ġandroid . view . View Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠJon ny H sia Ġon Ġ 1 7 / 1 0 / 3 1 . Ċ Ġ* Ġ çĬ¶æĢģ ĠBottom ĠSheet Ċ Ġ*/ Ċ class ĠState Bottom Sheet Ġ: ĠBottom Sheet Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġbehavior : ĠBottom Sheet Behavior < View >? Ġ= Ġnull Ċ // Ċ // ĠĠĠ Ġprivate Ġvar Ġsheet Action : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull Ċ // Ċ // ĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= Ġsuper . onCreate Dialog ( savedInstanceState ) Ċ // ĠĠĠĠĠĠĠ Ġ// ĠåĪĽå»º Ġdialog ĠçļĦ åĨħå®¹ å¸ĥå±Ģ Ċ // ĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠView . inflate ( context , ĠR . layout . dialog _ sheet _ states , Ġnull ) Ċ // ĠĠĠĠĠĠĠ Ġdialog . set ContentView ( view ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® æİ§ä»¶ æķ°æį® Ċ // ĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . tv State Title )?. text Ġ= Ġarguments ?. getString ( EXTRA _ TITLE ) Ċ // ĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . tv State Description )?. text Ġ= Ġarguments ?. getString ( EXTRA _ DESCRIPTION ) Ċ // ĠĠĠĠĠĠĠ Ġview . findViewById < TextView >( R . id . tv State Action )?. let Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġit . text Ġ= Ġarguments ?. getString ( EXTRA _ ACTION ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOnClickListener Ġ{ Ġsheet Action ?. invoke () Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ ĠG lide . with ( this ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( arguments ?. getInt ( EXTRA _ BG _ RES )) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( view . findViewById ( R . id . img State )) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ// Ġèİ·åıĸ Ġdialog Ġ åĨħå®¹ å¸ĥå±Ģ çļĦ Ġparent Ċ // ĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġview . parent Ġas ? ĠView Ċ // ĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® Ġroot ĠçļĦ èĥĮæĻ¯ èī² ä¸º éĢı æĺİ , Ġ å¹¶ èİ·åıĸ åħ¶ Ġbehavior Ċ // ĠĠĠĠĠĠĠ Ġroot ?. set BackgroundColor ( resources . getColor ( android . R . color . transparent )) Ċ // ĠĠĠĠĠĠĠ Ġbehavior Ġ= ĠBottom Sheet Behavior . from ( root ) Ċ // Ċ // ĠĠĠĠĠĠĠ Ġreturn Ġdialog Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġè®¾ç½® Ġbottom Ġsheet Ġ æĮīéĴ® çļĦ åĬ¨ ä½ľ Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġfun Ġset Sheet Action ( on Re Tap : Ġ() Ġ-> ĠUnit ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġsheet Action Ġ= Ġon Re Tap Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġresume ĠæĹ¶ å±ķ å¼Ģ Ġbottom Ġsheet Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġsuper . onStart () Ċ // ĠĠĠĠĠĠĠ Ġbehavior ?. state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ åħ³éĹŃ æĹ¶ éļĲèĹı Ġbottom Ġsheet Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġoverride Ġfun Ġdismiss () Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġbehavior ?. state Ġ= ĠBottom Sheet Behavior . STATE _ HIDDEN Ċ // ĠĠĠĠĠĠĠ Ġsuper . dismiss () Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval ĠEX TRA _ TITLE Ġ= Ġ" title " Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval ĠEX TRA _ BG _ RES Ġ= Ġ" bg Res " Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval ĠEX TRA _ DESCRIPTION Ġ= Ġ" description " Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval ĠEX TRA _ ACTION Ġ= Ġ" on Re Tap " Ċ // Ċ // ĠĠĠĠĠĠĠ Ġ/** Ċ // ĠĠĠĠĠĠĠĠ Ġ* ĠéĢļè¿ĩ çĬ¶æĢģ æŀļ ä¸¾ æĿ¥ çĶŁæĪĲ Ġbottom Ġsheet Ċ // ĠĠĠĠĠĠĠĠ Ġ*/ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġgenerate State Sheet ( state : ĠState ): ĠState Bottom Sheet Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsheet Ġ= ĠState Bottom Sheet () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġsheet . arguments Ġ= ĠBundle (). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ TITLE , Ġstate . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ BG _ RES , Ġstate . bg Res ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ DESCRIPTION , Ġstate . description ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Int ( EXTRA _ ACTION , Ġstate . on Re Tap ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsheet Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġ/** Ċ // ĠĠĠĠ Ġ* Ġ çĬ¶æĢģ æŀļ ä¸¾ Ċ // ĠĠĠĠ Ġ*/ Ċ // ĠĠĠ Ġenum Ġclass ĠState (@ String Res Ġval Ġtitle : ĠInt , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Id Res Ġval Ġbg Res : ĠInt , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġval Ġdescription : ĠInt , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġval Ġon Re Tap : ĠInt ) Ġ{ Ċ // Ċ // ĠĠĠĠĠĠĠ ĠOFF LINE ( R . string . error _ offline , ĠR . mip map . img _ state _ network _ error , ĠR . string . error _ offline _ description , ĠR . string . error _ offline _ action ), Ċ // ĠĠĠĠĠĠĠ ĠREQUEST _ FAILED ( R . string . error _ request _ failed , ĠR . mip map . img _ state _ request _ failed , ĠR . string . error _ request _ failed _ description , ĠR . string . error _ request _ failed _ action ); Ċ // ĠĠĠ Ġ} Ċ }