From 07b1e86b12667ac160dce42b87d8577eb1703c6b Mon Sep 17 00:00:00 2001 From: Nathaniel Wesley Filardo Date: Mon, 28 Feb 2022 20:20:33 +0000 Subject: [PATCH] Accumulated lint in mobile --- .../ctfwstimer/activity/AboutActivity.java | 22 +- .../ctfwstimer/activity/HandbookActivity.java | 24 +- .../ctfwstimer/activity/SettingsActivity.java | 18 +- .../ctfwstimer/activity/main/Activity.java | 112 ++++---- .../activity/main/CtFwSDisplay.java | 246 ++++++------------ .../ctfwstimer/service/MainService.java | 36 ++- .../service/MainServiceNotification.java | 1 + .../utils/CtFwSDisplayTinyChrono.java | 67 +++-- .../ctfwstimer/utils/HandbookDownloader.java | 37 ++- mobile/src/main/res/values/strings.xml | 4 +- mobile/src/main/res/xml/preferences.xml | 120 ++++----- 11 files changed, 270 insertions(+), 417 deletions(-) diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/AboutActivity.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/AboutActivity.java index 2c1e2be..384e0c2 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/AboutActivity.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/AboutActivity.java @@ -84,12 +84,7 @@ public class AboutActivity extends CtFwSActivityBase { sb.append("Null service binder\n"); } - mTvDebug.post(new Runnable() { - @Override - public void run() { - mTvDebug.setText(sb); - } - }); + mTvDebug.post(() -> mTvDebug.setText(sb)); } @Override @@ -106,15 +101,12 @@ public class AboutActivity extends CtFwSActivityBase { } View iv = findViewById(R.id.about_image); - iv.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - try { - startActivity(new Intent(Intent.ACTION_VIEW, - Uri.parse("http://www.cmukgb.org/"))); - } catch (ActivityNotFoundException anfe) { - // NOP - } + iv.setOnClickListener(v -> { + try { + startActivity(new Intent(Intent.ACTION_VIEW, + Uri.parse("http://www.cmukgb.org/"))); + } catch (ActivityNotFoundException anfe) { + // NOP } }); diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/HandbookActivity.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/HandbookActivity.java index cccfc77..7d5d26a 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/HandbookActivity.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/HandbookActivity.java @@ -43,12 +43,10 @@ public class HandbookActivity extends CtFwSActivityBase { private final MainService.Observer mSrvObs = new MainService.Observer() { @Override public void onMqttServerChanged(MainService.LocalBinder b, String sURL) { - ; } @Override public void onMqttServerEvent(MainService.LocalBinder b, MainService.MqttServerEvent mse) { - ; } @Override @@ -112,23 +110,6 @@ public class HandbookActivity extends CtFwSActivityBase { sv.setQueryHint("Search handbook..."); sv.setSubmitButtonEnabled(true); - /* - sv.setOnSearchClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - Log.d(TAG, "sv.OClickL"); - } - }); - - sv.setOnCloseListener(new SearchView.OnCloseListener() { - @Override - public boolean onClose() { - Log.d(TAG, "sv.OCloseL"); - return false; - } - }); - */ - sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String query) { @@ -148,9 +129,8 @@ public class HandbookActivity extends CtFwSActivityBase { @Override public boolean onOptionsItemSelected(MenuItem item) { - switch (item.getItemId()) { - case R.id.hand_menu_search: - return true; + if (item.getItemId() == R.id.hand_menu_search) { + return true; } return false; diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/SettingsActivity.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/SettingsActivity.java index 5cb764f..43c7076 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/SettingsActivity.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/SettingsActivity.java @@ -2,7 +2,6 @@ package com.acmetensortoys.ctfwstimer.activity; import android.content.SharedPreferences; import android.os.Bundle; -import android.util.Log; import androidx.appcompat.app.AppCompatActivity; import androidx.preference.PreferenceFragmentCompat; @@ -21,16 +20,13 @@ public class SettingsActivity extends AppCompatActivity { public static class SettingsFragment extends PreferenceFragmentCompat { private final SharedPreferences.OnSharedPreferenceChangeListener mOSPCL - = new SharedPreferences.OnSharedPreferenceChangeListener() { - @Override - public void onSharedPreferenceChanged(SharedPreferences sp, String key) { - switch (key) { - case "server_def": - findPreference("server").setVisible(!sp.getBoolean(key, false)); - break; - } - } - }; + = (sp, key) -> { + switch (key) { + case "server_def": + findPreference("server").setVisible(!sp.getBoolean(key, false)); + break; + } + }; @Override public void onResume() { diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/Activity.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/Activity.java index 92f611f..e3a962f 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/Activity.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/Activity.java @@ -1,20 +1,21 @@ package com.acmetensortoys.ctfwstimer.activity.main; +import android.annotation.SuppressLint; import android.content.Intent; +import androidx.annotation.NonNull; import androidx.annotation.StringRes; import android.os.Bundle; import androidx.appcompat.view.menu.MenuBuilder; + import android.text.Spanned; import android.util.Log; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; -import android.view.WindowManager; import android.widget.TextView; -import com.acmetensortoys.ctfwstimer.BuildConfig; import com.acmetensortoys.ctfwstimer.R; import com.acmetensortoys.ctfwstimer.activity.AboutActivity; import com.acmetensortoys.ctfwstimer.activity.CtFwSActivityBase; @@ -62,7 +63,6 @@ public class Activity extends CtFwSActivityBase { @Override public void onHandbookFetch(MainService.LocalBinder b, CheckedAsyncDownloader.DL dl) { - ; } }; @@ -72,10 +72,7 @@ public class Activity extends CtFwSActivityBase { private TextView mTvSS; // set in onStart 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(h); } - }); + mTvSS.post(() -> mTvSS.setText(h)); } @Override @@ -83,19 +80,8 @@ public class Activity extends CtFwSActivityBase { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); - findViewById(R.id.main_connmeta).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onclick_connmeta(v); - } - }); - - findViewById(R.id.header_gamestate).setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onclick_gamestate(v); - } - }); + findViewById(R.id.main_connmeta).setOnClickListener(this::onclick_connmeta); + findViewById(R.id.header_gamestate).setOnClickListener(this::onclick_gamestate); mTvSS = findViewById(R.id.tv_mqtt_state); @@ -136,7 +122,7 @@ public class Activity extends CtFwSActivityBase { } @Override - public void onSaveInstanceState(Bundle out) { + public void onSaveInstanceState(@NonNull Bundle out) { super.onSaveInstanceState(out); mCdl.timersToBundle(out, SIS_KEY_TMR_FINI); } @@ -172,15 +158,13 @@ public class Activity extends CtFwSActivityBase { if (!egg) { egg = true; tv.setText(R.string.header_egg); - tv.postDelayed(new Runnable() { - public void run() { - if (mCdl != null) { - tv.setText(mCdl.gameStateLabelText); - } else { - tv.setText(R.string.header_gamestate0); - } - egg = false; + tv.postDelayed(() -> { + if (mCdl != null) { + tv.setText(mCdl.gameStateLabelText); + } else { + tv.setText(R.string.header_gamestate0); } + egg = false; }, 3000); } } @@ -194,36 +178,33 @@ public class Activity extends CtFwSActivityBase { @Override public boolean onOptionsItemSelected(MenuItem mi) { - switch(mi.getItemId()) { - case R.id.mainmenu_hand: - startActivity(new Intent(this, HandbookActivity.class)); - return true; - case R.id.mainmenu_judge: - startActivity(new Intent(this, Activity.class)); - return true; - case R.id.mainmenu_reconn: - if (mSrvBinder != null) { - mSrvBinder.connect(true); - } - return true; - case R.id.mainmenu_prf : - startActivity(new Intent(this, SettingsActivity.class)); - return true; - case R.id.mainmenu_about : - startActivity(new Intent(this, AboutActivity.class)); - return true; - case R.id.mainmenu_quit: - if (mSrvBinder != null) { - mSrvBinder.exit(); - } - finish(); - return true; + int itemId = mi.getItemId(); + if (itemId == R.id.mainmenu_hand) { + startActivity(new Intent(this, HandbookActivity.class)); + return true; + } else if (itemId == R.id.mainmenu_reconn) { + if (mSrvBinder != null) { + mSrvBinder.connect(true); + } + return true; + } else if (itemId == R.id.mainmenu_prf) { + startActivity(new Intent(this, SettingsActivity.class)); + return true; + } else if (itemId == R.id.mainmenu_about) { + startActivity(new Intent(this, AboutActivity.class)); + return true; + } else if (itemId == R.id.mainmenu_quit) { + if (mSrvBinder != null) { + mSrvBinder.exit(); + } + finish(); + return true; // Cam: Changing this doesn't appear to do anything? Leaving just in case. - default: - return super.onOptionsItemSelected(mi); } + return super.onOptionsItemSelected(mi); } + @SuppressLint("RestrictedApi") @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater mi = getMenuInflater(); @@ -243,18 +224,15 @@ public class Activity extends CtFwSActivityBase { } private void updateMenuReconnVis() { - runOnUiThread(new Runnable() { - @Override - public void run() { - switch(mLastMSE) { - case MSE_CONN: - case MSE_SUB: - mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); - break; - case MSE_DISCONN: - mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); - break; - } + runOnUiThread(() -> { + switch(mLastMSE) { + case MSE_CONN: + case MSE_SUB: + mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER); + break; + case MSE_DISCONN: + mMenuReconn.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); + break; } }); } diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/CtFwSDisplay.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/CtFwSDisplay.java index c68aa75..567876f 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/CtFwSDisplay.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/activity/main/CtFwSDisplay.java @@ -51,12 +51,7 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { private void wireTimer(int vid, final StunTimer st) { mAct.findViewById(vid) - .setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - startTimer(st, System.currentTimeMillis()); - } - }); + .setOnClickListener(v -> startTimer(st, System.currentTimeMillis())); } void timersToBundle(Bundle out, String key) { @@ -118,23 +113,13 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { } final TextView gstv = mAct.findViewById(R.id.header_gamestate); - gstv.post(new Runnable() { - @Override - public void run() { - gstv.setText(gameStateLabelText); - } - }); + gstv.post(() -> gstv.setText(gameStateLabelText)); } 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() { - stv.setText(""); - } - }; + Runnable r = () -> stv.setText(""); out: if (gs.isConfigured()) { String ss = gs.getSides(); @@ -148,12 +133,7 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { default : h = AndroidResourceUtils.htmlFromStrResId(rs, R.string.ctfws_unknown_sides); break; } - r = new Runnable() { - @Override - public void run() { - stv.setText(h); - } - }; + r = () -> stv.setText(h); } } @@ -162,15 +142,10 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { private void doSetFlagsLabel(final CtFwSGameStateManager gs) { final TextView tv_flags = mAct.findViewById(R.id.tv_flags_label); - tv_flags.post(new Runnable() { - @Override - public void run() { - tv_flags.setText(mAct.getResources() - .getQuantityString(R.plurals.ctfws_flags, - gs.getFlagsTotal(), - gs.getFlagsTotal())); - } - }); + tv_flags.post(() -> tv_flags.setText(mAct.getResources() + .getQuantityString(R.plurals.ctfws_flags, + gs.getFlagsTotal(), + gs.getFlagsTotal()))); } @Override @@ -213,18 +188,15 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { // Upper line text { final TextView tv_jb = mAct.findViewById(R.id.tv_jailbreak); - tv_jb.post(new Runnable() { - @Override - public void run() { - if (now.round == 0) { - tv_jb.setText(R.string.ctfws_gamestart); - } else if (now.round == gs.getRounds()) { - tv_jb.setText(R.string.ctfws_gameend); - } else { - tv_jb.setText( - String.format(mAct.getResources().getString(R.string.ctfws_jailbreak), - now.round, gs.getRounds() - 1)); - } + tv_jb.post(() -> { + if (now.round == 0) { + tv_jb.setText(R.string.ctfws_gamestart); + } else if (now.round == gs.getRounds()) { + tv_jb.setText(R.string.ctfws_gameend); + } else { + tv_jb.setText( + String.format(mAct.getResources().getString(R.string.ctfws_jailbreak), + now.round, gs.getRounds() - 1)); } }); } @@ -232,87 +204,69 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { // Upper progress bar and chronometer { final ProgressBar pb_jb = mAct.findViewById(R.id.pb_jailbreak); - pb_jb.post(new Runnable() { - @Override - public void run() { - pb_jb.setVisibility(View.VISIBLE); - pb_jb.setIndeterminate(false); - pb_jb.setMax((int) (now.roundEnd - now.roundStart)); - pb_jb.setProgress(0); - } + pb_jb.post(() -> { + pb_jb.setVisibility(View.VISIBLE); + pb_jb.setIndeterminate(false); + pb_jb.setMax((int) (now.roundEnd - now.roundStart)); + pb_jb.setProgress(0); }); final Chronometer ch_jb = mAct.findViewById(R.id.ch_jailbreak); - ch_jb.post(new Runnable() { - @Override - public void run() { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { - ch_jb.setBase((now.roundEnd + 1) * 1000 - tbcf); - ch_jb.setCountDown(true); - } else { - ch_jb.setBase(now.roundStart * 1000 - tbcf); - ch_jb.setBackgroundColor(Color.BLACK); - ch_jb.setTextColor(Color.WHITE); - } - ch_jb.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { - @Override - public void onChronometerTick(Chronometer c) { - pb_jb.setProgress((int) (now.roundEnd - System.currentTimeMillis() / 1000)); - } - }); - ch_jb.setVisibility(View.VISIBLE); - ch_jb.start(); + ch_jb.post(() -> { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + ch_jb.setBase((now.roundEnd + 1) * 1000 - tbcf); + ch_jb.setCountDown(true); + } else { + ch_jb.setBase(now.roundStart * 1000 - tbcf); + ch_jb.setBackgroundColor(Color.BLACK); + ch_jb.setTextColor(Color.WHITE); } + ch_jb.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { + @Override + public void onChronometerTick(Chronometer c) { + pb_jb.setProgress((int) (now.roundEnd - System.currentTimeMillis() / 1000)); + } + }); + ch_jb.setVisibility(View.VISIBLE); + ch_jb.start(); }); } // Lower progress bar and chronometer if (now.round > 0) { final ProgressBar pb_gp = mAct.findViewById(R.id.pb_gameProgress); - pb_gp.post(new Runnable() { - @Override - public void run() { - pb_gp.setVisibility(View.VISIBLE); - pb_gp.setIndeterminate(false); - pb_gp.setMax(gs.getComputedGameDuration()); - pb_gp.setProgress(0); - } + pb_gp.post(() -> { + pb_gp.setVisibility(View.VISIBLE); + pb_gp.setIndeterminate(false); + pb_gp.setMax(gs.getComputedGameDuration()); + pb_gp.setProgress(0); }); final Chronometer ch_gp = mAct.findViewById(R.id.ch_gameProgress); - ch_gp.post(new Runnable() { - @Override - public void run() { - ch_gp.setBase(gs.getFirstRoundStartT() * 1000 - tbcf); - ch_gp.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { - @Override - public void onChronometerTick(Chronometer c) { - pb_gp.setProgress((int) (System.currentTimeMillis() / 1000 - - gs.getFirstRoundStartT())); - } - }); - ch_gp.setVisibility(View.VISIBLE); - ch_gp.start(); - } + ch_gp.post(() -> { + ch_gp.setBase(gs.getFirstRoundStartT() * 1000 - tbcf); + ch_gp.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { + @Override + public void onChronometerTick(Chronometer c) { + pb_gp.setProgress((int) (System.currentTimeMillis() / 1000 + - gs.getFirstRoundStartT())); + } + }); + ch_gp.setVisibility(View.VISIBLE); + ch_gp.start(); }); } else { final ProgressBar pb_gp = mAct.findViewById(R.id.pb_gameProgress); - pb_gp.post(new Runnable() { - @Override - public void run() { - pb_gp.setVisibility(View.INVISIBLE); - pb_gp.setIndeterminate(true); - } + pb_gp.post(() -> { + pb_gp.setVisibility(View.INVISIBLE); + pb_gp.setIndeterminate(true); }); final Chronometer ch_gp = mAct.findViewById(R.id.ch_gameProgress); - ch_gp.post(new Runnable() { - @Override - public void run() { - ch_gp.setOnChronometerTickListener(null); - ch_gp.stop(); - ch_gp.setVisibility(View.INVISIBLE); - } + ch_gp.post(() -> { + ch_gp.setOnChronometerTickListener(null); + ch_gp.stop(); + ch_gp.setVisibility(View.INVISIBLE); }); } } @@ -334,45 +288,33 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { { final Chronometer ch = mAct.findViewById(R.id.ch_jailbreak); - ch.post(new Runnable() { - @Override - public void run() { - ch.setOnChronometerTickListener(null); - ch.setBase(SystemClock.elapsedRealtime()); - ch.stop(); - ch.setVisibility(View.INVISIBLE); - } + ch.post(() -> { + ch.setOnChronometerTickListener(null); + ch.setBase(SystemClock.elapsedRealtime()); + ch.stop(); + ch.setVisibility(View.INVISIBLE); }); } { final Chronometer ch = mAct.findViewById(R.id.ch_gameProgress); - ch.post(new Runnable() { - @Override - public void run() { - ch.setOnChronometerTickListener(null); - ch.stop(); - ch.setVisibility(View.INVISIBLE); - } + ch.post(() -> { + ch.setOnChronometerTickListener(null); + ch.stop(); + ch.setVisibility(View.INVISIBLE); }); } { final ProgressBar pb = mAct.findViewById(R.id.pb_jailbreak); - pb.post(new Runnable() { - @Override - public void run() { - pb.setVisibility(View.INVISIBLE); - pb.setIndeterminate(true); - } + pb.post(() -> { + pb.setVisibility(View.INVISIBLE); + pb.setIndeterminate(true); }); } { final ProgressBar pb = mAct.findViewById(R.id.pb_gameProgress); - pb.post(new Runnable() { - @Override - public void run() { - pb.setVisibility(View.INVISIBLE); - pb.setIndeterminate(true); - } + pb.post(() -> { + pb.setVisibility(View.INVISIBLE); + pb.setIndeterminate(true); }); } } @@ -391,12 +333,7 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { } final TextView msgs = mAct.findViewById(R.id.tv_flags); - msgs.post(new Runnable() { - @Override - public void run() { - msgs.setText(h); - } - }); + msgs.post(() -> msgs.setText(h)); } @Override @@ -405,12 +342,7 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { int s = msgs.size(); if (s == 0) { - msgstv.post(new Runnable() { - @Override - public void run() { - msgstv.setText(""); - } - }); + msgstv.post(() -> msgstv.setText("")); return; } @@ -434,16 +366,11 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { sb.append("\n"); } - msgstv.post(new Runnable() { - @Override - public void run() { - msgstv.setText(sb); - } - }); + msgstv.post(() -> msgstv.setText(sb)); } // Stun timers - private class StunTimer { + private static class StunTimer { final Chronometer ch; final ProgressBar pb; final int ms; @@ -481,14 +408,11 @@ public class CtFwSDisplay implements CtFwSGameStateManager.Observer { final long tbcf = nowWall - nowEla; st.ch.setBase(wallEnd - st.ms - tbcf); - st.ch.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() { - @Override - public void onChronometerTick(Chronometer chronometer) { - final long nowAbsCB = System.currentTimeMillis(); - st.pb.setProgress((int) (wallEnd - nowAbsCB)); - if (wallEnd < nowAbsCB) { - hideTimer(st); - } + st.ch.setOnChronometerTickListener(chronometer -> { + final long nowAbsCB = System.currentTimeMillis(); + st.pb.setProgress((int) (wallEnd - nowAbsCB)); + if (wallEnd < nowAbsCB) { + hideTimer(st); } }); diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java index 682f460..6ed81d2 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainService.java @@ -23,7 +23,6 @@ import org.eclipse.paho.android.service.MqttTraceHandler; import org.eclipse.paho.client.mqttv3.IMqttActionListener; import org.eclipse.paho.client.mqttv3.IMqttAsyncClient; import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken; -import org.eclipse.paho.client.mqttv3.IMqttMessageListener; import org.eclipse.paho.client.mqttv3.IMqttToken; import org.eclipse.paho.client.mqttv3.MqttCallbackExtended; import org.eclipse.paho.client.mqttv3.MqttClient; @@ -128,26 +127,23 @@ public class MainService extends Service { mMqc.subscribe(p + "messagereset", 2, null, subal, mCtfwscbs.onMessageReset); /* This one isn't really about the game state so much, so handle it ourselves. */ - mMqc.subscribe("ctfws/timesync", 2, null, subal, new IMqttMessageListener() { - @Override - public void messageArrived(String topic, MqttMessage message) { - // Retained timesync messages wouldn't make any sense; they are, - // by definition, stale. Just skip 'em. - if (message.isRetained()) { - return; - } - long rxtime = System.currentTimeMillis() / 1000; - long mtime; - String msg = message.toString(); - Log.d("CtFws", "time msg=" + msg); - try { - mtime = Long.parseLong(msg); - } catch (NumberFormatException e) { - return; - } - lastServerTimeDeltaEstimate = rxtime - mtime; - notifyMSE(); + mMqc.subscribe("ctfws/timesync", 2, null, subal, (topic, message) -> { + // Retained timesync messages wouldn't make any sense; they are, + // by definition, stale. Just skip 'em. + if (message.isRetained()) { + return; } + long rxtime = System.currentTimeMillis() / 1000; + long mtime; + String msg = message.toString(); + Log.d("CtFws", "time msg=" + msg); + try { + mtime = Long.parseLong(msg); + } catch (NumberFormatException e) { + return; + } + lastServerTimeDeltaEstimate = rxtime - mtime; + notifyMSE(); }); mHandDL.subscribeOn(mMqc); diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainServiceNotification.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainServiceNotification.java index 3487517..5c82186 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainServiceNotification.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/service/MainServiceNotification.java @@ -196,6 +196,7 @@ class MainServiceNotification { } // TODO make all of these configurable? + @SuppressWarnings("FieldCanBeLocal") private final long NOTIFY_SUPPRESS_THRESHOLD = 5000; // suppress rapid-fire buzzing private final long[] VIBRATE_PATTERN_NOW = {0, 100, 100, 300, 100, 300, 100, 300}; // 'J' = .--- diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/CtFwSDisplayTinyChrono.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/CtFwSDisplayTinyChrono.java index 7159074..1ba3f50 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/CtFwSDisplayTinyChrono.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/CtFwSDisplayTinyChrono.java @@ -27,12 +27,7 @@ public class CtFwSDisplayTinyChrono implements CtFwSGameStateManager.Observer { @Override public void onCtFwSConfigure(final CtFwSGameStateManager gs) { if (!gs.isConfigured()) { - mCh.post(new Runnable() { - @Override - public void run() { - mCh.setText(R.string.ctfws_chrono_nogame); - } - }); + mCh.post(() -> mCh.setText(R.string.ctfws_chrono_nogame)); } } @@ -40,41 +35,37 @@ public class CtFwSDisplayTinyChrono implements CtFwSGameStateManager.Observer { public void onCtFwSNow(final CtFwSGameStateManager gs, final CtFwSGameStateManager.Now now) { final long tbcf = System.currentTimeMillis() - SystemClock.elapsedRealtime(); - mCh.post(new Runnable() { - @Override - public void run() { - mCh.stop(); - - if (now.rationale != CtFwSGameStateManager.NowRationale.NR_GAME_IN_PROGRESS) { - int rid = R.string.ctfws_chrono_nogame; - switch(now.rationale) { - case NR_TIME_UP: - case NR_EXPLICIT_END: - rid = R.string.ctfws_chrono_over; - break; - case NR_START_FUTURE: - rid = R.string.ctfws_chrono_future; - break; - case NR_NOT_CONFIG: - rid = R.string.ctfws_chrono_nogame; - break; - } - mCh.setText(rid); - return; - } - - if (now.round == 0) { - mCh.setFormat(mRes.getString(R.string.ctfws_chrono_gamestart)); - } else if (now.round == gs.getRounds()) { - mCh.setFormat(mRes.getString(R.string.ctfws_chrono_gameend)); - } else { - mCh.setFormat(String.format(mRes.getString(R.string.ctfws_chrono_jailbreak), - now.round)); + mCh.post(() -> { + mCh.stop(); + + if (now.rationale != CtFwSGameStateManager.NowRationale.NR_GAME_IN_PROGRESS) { + int rid = R.string.ctfws_chrono_nogame; + switch(now.rationale) { + case NR_TIME_UP: + case NR_EXPLICIT_END: + rid = R.string.ctfws_chrono_over; + break; + case NR_START_FUTURE: + rid = R.string.ctfws_chrono_future; + break; + case NR_NOT_CONFIG: + rid = R.string.ctfws_chrono_nogame; + break; } + mCh.setText(rid); + return; + } - mCh.setBase(now.roundStart * 1000 - tbcf); - mCh.start(); + if (now.round == 0) { + mCh.setFormat(mRes.getString(R.string.ctfws_chrono_gamestart)); + } else if (now.round == gs.getRounds()) { + mCh.setFormat(mRes.getString(R.string.ctfws_chrono_gameend)); + } else { + mCh.setFormat(String.format(mRes.getString(R.string.ctfws_chrono_jailbreak), + now.round)); } + mCh.setBase(now.roundStart * 1000 - tbcf); + mCh.start(); }); } diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/HandbookDownloader.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/HandbookDownloader.java index 2e11862..788dc07 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/HandbookDownloader.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/utils/HandbookDownloader.java @@ -74,27 +74,24 @@ public class HandbookDownloader implements IMqttMessageListener { if (self.nextSubRunnable != null) { self.mHdl.removeCallbacks(self.nextSubRunnable); } - self.nextSubRunnable = new Runnable() { - @Override - public void run() { - Log.d(TAG, "Resubscribing to handbook topic"); - - HandbookDownloader self2 = mSelf.get(); - if (self2 == null) { - return; - } + self.nextSubRunnable = () -> { + Log.d(TAG, "Resubscribing to handbook topic"); + + HandbookDownloader self2 = mSelf.get(); + if (self2 == null) { + return; + } - synchronized (self2) { - try { - self2.subscribe(self2.mMqc); - self2.nextSubRunnable = null; - } catch (MqttException mqe) { - /* - * Well this stinks. Presumably it is because - * something has gone wrong somewhere else and - * we will notice shortly. - */ - } + synchronized (self2) { + try { + self2.subscribe(self2.mMqc); + self2.nextSubRunnable = null; + } catch (MqttException mqe) { + /* + * Well this stinks. Presumably it is because + * something has gone wrong somewhere else and + * we will notice shortly. + */ } } }; diff --git a/mobile/src/main/res/values/strings.xml b/mobile/src/main/res/values/strings.xml index addc715..25bb612 100644 --- a/mobile/src/main/res/values/strings.xml +++ b/mobile/src/main/res/values/strings.xml @@ -25,8 +25,6 @@ We seem to be lost; where are we? - Default - Red: %1$s, Yellow: %2$s]]> @@ -89,7 +87,7 @@ This project is open source under AGPLv3; see the GitHub Project Page
- © 2017-2019 Nathaniel Wesley Filardo, Cameron Wong, and others + © 2017-2019 Nathaniel Wesley Filardo, Cameron Wong, and others ]]> diff --git a/mobile/src/main/res/xml/preferences.xml b/mobile/src/main/res/xml/preferences.xml index 7669671..8115a14 100644 --- a/mobile/src/main/res/xml/preferences.xml +++ b/mobile/src/main/res/xml/preferences.xml @@ -1,68 +1,68 @@ - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - - - - - - + + + + + + + + + + + + + -- 2.50.1