package Ġcom . example . sun ny weather . ui . weather Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . example . sun ny weather . R Ċ import Ġcom . example . sun ny weather . logic . model . Place Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ Ċ object ĠWeather Bottom Sheet Ġ{ ĊĠĠĠ Ġfun Ġshow Bottom Sheet ( ĊĠĠĠĠĠĠĠ Ġactivity : ĠWeather Activity , ĊĠĠĠĠĠĠĠ Ġcontact Name : String , ĊĠĠĠĠĠĠĠ Ġcontact Number : ĠString , ĊĠĠĠĠĠĠĠ Ġcontact Address : ĠString , ĊĠĠĠĠĠĠĠ Ġcontact Place : ĠPlace , ĊĠĠĠĠĠĠĠ Ġcallback : Ġ(( Place ?) Ġ-> ĠUnit ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( activity ). inflate ( R . layout . dialog _ contact _ weather , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġbottom Sheet Dialog Ġ= ĠBottom Sheet Dialog ( activity , ĠR . style . Bottom Sheet Dialog ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog . set ContentView ( view ) ĊĠĠĠĠĠĠĠ Ġval Ġbottom Sheet Behavior Ġ= ĠBottom Sheet Behavior . from ( view . parent Ġas ĠViewGroup ) ĊĠĠĠĠĠĠĠ Ġbottom Sheet Behavior . add Bottom Sheet Callback ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBottom Sheet Behavior . Bottom Sheet Callback () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon StateChanged ( bottom Sheet : ĠView , ĠnewState : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( newState Ġ== ĠBottom Sheet Behavior . STATE _ HIDDEN ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Slide ( bottom Sheet : ĠView , Ġslide Offset : ĠFloat ) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġval ĠT v Contact Name Ġ= Ġview . findViewById < TextView >( R . id . contact _ name ) ĊĠĠĠĠĠĠĠ Ġval ĠT v Contact Number Ġ= Ġview . findViewById < TextView >( R . id . contact _ number ) ĊĠĠĠĠĠĠĠ Ġval ĠT v Contact Address Ġ= Ġview . findViewById < TextView >( R . id . contact _ address ) ĊĠĠĠĠĠĠĠ Ġval ĠImg Close Ġ= Ġview . findViewById < ImageView >( R . id . weather _ bottom _ item _ close ) ĊĠĠĠĠĠĠĠ Ġval ĠB tn Close Ġ= Ġview . findViewById < Button >( R . id . button _ close ) ĊĠĠĠĠĠĠĠ Ġval ĠB tn Look Ġ= Ġview . findViewById < Button >( R . id . have _ a _ look _ weather _ details ) ĊĊĠĠĠĠĠĠĠ ĠT v Contact Name . text Ġ= Ġcontact Name ĊĠĠĠĠĠĠĠ ĠT v Contact Number . text Ġ= Ġcontact Number ĊĠĠĠĠĠĠĠ ĠT v Contact Address . text Ġ= Ġcontact Address ĊĊĠĠĠĠĠĠĠ ĠImg Close . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠB tn Close . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( null ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠB tn Look . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Sheet Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . invoke ( contact Place ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbottom Sheet Dialog . show () ĊĠĠĠ Ġ} Ċ }