package Ġcom . github . mal it spl us . sh iz ur un otes . ui . char ade t ails Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . Navigation Ċ import Ġandroidx . navigation . find Nav Controller Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . transition . Transition Inflater Ċ import Ġcom . github . mal it spl us . sh iz ur un otes . R Ċ import Ġcom . github . mal it spl us . sh iz ur un otes . data . Char a Ċ import Ġcom . github . mal it spl us . sh iz ur un otes . databinding . Fragment Char a Details Binding Ċ import Ġcom . github . mal it spl us . sh iz ur un otes . ui . shared . Shared ViewModel Char a Ċ import Ġcom . github . mal it spl us . sh iz ur un otes . ui . shared . Shared ViewModel Char a Factory Ċ import Ġcom . github . mal it spl us . sh iz ur un otes . ui . base . Attack Pattern Container Adapter Ċ import Ġorg . ang m arch . views . On Spinner ItemSelected Listener Ċ Ċ class ĠChar a Details Fragment Ġ: ĠFragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdetails ViewModel : ĠChar a Details ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġshared Char a : ĠShared ViewModel Char a ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Char a Details Binding ĊĠĠĠ Ġprivate Ġval Ġargs : ĠChar a Details Fragment Args Ġby Ġnav Args () ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġshared Char a Ġ= ĠViewModel Provider ( activity !! ). get ( Shared ViewModel Char a :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġshared Element Enter Transition Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransition Inflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate Transition ( android . R . transition . move ). set Duration ( 3 0 0 ) ĊĊĠĠĠĠĠĠĠ Ġshared Element Return Transition Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTransition Inflater . from ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate Transition ( android . R . transition . move ). set Duration ( 3 0 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . fragment _ char a _ details , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontainer , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġdetails ViewModel Ġ= ĠViewModel Provider ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠShared ViewModel Char a Factory ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshared Char a ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ). get ( Char a Details ViewModel :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetails Item Char a . transition Name Ġ= Ġ" trans Item _${ args . char a Id }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . find Nav Controller (). navigate Up () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrank List : ĠList < Int > Ġ= Ġdetails ViewModel . get Char a () !!. promotion Status . keys . toList () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrank Spinner . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattach DataSource ( rank List ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Spinner ItemSelected Listener Ġ= ĠOn Spinner ItemSelected Listener Ġ{ Ġparent , Ġ_, Ġposition , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdetails ViewModel . change Rank ( parent . getItem At Position ( position ). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( shared Char a . back Flag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp bar . set Expanded ( false , Ġfalse ) ĊĊĊĠĠĠĠĠĠĠ Ġ}. also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . click Listener Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// æĶ» åĩ» é¡ºåºı ĊĠĠĠĠĠĠĠ Ġbinding . attack Pattern Recycler . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= ĠAttack Pattern Container Adapter (). apply Ġ{ Ġitem List Ġ= Ġdetails ViewModel . get Char a () !!. attack Pattern List Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// æĬĢ èĥ½ ĠRe cycler ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Skill Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter Skill Ġ= ĠSkill Adapter ( shared Char a ) ĊĠĠĠĠĠĠĠ Ġbinding . skill Recycler . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġlayout Manager Skill ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġadapter Skill ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// è§Ĥ å¯Ł char a åıĺåĮĸ ĊĠĠĠĠĠĠĠ Ġdetails ViewModel . mutable Char a . observe ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Lifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠObserver < Char a > Ġ{ Ġchar a : ĠChar a Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . details VM Ġ= Ġdetails ViewModel ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Skill . update ( char a . skills ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetails VM Ġ= Ġdetails ViewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( v ?. id Ġ== ĠR . id . details Item Char a Container ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠChar a Details Fragment Directions . action Nav Char a Details To Nav Char a Profile () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( v ). navigate ( action ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }