package Ġjp . j ug g ler . fad own loader čĊč Ċ import Ġandroid . content . Context č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . content . SharedPreferences č Ċ import Ġjp . j ug g ler . fad own loader . tracker . Location Tracker čĊč Ċ open Ġclass ĠBase Pref ( val Ġkey Ġ: ĠString ) čĊč Ċ fun ĠSharedPreferences . Editor . remove ( bp Ġ: ĠBase Pref ) Ġ: ĠSharedPreferences . Editor Ġ= čĊ ĉ this . remove ( bp . key ) čĊč Ċ class ĠBoolean Pref ( čĊ ĉ key Ġ: ĠString , čĊ ĉ private Ġval Ġdef Val Ġ: ĠBoolean č Ċ ) Ġ: ĠBase Pref ( key ) Ġ{ čĊĉčĊ ĉ operator Ġfun Ġinvoke ( pref Ġ: ĠSharedPreferences ) Ġ= Ġpref . getBoolean ( key , Ġdef Val ) čĊ ĉ operator Ġfun Ġinvoke ( intent Ġ: ĠIntent ) Ġ= Ġintent . getBoolean Extra ( key , Ġdef Val ) č Ċ } čĊč Ċ fun ĠSharedPreferences . Editor . put ( bp Ġ: ĠBoolean Pref , Ġv Ġ: ĠBoolean ) Ġ: ĠSharedPreferences . Editor Ġ= čĊ ĉ this . put Boolean ( bp . key , Ġv ) čĊč Ċ class ĠInt Pref ( čĊ ĉ key Ġ: ĠString , čĊ ĉ val Ġdef Val Ġ: ĠInt č Ċ ) Ġ: ĠBase Pref ( key ) Ġ{ čĊĉčĊ ĉ operator Ġfun Ġinvoke ( pref Ġ: ĠSharedPreferences ) Ġ= Ġpref . getInt ( key , Ġdef Val ) čĊ ĉ operator Ġfun Ġinvoke ( intent Ġ: ĠIntent ) Ġ= Ġintent . getInt Extra ( key , Ġdef Val ) č Ċ } čĊč Ċ fun ĠSharedPreferences . Editor . put ( bp Ġ: ĠInt Pref , Ġv Ġ: ĠInt ) Ġ: ĠSharedPreferences . Editor Ġ= čĊ ĉ this . put Int ( bp . key , Ġv ) čĊč Ċ class ĠLong Pref ( čĊ ĉ key Ġ: ĠString , čĊ ĉ private Ġval Ġdef Val Ġ: ĠLong č Ċ ) Ġ: ĠBase Pref ( key ) Ġ{ čĊĉčĊ ĉ operator Ġfun Ġinvoke ( pref Ġ: ĠSharedPreferences ) Ġ= Ġpref . getLong ( key , Ġdef Val ) č Ċ } čĊč Ċ fun ĠSharedPreferences . Editor . put ( bp Ġ: ĠLong Pref , Ġv Ġ: ĠLong ) Ġ: ĠSharedPreferences . Editor Ġ= čĊ ĉ this . put Long ( bp . key , Ġv ) čĊč Ċ class ĠString Pref ( čĊ ĉ key Ġ: ĠString , čĊ ĉ val Ġdef Val Ġ: ĠString č Ċ ) Ġ: ĠBase Pref ( key ) Ġ{ čĊĉčĊ ĉ operator Ġfun Ġinvoke ( pref Ġ: ĠSharedPreferences ) Ġ: ĠString Ġ= Ġpref . getString ( key , Ġdef Val ) Ġ?: Ġdef Val čĊ ĉ operator Ġfun Ġinvoke ( intent Ġ: ĠIntent ) Ġ: ĠString Ġ= Ġintent . getString Extra ( key ) Ġ?: Ġdef Val čĊĉčĊ ĉ // ĉ fun Ġget Int ( pref Ġ: ĠSharedPreferences ) Ġ= Ġtry Ġ{ čĊ ĉ // ĉ ĉ invoke ( pref ). trim (). toInt () čĊ ĉ // ĉ } Ġcatch ( ex Ġ: ĠThrowable ) Ġ{ čĊ ĉ // ĉ ĉ def Val . toInt () čĊ ĉ // ĉ } čĊĉčĊ ĉ fun Ġget Int ( intent Ġ: ĠIntent ) Ġ= Ġtry Ġ{ čĊĉ ĉ invoke ( intent ). trim (). toInt () čĊ ĉ } Ġcatch ( ex Ġ: ĠThrowable ) Ġ{ čĊĉ ĉ def Val . toInt () čĊ ĉ } čĊĉčĊ ĉ fun Ġget Int OrNull ( pref Ġ: ĠSharedPreferences ) Ġ= Ġtry Ġ{ čĊĉ ĉ invoke ( pref ). trim (). toInt () čĊ ĉ } Ġcatch ( ex Ġ: ĠThrowable ) Ġ{ čĊĉ ĉ null čĊ ĉ } čĊĉčĊ ĉ // ĉ fun Ġget Int OrNull ( intent : Intent ) Ġ= Ġtry Ġ{ čĊ ĉ // ĉ ĉ invoke ( intent ). trim (). toInt () čĊ ĉ // ĉ } Ġcatch ( ex Ġ: ĠThrowable ) Ġ{ čĊ ĉ // ĉ ĉ null čĊ ĉ // ĉ } č Ċ } čĊč Ċ fun ĠSharedPreferences . Editor . put ( p Ġ: ĠString Pref , Ġv Ġ: ĠString ) Ġ: ĠSharedPreferences . Editor Ġ= čĊ ĉ this . putString ( p . key , Ġv ) čĊč Ċ fun ĠIntent . put ( pref Ġ: ĠSharedPreferences , Ġp Ġ: ĠBoolean Pref ) Ġ{ čĊ ĉ putExtra ( p . key , Ġp ( pref )) č Ċ } čĊč Ċ fun ĠIntent . put ( pref Ġ: ĠSharedPreferences , Ġp Ġ: ĠString Pref ) Ġ{ čĊ ĉ putExtra ( p . key , Ġp ( pref )) č Ċ } čĊč Ċ fun ĠIntent . put ( pref Ġ: ĠSharedPreferences , Ġp Ġ: ĠInt Pref ) Ġ{ čĊ ĉ putExtra ( p . key , Ġp ( pref )) č Ċ } čĊč Ċ fun ĠIntent . put ( v Ġ: ĠString , Ġp Ġ: ĠString Pref ) Ġ{ čĊ ĉ putExtra ( p . key , Ġv ) č Ċ } čĊč Ċ fun ĠIntent . put ( v Ġ: ĠInt , Ġp Ġ: ĠInt Pref ) Ġ{ čĊ ĉ putExtra ( p . key , Ġv ) č Ċ } čĊč Ċ object ĠPref Ġ{ čĊ ĉ fun Ġpref ( context Ġ: ĠContext ) Ġ: ĠSharedPreferences Ġ{ čĊĉ ĉ return Ġcontext . get SharedPreferences (" app _ pref ", ĠContext . MODE _ PRIVATE ) čĊ ĉ } čĊĉčĊ ĉ const Ġval ĠTARGET _ TYPE _ FLASH AIR _ AP Ġ= Ġ 0 čĊ ĉ const Ġval ĠTARGET _ TYPE _ FLASH AIR _ STA Ġ= Ġ 1 čĊ ĉ const Ġval ĠTARGET _ TYPE _ P ENT AX _ KP Ġ= Ġ 2 čĊ ĉ const Ġval ĠTARGET _ TYPE _ PQ I _ AIR _ CARD Ġ= Ġ 3 čĊ ĉ const Ġval ĠTARGET _ TYPE _ PQ I _ AIR _ CARD _ T ETHER Ġ= Ġ 4 čĊĉčĊ ĉ const Ġval ĠLAST _ MODE _ STOP Ġ= Ġ 0 čĊ ĉ const Ġval ĠLAST _ MODE _ ON CE Ġ= Ġ 1 čĊ ĉ const Ġval ĠLAST _ MODE _ REPEAT Ġ= Ġ 2 čĊĉčĊ ĉ private Ġconst Ġval ĠDEFAULT _ REPEAT _ INTERVAL _ SECONDS Ġ= Ġ 3 0 čĊĉčĊ ĉ private Ġconst Ġval ĠDEFAULT _ WIFI _ AP _ CHANGE _ INTERVAL Ġ= Ġ 5 0 0 0 L čĊ ĉ private Ġconst Ġval ĠDEFAULT _ WIFI _ SCAN _ INTERVAL Ġ= Ġ 1 0 0 0 0 L čĊ ĉ private Ġconst Ġval ĠDEFAULT _ T ETHER _ SPR AY _ INTERVAL Ġ= Ġ 3 0 0 0 L čĊ ĉ private Ġconst Ġval ĠDEFAULT _ T ETHER _ TEST _ CONNECTION _ TIMEOUT Ġ= Ġ 1 5 0 0 0 L čĊĉčĊ ĉ private Ġconst Ġval ĠDEFAULT _ LOCATION _ MODE Ġ= ĠLocation Tracker . NO _ LOCATION _ UPDATE čĊ ĉ private Ġconst Ġval ĠDEFAULT _ LOCATION _ INTERVAL _ DE SI RED Ġ= Ġ 1 0 0 0 L Ġ* Ġ 3 6 0 0 čĊ ĉ private Ġconst Ġval ĠDEFAULT _ LOCATION _ INTERVAL _ MIN Ġ= Ġ 1 0 0 0 L Ġ* Ġ 3 0 0 čĊĉ čĊĉčĊ ĉ // ĠUI çĶ» éĿ¢ ãģ« è¡¨ç¤º ãģķãĤĮãģ¦ãģĦãĤĭ æĥħåł± ãģ® æ°¸ ç¶ļ åĮĸ čĊ ĉ val Ġui Repeat Ġ= ĠBoolean Pref (" ui _ repeat ", Ġfalse ) čĊ ĉ val Ġui Force Wifi Ġ= ĠBoolean Pref (" ui _ force _ wifi ", Ġfalse ) čĊ ĉ val Ġui Auto Rotate Thumbnail Ġ= ĠBoolean Pref (" ui _ thumbnail _ auto _ rotate ", Ġtrue ) čĊ ĉ val Ġui Copy Before Send Ġ= ĠBoolean Pref (" ui _ copy _ before _ view _ send ", Ġfalse ) čĊ ĉ val Ġui Protected Only Ġ= ĠBoolean Pref (" ui _ protected _ only ", Ġfalse ) čĊ ĉ val Ġui Skip Already Download Ġ= ĠBoolean Pref (" ui _ skip _ already _ download ", Ġfalse ) čĊ ĉ val Ġui Stop When Te ther ing Off Ġ= ĠBoolean Pref (" ui Stop When Te ther ing Off ", Ġfalse ) čĊĉčĊ ĉ val Ġui Last Page Ġ= ĠInt Pref (" ui _ last _ page ", Ġ 0 ) čĊ ĉ val Ġui Target Type Ġ= ĠInt Pref (" ui _ target _ type ", Ġ- Ġ 1 ) čĊ ĉ val Ġui Location Mode Ġ= ĠInt Pref (" ui _ location _ mode ", ĠDEFAULT _ LOCATION _ MODE ) čĊĉčĊ ĉ val Ġui Folder Uri Ġ= ĠString Pref (" ui _ folder _ uri ", Ġ"") čĊ ĉ val Ġui FileType Ġ= ĠString Pref (" ui _ file _ type ", Ġ". jp * ") čĊ ĉ val Ġui S sid Ġ= ĠString Pref (" ui _ ssid ", Ġ"") čĊĉčĊ ĉ val Ġui Interval Ġ= ĠString Pref ( čĊĉ ĉ " ui _ interval ", čĊĉ ĉ DEFAULT _ REPEAT _ INTERVAL _ SECONDS . toString () čĊ ĉ ) čĊĉčĊ ĉ val Ġui Te ther Spr ay Interval Ġ= ĠString Pref ( čĊĉ ĉ " ui Te ther Spr ay Interval ", čĊĉ ĉ ( DEFAULT _ T ETHER _ SPR AY _ INTERVAL Ġ/ Ġ 1 0 0 0 L ). toString () čĊ ĉ ) čĊĉčĊ ĉ val Ġui Te ther Test Connection Timeout Ġ= ĠString Pref ( čĊĉ ĉ " ui Te ther Test Connection Timeout ", čĊĉ ĉ ( DEFAULT _ T ETHER _ TEST _ CONNECTION _ TIMEOUT Ġ/ Ġ 1 0 0 0 L ). toString () čĊ ĉ ) čĊ ĉ val Ġui Wifi Change Ap Interval Ġ= ĠString Pref ( čĊĉ ĉ " ui Wifi Change Ap Interval ", čĊĉ ĉ ( DEFAULT _ WIFI _ AP _ CHANGE _ INTERVAL Ġ/ Ġ 1 0 0 0 L ). toString () čĊ ĉ ) čĊ ĉ val Ġui Wifi Scan Interval Ġ= ĠString Pref ( čĊĉ ĉ " ui Wifi Scan Interval ", čĊĉ ĉ ( DEFAULT _ WIFI _ SCAN _ INTERVAL Ġ/ Ġ 1 0 0 0 L ). toString () čĊ ĉ ) čĊĉčĊ ĉ val Ġui Location Interval Desired Ġ= ĠString Pref ( čĊĉ ĉ " ui _ location _ interval _ desired ", čĊĉ ĉ ( DEFAULT _ LOCATION _ INTERVAL _ DE SI RED Ġ/ Ġ 1 0 0 0 L ). toString () čĊ ĉ ) čĊĉčĊ ĉ val Ġui Location Interval Min Ġ= ĠString Pref ( čĊĉ ĉ " ui _ location _ interval _ min ", čĊĉ ĉ ( DEFAULT _ LOCATION _ INTERVAL _ MIN Ġ/ Ġ 1 0 0 0 L ). toString () čĊ ĉ ) čĊĉčĊ ĉ //////////////////////////////////////////////////////////////// ////// čĊĉčĊ ĉ private Ġval Ġui Target Url Flash Air Ap Ġ= ĠString Pref ( čĊĉ ĉ " ui _ flash air _ url ", Ġ// Ġ æŃ ´ åı² çļĦãģª çĲĨ çĶ± ãģ§ ãĤŃ ãĥ¼ åĲį ãģĮ çī¹ åĪ¥ čĊĉ ĉ " http :// flash air /" čĊ ĉ ) čĊ ĉ private Ġval Ġui Target Url Flash Air St a Ġ= ĠString Pref ( čĊĉ ĉ " ui _ target _ url _ 1 ", čĊĉ ĉ " http :// Auto Detect /" čĊ ĉ ) čĊ ĉ private Ġval Ġui Target Url P ent ax Kp Ġ= ĠString Pref ( čĊĉ ĉ " ui _ target _ url _ 2 ", čĊĉ ĉ " http :// 1 9 2 . 1 6 8 . 0 . 1 /" čĊ ĉ ) čĊ ĉ private Ġval Ġui Target Url P ent ax P qi Air Card Ġ= ĠString Pref ( čĊĉ ĉ " ui _ target _ url _ p qi _ air _ card ", čĊĉ ĉ " http :// 1 9 2 . 1 6 8 . 1 . 1 /" čĊ ĉ ) čĊ ĉ private Ġval Ġui Target Url P ent ax P qi Air Card Te ther Ġ= ĠString Pref ( čĊĉ ĉ " ui _ target _ url _ p qi _ air _ card _ te ther ", čĊĉ ĉ " http :// Auto Detect /" čĊ ĉ ) čĊĉčĊ ĉ private Ġfun Ġui Target Url ( target _ type Ġ: ĠInt ) Ġ= Ġwhen ( target _ type ) Ġ{ čĊĉ ĉ TARGET _ TYPE _ FLASH AIR _ AP Ġ-> Ġui Target Url Flash Air Ap čĊĉ ĉ TARGET _ TYPE _ FLASH AIR _ STA Ġ-> Ġui Target Url Flash Air St a čĊĉ ĉ TARGET _ TYPE _ P ENT AX _ KP Ġ-> Ġui Target Url P ent ax Kp čĊĉ ĉ TARGET _ TYPE _ PQ I _ AIR _ CARD Ġ-> Ġui Target Url P ent ax P qi Air Card čĊĉ ĉ TARGET _ TYPE _ PQ I _ AIR _ CARD _ T ETHER Ġ-> Ġui Target Url P ent ax P qi Air Card Te ther čĊĉ ĉ else Ġ-> Ġui Target Url Flash Air Ap čĊ ĉ } čĊĉčĊ ĉ fun Ġload Target Url ( pref Ġ: ĠSharedPreferences , Ġtarget _ type Ġ: ĠInt ) Ġ= čĊĉ ĉ ui Target Url ( target _ type )( pref ) čĊĉčĊ ĉ fun Ġsave Target Url ( edit Ġ: ĠSharedPreferences . Editor , Ġtarget _ type Ġ: ĠInt , Ġvalue Ġ: ĠString ) Ġ= čĊĉ ĉ edit . put ( ui Target Url ( target _ type ), Ġvalue ) čĊĉčĊ ĉ //////////////////////////////////////////////////////////////// ////// čĊĉčĊ ĉ // Ġ æľĢ å¾Į ãģ« Worker ãĤĴ æīĭ åĭķ éĸĭå§ĭ ãģĹãģŁ æĻĤ ãģ® è¨Ńå®ļ čĊĉčĊ ĉ val Ġworker Repeat Ġ= ĠBoolean Pref (" worker _ repeat ", Ġfalse ) čĊ ĉ val Ġworker Force Wifi Ġ= ĠBoolean Pref (" worker _ force _ wifi ", Ġfalse ) čĊ ĉ val Ġworker Protected Only Ġ= ĠBoolean Pref (" worker _ protected _ only ", Ġfalse ) čĊ ĉ val Ġworker Skip Already Download Ġ= ĠBoolean Pref (" worker _ skip _ already _ download ", Ġfalse ) čĊ ĉ val Ġworker Stop When Te ther ing Off Ġ= ĠBoolean Pref (" worker Stop When Te ther ing Off ", Ġfalse ) čĊĉčĊ ĉ val Ġworker Target Url Ġ= ĠString Pref (" worker _ flash air _ url ", Ġ"") čĊ ĉ val Ġworker Folder Uri Ġ= ĠString Pref (" worker _ folder _ uri ", Ġ"") čĊ ĉ val Ġworker FileType Ġ= ĠString Pref (" worker _ file _ type ", Ġ". jp * ") čĊ ĉ val Ġworker S sid Ġ= ĠString Pref (" worker _ ssid ", Ġ"") čĊĉčĊ ĉ val Ġworker Target Type Ġ= ĠInt Pref (" worker _ target _ type ", Ġ- Ġ 1 ) čĊ ĉ val Ġworker Location Mode Ġ= ĠInt Pref (" worker _ location _ mode ", ĠDEFAULT _ LOCATION _ MODE ) čĊĉčĊ ĉ val Ġworker Interval Ġ= ĠInt Pref ( čĊĉ ĉ " worker _ interval ", čĊĉ ĉ DEFAULT _ REPEAT _ INTERVAL _ SECONDS čĊ ĉ ) čĊĉčĊ ĉ val Ġworker Location Interval Desired Ġ= ĠLong Pref ( čĊĉ ĉ " worker _ location _ interval _ desired ", čĊĉ ĉ DEFAULT _ LOCATION _ INTERVAL _ DE SI RED čĊ ĉ ) čĊĉčĊ ĉ val Ġworker Location Interval Min Ġ= ĠLong Pref ( čĊĉ ĉ " worker _ location _ interval _ min ", čĊĉ ĉ DEFAULT _ LOCATION _ INTERVAL _ MIN čĊ ĉ ) čĊĉčĊ ĉ val Ġworker Te ther Spr ay Interval Ġ= ĠLong Pref ( čĊĉ ĉ " worker Te ther Spr ay Interval ", čĊĉ ĉ DEFAULT _ T ETHER _ SPR AY _ INTERVAL čĊ ĉ ) čĊĉčĊ ĉ val Ġworker Te ther Test Connection Timeout Ġ= ĠLong Pref ( čĊĉ ĉ " worker Te ther Test Connection Timeout ", čĊĉ ĉ DEFAULT _ T ETHER _ TEST _ CONNECTION _ TIMEOUT čĊ ĉ ) čĊĉčĊ ĉ val Ġworker Wifi Change Ap Interval Ġ= ĠLong Pref ( čĊĉ ĉ " worker Wifi Change Ap Interval ", čĊĉ ĉ DEFAULT _ WIFI _ AP _ CHANGE _ INTERVAL čĊ ĉ ) čĊĉčĊ ĉ val Ġworker Wifi Scan Interval Ġ= ĠLong Pref ( čĊĉ ĉ " worker Wifi Scan Interval ", čĊĉ ĉ DEFAULT _ WIFI _ SCAN _ INTERVAL čĊ ĉ ) čĊĉčĊ ĉ //////////////////////////////////////////////////////////////// ////// čĊĉčĊ ĉ // Ġ æľĢ å¾Į ãģ« æĬ ¼ ãģĹãģŁ åĭķ ä½ľ ãĥľ ãĤ¿ ãĥ³ ãģ¨ ãģĿãģ® æĻĤ åĪ» čĊ ĉ val Ġlast Mode Ġ= ĠInt Pref (" last _ mode ", ĠLAST _ MODE _ STOP ) čĊ ĉ val Ġlast Mode Update Ġ= ĠLong Pref (" last _ mode _ update ", Ġ 0 L ) čĊĉčĊ ĉ // ĠãĥķãĤ ¡ãĤ¤ãĥ« ãĤ¹ ãĤŃ ãĥ£ ãĥ³ ãģĮ å®Į äºĨ ãģĹãģŁ æĻĤ åĪ» čĊ ĉ val Ġlast Idle Start Ġ= ĠLong Pref (" last _ idle _ start ", Ġ 0 L ) čĊ ĉ val Ġflash Air Update Status Old Ġ= ĠLong Pref (" flash air _ update _ status _ old ", Ġ- Ġ 1 L ) čĊĉčĊ ĉ // Ġãĥ Ģ ãĤ¦ ãĥ³ ãĥŃ ãĥ¼ãĥī å®Į äºĨ éĢļçŁ¥ ãģ« è¡¨ç¤º ãģĻãĤĭ æķ°åŃĹ čĊ ĉ val Ġdownload Complete Count Ġ= ĠLong Pref (" download _ complete _ count ", Ġ 0 L ) čĊ ĉ val Ġdownload Complete Count Hidden Ġ= ĠLong Pref (" download _ complete _ count _ hidden ", Ġ 0 L ) čĊĉčĊ ĉ val Ġpurch ased Remove Ad Ġ= ĠBoolean Pref (" remove _ ad _ purchase d ", Ġfalse ) čĊĉčĊ ĉ val Ġagreed Privacy Policy Digest Ġ= ĠString Pref (" ag reed Privacy Policy Digest ", Ġ"") čĊĉčĊ ĉ //////////////////////////////////////////////////////////////// ////// čĊĉčĊ ĉ fun Ġinitialize ( context Ġ: ĠContext ) Ġ{ čĊĉ ĉ val Ġpref Ġ= Ġpref ( context ) čĊĉĉčĊĉ ĉ var Ġb Changed Ġ= Ġfalse čĊĉĉčĊĉ ĉ val Ġe Ġ= Ġpref . edit () čĊĉĉčĊĉ ĉ // Ġ ç©º æĸĩåŃĹåĪĹ ãģª ãĤī ãĥĩ ãĥķãĤ© ãĥ« ãĥĪ åĢ¤ ãģ« è¨Ńå®ļ ãģĹãģª ãģĬ ãģĻ čĊĉ ĉ for ( sp Ġin ĠarrayOf ( čĊĉĉ ĉ ui Interval , čĊĉĉ ĉ ui FileType , čĊĉĉ ĉ ui Location Interval Desired , čĊĉĉ ĉ ui Location Interval Min čĊĉ ĉ )) Ġ{ čĊĉĉ ĉ if ( sp ( pref ). trim (). isEmpty ()) Ġ{ čĊĉĉĉ ĉ b Changed Ġ= Ġtrue čĊĉĉĉ ĉ e . put ( sp , Ġsp . def Val ) čĊĉĉ ĉ } čĊĉ ĉ } čĊĉĉčĊĉ ĉ // Ġ ç¯Ħ åĽ ² å¤ĸ ãģ® åĢ¤ ãģª ãĤī ãĥĩ ãĥķãĤ© ãĥ« ãĥĪ åĢ¤ ãģ« è¨Ńå®ļ ãģĹãģª ãģĬ ãģĻ čĊĉ ĉ if ( ui Location Mode ( pref ) Ġ! in Ġ 0 Ġ.. ĠLocation Tracker . LOCATION _ HIGH _ AC CUR ACY ) Ġ{ čĊĉĉ ĉ b Changed Ġ= Ġtrue čĊĉĉ ĉ e . put ( ui Location Mode , Ġui Location Mode . def Val ) čĊĉ ĉ } čĊĉĉčĊĉ ĉ if ( b Changed ) Ġe . apply () čĊ ĉ } č Ċ } čĊ