From: Nathaniel Wesley Filardo Date: Sat, 27 Oct 2018 16:56:27 +0000 (+0100) Subject: Improve flag message display X-Git-Tag: release-1.2~9 X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=a0a7c6f7955e0874c2c32ac615141e1c3f805615;p=acmetensortoys-ctfws-android Improve flag message display No longer k=v pairs, let's actually get some color and labels --- diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java index 8a8f8d2..1b1c5c8 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java @@ -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); } }); } diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml index d0afc3b..d274f35 100644 --- a/mobile/src/main/res/values/strings.xml +++ b/mobile/src/main/res/values/strings.xml @@ -17,6 +17,11 @@ Default + + Red: %1$d, Yellow: %2$d]]> + + Flag scores hidden + Game State: %1$s Game %1$d State: %2$s DO NOT TAP ON GLASS