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