package Ġcom . k ier on qu inn . app . classic power menu . ui . screens . settings . quick access wallet . re arrange Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . Window Insets Compat Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . view . update Padding Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġandroidx . recyclerview . widget . Item Touch Helper Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . k ier on qu inn . app . classic power menu . R Ċ import Ġcom . k ier on qu inn . app . classic power menu . databinding . Fragment Settings Quick Access Wallet Re arrange Binding Ċ import Ġcom . k ier on qu inn . app . classic power menu . ui . base . Bound Fragment Ċ import Ġcom . k ier on qu inn . app . classic power menu . ui . base . Standalone Fragment Ċ import Ġcom . k ier on qu inn . app . classic power menu . utils . extensions . on Apply Insets Ċ import Ġcom . k ier on qu inn . mon et compat . core . Mon et Compat Ċ import Ġcom . k ier on qu inn . mon et compat . extensions . views . apply Mon et Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ import Ġjava . util .* Ċ Ċ class ĠSettings Quick Access Wallet Re arrange Fragment : ĠBound Fragment < Fragment Settings Quick Access Wallet Re arrange Binding >( Fragment Settings Quick Access Wallet Re arrange Binding :: inflate ), ĠStand alone Fragment Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġadapter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠSettings Quick Access Wallet Re arrange Adapter ( require Context (), Ġempty List (), ĠviewModel :: on Card Visibility Clicked ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Touch Helper . start Drag ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġitem Touch Helper Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠItem Touch Helper ( Item Touch Callback ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby ĠviewModel < Settings Quick Access Wallet Re arrange ViewModel >() ĊĊĠĠĠ Ġoverride Ġval Ġon Back Pressed Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn @ lazy ĠviewModel :: on Back Pressed ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġsetup Toolbar () ĊĠĠĠĠĠĠĠ Ġsetup RecyclerView () ĊĠĠĠĠĠĠĠ Ġsetup State () ĊĠĠĠĠĠĠĠ Ġsetup Mon et () ĊĠĠĠĠĠĠĠ Ġsetup Insets () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Mon et (){ ĊĠĠĠĠĠĠĠ Ġbinding . root . set BackgroundColor ( mon et . get BackgroundColor ( require Context ())) ĊĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Loading Bar . apply Mon et () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup State () Ġ= Ġlifecycle Scope . launch When Res umed Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . state . collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle State ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle State ( state : ĠSettings Quick Access Wallet Re arrange ViewModel . State ){ ĊĠĠĠĠĠĠĠ Ġwhen ( state ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings Quick Access Wallet Re arrange ViewModel . State . Loading Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Recycler view . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Empty . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Loading . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings Quick Access Wallet Re arrange ViewModel . State . Error Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Recycler view . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Empty . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Empty Text . setText ( state . type . content Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Loading . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSettings Quick Access Wallet Re arrange ViewModel . State . Loaded Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Recycler view . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Empty . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Loading . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . cards Ġ= Ġstate . cards ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Toolbar (){ ĊĠĠĠĠĠĠĠ Ġwith ( binding . toolbar ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsetup With Scroll ableView ( binding . quick Access Wallet Re arrange Recycler view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Back Pressed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup RecyclerView () Ġ= Ġwith ( binding . quick Access Wallet Re arrange Recycler view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠ Ġadapter Ġ= Ġthis @ Settings Quick Access Wallet Re arrange Fragment . adapter ĊĠĠĠĠĠĠĠ Ġitem Touch Helper . attach To RecyclerView ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Insets (){ ĊĠĠĠĠĠĠĠ Ġbinding . toolbar . on Apply Insets Ġ{ Ġview , Ġin sets Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Inset Ġ= Ġin sets . get Insets ( Window Insets Compat . Type . status Bars ()). top ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . update Padding ( top Ġ= Ġtop Inset ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . quick Access Wallet Re arrange Recycler view . on Apply Insets Ġ{ Ġview , Ġin sets Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Padding Ġ= Ġresources . get Dimension ( R . dim en . margin _ 1 6 ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbottom Inset Ġ= Ġin sets . get Insets ( Window Insets Compat . Type . navigation Bars ()). bottom ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . update Padding ( bottom Ġ= Ġbottom Padding Ġ+ Ġbottom Inset ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠItem Touch Callback : ĠItem Touch Helper . Simple Callback ( Item Touch Helper . UP Ġor ĠItem Touch Helper . DOWN , Ġ 0 ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Move ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView : ĠRecyclerView , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewHolder : ĠRecyclerView . ViewHolder , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠRecyclerView . ViewHolder ĊĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrom Position Ġ= ĠviewHolder . binding Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto Position Ġ= Ġtarget . binding Adapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCollections . swap ( adapter . cards , Ġfrom Position , Ġto Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter . notify Item Moved ( from Position , Ġto Position ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . on Card Order Changed ( adapter . cards ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sw ip ed ( view Holder : ĠRecyclerView . ViewHolder , Ġdirection : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// no - op ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġis Long Press Drag Enabled () Ġ= Ġfalse ĊĊĠĠĠ Ġ} Ċ Ċ }