package Ġd ji . sample V 5 . module air craft . pages Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġd ji . sample V 5 . module common . pages . DJ IF ragment Ċ import Ġd ji . sample V 5 . module common . util . Toast Utils Ċ import Ġd ji . sample V 5 . module air craft . R Ċ import Ġd ji . sample V 5 . module air craft . data . DJ IR TK Base Station Connect Info Ċ import Ġd ji . sample V 5 . module air craft . data . R tk Station Scan Adapter Ċ import Ġd ji . sample V 5 . module air craft . models . RT K Station VM Ċ import Ġd ji . sample V 5 . module common . key value . Key Item ActionListener Ċ import Ġd ji . sample V 5 . module common . key value . KeyValue Dialog Util Ċ import Ġd ji . sdk . key value . value . common . Location Coordinate 3 D Ċ import Ġd ji . sdk . key value . value . rt k base station . RT K Base Station Reset Password Info Ċ import Ġd ji . sdk . key value . value . rt k base station . RT K Station Con net State Ċ import Ġd ji . sdk . key value . value . rt k base station . RT K Station Info Ċ import Ġd ji . v 5 . manager . air craft . rt k . station . Connected RT K Station Info Ċ import Ġd ji . v 5 . utils . common . Log Utils Ċ import Ġd ji . v 5 . ux . core . extension . hide Ċ import Ġd ji . v 5 . ux . core . extension . show Ċ import Ġkotlinx . android . synt hetic . main . frag _ station _ rt k _ page .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ /** Ċ Ġ* ĠDescription Ġ: åŁº ç«Ļ TR K æĵįä½ľ çķĮéĿ¢ Ċ Ġ* Ċ Ġ* Ġ@ author : ĠByte . C ai Ċ Ġ* Ġ Ġdate Ġ: Ġ 2 0 2 2 / 3 / 4 Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 , ĠD JI ĠAll ĠRights ĠReserved . Ċ Ġ*/ Ċ class ĠR TK Station Fragment Ġ: ĠD J IF ragment (), ĠR tk Station Scan Adapter . On ItemClickListener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġstation List Ġ= ĠArrayList < DJ IR TK Base Station Connect Info >() ĊĠĠĠ Ġ// è¿ĻéĩĮ åıªèĥ½ çĶ¨ fragment çº§åĪ« çļĦ viewModel ï¼Į åĲ¦åĪĻ ä¼ļ åĩºçİ° ç² ĺ æĢ§ äºĭä»¶ ĊĠĠĠ Ġprivate Ġval Ġr tk Station VM : ĠR TK Station VM Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġr tk Station Scan Adapter : ĠR tk Station Scan Adapter ĊĠĠĠ Ġprivate Ġvar Ġlogin Status Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġconnect State Ġ= ĠR TK Station Con net State . UNKNOWN ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠST ATION _ PASSWORD _ LENGTH Ġ= Ġ 6 // å¯Ĩçłģ éķ¿åº¦ å¿ħé¡» ä¸º 6 ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Station RT K Fragment " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . frag _ station _ rt k _ page , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ Ġinit Listener () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" init View ") ĊĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ station TR TK åĪĹè¡¨ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager ( require Context (), ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġrv _ station _ list . layout Manager Ġ= Ġlayout Manager ĊĠĠĠĠĠĠĠ Ġr tk Station Scan Adapter Ġ= ĠR tk Station Scan Adapter ( require Context (), Ġstation List ) ĊĠĠĠĠĠĠĠ Ġrv _ station _ list . adapter Ġ= Ġr tk Station Scan Adapter ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . start Search Station LD . observe ( view Lifecycle Owner ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Success . process Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Se aring Ġr tk Ġstation ...", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Search Ġstation Ġ Ġfail ï¼ļ ${ it . msg }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . stop Search Station LD . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Success . process Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Stop Ġsearch Ġstation Ġ Ġsuccess ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Stop Ġsearch Ġstation Ġ Ġfail ï¼ļ ${ it . msg } !! !" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . station List LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result (" Listener Ġstation List Ġfail :${ result . msg }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Station RT K List ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . connect RT K Station LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Station Ġconnecting ...", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Station Ġconnect Ġfail :${ result . msg }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . app Station Connect Status LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result (" App Ġstation Ġconnect Ġstatus Ġfail :${ result . msg }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Connect Status ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . app Station Connected Info LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result (" Listener Ġstation Ġconnected Ġinformation Ġfail :${ result . msg }") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Connect Station Info ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Re connected Station Info ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . login LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Status Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast (" Login Ġsuccess ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogin Status Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast (" Login Ġfail :${ result . msg }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . set Station Position LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġstation Ġposition Ġsuccess ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġstation Ġposition Ġfail :${ result . msg }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġr tk Station VM . reset Station Position LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Reset Ġstation Ġposition Ġsuccess ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Reset Ġstation Ġposition Ġfail :${ result . msg }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġr tk Station VM . reset Station Password LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Reset Ġstation Ġpassword Ġsuccess ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Reset Ġstation Ġpassword Ġfail :${ result . msg }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . set Station Name LD . observe ( view Lifecycle Owner ) Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult . is Success . process Result ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġstation Ġname Ġsuccess ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Set Ġstation Ġname Ġfail :${ result . msg }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// æ¸ħ éĻ¤ æķ°æį® ĊĠĠĠĠĠĠĠ Ġshow Connect Station Info ( Connected RT K Station Info ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġlogin Status Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġinit Listener () Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ä¸Ģ è¿Ľåħ¥ çķĮéĿ¢ å°± å¼Ģå§ĭ Listen åŁº ç«Ļ RT K è¿ŀæİ¥ æĥħåĨµ ĊĠĠĠĠĠĠĠ Ġr tk Station VM . add Search RT K Station Listener () ĊĠĠĠĠĠĠĠ Ġr tk Station VM . add Station Connect Status Listener () ĊĠĠĠĠĠĠĠ Ġr tk Station VM . add Connected RT K Station Info Listener () ĊĠĠĠĠĠĠĠ Ġr tk Station Scan Adapter . setOn ItemClickListener ( this ) ĊĊĠĠĠĠĠĠĠ Ġbtn _ start _ search _ station . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ UI ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Station RT K List ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ list _ tip . hide () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . start Search Station () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ stop _ search _ station . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . stop Search Station () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbtn _ login . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĻ»å½ķ æĵįä½ľ åıª åħģè®¸ åľ¨ åŁº ç«Ļ è¿ŀæİ¥ ä¹ĭåĲİ æīį åı¯ä»¥ è¿Ľè¡Į ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( connect State Ġ!= ĠR TK Station Con net State . CONNECTED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast (" Please Ġconnect Ġto Ġthe Ġbase Ġstation Ġfirst ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog (" è¾ĵåħ¥ å¯Ĩçłģ ï¼Į æ³¨æĦı å¯Ĩçłģ å¿ħé¡» çĶ± 0 - 9 çļĦ 6 ä¸ª æķ°åŃĹ ç»Ħ æĪĲ çļĦ åŃĹç¬¦ä¸² ï¼Į æ¯Ķå¦Ĥ âĢľ 0 1 2 3 4 5 âĢĿ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġtrim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! TextUtils . isEmpty ( password ) Ġ&& Ġpassword . length Ġ== ĠST ATION _ PASSWORD _ LENGTH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . login As Admin ( password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast (" The Ġpassword Ġlength Ġdoes Ġnot Ġmeet Ġthe Ġrequirements , Ġthe Ġpassword Ġlength Ġmust Ġbe Ġ 6 ï¼ģï¼ģ ï¼ģ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ set _ station _ position . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlocation Coordinate 3 D Ġ= ĠLocation Coordinate 3 D ( 1 . 0 , Ġ 1 . 0 , Ġ 1 . 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog (" è¾ĵåħ¥ åŁº ç«Ļ åĿĲæłĩ ", Ġlocation Coordinate 3 D . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . set RT K Station Position ( Location Coordinate 3 D . fromJson ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ get _ station _ position . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . get RT K Station Position () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ reset _ station _ position . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . reset RT K Station Position () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ reset _ station _ password . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr tk Base Station Reset Password Info Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR TK Base Station Reset Password Info (" 1 1 1 1 1 1 ", Ġ" 1 1 1 1 1 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog (" éĩį ç½® å¯Ĩçłģ ï¼Į æ³¨æĦı å¯Ĩçłģ å¿ħé¡» çĶ± 0 - 9 çļĦ 6 ä¸ª æķ°åŃĹ ç»Ħ æĪĲ çļĦ åŃĹç¬¦ä¸² ï¼Į æ¯Ķå¦Ĥ âĢľ 0 1 2 3 4 5 âĢĿ ", Ġr tk Base Station Reset Password Info . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreset Password Info Ġ= Ġit . trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . reset Station Password ( RT K Base Station Reset Password Info . fromJson ( reset Password Info )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbtn _ set _ station _ name . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprocess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog (" ä¿®æĶ¹ åŁº ç«Ļ åĲįç§° , æ³¨æĦı ï¼ļ åŁº ç«Ļ åĲįåŃĹ UTF - 8 ä¸ĭ åıª åıĸ 4 ä¸ª åŃĹèĬĤ ï¼Į æ¯Ķå¦Ĥ è®¾ç½® åĲįåŃĹ ä¸º âĢľ abcdef âĢĿï¼Į æľĢåĲİ æķĪæŀľ æĺ¯ âĢľ abcd âĢĿ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstation Name Ġ= Ġit . trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . set Station Name ( station Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġr tk Station VM . get Station Position LD . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast ( it . data . toString ()) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Need Update UI ( list : ĠList < RT K Station Info >? ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( list ?. size Ġ!= Ġstation List . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġstation List . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( station List [ i ]. toString () Ġ!= Ġlist [ i ]. toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Station RT K List ( list : ĠList < DJ IR TK Base Station Connect Info > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// è¿ĩæ»¤ éĩįå¤į çļĦæķ°æį® ï¼Į éĺ² æŃ¢ çķĮéĿ¢ éĩįæĸ° åĪ·æĸ° ĊĠĠĠĠĠĠĠ Ġif Ġ( check Need Update UI ( list )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstation List . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" clear Ġstation List ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġit ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" station Name =${ i . rt k Station Name } +, signal Level =${ i . signal Level }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstation List . add ( i ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ list _ tip . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station Scan Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ éĢī ä¸Ń æŁĲä¸ª åŁº ç«Ļ , æ³¨æĦı è¿ĻéĩĮ selected RT K Station Connect Info ä¸įèĥ½ åĪĿå§ĭåĮĸ ä¸º null ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġselected RT K Station Connect Info : ĠD J IR TK Base Station Connect Info Ġ= ĠD J IR TK Base Station Connect Info () ĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( view : ĠView ?, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġselected RT K Station Connect Info Ġ= Ġstation List [ position ] ĊĠĠĠĠĠĠĠ Ġ// è¿ŀæİ¥ æŁĲ ä¸Ģä¸ª åŁº ç«Ļ æĹ¶ ï¼Į å°Ĩ åħ¶ä»ĸ åŁº ç«Ļ çļĦ è¿ŀæİ¥ çĬ¶æĢģ éĩį ç½® ä¸ºç©º éĹ ² ï¼Į åĽłä¸º ä¸Ģæ¬¡ åıªèĥ½ è¿ŀæİ¥ ä¸Ģä¸ª åŁº ç«Ļ ĊĠĠĠĠĠĠĠ Ġfor Ġ( station Info Ġin Ġstation List ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstation Info . connect Status Ġ= ĠR TK Station Con net State . IDLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġselected RT K Station Connect Info . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station VM . start Connect To RT K Station ( base Station Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected RT K Station Connect Info . refresh ( RT K Station Con net State . CONNECT ING ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" click Ġand Ġconnecting Ġr tk ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġinline Ġfun Ġprocess ( block : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( login Status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast (" You Ġneed Ġto Ġlogin Ġin Ġbefore Ġoperation ï¼ģï¼ģ ï¼ģ ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠD J IR TK Base Station Connect Info . refresh ( connect State : ĠR TK Station Con net State ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġconnect State ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" connect State =$ connect State ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . connect Status Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġr tk Station Scan Adapter . notify DataSet Changed () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Connect Status ( rt k Base Station Connect State : ĠR TK Station Con net State ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( rt k Base Station Connect State Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġr tk Base Station Connect State . name ) ĊĠĠĠĠĠĠĠ Ġwhen Ġ( rt k Base Station Connect State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR TK Station Con net State . CONNECTED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast (" Station Ġhas Ġconnected ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR TK Station Con net State . DIS CONNECTED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast (" Station Ġhas Ġdisconnected ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . d ( TAG , Ġ" Current Ġstation Ġstatus Ġis Ġ$ rt k Base Station Connect State ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġconnect State Ġ= Ġr tk Base Station Connect State ĊĠĠĠĠĠĠĠ Ġ// è¿ĶåĽŀ è¿ŀæİ¥ çĬ¶æĢģ ï¼Į æĽ´æĸ° UI ĊĠĠĠĠĠĠĠ Ġselected RT K Station Connect Info . refresh ( rt k Base Station Connect State ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġvar Ġlast Station Name Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġfun Ġshow Connect Station Info ( info Connected : ĠConnected RT K Station Info ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo Connected ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ name _ info . text Ġ= Ġ"$ station Name " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ id _ info . text Ġ= Ġ"$ station Id " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ signal _ level _ info . text Ġ= Ġ"$ signal Level " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ battery _ current _ info . text Ġ= Ġ"$ battery Current " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ battery _ voltage _ info . text Ġ= Ġ"$ battery Voltage " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ battery _ temperature _ info . text Ġ= Ġ"$ battery Temperature " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv _ station _ battery _ capacity _ percent _ info . text Ġ= Ġ"$ battery Capacity Percent " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ åĲįåŃĹ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . isEmpty ( last Station Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Station Name Ġ= Ġstation Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è¿ĻéĩĮ åĬł ä¸Ĭ éĿŀ ç©º åĪ¤æĸŃ ï¼Į æĺ¯ åĽłä¸º æĸŃ å¼Ģ è¿ŀæİ¥ åĲİ station Name ä¹Łæĺ¯ ä¸ºç©º ï¼Į æİĴ éĻ¤ è¿Ļç§į æĥħåĨµ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( last Station Name Ġ!= Ġstation Name Ġ&& Ġ! TextUtils . isEmpty ( station Name )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¿®æĶ¹ åĲįåŃĹ åĲİ åĪ·æĸ° UI ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected RT K Station Connect Info . rt k Station Name Ġ= Ġstation Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast Station Name Ġ= Ġstation Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr tk Station Scan Adapter . notify DataSet Changed () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġhandle Re connected Station Info ( info Connected : ĠConnected RT K Station Info ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġinfo Connected ?. run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç¬¬ ä¸Ģæ¬¡ è¿ŀæİ¥ è¿ĩ åŁº ç«Ļ åĲİ ï¼Į åĨį æ¬¡ éĩį åĲ¯ é£ŀ æľº æĪĸèĢħ éĩį åĲ¯ App åĽº ä»¶ ä¼ļ å¸® å¿ Ļ èĩªåĬ¨ è¿ŀæİ¥ åŁº ç«Ļ ãĢĤ è¿ĻéĩĮ å°±æĺ¯ ä¸ºäºĨ æŀĦå»º èĩªåĬ¨ éĩį è¿ŀ çļĦ åŁº ç«Ļ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected RT K Station Connect Info . base Station Id Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog Utils . i ( TAG , Ġ" RT K ĠStation Ġhas Ġre connected ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected RT K Station Connect Info Ġ= ĠD J IR TK Base Station Connect Info ( station Id , Ġsignal Level , Ġstation Name , ĠR TK Station Con net State . CONNECTED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Station RT K List ( array ListOf ( selected RT K Station Connect Info )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnect State Ġ= ĠR TK Station Con net State . CONNECTED ; ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠBoolean . process Result ( positive Msg : ĠString , Ġnegative Msg : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast ( positive Msg ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast ( negative Msg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġselected RT K Station Connect Info Ġ= ĠD J IR TK Base Station Connect Info () ĊĠĠĠĠĠĠĠ Ġr tk Station VM . clear All Station Connect Status Listener () ĊĠĠĠĠĠĠĠ Ġr tk Station VM . clear All Search RT K Station Listener () ĊĠĠĠĠĠĠĠ Ġr tk Station VM . clear All Connected RT K Station Info Listener () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠBoolean . process Result ( negative Msg : ĠString , Ġblock : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblock () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Toast ( negative Msg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Dialog ( title : ĠString , Ġmsg : ĠString Ġ= Ġ"", Ġcallback : ĠKey Item ActionListener < String >) Ġ{ ĊĠĠĠĠĠĠĠ ĠKey Value Dialog Util . show Input Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity , Ġtitle , Ġmsg , Ġ"", Ġtrue ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback . action Change ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }