package Ġru . touch in . rob os w ag . components . utils Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . Frame Layout Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ Ċ /** Ċ Ġ* ĠReturns Ġstring Ġrepresentation Ġof Ġ[ View ]' s ĠID . Ċ Ġ* Ċ Ġ* Ġ@ param Ġview Ġ[ View ] Ġto Ġget ĠID Ġfrom ; Ċ Ġ* Ġ@ return ĠRead able ĠID . Ċ Ġ*/ Ċ fun ĠView . getView Id String (): ĠString Ġ= Ġtry Ġ{ ĊĠĠĠ Ġresources . getResource Name ( id ) Ċ } Ġcatch Ġ( exception : ĠResources . NotFoundException ) Ġ{ ĊĠĠĠ Ġid . toString () Ċ } Ċ Ċ /** Ċ Ġ* ĠH ides Ġdevice Ġkeyboard Ġfor Ġtarget Ġactivity . Ċ Ġ*/ Ċ fun ĠActivity . hide Soft Input () Ġ{ ĊĠĠĠ Ġcurrent Focus ?. hide Soft Input () Ċ } Ċ Ċ /** Ċ Ġ* ĠH ides Ġdevice Ġkeyboard Ġfor Ġtarget Ġview . Ċ Ġ*/ Ċ fun ĠView . hide Soft Input () Ġ{ ĊĠĠĠ Ġclear Focus () ĊĠĠĠ Ġval Ġinput Manager Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġinput Manager . hide Soft Input From Window ( window Token , Ġ 0 ) Ċ } Ċ Ċ /** Ċ Ġ* ĠShows Ġdevice Ġkeyboard Ġover Ġ[ Activity ] Ġand Ġfoc uses Ġ[ View ]. Ċ Ġ* ĠDo ĠNOT Ġuse Ġit Ġif Ġkeyboard Ġis Ġover Ġ[ android . app . Dialog ] Ġ- Ġit Ġwon 't Ġwork Ġas Ġthey Ġhave Ġdifferent Ġ[ Activity . getWindow ]. Ċ Ġ* ĠDo ĠNOT Ġuse Ġit Ġif Ġyou Ġare Ġnot Ġsure Ġthat Ġview Ġis Ġalready Ġadded Ġon Ġscreen . Ċ Ġ* Ċ Ġ* Ġ@ param Ġview ĠView Ġto Ġget Ġfocus Ġfor Ġinput Ġfrom Ġkeyboard . Ċ Ġ*/ Ċ fun ĠView . show Soft Input () Ġ{ ĊĠĠĠ Ġrequest Focus () ĊĠĠĠ Ġval Ġinput Manager Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠ Ġinput Manager . show Soft Input ( this , ĠInput Method Manager . SHOW _ IMP LICIT ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġlistener Ġfor ĠBottom Sheet Dialog Fragment Ġso Ġthat Ġdialog Ġis Ġshifted Ġwhen Ġthe Ġkeyboard Ġis Ġopened Ċ Ġ*/ Ċ fun ĠDialog . setResizable Listener () Ġ{ ĊĠĠĠ Ġset On Show Listener Ġ{ Ġdialog Ġ-> ĊĠĠĠĠĠĠĠ Ġ( dialog Ġas ĠBottom Sheet Dialog ). findViewById < Frame Layout >( com . google . android . material . R . id . design _ bottom _ sheet ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠBottom Sheet Behavior . from ( it ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġskip Collapsed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ