/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠShe T ie Jun Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġme . s het j . base . base Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Message Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Frame Layout Ċ import Ġandroidx . annotation . Keep Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . view binding . View Binding Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Behavior Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Fragment Ċ import Ġme . s het j . base . tools . app . Ar ms Utils Ċ import Ġorg . green robot . event bus . EventBus Ċ import Ġorg . green robot . event bus . Subscribe Ċ import Ġorg . green robot . event bus . Thread Mode Ċ Ċ @ Keep Ċ abstract Ġclass ĠBase Binding Bottom Sheet Dialog Fragment < VB Ġ: ĠView Binding > Ġ: ĊĠĠĠ ĠBottom Sheet Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġm View Binding : ĠVB ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġm View Binding Ġ= Ġinit View Binding ( in flater , Ġcontainer ) ĊĠĠĠĠĠĠĠ Ġview Bind Data () ĊĠĠĠĠĠĠĠ Ġreturn Ġm View Binding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġget Behavior (): ĠBottom Sheet Behavior < Frame Layout >? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( dialog Ġis ĠBottom Sheet Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ( dialog Ġas ĠBottom Sheet Dialog ). behavior ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å±ķ å¼Ģ åĪ° åħ¨ å±ı ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġexpand Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġget Behavior ()?. state Ġ= ĠBottom Sheet Behavior . STATE _ EXP AN DED ĊĠĠĠĠĠĠĠ Ġget Behavior ()?. peek Height Ġ= ĠAr ms Utils . get Screen Height () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç³»ç»Ł ä¼ļ é»ĺè®¤ çĶŁæĪĲ å¯¹åºĶçļĦ [ View Binding ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ NonNull ĊĠĠĠ Ġabstract Ġfun Ġinit View Binding ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?): ĠVB ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( use EventBus ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). unregister ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæĺ¯åĲ¦ ä½¿çĶ¨ event Bus , é»ĺè®¤ä¸º ä½¿çĶ¨ ( true )ï¼Į ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġboolean ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġuse EventBus (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ è®© [ EventBus ] Ġé»ĺè®¤ ä¸» çº¿ç¨ĭ å¤ĦçĲĨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Subscribe ( thread Mode Ġ= ĠThread Mode . MAIN ) ĊĠĠĠ Ġopen Ġfun Ġon Event ( message : ĠMessage ) Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout State . put Boolean ( STATE _ SAVE _ IS _ HIDDEN , Ġis Hidden ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġif Ġ( use EventBus ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). register ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ æķ°æį® åĴĮ çķĮéĿ¢ ç»ĳå®ļ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġview Bind Data () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSTATE _ SAVE _ IS _ HIDDEN Ġ= Ġ" STATE _ SAVE _ IS _ HIDDEN " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsafety Show ( fragment Manager : ĠFragment Manager , Ġtag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĺ² æŃ¢ åĬ¨çĶ» æ²¡æľī ç»ĵæĿŁ ï¼Į fragment åıĪ è¢« çĤ¹åĩ» äºĨ ï¼Į çĦ¶åĲİ å¯¼èĩ´ çļĦ å´ © æº ĥ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment Manager . execute Pending Transactions () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow ( fragment Manager , Ġtag ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsafety Hide () Ġ{ ĊĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ Ġdismiss Allow ing State Loss () Ġ} ĊĠĠĠ Ġ} Ċ } Ċ