package Ġcom . s 7 even software . mobile miner . nos o . Fragments Ċ Ċ import Ġandroid . content . Clipboard Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Context . CLIP BOARD _ SERVICE Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . s 7 even software . mobile miner . nos o . Main ViewModel Ċ import Ġcom . s 7 even software . mobile miner . nos o . N oso core unit Ċ import Ġcom . s 7 even software . mobile miner . nos o . R Ċ import Ġcom . s 7 even software . mobile miner . nos o . databinding . Fragment Settings Binding Ċ Ċ class ĠSettings Fragment Ġ: ĠFragment (), ĠView . OnClickListener Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : Fragment Settings Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠMain ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcallback : Settings Fragment Listener ĊĠĠĠ Ġprivate Ġvar Ġlocal Mode Ġ= Ġfalse ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠSettings Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcallback Ġ= Ġcontext Ġas ĠSettings Fragment Listener ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Provider ( require Activity ()). get ( Main ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Settings Binding . inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠ ĠPrepare View () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠPrepare View () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . settings Fragment Save . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . settings Fragment Address Qr . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . settings Fragment Address Paste . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġbinding . settings Fragment Cpu Slider . value To Ġ= ĠviewModel . CPU cores . toFloat () ĊĠĠĠĠĠĠĠ Ġbinding . settings Fragment Miner ID . value Ġ= ĠviewModel . Miner ID ĊĠĠĠĠĠĠĠ Ġbinding . settings Fragment Mode . setOnClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġbinding . settings Fragment Cpu Slider . add On ChangeListener Ġ{ Ġ_, Ġvalue , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Cpu Number . text Ġ= Ġvalue . toInt (). toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . CPU to Use . observe ( view Lifecycle Owner ) Ġ{ Ġnumber Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Cpu Slider . value Ġ= Ġnumber . toFloat () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . Miner Address . observe ( view Lifecycle Owner ) Ġ{ Ġaddress Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Address . setText ( address ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . pool String . observe ( view Lifecycle Owner ) Ġ{ Ġpool String Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Pool Source . setText ( pool String ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . is Solo Min ing . observe ( view Lifecycle Owner ) Ġ{ Ġsolo Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( solo ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Mode Ġ= Ġsolo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Mode . isChecked Ġ= Ġ! solo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Source Container . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Miner id Container . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Mode Ġ= Ġsolo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Mode . isChecked Ġ= Ġ! solo ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Source Container . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Miner id Container . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠSettings Fragment Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon QR Sc ann () ĊĠĠĠĠĠĠĠ Ġfun Ġon Save Settings () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen ( v . id ){ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . settings _ fragment _ address _ qr Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on QR Sc ann () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . settings _ fragment _ mode Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlocal Mode Ġ= Ġ! binding . settings Fragment Mode . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( local Mode ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Source Container . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Miner id Container . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Mode . isChecked Ġ= Ġ! local Mode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Source Container . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Miner id Container . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// viewModel . is Solo Min ing . value Ġ= Ġ! binding . settings Fragment Mode . isChecked ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . settings _ fragment _ address _ paste Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclipboard Ġ= Ġrequire Activity (). getSystem Service ( CLIP BOARD _ SERVICE ) Ġas ĠClip board Manager ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( clipboard . has Primary Clip ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( clipboard . primary Clip Description ?. get MimeType ( 0 ) Ġ== Ġ" text / plain "){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġclip Ġ= Ġclipboard . primary Clip ?. getItem At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Address . setText ( clip ?. text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . settings Fragment Address . setSelection ( binding . settings Fragment Address . text . length ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . settings _ fragment _ save Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . Miner Address . value Ġ= Ġbinding . settings Fragment Address . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . CPU to Use . value Ġ= Ġbinding . settings Fragment Cpu Slider . value . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . Miner ID Ġ= Ġbinding . settings Fragment Miner ID . value ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . is Solo Min ing . value Ġ= Ġ! binding . settings Fragment Mode . isChecked ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( viewModel . getMin er Add res (). isNotEmpty () Ġ&& ĠviewModel . getMin er Add res (). isNotBlank () Ġ&& ĠN oso core unit . IsValid Address ( viewModel . getMin er Add res ())){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . on Save Settings () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( v , ĠR . string . invalid _ address , ĠSn ackbar . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }