package Ġcom . zh uz ich u . orange . setting . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . zh uz ich u . mv vm . base . Base Sheet Fragment Ċ import Ġcom . zh uz ich u . orange . BR Ċ import Ġcom . zh uz ich u . orange . R Ċ import Ġcom . zh uz ich u . orange . databinding . Fragment Dialog Address Binding Ċ import Ġcom . zh uz ich u . orange . setting . view model . Address Dialog ViewModel Ċ import Ġcom . zh uz ich u . orange . setting . view model . Item Address ViewModel Ċ import Ġkotlinx . android . synt hetic . main . fragment _ dialog _ address .* Ċ Ċ class ĠAddress Dialog Fragment ( ĊĠĠĠ Ġfm : ĠFragment Manager , ĊĠĠĠ Ġprivate Ġvar Ġconsumer : Ġ(( parameter : ĠList < Item Address ViewModel ?> ) Ġ-> ĠUnit )? Ġ= Ġnull Ċ ) Ġ: ĊĠĠĠ ĠBase Sheet Fragment < Fragment Dialog Address Binding , ĠAddress Dialog ViewModel >( fm ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtitles Ġ= ĠlistOf (" çľģ ä»½ ", Ġ" åŁİ å¸Ĥ ", Ġ" åĮº åİ¿ ") ĊĊĠĠĠ Ġoverride Ġfun Ġset Layout Id (): ĠInt Ġ= ĠR . layout . fragment _ dialog _ address ĊĊĠĠĠ Ġoverride Ġfun Ġbind Variable Id (): ĠInt Ġ= ĠBR . viewModel ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġtitles . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtabs . add Tab ( tabs . new Tab (). setText ( it )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View Observable () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ viewModel . uc . on Select Address Change . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtab Ġ= Ġtabs . get Tab At ( it . type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtab ?. text Ġ= Ġit . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtabs . get Tab At ( it . type Ġ+ Ġ 1 )?. select () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ viewModel . current List . forEach Indexed Ġ{ Ġindex , Ġitem Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtabs . get Tab At ( index )?. text Ġ= Ġtitles [ index ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ viewModel . is Enable S ure . set (_ viewModel . current List [ 2 ] Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ_ viewModel . uc . on Scroll To Post ion Event . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cycler . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( recycler . layout Manager Ġas ĠLinearLayoutManager ). scrollTo Position With Offset ( it , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 5 0 ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ_ viewModel . uc . on Select S ure Event . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview ?. post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconsumer ?. invoke (_ viewModel . current List ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 1 5 0 ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Enter Animation End ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ viewModel . load Address () ĊĠĠĠ Ġ} Ċ }