From 74a6a807676bc89e5a47459771862a84b8402b94 Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Mon, 20 Feb 2017 21:50:22 -0500 Subject: [PATCH] Tidying as per studio inspector No functionality changes, I hope --- .../ctfwstimer/lib/CtFwSGameState.java | 8 ++++---- .../ctfwstimer/CtFwSCallbacksMQTT.java | 10 +++++----- .../ctfwstimer/CtFwSDisplayLocal.java | 20 +++++++++++++------ .../DefaultableEditTextPreference.java | 2 -- .../ctfwstimer/MainActivity.java | 8 ++++---- .../ctfwstimer/MainActivityBuildHooks.java | 2 -- .../ctfwstimer/MainService.java | 9 +++------ .../ctfwstimer/MainServiceNotification.java | 8 ++++---- mobile/src/main/res/layout/activity_about.xml | 3 ++- mobile/src/main/res/layout/activity_main.xml | 4 ++-- mobile/src/main/res/values/stringplurals.xml | 7 +++++++ mobile/src/main/res/values/strings.xml | 8 ++++---- wear/build.gradle | 2 +- 13 files changed, 50 insertions(+), 41 deletions(-) create mode 100644 mobile/src/main/res/values/stringplurals.xml diff --git a/lib/src/main/java/com/acmetensortoys/ctfwstimer/lib/CtFwSGameState.java b/lib/src/main/java/com/acmetensortoys/ctfwstimer/lib/CtFwSGameState.java index cdd78f4..c83b38d 100644 --- a/lib/src/main/java/com/acmetensortoys/ctfwstimer/lib/CtFwSGameState.java +++ b/lib/src/main/java/com/acmetensortoys/ctfwstimer/lib/CtFwSGameState.java @@ -15,7 +15,7 @@ public class CtFwSGameState { void postDelay(Runnable r, long delayMS); void cancelPost(Runnable r); } - private TimerProvider mT; + private final TimerProvider mT; public CtFwSGameState (TimerProvider t) { mT = t; @@ -168,15 +168,15 @@ public class CtFwSGameState { // Informative messages handling public class Msg { - public long when; - public String msg; + public final long when; + public final String msg; Msg(long when, String msg) { this.when = when; this.msg = msg; } } - private List msgs = new ArrayList<>(); + private final List msgs = new ArrayList<>(); private long lastMsgTimestamp; public void onNewMessage(String str) { diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSCallbacksMQTT.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSCallbacksMQTT.java index 27d06e4..25bf3ff 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSCallbacksMQTT.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSCallbacksMQTT.java @@ -14,7 +14,7 @@ class CtFwSCallbacksMQTT { mCgs = cgs; } - IMqttMessageListener onConfig = new IMqttMessageListener() { + final IMqttMessageListener onConfig = new IMqttMessageListener() { @Override public void messageArrived(String topic, MqttMessage message) throws Exception { String tm = message.toString().trim(); @@ -23,7 +23,7 @@ class CtFwSCallbacksMQTT { } }; - IMqttMessageListener onEnd = new IMqttMessageListener() { + final IMqttMessageListener onEnd = new IMqttMessageListener() { @Override public void messageArrived(String topic, MqttMessage message) throws Exception { Log.d("CtFwS", "Message(End): " + message); @@ -37,7 +37,7 @@ class CtFwSCallbacksMQTT { } }; - IMqttMessageListener onFlags = new IMqttMessageListener() { + final IMqttMessageListener onFlags = new IMqttMessageListener() { @Override public void messageArrived(String topic, MqttMessage message) throws Exception { String tm = message.toString().trim(); @@ -46,7 +46,7 @@ class CtFwSCallbacksMQTT { } }; - IMqttMessageListener onMessage = new IMqttMessageListener() { + final IMqttMessageListener onMessage = new IMqttMessageListener() { @Override public void messageArrived(String topic, MqttMessage message) throws Exception { String str = message.toString(); @@ -55,7 +55,7 @@ class CtFwSCallbacksMQTT { } }; - IMqttMessageListener onPlayerMessage = new IMqttMessageListener() { + final IMqttMessageListener onPlayerMessage = new IMqttMessageListener() { @Override public void messageArrived(String topic, MqttMessage message) throws Exception { String str = message.toString(); diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java index e780533..2fc574c 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java @@ -1,7 +1,6 @@ package com.acmetensortoys.ctfwstimer; import android.app.Activity; -import android.os.Handler; import android.os.SystemClock; import android.text.format.DateUtils; import android.util.Log; @@ -19,15 +18,13 @@ import static android.view.View.INVISIBLE; // TODO nwf is bad at UI design; someone who isn't him should improve this class CtFwSDisplayLocal implements CtFwSGameState.Observer { final private Activity mAct; - public String gameStateLabelText; + String gameStateLabelText; CtFwSDisplayLocal(Activity a) { mAct = a; gameStateLabelText = mAct.getResources().getString(R.string.header_gamestate0); } - private Runnable mProber; - @Override public void onCtFwSConfigure(final CtFwSGameState gs) { int gameix = gs.getGameIx(); @@ -65,6 +62,7 @@ class CtFwSDisplayLocal implements CtFwSGameState.Observer { } // Otherwise, it's game on! + // Upper line text { final TextView tv_jb = (TextView) (mAct.findViewById(R.id.tv_jailbreak)); tv_jb.post(new Runnable() { @@ -81,7 +79,13 @@ class CtFwSDisplayLocal implements CtFwSGameState.Observer { } } }); + } + // Upper progress bar and chronometer + // TODO: Older devices cannot count down in Chronometer, so will see only zeros, I + // think. This should be fixed by making those devices count up (and still rendering + // the progress bar rotated for decreasing, one assumes). + { final ProgressBar pb_jb = (ProgressBar) (mAct.findViewById(R.id.pb_jailbreak)); pb_jb.post(new Runnable() { @Override @@ -107,6 +111,8 @@ class CtFwSDisplayLocal implements CtFwSGameState.Observer { } }); } + + // Lower progress bar and chronometer if (now.round > 0) { final ProgressBar pb_gp = (ProgressBar) (mAct.findViewById(R.id.pb_gameProgress)); pb_gp.post(new Runnable() { @@ -147,6 +153,7 @@ class CtFwSDisplayLocal implements CtFwSGameState.Observer { ch_gp.post(new Runnable() { @Override public void run() { + ch_gp.setOnChronometerTickListener(null); ch_gp.stop(); ch_gp.setVisibility(INVISIBLE); } @@ -157,8 +164,8 @@ class CtFwSDisplayLocal implements CtFwSGameState.Observer { tv_flags.post(new Runnable() { @Override public void run() { - tv_flags.setText( - String.format(mAct.getResources().getString(R.string.ctfws_flags), gs.flagsTotal)); + tv_flags.setText(mAct.getResources() + .getQuantityString(R.plurals.ctfws_flags,gs.flagsTotal,gs.flagsTotal)); } }); } @@ -183,6 +190,7 @@ class CtFwSDisplayLocal implements CtFwSGameState.Observer { ch.post(new Runnable() { @Override public void run() { + ch.setOnChronometerTickListener(null); ch.stop(); ch.setVisibility(View.INVISIBLE); } diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/DefaultableEditTextPreference.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/DefaultableEditTextPreference.java index 33656e1..defece1 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/DefaultableEditTextPreference.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/DefaultableEditTextPreference.java @@ -2,13 +2,11 @@ package com.acmetensortoys.ctfwstimer; import android.app.AlertDialog; import android.content.Context; -import android.content.DialogInterface; import android.content.res.TypedArray; import android.os.Bundle; import android.preference.EditTextPreference; import android.util.AttributeSet; import android.view.View; -import android.widget.Button; public class DefaultableEditTextPreference extends EditTextPreference { // GAH! Our parent Preference has this as a private field. Grrr Android! diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java index 000a98d..55ee8a2 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivity.java @@ -25,10 +25,10 @@ public class MainActivity extends AppCompatActivity { // TODO surely this belongs somewhere else private static final String defserver = "tcp://ctfws-mqtt.ietfng.org:1883"; - private MainActivityBuildHooks mabh = new MainActivityBuildHooksImpl(); + private final MainActivityBuildHooks mabh = new MainActivityBuildHooksImpl(); private MainService.LocalBinder mSrvBinder; // set once connection completed - private MainService.Observer mSrvObs = new MainService.Observer() { + private final MainService.Observer mSrvObs = new MainService.Observer() { @Override public void onMqttServerChanged(MainService.LocalBinder b, final String sURL) { mTvSU.post(new Runnable() { @@ -82,7 +82,7 @@ public class MainActivity extends AppCompatActivity { mCdl = new CtFwSDisplayLocal(this); } - private ServiceConnection ctfwssc = new ServiceConnection() { + private final ServiceConnection ctfwssc = new ServiceConnection() { @Override public void onServiceConnected(ComponentName name, IBinder service) { mSrvBinder = (MainService.LocalBinder) service; @@ -154,7 +154,7 @@ public class MainActivity extends AppCompatActivity { } // Kick the mqtt layer on a click on the status stuff - public void onclick_connmeta(View v) { + public void onclick_connmeta(@SuppressWarnings("UnusedParameters") View v) { mSrvBinder.connect(true); } diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivityBuildHooks.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivityBuildHooks.java index 8d8098a..6f381f4 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivityBuildHooks.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainActivityBuildHooks.java @@ -1,7 +1,5 @@ package com.acmetensortoys.ctfwstimer; -import com.acmetensortoys.ctfwstimer.lib.CtFwSGameState; - // The MainActivity expects a "MainActivityBuildHooksImpl" class that ascribes to this interface // per build flavor. This will be used when, for example, we kick on Google Play for Wear // interaction and want to push messages out to the wearable data network. diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainService.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainService.java index 399e1b1..970aab5 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainService.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainService.java @@ -25,7 +25,6 @@ import org.eclipse.paho.client.mqttv3.MqttException; import org.eclipse.paho.client.mqttv3.MqttMessage; import java.util.HashSet; -import java.util.List; import java.util.Set; public class MainService extends Service { @@ -51,8 +50,9 @@ public class MainService extends Service { mHandler.removeCallbacks(r); } }); - private CtFwSCallbacksMQTT mCtfwscbs = new CtFwSCallbacksMQTT(mCgs); + private final CtFwSCallbacksMQTT mCtfwscbs = new CtFwSCallbacksMQTT(mCgs); + @SuppressWarnings({"FieldCanBeLocal", "unused"}) private MainServiceNotification mMsn; // set in onCreate public MainService() { } @@ -268,9 +268,6 @@ public class MainService extends Service { CtFwSGameState getGameState() { return mCgs; } - MqttServerEvent getServerState() { - return mMSE; - } // It should not be necessary to call this except at the beginning or to force a reconnect; // most everything else you might want in a connect method is handled by the @@ -300,7 +297,7 @@ public class MainService extends Service { synchronized(this) { mObsvs.remove(o); } } } - private LocalBinder mBinder = new LocalBinder(); + private final LocalBinder mBinder = new LocalBinder(); @Override public IBinder onBind(Intent intent) { diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java index 21da30c..47e67e9 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java @@ -17,7 +17,7 @@ import java.util.List; class MainServiceNotification { final private MainService mService; - private NotificationCompat.Builder userNoteBuilder; + private final NotificationCompat.Builder userNoteBuilder; MainServiceNotification(MainService ms, CtFwSGameState game){ mService = ms; @@ -93,9 +93,9 @@ class MainServiceNotification { }); } - private long[] VIBRATE_PATTERN_NOW = {0, 100, 100, 300, 100, 300, 100, 300}; // 'J' = .--- - private long[] VIBRATE_PATTERN_FLAG = {0, 100, 100, 100, 100, 300, 100, 100}; // 'F' = ..-. - private long[] VIBRATE_PATTERN_MSG = {0, 300, 100, 300}; // 'M' = -- + private final long[] VIBRATE_PATTERN_NOW = {0, 100, 100, 300, 100, 300, 100, 300}; // 'J' = .--- + private final long[] VIBRATE_PATTERN_FLAG = {0, 100, 100, 100, 100, 300, 100, 100}; // 'F' = ..-. + private final long[] VIBRATE_PATTERN_MSG = {0, 300, 100, 300}; // 'M' = -- private void vibrate(long[] pattern) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(mService.getBaseContext()); diff --git a/mobile/src/main/res/layout/activity_about.xml b/mobile/src/main/res/layout/activity_about.xml index 3ea262a..2d2777d 100644 --- a/mobile/src/main/res/layout/activity_about.xml +++ b/mobile/src/main/res/layout/activity_about.xml @@ -43,7 +43,8 @@ android:layout_height="wrap_content" app:srcCompat="@drawable/shield1" android:id="@+id/about_image" - android:layout_above="@+id/about_text" /> + android:layout_above="@+id/about_text" + android:contentDescription="@string/about_imagealt"/> + android:gravity="end" /> + android:gravity="end" /> + + + %1$d Flag: + %1$d Flags: + + \ No newline at end of file diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml index a5360ab..e035cef 100644 --- a/mobile/src/main/res/values/strings.xml +++ b/mobile/src/main/res/values/strings.xml @@ -1,20 +1,19 @@ - + CMUKGB CtFwS Timer Game\nEnd Game\nStart Jailbreak\n%1$d of %2$d - %1$d Flags: Default Game State: - Game %1$d State: + Game %1$d State: Game\nTime\nElapsed Messages: The game\'s afoot! - Flag captured! Red:%1$d Yellow:%2$d + Flag captured! Red:%1$d Yellow:%2$d Game ending soon Setup phase Jailbreak %1$d of %2$d @@ -34,6 +33,7 @@ <<null>> + The CMUKGB Shield Logo Capture The Flag With Stuff Rules diff --git a/wear/build.gradle b/wear/build.gradle index 04d222e..00fb36a 100644 --- a/wear/build.gradle +++ b/wear/build.gradle @@ -1,7 +1,7 @@ apply plugin: 'com.android.application' android { - compileSdkVersion 24 + compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.acmetensortoys.ctfwstimer" -- 2.50.1