]> hydra-www.ietfng.org Git - acmetensortoys-ctfws-android/commitdiff
service binder: encapsulate handling of default server URL
authorNathaniel Wesley Filardo <nwfilardo@gmail.com>
Mon, 28 Feb 2022 21:37:09 +0000 (21:37 +0000)
committerNathaniel Wesley Filardo <nwfilardo@gmail.com>
Wed, 2 Mar 2022 23:39:37 +0000 (23:39 +0000)
mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java

index f27e96b6b1241b7869197b98972c7334d94556c7..682f460c55162bcb26069883d279e373ca61c6ca 100644 (file)
@@ -312,23 +312,23 @@ public class MainService extends Service {
         Log.d("Service", "Connect dispatched");
     }
 
+    private String getServerFromPrefs(SharedPreferences sharedPreferences) {
+        boolean useDefault = sharedPreferences.getBoolean("server_def", true);
+        return useDefault
+                ? getString(R.string.server_default)
+                : sharedPreferences.getString("server", null);
+    }
+
     // Must hold strongly since Android only holds weakly once registered.
     private final SharedPreferences.OnSharedPreferenceChangeListener mOSPCL
-            = new SharedPreferences.OnSharedPreferenceChangeListener() {
-        @Override
-        public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
-            switch(key) {
-                case "server_def" :
-                case "server":
-                    boolean useDefault = sharedPreferences.getBoolean("server_def", true);
-                    String server = useDefault
-                            ? getString(R.string.server_default)
-                            : sharedPreferences.getString("server", null);
-                    doMqtt(server);
-                    break;
-            }
-        }
-    };
+            = (sharedPreferences, key) -> {
+                switch(key) {
+                    case "server_def" :
+                    case "server":
+                        doMqtt(getServerFromPrefs(sharedPreferences));
+                        break;
+                }
+            };
 
     // MQTT Observers
     public enum MqttServerEvent {
@@ -388,7 +388,7 @@ public class MainService extends Service {
                 SharedPreferences sp = PreferenceManager
                         .getDefaultSharedPreferences(MainService.this);
                 sp.registerOnSharedPreferenceChangeListener(mOSPCL);
-                doMqtt(sp.getString("server", null));
+                doMqtt(getServerFromPrefs(sp));
             }
         }
         public void registerObserver(Observer o) {
@@ -411,6 +411,10 @@ public class MainService extends Service {
         public void exit() {
             mMsn.ensureNoNotification(true);
         }
+
+        public String debugGetServerURL() {
+            return mMqc.getServerURI();
+        }
     }
     private final LocalBinder mBinder = new LocalBinder();