diff --git a/.travis.yml b/.travis.yml
index becb2d0..5cb078e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -8,8 +8,8 @@ android:
components:
- platform-tools
- tools
- - android-25
- - build-tools-25.0.0
+ - android-27
+ - build-tools-27.0.3
- extra-android-m2repository
- extra-android-support
- sys-img-armeabi-v7a-android-18
diff --git a/app/build.gradle b/app/build.gradle
index ab1a3b8..252f7da 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -2,14 +2,15 @@ apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
- compileSdkVersion 25
- buildToolsVersion "25.0.0"
+ compileSdkVersion rootProject.compileSdkVersion
+ buildToolsVersion rootProject.buildToolsVersion
+
defaultConfig {
applicationId "com.michaelcarrano.seven_min_workout"
- minSdkVersion 16
- targetSdkVersion 25
- versionCode 2
- versionName "2.0"
+ minSdkVersion rootProject.minSdkVersion
+ targetSdkVersion rootProject.targetSdkVersion
+ versionCode 3
+ versionName "2.1"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
buildConfigField("String", "YOUTUBE_API_KEY", "\"${youtube_api_key}\"")
@@ -23,18 +24,18 @@ android {
}
dependencies {
- compile fileTree(dir: 'libs', include: ['*.jar'])
+ implementation fileTree(dir: 'libs', include: ['*.jar'])
- compile 'com.android.support:appcompat-v7:25.0.1'
- compile 'com.android.support:design:25.0.1'
+ implementation "com.android.support:appcompat-v7:$supportLib"
+ implementation "com.android.support:design:$supportLib"
- compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
+ implementation('com.crashlytics.sdk.android:crashlytics:2.9.1@aar') {
transitive = true;
}
// Testing Dependencies
- androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
+ androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
- testCompile 'junit:junit:4.12'
+ testImplementation 'junit:junit:4.12'
}
diff --git a/app/src/main/java/com/michaelcarrano/seven_min_workout/AboutActivity.java b/app/src/main/java/com/michaelcarrano/seven_min_workout/AboutActivity.java
index bb79dec..d531053 100644
--- a/app/src/main/java/com/michaelcarrano/seven_min_workout/AboutActivity.java
+++ b/app/src/main/java/com/michaelcarrano/seven_min_workout/AboutActivity.java
@@ -13,10 +13,6 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_about);
- // Set the ActionBar title and up button
-// getActionBar().setTitle(getString(R.string.app_label));
-// getActionBar().setDisplayHomeAsUpEnabled(true);
-
// Set the text
TextView textView = (TextView) findViewById(R.id.about_text);
textView.append(getString(R.string.about_part1));
diff --git a/app/src/main/java/com/michaelcarrano/seven_min_workout/BaseActivity.java b/app/src/main/java/com/michaelcarrano/seven_min_workout/BaseActivity.java
index 1c33eb8..07363e6 100644
--- a/app/src/main/java/com/michaelcarrano/seven_min_workout/BaseActivity.java
+++ b/app/src/main/java/com/michaelcarrano/seven_min_workout/BaseActivity.java
@@ -15,7 +15,7 @@
* Created by michaelcarrano on 10/1/16.
*/
-public class BaseActivity extends AppCompatActivity {
+public abstract class BaseActivity extends AppCompatActivity {
protected Toolbar toolbar;
@@ -59,12 +59,12 @@ public final CoordinatorLayout getCoordinatorLayout() {
@NonNull
public FloatingActionButton addFab() {
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+ FloatingActionButton fab = findViewById(R.id.fab);
if (fab == null) {
getLayoutInflater().inflate(R.layout.fab, getCoordinatorLayout());
- fab = (FloatingActionButton) findViewById(R.id.fab);
+ fab = findViewById(R.id.fab);
}
setShowFab(true);
@@ -74,7 +74,7 @@ public FloatingActionButton addFab() {
@Nullable
public FloatingActionButton setShowFab(boolean show) {
- FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
+ FloatingActionButton fab = findViewById(R.id.fab);
if (fab == null || fab.getVisibility() == View.VISIBLE && show || fab.getVisibility() == View.GONE && !show) {
return fab;
@@ -84,7 +84,6 @@ public FloatingActionButton setShowFab(boolean show) {
CoordinatorLayout.LayoutParams params = (CoordinatorLayout.LayoutParams) fab.getLayoutParams();
if (show) {
-// params.setBehavior(new FloatingActionButtonBehavior(this));
fab.setVisibility(View.VISIBLE);
} else {
params.setBehavior(null);
diff --git a/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutCountdownFragment.java b/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutCountdownFragment.java
index 8b6faf9..0232df0 100644
--- a/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutCountdownFragment.java
+++ b/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutCountdownFragment.java
@@ -66,9 +66,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater
.inflate(R.layout.fragment_workout_countdown, container, false);
- mCircularProgressBar = (CircularProgressBar) rootView
- .findViewById(R.id.workout_countdown_time);
-// rootView.setBackgroundColor(Color.parseColor(mWorkout.light));
+ mCircularProgressBar = rootView.findViewById(R.id.workout_countdown_time);
// Start off with 10 second rest, then alternate
if (!workoutInProgress) {
@@ -93,21 +91,19 @@ private void rest(final View rootView) {
public void onTick(long millisUntilFinished) {
REMAINING_TIME = (int) (millisUntilFinished / 1000);
- TextView name = (TextView) rootView.findViewById(R.id.workout_countdown_name);
+ TextView name = rootView.findViewById(R.id.workout_countdown_name);
if (!workoutInProgress) {
name.setText(R.string.get_ready);
} else {
name.setText(R.string.rest);
}
- TextView id = (TextView) rootView.findViewById(R.id.workout_countdown_id);
+ TextView id = rootView.findViewById(R.id.workout_countdown_id);
id.setText(mWorkout.id);
id.setBackgroundColor(mWorkout.dark);
name.setBackgroundColor(mWorkout.light);
-// TextView time = (TextView) rootView.findViewById(R.id.workout_countdown_time);
-// time.setText("" + millisUntilFinished / 1000);
mCircularProgressBar.setMax(REST_TIME / 1000);
mCircularProgressBar.setProgress(REMAINING_TIME);
@@ -128,14 +124,12 @@ private void exercise(final View rootView) {
public void onTick(long millisUntilFinished) {
REMAINING_TIME = (int) (millisUntilFinished / 1000);
- TextView ready = (TextView) rootView.findViewById(R.id.workout_countdown_name);
+ TextView ready = rootView.findViewById(R.id.workout_countdown_name);
ready.setText(mWorkout.name);
- TextView id = (TextView) rootView.findViewById(R.id.workout_countdown_id);
+ TextView id = rootView.findViewById(R.id.workout_countdown_id);
id.setText(mWorkout.id);
-// TextView time = (TextView) rootView.findViewById(R.id.workout_countdown_time);
-// time.setText("" + millisUntilFinished / 1000);
mCircularProgressBar.setMax(EXERCISE_TIME / 1000);
mCircularProgressBar.setProgress(REMAINING_TIME);
@@ -145,7 +139,6 @@ public void onTick(long millisUntilFinished) {
public void onFinish() {
if (++mWorkoutPos < WorkoutContent.WORKOUTS.size()) {
mWorkout = WorkoutContent.WORKOUTS.get(mWorkoutPos);
-// rootView.setBackgroundColor(Color.parseColor(mWorkout.light));
rest(rootView);
} else {
finish(rootView);
@@ -158,12 +151,12 @@ public void onFinish() {
private void finish(View rootView) {
mCountDownTimer.cancel();
// hide the current views
- LinearLayout info = (LinearLayout) rootView.findViewById(R.id.workout_countdown_info);
+ LinearLayout info = rootView.findViewById(R.id.workout_countdown_info);
info.setVisibility(View.GONE);
mCircularProgressBar.setVisibility(View.GONE);
// display "finished"
- TextView textView = (TextView) rootView.findViewById(R.id.workout_countdown_finished);
+ TextView textView = rootView.findViewById(R.id.workout_countdown_finished);
textView.setVisibility(View.VISIBLE);
}
diff --git a/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutDetailFragment.java b/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutDetailFragment.java
index 4d7484d..ce040a5 100644
--- a/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutDetailFragment.java
+++ b/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutDetailFragment.java
@@ -51,7 +51,7 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
// Show the workout content as text in a TextView.
if (mWorkout != null) {
- TextView content = (TextView) rootView.findViewById(R.id.workout_detail);
+ TextView content = rootView.findViewById(R.id.workout_detail);
content.setText(mWorkout.content);
}
diff --git a/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutListFragment.java b/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutListFragment.java
index 6b7418a..d0d009e 100644
--- a/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutListFragment.java
+++ b/app/src/main/java/com/michaelcarrano/seven_min_workout/WorkoutListFragment.java
@@ -1,7 +1,5 @@
package com.michaelcarrano.seven_min_workout;
-import com.michaelcarrano.seven_min_workout.adapter.WorkoutListAdapter;
-
import android.app.Activity;
import android.os.Bundle;
import android.os.Parcelable;
@@ -9,6 +7,8 @@
import android.view.View;
import android.widget.ListView;
+import com.michaelcarrano.seven_min_workout.adapter.WorkoutListAdapter;
+
/**
* A list fragment representing a list of Workouts. This fragment also supports tablet devices by
* allowing list items to be given an 'activated' state upon selection. This helps indicate which
@@ -68,9 +68,7 @@ public void onViewCreated(View view, Bundle savedInstanceState) {
getListView().setDividerHeight(0);
// Restore ListView position
-// Log.i("7min", "onViewCreated");
if (mListViewScrollPos != null) {
-// Log.i("7min", "Restore scroll position");
getListView().onRestoreInstanceState(mListViewScrollPos);
}
}
@@ -111,7 +109,6 @@ public void onSaveInstanceState(Bundle outState) {
// Serialize and persist the activated item position.
outState.putInt(STATE_ACTIVATED_POSITION, mActivatedPosition);
}
-// Log.i("7min", "onSaveInstanceState");
mListViewScrollPos = getListView().onSaveInstanceState();
}
@@ -146,6 +143,6 @@ public interface Callbacks {
/**
* Callback for when an item has been selected.
*/
- public void onItemSelected(int position);
+ void onItemSelected(int position);
}
}
diff --git a/app/src/main/java/com/michaelcarrano/seven_min_workout/adapter/WorkoutListAdapter.java b/app/src/main/java/com/michaelcarrano/seven_min_workout/adapter/WorkoutListAdapter.java
index 91fb208..e856b7f 100644
--- a/app/src/main/java/com/michaelcarrano/seven_min_workout/adapter/WorkoutListAdapter.java
+++ b/app/src/main/java/com/michaelcarrano/seven_min_workout/adapter/WorkoutListAdapter.java
@@ -49,8 +49,8 @@ public View getView(int position, View convertView, ViewGroup parent) {
convertView = mLayoutInflater.inflate(R.layout.adapter_workout_row, parent, false);
holder = new ViewHolder();
- holder.id = (TextView) convertView.findViewById(R.id.workout_id);
- holder.name = (TextView) convertView.findViewById(R.id.workout_name);
+ holder.id = convertView.findViewById(R.id.workout_id);
+ holder.name = convertView.findViewById(R.id.workout_name);
convertView.setTag(holder);
} else {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ad4c93f..e5d3ebf 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -57,11 +57,11 @@
Eh00_rniF8E
SHWgBc4Ahc8
u-QwO-Bbaro
- p3g4wAsu0R4
+ aPYCiuiB4PA
nx9gVDCnT84
pSHjTRCQxIw
kMFv3Alg-Gc
- m_RYVmpWDq4
+ Z2n58m2i4jg
uGqZONsnZa8
NXr4Fw8q60o
diff --git a/build.gradle b/build.gradle
index 16d2415..306f963 100644
--- a/build.gradle
+++ b/build.gradle
@@ -3,28 +3,33 @@
buildscript {
repositories {
jcenter()
- maven {
- url 'https://maven.fabric.io/public'
- }
+ google()
+ maven { url "https://maven.fabric.io/public" }
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.2.2'
+ classpath 'com.android.tools.build:gradle:3.1.1'
classpath 'io.fabric.tools:gradle:1.+'
-
- // NOTE: Do not place your application dependencies here; they belong
- // in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
- maven {
- url 'https://maven.fabric.io/public'
- }
+ google()
+ maven { url "https://jitpack.io" }
+ maven { url "https://maven.fabric.io/public" }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
+
+ext {
+ buildToolsVersion = "27.0.3"
+ minSdkVersion = 16
+ targetSdkVersion = 27
+ compileSdkVersion = 27
+
+ supportLib = "27.1.1"
+}
diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar
index 13372ae..3baa851 100644
Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 04e285f..2796c33 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Dec 28 10:00:20 PST 2015
+#Tue Apr 24 20:37:50 EDT 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
diff --git a/gradlew b/gradlew
index 9d82f78..27309d9 100755
--- a/gradlew
+++ b/gradlew
@@ -6,12 +6,30 @@
##
##############################################################################
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
+# Attempt to set APP_HOME
+# Resolve links: $0 may be a link
+PRG="$0"
+# Need this for relative symlinks.
+while [ -h "$PRG" ] ; do
+ ls=`ls -ld "$PRG"`
+ link=`expr "$ls" : '.*-> \(.*\)$'`
+ if expr "$link" : '/.*' > /dev/null; then
+ PRG="$link"
+ else
+ PRG=`dirname "$PRG"`"/$link"
+ fi
+done
+SAVED="`pwd`"
+cd "`dirname \"$PRG\"`/" >/dev/null
+APP_HOME="`pwd -P`"
+cd "$SAVED" >/dev/null
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+DEFAULT_JVM_OPTS=""
+
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
@@ -30,6 +48,7 @@ die ( ) {
cygwin=false
msys=false
darwin=false
+nonstop=false
case "`uname`" in
CYGWIN* )
cygwin=true
@@ -40,26 +59,11 @@ case "`uname`" in
MINGW* )
msys=true
;;
+ NONSTOP* )
+ nonstop=true
+ ;;
esac
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
@@ -85,7 +89,7 @@ location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
diff --git a/gradlew.bat b/gradlew.bat
index aec9973..f6d5974 100644
--- a/gradlew.bat
+++ b/gradlew.bat
@@ -8,14 +8,14 @@
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
+set DEFAULT_JVM_OPTS=
+
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
@@ -46,7 +46,7 @@ echo location of your Java installation.
goto fail
:init
-@rem Get command-line arguments, handling Windowz variants
+@rem Get command-line arguments, handling Windows variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args