From: Nathaniel Wesley Filardo Date: Sun, 28 Oct 2018 14:12:05 +0000 (+0000) Subject: Refactor out a string resource manipulation util X-Git-Tag: release-1.2~6 X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=9d47e1f30be2f182f0db56e11cadeb128bbbf5d4;p=acmetensortoys-ctfws-android Refactor out a string resource manipulation util --- 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 index 0000000..ac64571 --- /dev/null +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/AndroidResourceUtils.java @@ -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)); + } + } +} diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java index 1b1c5c8..2db10fe 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java @@ -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); diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java index d60d075..5bcf923 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java @@ -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); } }); }