package Ġearth . dark white . al b ion online player stats Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . view . input method . Editor Info Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . core . view . get Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . google . android . material . chip . Chip Ċ import Ġcom . google . android . material . chip . Chip Group Ċ import Ġcom . google . android . material . slider . Range Slider Ċ import Ġcom . google . android . material . text field . TextInput Layout Ċ import Ġearth . dark white . al b ion online player stats . add player . Add Player ViewModel Ċ import Ġearth . dark white . al b ion online player stats . databinding . DropDown Layout Binding Ċ import Ġearth . dark white . al b ion online player stats . databinding . Main Screen Fragment Binding Ċ import Ġearth . dark white . al b ion online player stats . main screen . Main Screen Fragment Ċ import Ġearth . dark white . al b ion online player stats . main screen . Main Screen ViewModel Ċ import Ġearth . dark white . al b ion online player stats . main screen . TAG Ċ import Ġearth . dark white . al b ion online player stats . main screen . animate Filter Layout Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . flow . first Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠMain Screen Ċ Ġ*/ Ċ Ċ /** Ċ Ġ* ĠDrop Down Ġlayout Ċ Ġ*/ Ċ // ĠFilter ĠCh ip Group Ġlistener ĠReport sType Ċ @ Experimental Cor outines Api Ċ fun ĠCh ip Group . on Reports Type ChangeListener ( viewModel : ĠMain Screen ViewModel ) Ġ{ ĊĠĠĠ ĠLog . d ( TAG , Ġ" on Reports Type ChangeListener : Ġ") ĊĠĠĠ Ġthis . setOn Checked ChangeListener Ġ{ Ġ_, Ġchecked Id Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( checked Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . chip _ deaths _ k ills Ġ-> ĠviewModel . on Report Type Change ( Report Type . BOTH ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . chip _ deaths Ġ-> ĠviewModel . on Report Type Change ( Report Type . DE ATH S ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . chip _ k ills Ġ-> ĠviewModel . on Report Type Change ( Report Type . K IL LS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠFilter ĠCh ip Group Ġlistener ĠSort By Ċ @ Experimental Cor outines Api Ċ fun ĠCh ip Group . on Sort By ChangeListener ( viewModel : ĠMain Screen ViewModel , Ġrange Slider : ĠRange Slider ) Ġ{ ĊĠĠĠ ĠLog . d ( TAG , Ġ" on Sort By ChangeListener : Ġ") ĊĠĠĠ Ġthis . setOn Checked ChangeListener Ġ{ Ġ_, Ġchecked Id Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( checked Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . chip _ time Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Sort By Change ( Sort By . DATE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange Slider . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . chip _ f ame Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Sort By Change ( Sort By . FA ME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange Slider . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠFilter ĠCh ip Group Ġlistener ĠSort Order Ċ @ Experimental Cor outines Api Ċ fun ĠCh ip Group . on SortOrder ChangeListener ( viewModel : ĠMain Screen ViewModel ) Ġ{ ĊĠĠĠ ĠLog . d ( TAG , Ġ" on SortOrder ChangeListener : Ġ") ĊĠĠĠ Ġthis . setOn Checked ChangeListener Ġ{ Ġ_, Ġchecked Id Ġ-> ĊĠĠĠĠĠĠĠ Ġwhen Ġ( checked Id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . chip _ asc Ġ-> ĠviewModel . on SortOrder Change ( SortOrder . ASC ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . chip _ desc Ġ-> ĠviewModel . on SortOrder Change ( SortOrder . DESC ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠFilter ĠTouch Ġlistener ĠSlider Touch Ċ @ Experimental Cor outines Api Ċ fun ĠRange Slider . on Slider Touch Listener ( viewModel : ĠMain Screen ViewModel ) Ġ= Ġobject Ġ: ĠRange Slider . On Slider Touch Listener Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠonStart Tracking Touch ( slider : ĠRange Slider ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( Main Screen Fragment . TAG , Ġ" onStart Tracking Touch : Ġ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop Tracking Touch ( slider : ĠRange Slider ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( Main Screen Fragment . TAG , Ġ" on Stop Tracking Touch : Ġ") ĊĠĠĠĠĠĠĠ ĠviewModel . on F ame Value Change ( values ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠOn ĠStart ĠFilters Ġchecker Ċ @ Experimental Cor outines Api Ċ fun ĠDrop Down Layout Binding . onStart Set Filter Chip Check ( view Lifecycle Owner : ĠLifecycle Owner , ĠviewModel : ĠMain Screen ViewModel ) Ġ{ ĊĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" onStart Set Filter Chip Check : Ġ") ĊĠĠĠĠĠĠĠ Ġvar Ġchip Ġ= Ġwhen Ġ( viewModel . filter Preferences . first (). report Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReport Type . BOTH Ġ-> Ġchip Group Reports Type [ 0 ] Ġas ĠCh ip ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReport Type . DE ATH S Ġ-> Ġchip Group Reports Type [ 1 ] Ġas ĠCh ip ĊĠĠĠĠĠĠĠĠĠĠĠ ĠReport Type . K IL LS Ġ-> Ġchip Group Reports Type [ 2 ] Ġas ĠCh ip ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchip . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġchip Ġ= Ġwhen Ġ( viewModel . filter Preferences . first (). sort Order ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Order . ASC Ġ-> Ġchip Group SortOrder [ 0 ] Ġas ĠCh ip ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort Order . DESC Ġ-> Ġchip Group SortOrder [ 1 ] Ġas ĠCh ip ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchip . isChecked Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġchip Ġ= Ġwhen Ġ( viewModel . filter Preferences . first (). sortBy ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort By . DATE Ġ-> Ġchip Group Sort By [ 0 ] Ġas ĠCh ip ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort By . FA ME Ġ-> Ġchip Group Sort By [ 1 ] Ġas ĠCh ip ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġchip . isChecked Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠListen Ġ& ĠUpdate ĠRange Slider Ċ @ Experimental Cor outines Api Ċ fun ĠRange Slider . onStart Set Range Slider Values ( view Lifecycle Owner : ĠLifecycle Owner , ĠviewModel : ĠMain Screen ViewModel ) Ġ{ ĊĠĠĠ Ġview Lifecycle Owner . lifecycle Scope . launch When Created Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . filter Preferences . collect Ġ{ Ġpreferences Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( Main Screen Fragment . TAG , Ġ" onStart Set Range Slider Values :") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . form . let Ġ{ Ġvalue From Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpreferences . to . let Ġ{ Ġvalue To Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues Ġ= Ġmutable ListOf ( preferences . min Step , Ġpreferences . max Step ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ onStart Set Range Slider Values . step Size Ġ= Ġpreferences . step Size ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠAn imate ĠDrop Down Ġlayout ĠDown / Up Ċ Ġ*/ Ċ @ Experimental Cor outines Api Ċ fun Ġlayout Animation ( fragment Activity : ĠFragment Activity , Ġbinding : ĠMain Screen Fragment Binding ) Ġ= ĠView . OnClickListener Ġ{ ĊĠĠĠ ĠLog . d ( TAG , Ġ" elev ate Main Layout : Ġ") ĊĠĠĠ Ġanimate Filter Layout ( fragment Activity , Ġbinding ) Ċ } Ċ Ċ /** Ċ Ġ* ĠAdd Player ĠFragment Ċ Ġ*/ Ċ Ċ fun ĠText Input Layout . on End Icon OnClickListener ( context : ĠContext , ĠviewModel : ĠAdd Player ViewModel ) Ġ{ ĊĠĠĠ ĠLog . d ( TAG , Ġ" on End Icon OnClickListener :") ĊĠĠĠ Ġthis . set End Icon OnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġget Query ( this . edit Text !! , Ġcontext , ĠviewModel ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠEditText ?. on Editor ActionListener ( context : ĠContext , ĠviewModel : ĠAdd Player ViewModel ) Ġ{ ĊĠĠĠ ĠLog . d ( TAG , Ġ" on Editor ActionListener : Ġ") ĊĠĠĠ Ġthis ?. setOn Editor ActionListener Ġ{ Ġ_, Ġaction Id , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( action Id Ġ== ĠEditor Info . IME _ ACTION _ SEARCH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Query ( this , Ġcontext , ĠviewModel ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOn Editor ActionListener Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn @ setOn Editor ActionListener Ġfalse ĊĠĠĠ Ġ} Ċ } Ċ