]> hydra-www.ietfng.org Git - acmetensortoys-ctfws-android/commitdiff
Refactor out a string resource manipulation util
authorNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sun, 28 Oct 2018 14:12:05 +0000 (14:12 +0000)
committerNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sun, 28 Oct 2018 14:13:43 +0000 (14:13 +0000)
mobile/src/main/java/com/acmetensortoys/ctfwstimer/AndroidResourceUtils.java [new file with mode: 0644]
mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java
mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java

diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/AndroidResourceUtils.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/AndroidResourceUtils.java
new file mode 100644 (file)
index 0000000..ac64571
--- /dev/null
@@ -0,0 +1,16 @@
+package com.acmetensortoys.ctfwstimer;
+
+import android.content.res.Resources;
+import android.os.Build;
+import android.text.Html;
+import android.text.Spanned;
+
+public class AndroidResourceUtils {
+    public static Spanned htmlFromStrResId(Resources rs, int id, Object... args) {
+        if (Build.VERSION.SDK_INT >= 24) {
+            return Html.fromHtml(String.format(rs.getString(id), args), 0);
+        } else {
+            return Html.fromHtml(String.format(rs.getString(id), args));
+        }
+    }
+}
index 1b1c5c81c6b3795cc5ebf96c1947401a28a6dd3a..2db10fecc2d732334b80dc6b25b4f21e3c28180e 100644 (file)
@@ -122,16 +122,9 @@ class CtFwSDisplayLocal implements CtFwSGameStateManager.Observer {
         });
     }
 
-    private Spanned htmlFromStrResId(int id, Object... args) {
-        if (Build.VERSION.SDK_INT >= 24) {
-            return Html.fromHtml(String.format(mAct.getResources().getString(id), args), 0);
-        } else {
-            return Html.fromHtml(String.format(mAct.getResources().getString(id), args));
-        }
-    }
-
     private void doSetSidesText(final CtFwSGameStateManager gs) {
         final TextView stv = mAct.findViewById(R.id.header_sides);
+        Resources rs = mAct.getResources();
         Runnable r = new Runnable() {
             @Override
             public void run() {
@@ -139,15 +132,16 @@ class CtFwSDisplayLocal implements CtFwSGameStateManager.Observer {
             }
         };
 
-        if (gs.isConfigured()) {
+        out: if (gs.isConfigured()) {
             String ss = gs.getSides();
             if (ss != null) {
                 final Spanned h;
 
                 switch(ss) {
-                    case "wd" : h = htmlFromStrResId(R.string.ctfws_sides_wd); break;
-                    case "dw" : h = htmlFromStrResId(R.string.ctfws_sides_dw); break;
-                    default   : h = htmlFromStrResId(R.string.ctfws_unknown_sides); break;
+                    case "-"  : break out;
+                    case "wd" : h = AndroidResourceUtils.htmlFromStrResId(rs, R.string.ctfws_sides_wd); break;
+                    case "dw" : h = AndroidResourceUtils.htmlFromStrResId(rs, R.string.ctfws_sides_dw); break;
+                    default   : h = AndroidResourceUtils.htmlFromStrResId(rs, R.string.ctfws_unknown_sides); break;
                 }
 
                 r = new Runnable() {
@@ -354,11 +348,13 @@ class CtFwSDisplayLocal implements CtFwSGameStateManager.Observer {
     @Override
     public void onCtFwSFlags(CtFwSGameStateManager gs) {
         final Spanned h;
+        Resources rs = mAct.getResources();
 
         if (gs.getFlagsVisible()) {
-            h = htmlFromStrResId(R.string.flags_viz_fmt, gs.getFlagsRed(), gs.getFlagsYel());
+            h = AndroidResourceUtils.htmlFromStrResId(rs, R.string.flags_viz_fmt,
+                    gs.getFlagsRed(), gs.getFlagsYel());
         } else {
-            h = htmlFromStrResId(R.string.flags_noviz);
+            h = AndroidResourceUtils.htmlFromStrResId(rs, R.string.flags_noviz);
         }
 
         final TextView msgs = mAct.findViewById(R.id.tv_flags);
index d60d0756d1d68cc7e3e0f35893219a8eb7f160fc..5bcf9232e2916e5657c7f3376c18b07d505f3da9 100644 (file)
@@ -11,6 +11,7 @@ import android.preference.PreferenceManager;
 import android.support.annotation.StringRes;
 import android.support.v7.app.AppCompatActivity;
 import android.os.Bundle;
+import android.text.Spanned;
 import android.util.Log;
 import android.view.Menu;
 import android.view.MenuInflater;
@@ -50,10 +51,11 @@ public class MainActivity extends AppCompatActivity {
     private CtFwSDisplayLocal mCdl; // set in onStart
     private TextView mTvSU; // set in onStart
     private TextView mTvSS; // set in onStart
-    private void setServerStateText(@StringRes final int resid) {
+    private void setServerStateText(@StringRes final int resid, Object... args) {
+        final Spanned h = AndroidResourceUtils.htmlFromStrResId(getResources(), resid, args);
         mTvSS.post(new Runnable() {
             @Override
-            public void run() { mTvSS.setText(resid); }
+            public void run() { mTvSS.setText(h); }
         });
     }