]> hydra-www.ietfng.org Git - acmetensortoys-ctfws-android/commitdiff
Improve flag message display
authorNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sat, 27 Oct 2018 16:56:27 +0000 (17:56 +0100)
committerNathaniel Wesley Filardo <nwfilardo@gmail.com>
Sun, 28 Oct 2018 00:55:59 +0000 (01:55 +0100)
No longer k=v pairs, let's actually get some color and labels

mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java
mobile/src/main/res/values/strings.xml

index 8a8f8d2c5537fc3b809fc1daf788754a54d19931..1b1c5c81c6b3795cc5ebf96c1947401a28a6dd3a 100644 (file)
@@ -122,11 +122,11 @@ class CtFwSDisplayLocal implements CtFwSGameStateManager.Observer {
         });
     }
 
-    private Spanned htmlFromStrResId(int id) {
+    private Spanned htmlFromStrResId(int id, Object... args) {
         if (Build.VERSION.SDK_INT >= 24) {
-            return Html.fromHtml(mAct.getResources().getString(id), 0);
+            return Html.fromHtml(String.format(mAct.getResources().getString(id), args), 0);
         } else {
-            return Html.fromHtml(mAct.getResources().getString(id));
+            return Html.fromHtml(String.format(mAct.getResources().getString(id), args));
         }
     }
 
@@ -180,6 +180,7 @@ class CtFwSDisplayLocal implements CtFwSGameStateManager.Observer {
         doSetGameStateLabelText(gs, null);
         doSetSidesText(gs);
         doSetFlagsLabel(gs);
+        onCtFwSFlags(gs);   /* Populate the flags field to some default */
     }
 
     @Override
@@ -352,25 +353,19 @@ class CtFwSDisplayLocal implements CtFwSGameStateManager.Observer {
 
     @Override
     public void onCtFwSFlags(CtFwSGameStateManager gs) {
-        // TODO: This stinks
+        final Spanned h;
 
-        final StringBuffer sb = new StringBuffer();
-        if (gs.isConfigured()) {
-            if (gs.getFlagsVisible()) {
-                sb.append("r=");
-                sb.append(gs.getFlagsRed());
-                sb.append(" y=");
-                sb.append(gs.getFlagsYel());
-            } else {
-                sb.append("r=? y=?");
-            }
+        if (gs.getFlagsVisible()) {
+            h = htmlFromStrResId(R.string.flags_viz_fmt, gs.getFlagsRed(), gs.getFlagsYel());
+        } else {
+            h = htmlFromStrResId(R.string.flags_noviz);
         }
 
         final TextView msgs = mAct.findViewById(R.id.tv_flags);
         msgs.post(new Runnable() {
             @Override
             public void run() {
-                msgs.setText(sb);
+                msgs.setText(h);
             }
         });
     }
index d0afc3ba366ed68014cb2f7357d8c94d229681cd..d274f35d0c24e21b702957663fc9c84436fcd6f0 100644 (file)
 
     <string name="dialog_reset">Default</string>
 
+    <string name="flags_viz_fmt">
+        <![CDATA[<font color=#a94442><b>Red</b>: %1$d</font>, <font color=#8a6d3b><b>Yellow</b>: %2$d</font>]]>
+    </string>
+    <string name="flags_noviz">Flag scores hidden</string>
+
     <string name="header_gamestate0">Game State: %1$s</string>
     <string name="header_gamestateN" tools:ignore="PluralsCandidate">Game %1$d State: %2$s</string>
     <string name="header_egg">DO NOT TAP ON GLASS</string>