diff --git a/.travis.yml b/.travis.yml
index 50120bf..7f1b4e2 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,30 +1,27 @@
+
+sudo: false
language: android
-jdk: oraclejdk7
+jdk: oraclejdk8
android:
components:
- # Uncomment the lines below if you want to
- # use the latest revision of Android SDK Tools
- # - platform-tools
- # - tools
-
# The BuildTools version used by your project
- - build-tools-19.1.0
+ - build-tools-23.0.1
# The SDK version used to compile your project
- - android-19
+ - android-23
# Additional components
- extra-google-google_play_services
- extra-google-m2repository
- extra-android-m2repository
- - addon-google_apis-google-19
+ - addon-google_apis-google-23
# Specify at least one system image,
# if you need to run emulator(s) during your tests
# - sys-img-armeabi-v7a-android-19
script:
- - echo "Assembling..."
+ - echo "It's morphin' time!"
- chmod +x ./gradlew
- - ./gradlew :soup:clean :soup:test
+ - ./gradlew check --daemon --info
diff --git a/build.gradle b/build.gradle
index e8a01cb..79cfa9f 100644
--- a/build.gradle
+++ b/build.gradle
@@ -1,15 +1,23 @@
-// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
- mavenCentral()
+ jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:0.12.2'
- classpath 'org.robolectric:robolectric-gradle-plugin:0.12.0'
+ classpath 'com.android.tools.build:gradle:1.3.0'
+ classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
+ }
+}
+allprojects {
+ repositories {
+ jcenter()
}
}
+task clean(type: Delete) {
+ delete rootProject.buildDir
+}
+
// File: build.gradle
println """\
Welcome to Gradle $gradle.gradleVersion - http://www.gradle.org
diff --git a/foursquare-android-oauth b/foursquare-android-oauth
index 60edada..f6aeff5 160000
--- a/foursquare-android-oauth
+++ b/foursquare-android-oauth
@@ -1 +1 @@
-Subproject commit 60edadaac998fd2822afc2ee0d50207fb580a00d
+Subproject commit f6aeff5add72464b1a836c9281c8d54167c09d88
diff --git a/gradle.properties b/gradle.properties
index 6bd9440..4500f04 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,6 +17,6 @@
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
-DEBUG_STORE_FILE=../../../../../.android/debug.keystore
-RELEASE_STORE_FILE=../../../../../dropbox/dev/project resources/my-release-key.keystore
+DEBUG_STORE_FILE=~/.android/debug.keystore
+RELEASE_STORE_FILE=~/release.keystore
RELEASE_KEY_ALIAS=soup
\ No newline at end of file
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 36f5bae..4c7a11a 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Sun Jul 06 22:41:28 MST 2014
+#Tue Nov 10 11:29:15 MST 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-2.4-all.zip
diff --git a/soup-pro/build.gradle b/soup-pro/build.gradle
index c4f60c9..7c98861 100644
--- a/soup-pro/build.gradle
+++ b/soup-pro/build.gradle
@@ -1,70 +1,30 @@
-gradle.taskGraph.whenReady { taskGraph ->
- if(taskGraph.hasTask(':app:assembleRelease')) {
- // Only execute when we are trying to assemble a release build
- def pass = System.console() != null ? System.console().readPassword("\nPlease enter store passphrase: ") : ""
- // readPassword returns a char[] so we need to wrap it into a string, because that's
- // most likely what you need
- pass = new String(pass)
- // Use the pass variable here (so set signing configs here)
- android.signingConfigs.release.storePassword = pass
-
- def pass2 = System.console() != null ? System.console().readPassword("\nPlease enter key passphrase: ") : ""
- // readPassword returns a char[] so we need to wrap it into a string, because that's
- // most likely what you need
- pass2 = new String(pass2)
- android.signingConfigs.release.keyPassword = pass2
- }
-}
-
apply plugin: 'com.android.application'
android {
- compileSdkVersion 19
- buildToolsVersion '20'
+ compileSdkVersion 23
+ buildToolsVersion '23.0.1'
defaultConfig {
- minSdkVersion 9
- targetSdkVersion 19
+ minSdkVersion 14
+ targetSdkVersion 23
versionCode 3
versionName "1.2"
}
- signingConfigs {
- debugSigning {
- storeFile file(DEBUG_STORE_FILE)
- storePassword "android"
- keyAlias "androiddebugkey"
- keyPassword "android"
- }
-
- releaseSigning {
- storeFile file(RELEASE_STORE_FILE)
- storePassword ""
- keyAlias RELEASE_KEY_ALIAS
- keyPassword ""
- }
- }
-
buildTypes {
debug {
- zipAlign true
- debuggable true
- runProguard false
+ minifyEnabled false
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
- signingConfig signingConfigs.debugSigning
}
release {
- zipAlign true
- debuggable false
- runProguard false
+ minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
- signingConfig signingConfigs.releaseSigning
}
}
}
dependencies {
- compile 'com.android.support:support-v4:19.+'
+ compile 'com.android.support:support-v4:23.1.0'
}
\ No newline at end of file
diff --git a/soup-pro/soup-pro.iml b/soup-pro/soup-pro.iml
deleted file mode 100644
index f8c6a2f..0000000
--- a/soup-pro/soup-pro.iml
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/soup/build.gradle b/soup/build.gradle
index c3a0d16..151b1b1 100644
--- a/soup/build.gradle
+++ b/soup/build.gradle
@@ -1,175 +1,79 @@
-gradle.taskGraph.whenReady { taskGraph ->
- if(taskGraph.hasTask(':soup:assembleRelease')) {
- // Only execute when we are trying to assemble a release build
- def pass = System.console() != null ? System.console().readPassword("\nPlease enter store passphrase: ") : ""
- // readPassword returns a char[] so we need to wrap it into a string, because that's
- // most likely what you need
- pass = new String(pass)
- // Use the pass variable here (so set signing configs here)
- android.signingConfigs.release.storePassword = pass
-
- def pass2 = System.console() != null ? System.console().readPassword("\nPlease enter key passphrase: ") : ""
- // readPassword returns a char[] so we need to wrap it into a string, because that's
- // most likely what you need
- pass2 = new String(pass2)
- android.signingConfigs.release.keyPassword = pass2
- }
-}
-
-// NOTE: Temp fix for Play Services (admob) from: https://code.google.com/p/android/issues/detail?id=75080
-tasks.whenTaskAdded { theTask ->
- def taskName = theTask.name.toString()
- if ("testDebug".toString().equals(taskName)) {
- /**
- * Listen for when robolectric adds the 'testDebug' task and when it does, add the -noverify
- * option to that task's jvmArgs. This allows us to turn off byte code verification when
- * running our unit tests.
- */
- theTask.jvmArgs('-noverify')
- }
-}
-
buildscript {
repositories {
mavenCentral()
- maven { url 'http://download.crashlytics.com/maven' }
- }
- dependencies {
- classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.12.0'
-
}
}
apply plugin: 'com.android.application'
-apply plugin: 'robolectric'
-apply plugin: 'crashlytics'
repositories {
mavenCentral()
- maven { url 'http://download.crashlytics.com/maven' }
}
android {
- compileSdkVersion 19
- buildToolsVersion '19.1'
+ compileSdkVersion 23
+ buildToolsVersion '23.0.1'
defaultConfig {
applicationId "com.thunsaker.soup"
- minSdkVersion 9
- targetSdkVersion 19
+ minSdkVersion 14
+ targetSdkVersion 23
versionCode 25
versionName "2.6.4"
- testInstrumentationRunner "com.google.android.apps.common.testing.testrunner.GoogleInstrumentationTestRunner"
resConfigs "en", "es", "fr", "pt", "ru"
}
- signingConfigs {
- debugSigning {
- storeFile file(DEBUG_STORE_FILE)
- storePassword "android"
- keyAlias "androiddebugkey"
- keyPassword "android"
- }
-
- releaseSigning {
- storeFile file(RELEASE_STORE_FILE)
- storePassword ""
- keyAlias RELEASE_KEY_ALIAS
- keyPassword ""
- }
- }
-
buildTypes {
debug {
- zipAlign true
- debuggable true
- runProguard false
+ buildConfigField("String", "FOURSQUARE_ID", getEnv("SOUP_FOUR_ID"));
+ buildConfigField("String", "FOURSQUARE_SECRET", getEnv("SOUP_FOUR_SECRET"));
+
applicationIdSuffix ".debug"
versionNameSuffix "-debug"
- signingConfig signingConfigs.debugSigning
- ext.enableCrashlytics = false
+ minifyEnabled false
}
release {
- zipAlign true
- debuggable false
- runProguard false
- proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
- signingConfig signingConfigs.releaseSigning
- }
- }
+ buildConfigField("String", "FOURSQUARE_ID", getEnv("SOUP_FOUR_ID"));
+ buildConfigField("String", "FOURSQUARE_SECRET", getEnv("SOUP_FOUR_SECRET"));
- sourceSets {
- main {
- manifest.srcFile 'src/main/AndroidManifest.xml'
- java.srcDirs = ['src/main/java']
- res.srcDirs = ['src/main/res']
- }
-
- androidTest {
- setRoot('src/androidTest')
+ minifyEnabled false
+ proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
-robolectric {
- include '**/*Test.class'
- exclude '**/espresso/**/*.class'
+def getEnv(key, defVal = '') {
+ "\"${System.env.containsKey(key) ? System.env.get(key) : defVal}\""
}
dependencies {
- androidTestCompile('junit:junit:4.11') {
- exclude module: 'hamcrest-core'
- }
compile project(':foursquare-android-oauth:foursquare-oauth-library')
compile project(':viewpagerindicator:library')
- compile('com.doomonafireball.betterpickers:library:1.5.2') {
- exclude group: 'com.android.support', module: 'support-v4'
- }
- compile 'com.android.support:support-v4:19.+'
- compile 'com.android.support:appcompat-v7:19.+'
- compile 'com.google.code.gson:gson:2.2.4'
- compile 'com.google.android.gms:play-services:5.0.+'
+
+ compile 'com.code-troopers.betterpickers:library:2.2.1'
+
+ compile 'com.android.support:design:23.1.0'
+ compile 'com.android.support:support-v4:23.1.0'
+ compile 'com.android.support:appcompat-v7:23.1.0'
+ compile 'com.google.code.gson:gson:2.3'
+ compile 'com.google.android.gms:play-services-location:8.1.0'
+ compile 'com.google.android.gms:play-services-ads:8.1.0'
+
compile 'com.koushikdutta.urlimageviewhelper:urlimageviewhelper:1.0.4'
- compile 'com.crashlytics.android:crashlytics:1.1.13'
+
compile 'joda-time:joda-time:2.4'
compile 'com.jakewharton:butterknife:5.1.2'
compile 'de.greenrobot:eventbus:2.2.0'
- compile 'com.squareup.dagger:dagger:1.2.1'
+ compile 'com.squareup.dagger:dagger:1.2.2'
+
compile 'com.squareup.picasso:picasso:2.2.0'
compile('com.squareup.retrofit:retrofit:1.5.1') {
exclude group: 'com.google.code.gson', module: 'gson'
}
- compile 'com.squareup:android-times-square:1.2.1@aar'
- compile 'com.tundem.aboutlibraries:library:3.0.0@aar'
- // Test - Robolectric
- provided 'com.squareup.dagger:dagger-compiler:1.2.1'
- androidTestCompile('org.robolectric:robolectric:2.3') {
- exclude module: 'classworlds'
- exclude module: 'maven-artifact'
- exclude module: 'maven-artifact-manager'
- exclude module: 'maven-error-diagnostics'
- exclude module: 'maven-model'
- exclude module: 'maven-plugin-registry'
- exclude module: 'maven-profile'
- exclude module: 'maven-project'
- exclude module: 'maven-settings'
- exclude module: 'nekohtml'
- exclude module: 'plexus-container-default'
- exclude module: 'plexus-interpolation'
- exclude module: 'plexus-utils'
- exclude module: 'wagon-file'
- exclude module: 'wagon-http-lightweight'
- exclude module: 'wagon-http-shared'
- exclude module: 'wagon-provider-api'
- exclude module: 'commons-logging'
- exclude module: 'httpclient'
- }
- androidTestCompile 'com.squareup:fest-android:1.0.7'
- androidTestCompile('com.jakewharton.espresso:espresso:1.1-r3') {
- exclude module: 'javax.inject'
- exclude module: 'javax.annotation:javax.annotation-api:1.2'
+ compile 'com.squareup:android-times-square:1.6.4@aar'
+ compile('com.mikepenz:aboutlibraries:5.3.2@aar') {
+ transitive = true
}
- androidTestCompile 'com.jakewharton.espresso:espresso-support-v4:1.1-r3'
- androidTestCompile 'org.mockito:mockito-all:1.9.5'
+ provided 'com.squareup.dagger:dagger-compiler:1.2.2'
}
\ No newline at end of file
diff --git a/soup/src/androidTest/java/com/thunsaker/soup/ApplicationTest.java b/soup/src/androidTest/java/com/thunsaker/soup/ApplicationTest.java
deleted file mode 100644
index 96c616b..0000000
--- a/soup/src/androidTest/java/com/thunsaker/soup/ApplicationTest.java
+++ /dev/null
@@ -1,41 +0,0 @@
-package com.thunsaker.soup;
-
-import com.thunsaker.soup.ui.MainActivity;
-
-import junit.framework.Assert;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.annotation.Config;
-
-import static com.thunsaker.soup.app.TestSoupApp.injectMocks;
-
-@Config(emulateSdk = 18)
-@RunWith(RobolectricTestRunner.class)
-public class ApplicationTest {
- private MainActivity activity;
-
- @Before
- public void setUp() {
- injectMocks(this);
-// activity = Robolectric.buildActivity(MainActivity.class).create().get();
- }
-
- @Test
- public void isThisThingOn() {
- Assert.assertTrue(true);
- }
-
-// @Test
-// public void checkActivityNotNull() throws Exception {
-// Assert.assertNotNull(activity);
-// }
-
-// @Test
-// public void testInjection() throws Exception {
-// Context actual = activity.getApplicationContext();
-// Assert.assertEquals(mContext, actual);
-// }
-}
\ No newline at end of file
diff --git a/soup/src/androidTest/java/com/thunsaker/soup/app/SoupTestModule.java b/soup/src/androidTest/java/com/thunsaker/soup/app/SoupTestModule.java
deleted file mode 100644
index 9b9e672..0000000
--- a/soup/src/androidTest/java/com/thunsaker/soup/app/SoupTestModule.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.thunsaker.soup.app;
-
-import android.content.Context;
-
-import com.thunsaker.android.common.annotations.ForActivity;
-import com.thunsaker.soup.ApplicationTest;
-import com.thunsaker.soup.services.foursquare.FoursquareServiceTest;
-
-import javax.inject.Singleton;
-
-import dagger.Module;
-import dagger.Provides;
-
-import static org.mockito.Mockito.mock;
-
-@Module(
- complete = true,
- library = true,
- overrides = true,
- addsTo = SoupActivityModule.class,
- injects = {
- TestSoupApp.class,
- FoursquareServiceTest.class,
- ApplicationTest.class
- }
-)
-
-public class SoupTestModule {
- @Provides
- @Singleton
- @ForActivity
- Context providesActivityContext() {
- return mock(BaseSoupActivity.class);
- }
-}
diff --git a/soup/src/androidTest/java/com/thunsaker/soup/app/TestSoupApp.java b/soup/src/androidTest/java/com/thunsaker/soup/app/TestSoupApp.java
deleted file mode 100644
index ec5ad1b..0000000
--- a/soup/src/androidTest/java/com/thunsaker/soup/app/TestSoupApp.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.thunsaker.soup.app;
-
-import org.robolectric.Robolectric;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public class TestSoupApp extends SoupApp {
-
- public static void injectMocks(T object) {
- TestSoupApp app = (TestSoupApp) Robolectric.application;
- app.inject(object);
- }
-
- protected List