From b6db26fcfd7b3347f7e3d44f3194c75f1cd1ed93 Mon Sep 17 00:00:00 2001 From: Hannah Mittelstaedt Date: Sat, 21 Nov 2015 18:08:51 -0500 Subject: [PATCH] Added a DEMO mode to enable all the features without their timing logic on --- app/build.gradle | 4 ++-- .../com/morristaedt/mirror/MirrorActivity.java | 13 +------------ .../configuration/ConfigurationSettings.java | 14 ++++++++++++++ .../morristaedt/mirror/modules/ForecastModule.java | 3 ++- .../com/morristaedt/mirror/modules/XKCDModule.java | 12 +++++++++--- .../mirror/modules/YahooFinanceModule.java | 3 ++- .../com/morristaedt/mirror/utils/WeekUtil.java | 10 +++++++++- 7 files changed, 39 insertions(+), 20 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d95cc80..c52dabf 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -21,8 +21,8 @@ android { applicationId "com.morristaedt.mirror" minSdkVersion 14 targetSdkVersion 22 - versionCode 1 - versionName "1.0" + versionCode 2 + versionName "1.1" } buildTypes { debug { diff --git a/app/src/main/java/com/morristaedt/mirror/MirrorActivity.java b/app/src/main/java/com/morristaedt/mirror/MirrorActivity.java index 6769abd..f65c90d 100644 --- a/app/src/main/java/com/morristaedt/mirror/MirrorActivity.java +++ b/app/src/main/java/com/morristaedt/mirror/MirrorActivity.java @@ -34,8 +34,6 @@ public class MirrorActivity extends ActionBarActivity { - private static final boolean DEMO_MODE = false; - @NonNull private ConfigurationSettings mConfigSettings; @@ -244,7 +242,7 @@ private void setViewState() { mCalendarDetailsText.setVisibility(View.GONE); } - if (mConfigSettings.showStock() && WeekUtil.isWeekday() && WeekUtil.afterFive()) { + if (mConfigSettings.showStock() && (ConfigurationSettings.isDemoMode() || WeekUtil.isWeekdayAfterFive())) { YahooFinanceModule.getStockForToday(mConfigSettings.getStockTickerSymbol(), mStockListener); } else { mStockText.setVisibility(View.GONE); @@ -258,15 +256,6 @@ private void setViewState() { } } - private void showDemoMode() { - if (DEMO_MODE) { - mBikeTodayText.setVisibility(View.VISIBLE); - mStockText.setVisibility(View.VISIBLE); - mWaterPlants.setVisibility(View.VISIBLE); - mGroceryList.setVisibility(View.VISIBLE); - } - } - @Override public void onBackPressed() { super.onBackPressed(); diff --git a/app/src/main/java/com/morristaedt/mirror/configuration/ConfigurationSettings.java b/app/src/main/java/com/morristaedt/mirror/configuration/ConfigurationSettings.java index a3a58c7..aa22165 100644 --- a/app/src/main/java/com/morristaedt/mirror/configuration/ConfigurationSettings.java +++ b/app/src/main/java/com/morristaedt/mirror/configuration/ConfigurationSettings.java @@ -13,6 +13,11 @@ */ public class ConfigurationSettings { + /** + * Hardcode on to enable features outside of their regularly scheduled hours + */ + private static final boolean DEMO_MODE = false; + private static final String PREFS_MIRROR = "MirrorPrefs"; private static final String FORECAST_UNITS = "forecast_units"; @@ -175,4 +180,13 @@ public String getStockTickerSymbol() { public static boolean isDebugBuild() { return BuildConfig.DEBUG; } + + /** + * Whether we're ignoring timing rules for features + * + * @return + */ + public static boolean isDemoMode() { + return DEMO_MODE; + } } diff --git a/app/src/main/java/com/morristaedt/mirror/modules/ForecastModule.java b/app/src/main/java/com/morristaedt/mirror/modules/ForecastModule.java index 917a07e..15adc4f 100644 --- a/app/src/main/java/com/morristaedt/mirror/modules/ForecastModule.java +++ b/app/src/main/java/com/morristaedt/mirror/modules/ForecastModule.java @@ -5,6 +5,7 @@ import android.util.Log; import com.morristaedt.mirror.R; +import com.morristaedt.mirror.configuration.ConfigurationSettings; import com.morristaedt.mirror.requests.ForecastRequest; import com.morristaedt.mirror.requests.ForecastResponse; import com.morristaedt.mirror.utils.WeekUtil; @@ -53,7 +54,7 @@ protected void onPostExecute(ForecastResponse forecastResponse) { listener.onWeatherToday(forecastResponse.currently.getDisplayTemperature() + " " + forecastResponse.currently.summary); } - if (WeekUtil.isWeekday() && !WeekUtil.afterFive() && forecastResponse.hourly != null && forecastResponse.hourly.data != null) { + if (forecastResponse.hourly != null && forecastResponse.hourly.data != null && (ConfigurationSettings.isDemoMode() || WeekUtil.isWeekdayBeforeFive())) { listener.onShouldBike(true, shouldBikeToday(forecastResponse.hourly.data)); } else { listener.onShouldBike(false, true); diff --git a/app/src/main/java/com/morristaedt/mirror/modules/XKCDModule.java b/app/src/main/java/com/morristaedt/mirror/modules/XKCDModule.java index eafb902..32cbe07 100644 --- a/app/src/main/java/com/morristaedt/mirror/modules/XKCDModule.java +++ b/app/src/main/java/com/morristaedt/mirror/modules/XKCDModule.java @@ -1,10 +1,12 @@ package com.morristaedt.mirror.modules; import android.os.AsyncTask; +import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.text.TextUtils; import android.util.Log; +import com.morristaedt.mirror.configuration.ConfigurationSettings; import com.morristaedt.mirror.requests.XKCDRequest; import com.morristaedt.mirror.requests.XKCDResponse; @@ -47,15 +49,19 @@ protected XKCDResponse doInBackground(Void... params) { @Override protected void onPostExecute(@Nullable XKCDResponse xkcdResponse) { - if (xkcdResponse != null) { - Calendar today = Calendar.getInstance(); - if (!TextUtils.isEmpty(xkcdResponse.img) && xkcdResponse.day == today.get(Calendar.DAY_OF_MONTH) && xkcdResponse.month == (today.get(Calendar.MONTH) + 1) && xkcdResponse.year == today.get(Calendar.YEAR)) { + if (xkcdResponse != null && !TextUtils.isEmpty(xkcdResponse.img)) { + if (ConfigurationSettings.isDemoMode() || isTodaysXKCD(xkcdResponse)) { listener.onNewXKCDToday(xkcdResponse.img); return; } } listener.onNewXKCDToday(null); } + + private boolean isTodaysXKCD(@NonNull XKCDResponse xkcdResponse) { + Calendar today = Calendar.getInstance(); + return xkcdResponse.day == today.get(Calendar.DAY_OF_MONTH) && xkcdResponse.month == (today.get(Calendar.MONTH) + 1) && xkcdResponse.year == today.get(Calendar.YEAR); + } }.execute(); } diff --git a/app/src/main/java/com/morristaedt/mirror/modules/YahooFinanceModule.java b/app/src/main/java/com/morristaedt/mirror/modules/YahooFinanceModule.java index a6f52c3..5024ba8 100644 --- a/app/src/main/java/com/morristaedt/mirror/modules/YahooFinanceModule.java +++ b/app/src/main/java/com/morristaedt/mirror/modules/YahooFinanceModule.java @@ -4,6 +4,7 @@ import android.support.annotation.Nullable; import android.util.Log; +import com.morristaedt.mirror.configuration.ConfigurationSettings; import com.morristaedt.mirror.requests.YahooFinanceRequest; import com.morristaedt.mirror.requests.YahooStockResponse; @@ -53,7 +54,7 @@ protected YahooStockResponse doInBackground(Void... params) { protected void onPostExecute(@Nullable YahooStockResponse stockResponse) { if (stockResponse != null && stockResponse.getQuoteResponse() != null) { YahooStockResponse.YahooQuoteResponse quoteResponse = stockResponse.getQuoteResponse(); - if (quoteResponse.getPercentageChange().abs().compareTo(BigDecimal.valueOf(0.03)) >= 0) { + if (ConfigurationSettings.isDemoMode() || quoteResponse.getPercentageChange().abs().compareTo(BigDecimal.valueOf(0.03)) >= 0) { listener.onNewStockPrice(quoteResponse); return; } diff --git a/app/src/main/java/com/morristaedt/mirror/utils/WeekUtil.java b/app/src/main/java/com/morristaedt/mirror/utils/WeekUtil.java index c8ac37d..65175cf 100644 --- a/app/src/main/java/com/morristaedt/mirror/utils/WeekUtil.java +++ b/app/src/main/java/com/morristaedt/mirror/utils/WeekUtil.java @@ -12,8 +12,16 @@ public static boolean isWeekday() { return dayOfWeek != Calendar.SATURDAY && dayOfWeek != Calendar.SUNDAY; } - public static boolean afterFive(){ + public static boolean afterFive() { int hourOfDay = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); return hourOfDay >= 17; } + + public static boolean isWeekdayBeforeFive() { + return isWeekday() && !afterFive(); + } + + public static boolean isWeekdayAfterFive() { + return isWeekday() && afterFive(); + } }