});
}
- 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));
}
}
doSetGameStateLabelText(gs, null);
doSetSidesText(gs);
doSetFlagsLabel(gs);
+ onCtFwSFlags(gs); /* Populate the flags field to some default */
}
@Override
@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);
}
});
}
<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>