From: Nathaniel Wesley Filardo Date: Wed, 22 Feb 2017 15:29:26 +0000 (-0500) Subject: On pre-N devices, Chronometers only count up X-Git-Tag: release-1.2~39 X-Git-Url: https://hydra-www.ietfng.org/gitweb/?a=commitdiff_plain;h=a955ec0524d22a56b2100b89102ca7cf2722de10;p=acmetensortoys-ctfws-android On pre-N devices, Chronometers only count up So keep times in the past --- diff --git a/mobile/build.gradle b/mobile/build.gradle index 34d4888..40cd18a 100644 --- a/mobile/build.gradle +++ b/mobile/build.gradle @@ -5,9 +5,9 @@ android { buildToolsVersion "25.0.2" defaultConfig { applicationId "com.acmetensortoys.ctfwstimer" - minSdkVersion 19 + minSdkVersion 16 targetSdkVersion 25 - versionCode 4 + versionCode 5 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java index 2fc574c..5b5a552 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/CtFwSDisplayLocal.java @@ -1,6 +1,8 @@ package com.acmetensortoys.ctfwstimer; import android.app.Activity; +import android.graphics.Color; +import android.os.Build; import android.os.SystemClock; import android.text.format.DateUtils; import android.util.Log; @@ -82,9 +84,6 @@ 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() { @@ -100,7 +99,14 @@ class CtFwSDisplayLocal implements CtFwSGameState.Observer { ch_jb.post(new Runnable() { @Override public void run() { - ch_jb.setBase((now.roundEnd + 1) * 1000 - tbcf); + 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) { diff --git a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java index 47e67e9..d52006d 100644 --- a/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java +++ b/mobile/src/main/java/com/acmetensortoys/ctfwstimer/MainServiceNotification.java @@ -7,6 +7,7 @@ import android.content.Intent; import android.content.ServiceConnection; import android.content.SharedPreferences; import android.content.res.Resources; +import android.os.Build; import android.os.IBinder; import android.preference.PreferenceManager; import android.support.v4.app.NotificationCompat; @@ -38,7 +39,11 @@ class MainServiceNotification { @Override public void onCtFwSNow(CtFwSGameState game, CtFwSGameState.Now now) { - userNoteBuilder.setWhen((now.roundEnd + 1) * 1000); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + userNoteBuilder.setWhen((now.roundEnd + 1) * 1000); + } else { + userNoteBuilder.setWhen(now.roundStart * 1000); + } userNoteBuilder.setUsesChronometer(true); if (now.rationale == null || !now.stop) { // game is afoot or in the future! diff --git a/mobile/src/main/res/layout/activity_main.xml b/mobile/src/main/res/layout/activity_main.xml index 059d4fa..18b3495 100644 --- a/mobile/src/main/res/layout/activity_main.xml +++ b/mobile/src/main/res/layout/activity_main.xml @@ -101,8 +101,7 @@ + android:id="@+id/ch_jailbreak" />