package Ġjp . co . sor am its u . feature _ account _ impl . presentation . node . list Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . os . bundle Of Ċ import Ġco il . Image Loader Ċ import Ġco il . load Ċ import Ġcom . google . android . material . dialog . Material AlertDialog Builder Ċ import Ġjavax . inject . Inject Ċ import Ġjp . co . sor am its u . common . base . Base Fragment Ċ import Ġjp . co . sor am its u . common . di . Feature Utils Ċ import Ġjp . co . sor am its u . feature _ account _ api . di . Account Feature Api Ċ import Ġjp . co . sor am its u . feature _ account _ impl . R Ċ import Ġjp . co . sor am its u . feature _ account _ impl . di . Account Feature Component Ċ import Ġjp . co . sor am its u . feature _ account _ impl . presentation . node . model . Node Model Ċ import Ġkotlinx . android . synt hetic . main . fragment _ nodes . add Connection Tv Ċ import Ġkotlinx . android . synt hetic . main . fragment _ nodes . back Button Ċ import Ġkotlinx . android . synt hetic . main . fragment _ nodes . connections List Ċ import Ġkotlinx . android . synt hetic . main . fragment _ nodes . right Text Ċ import Ġkotlinx . android . synt hetic . main . fragment _ nodes . title TextView Ċ import Ġkotlinx . android . synt hetic . main . fragment _ nodes . token Icon Ċ Ċ class ĠNodes Fragment Ġ: ĠBase Fragment < Nodes ViewModel >(), ĠNodes Adapter . Node Item Handler Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠNodes Adapter ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCH AIN _ ID _ KEY Ġ= Ġ" chain Id Key " ĊĊĠĠĠĠĠĠĠ Ġfun Ġget Bundle ( chain Id : ĠString ) Ġ= Ġbundle Of ( CHAIN _ ID _ KEY Ġto Ġchain Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġimage Loader : ĠImage Loader ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ) Ġ= Ġlayout Inflater . inflate ( R . layout . fragment _ nodes , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġinit Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠNodes Adapter ( this ) ĊĊĠĠĠĠĠĠĠ Ġconnections List . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠ Ġconnections List . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġback Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . back Clicked () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġright Text . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . edit Clicked () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd Connection Tv . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . add Node Clicked () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinject () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġchain Id Ġ= Ġargument < String >( CHAIN _ ID _ KEY ) ĊĊĠĠĠĠĠĠĠ ĠFeature Utils . get Feature < Account Feature Component >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire Context (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAccount Feature Api :: class . java ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. connections Component Factory () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create ( this , Ġchain Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsubscribe ( viewModel : ĠNodes ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . grouped Node Models LiveData . observe ( adapter :: submit List ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . edit Mode . observe ( adapter :: switch To Edit ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . toolbar Action . observe ( right Text :: setText ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . delete Node Event . observe Event (:: show Delete Node Dialog ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . chain Info . observe Ġ{ Ġ( name , Ġicon ) Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoken Icon . load ( icon , Ġimage Loader ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView . text Ġ= ĠgetString ( R . string . connection _ management _ title , Ġname ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinfo Clicked ( node Model : ĠNode Model ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . info Clicked ( node Model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcheck Clicked ( node Model : ĠNode Model ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . select Node Clicked ( node Model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Clicked ( node Model : ĠNode Model ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . delete Node Clicked ( node Model ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Delete Node Dialog ( node Model : ĠNode Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠgetString ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . connection _ delete _ description , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnode Model . name ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ ĠMaterial AlertDialog Builder ( context , ĠR . style . AlertDialog Theme ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . connection _ delete _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( message ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . connection _ delete _ confirm ) Ġ{ Ġdialog , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . confirm Node Deletion ( node Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . common _ cancel ) Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog ?. dismiss () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} Ċ } Ċ