diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2b67d39e..217b523e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,14 @@
-v0.5.5 - TBD
-------------
+v0.6.0 - 2/14/2017
+-------------------
+### Fixed
+- [Issue #71](https://github.com/uber/rides-android-sdk/issues/71) LoginManager breaks when used with Rides SDK 0.6.0
+- [Issue #65](https://github.com/uber/rides-android-sdk/issues/65) Empty AndroidHttpClient get compiled when using core-android 0.5.4 leading to unresolved references to actual methods of AndroidHttpClient
+
+### Added
+- Updated to match API 1.2 changes
+
+### Breaking
+- Removed Region (China) support
v0.5.4 - 9/29/2016
------------------
@@ -13,6 +22,7 @@ v0.5.4 - 9/29/2016
- [Issue #48](https://github.com/uber/rides-android-sdk/issues/48) Typo in Readme.md
- [Issue #54](https://github.com/uber/rides-android-sdk/issues/54) log4j lib still exists in 0.5.3 causing Proguard failing
+
v0.5.3 - 8/12/2016
------------------
### Fixed
diff --git a/README.md b/README.md
index c71d2da3..1122e83e 100644
--- a/README.md
+++ b/README.md
@@ -20,7 +20,7 @@ To use the Uber Rides Android SDK, add the compile dependency with the latest ve
Add the Uber Rides Android SDK to your `build.gradle`:
```gradle
dependencies {
- compile 'com.uber.sdk:rides-android:0.5.4'
+ compile 'com.uber.sdk:rides-android:0.6.0'
}
```
@@ -31,7 +31,7 @@ In the `pom.xml` file:
com.uber.sdk
rides-android
- 0.5.4
+ 0.6.0
```
@@ -319,7 +319,7 @@ service.getUserProfile().enqueue(new Callback() {
## Sample Apps
-Sample apps can be found in the `samples` folder. Alternatively, you can also download a sample from the [releases page](https://github.com/uber/rides-android-sdk/releases/tag/v0.5.4).
+Sample apps can be found in the `samples` folder. Alternatively, you can also download a sample from the [releases page](https://github.com/uber/rides-android-sdk/releases/tag/v0.6.0).
The Sample apps require configuration parameters to interact with the Uber API, these include the client id, redirect uri, and server token. They are provided on the [Uber developer dashboard](https://developer.uber.com/dashboard).
@@ -349,6 +349,4 @@ As the Uber Android SDK get closer to a 1.0 release, the API's will become more
We :heart: contributions. Found a bug or looking for a new feature? Open an issue and we'll respond as fast as we can. Or, better yet, implement it yourself and open a pull request! We ask that you include tests to show the bug was fixed or the feature works as expected.
-**Note:** All contributors also need to fill out the [Uber Contributor License Agreement](http://t.uber.com/cla) before we can merge in any of your changes.
-
## MIT Licensed
diff --git a/build.gradle b/build.gradle
index 10c8b8de..b19e2fcd 100644
--- a/build.gradle
+++ b/build.gradle
@@ -10,7 +10,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.1.0'
+ classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'net.researchgate:gradle-release:2.3.5'
classpath 'co.riiid:gradle-github-plugin:0.4.2'
classpath 'net.saliman:gradle-cobertura-plugin:2.3.1'
diff --git a/core-android/build.gradle b/core-android/build.gradle
index 34179451..2f2d8935 100644
--- a/core-android/build.gradle
+++ b/core-android/build.gradle
@@ -10,7 +10,7 @@ buildscript {
}
dependencies {
- classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
}
}
@@ -129,12 +129,6 @@ uploadArchives {
name 'Ty Smith'
email 'tys@uber.com'
}
-
- developer {
- id 'yhartanto'
- name 'Yohan Hartanto'
- email 'yohan@uber.com'
- }
}
}
}
@@ -153,7 +147,7 @@ cobertura {
}
dependencies {
- compile ('com.uber.sdk:rides:0.5.2') {
+ compile ('com.uber.sdk:rides:0.6.0') {
//Do not need Google OAuth based logic in Android
exclude group: 'org.slf4j', module: 'slf4j-log4j12'
exclude group: 'com.google.oauth-client', module: 'google-oauth-client'
@@ -171,7 +165,7 @@ dependencies {
testCompile 'com.google.http-client:google-http-client-jackson2:1.19.0'
testCompile 'org.mockito:mockito-core:1.10.19'
testCompile 'org.assertj:assertj-core:1.7.1'
- testCompile 'org.robolectric:robolectric:3.0'
+ testCompile 'org.robolectric:robolectric:3.2.2'
//Needed for Cobertura checks because of above exclude
testCompile 'com.google.http-client:google-http-client-jackson2:1.19.0'
diff --git a/core-android/src/main/java/android/net/http/AndroidHttpClient.java b/core-android/src/main/java/android/net/http/AndroidHttpClient.java
deleted file mode 100644
index 4d44478a..00000000
--- a/core-android/src/main/java/android/net/http/AndroidHttpClient.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2016 Uber Technologies, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package android.net.http;
-
-/**
- * Apache HTTP Client was deprecated and is no longer part of compile classpath.
- * Robolectic still links to it so an empty class is needed for compiling purposes.
- *
- * See Robolectric issue for
- * details.
- */
-public class AndroidHttpClient { }
diff --git a/core-android/src/main/java/com/uber/sdk/android/core/auth/AuthenticationError.java b/core-android/src/main/java/com/uber/sdk/android/core/auth/AuthenticationError.java
index 2b27f7b0..e7a68a31 100644
--- a/core-android/src/main/java/com/uber/sdk/android/core/auth/AuthenticationError.java
+++ b/core-android/src/main/java/com/uber/sdk/android/core/auth/AuthenticationError.java
@@ -31,6 +31,11 @@
*/
public enum AuthenticationError {
+ /**
+ * User cancelled flow
+ */
+ CANCELLED,
+
/**
* There was a connectivity error while trying to load.
*/
diff --git a/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginActivity.java b/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginActivity.java
index 2f75ad01..3b78bfd9 100644
--- a/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginActivity.java
+++ b/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginActivity.java
@@ -177,7 +177,7 @@ String buildUrl(
Uri.Builder builder = new Uri.Builder();
builder.scheme(HTTPS)
- .authority(ENDPOINT + "." + configuration.getEndpointRegion().domain)
+ .authority(ENDPOINT + "." + configuration.getEndpointRegion().getDomain())
.appendEncodedPath(PATH)
.appendQueryParameter(CLIENT_ID_PARAM, configuration.getClientId())
.appendQueryParameter(REDIRECT_PARAM, redirectUri)
diff --git a/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginManager.java b/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginManager.java
index abfa9b23..cfa61285 100644
--- a/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginManager.java
+++ b/core-android/src/main/java/com/uber/sdk/android/core/auth/LoginManager.java
@@ -84,7 +84,7 @@ public class LoginManager {
static final int REQUEST_CODE_LOGIN_DEFAULT = 1001;
- private static final String USER_AGENT = "core-android-v0.5.4-login_manager";
+ private static final String USER_AGENT = "core-android-v0.6.0-login_manager";
private final AccessTokenManager accessTokenManager;
private final LoginCallback callback;
@@ -144,7 +144,6 @@ public void login(@NonNull Activity activity) {
SsoDeeplink ssoDeeplink = new SsoDeeplink.Builder(activity)
.clientId(sessionConfiguration.getClientId())
- .region(sessionConfiguration.getEndpointRegion())
.scopes(sessionConfiguration.getScopes())
.customScopes(sessionConfiguration.getCustomScopes())
.activityRequestCode(requestCode)
@@ -304,7 +303,11 @@ private void handleResultCancelled(
final AuthenticationError authenticationError
= (error != null) ? AuthenticationError.fromString(error) : AuthenticationError.UNKNOWN;
- if (authenticationError.equals(AuthenticationError.UNAVAILABLE) &&
+ if (authenticationError.equals(AuthenticationError.CANCELLED)) {
+ // User canceled login
+ callback.onLoginCancel();
+ return;
+ } else if (authenticationError.equals(AuthenticationError.UNAVAILABLE) &&
!AuthUtils.isPrivilegeScopeRequired(sessionConfiguration.getScopes())) {
loginForImplicitGrant(activity);
return;
diff --git a/core-android/src/main/java/com/uber/sdk/android/core/auth/SsoDeeplink.java b/core-android/src/main/java/com/uber/sdk/android/core/auth/SsoDeeplink.java
index 0ebd3894..a1cc8975 100644
--- a/core-android/src/main/java/com/uber/sdk/android/core/auth/SsoDeeplink.java
+++ b/core-android/src/main/java/com/uber/sdk/android/core/auth/SsoDeeplink.java
@@ -35,14 +35,12 @@
import com.uber.sdk.android.core.utils.AppProtocol;
import com.uber.sdk.android.core.utils.PackageManagers;
import com.uber.sdk.core.auth.Scope;
-import com.uber.sdk.rides.client.SessionConfiguration;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import static com.uber.sdk.android.core.UberSdk.UBER_SDK_LOG_TAG;
-import static com.uber.sdk.android.core.utils.AppProtocol.UBER_PACKAGE_NAME;
import static com.uber.sdk.android.core.utils.Preconditions.checkNotEmpty;
import static com.uber.sdk.android.core.utils.Preconditions.checkNotNull;
import static com.uber.sdk.android.core.utils.Preconditions.checkState;
@@ -56,11 +54,10 @@ public class SsoDeeplink implements Deeplink {
public static final int DEFAULT_REQUEST_CODE = LoginManager.REQUEST_CODE_LOGIN_DEFAULT;
@VisibleForTesting
- static final int MIN_VERSION_SUPPORTED = 31256;
+ static final int MIN_VERSION_SUPPORTED = 31302;
private static final String URI_QUERY_CLIENT_ID = "client_id";
private static final String URI_QUERY_SCOPE = "scope";
- private static final String URI_QUERY_LOGIN_TYPE = "login_type";
private static final String URI_QUERY_PLATFORM = "sdk";
private static final String URI_QUERY_SDK_VERSION = "sdk_version";
private static final String URI_HOST = "connect";
@@ -69,7 +66,6 @@ public class SsoDeeplink implements Deeplink {
private final String clientId;
private final Collection requestedScopes;
private final Collection requestedCustomScopes;
- private final SessionConfiguration.EndpointRegion region;
private final int requestCode;
AppProtocol appProtocol;
@@ -77,11 +73,9 @@ public class SsoDeeplink implements Deeplink {
SsoDeeplink(
@NonNull Activity activity,
@NonNull String clientId,
- @NonNull SessionConfiguration.EndpointRegion region,
@NonNull Collection requestedScopes,
@NonNull Collection requestedCustomScopes,
int requestCode) {
- this.region = region;
this.activity = activity;
this.clientId = clientId;
this.requestCode = requestCode;
@@ -101,10 +95,17 @@ public void execute() {
checkState(isSupported(), "Single sign on is not supported on the device. " +
"Please install or update to the latest version of Uber app.");
- final Uri deepLinkUri = createSsoUri();
+
Intent intent = new Intent(Intent.ACTION_VIEW);
- intent.setPackage(AppProtocol.UBER_PACKAGE_NAME);
+ final Uri deepLinkUri = createSsoUri();
intent.setData(deepLinkUri);
+
+ for (String installedPackage : AppProtocol.UBER_PACKAGE_NAMES) {
+ if (PackageManagers.isPackageAvailable(activity, installedPackage)) {
+ intent.setPackage(installedPackage);
+ break;
+ }
+ }
activity.startActivityForResult(intent, requestCode);
}
@@ -118,7 +119,6 @@ private Uri createSsoUri() {
.authority(URI_HOST)
.appendQueryParameter(URI_QUERY_CLIENT_ID, clientId)
.appendQueryParameter(URI_QUERY_SCOPE, scopes)
- .appendQueryParameter(URI_QUERY_LOGIN_TYPE, region.name())
.appendQueryParameter(URI_QUERY_PLATFORM, AppProtocol.PLATFORM)
.appendQueryParameter(URI_QUERY_SDK_VERSION, BuildConfig.VERSION_NAME)
.build();
@@ -131,10 +131,18 @@ private Uri createSsoUri() {
*/
@Override
public boolean isSupported() {
- final PackageInfo packageInfo = PackageManagers.getPackageInfo(activity, UBER_PACKAGE_NAME);
+
+ PackageInfo packageInfo = null;
+ for (String installedPackage : AppProtocol.UBER_PACKAGE_NAMES) {
+ if (PackageManagers.isPackageAvailable(activity, installedPackage)) {
+ packageInfo = PackageManagers.getPackageInfo(activity, installedPackage);
+ break;
+ }
+ }
+
return (packageInfo != null)
- && (packageInfo.versionCode >= MIN_VERSION_SUPPORTED) &&
- appProtocol.validateSignature(activity, UBER_PACKAGE_NAME);
+ && appProtocol.validateMinimumVersion(activity, packageInfo, MIN_VERSION_SUPPORTED)
+ && appProtocol.validateSignature(activity, packageInfo.packageName);
}
public static class Builder {
@@ -144,7 +152,6 @@ public static class Builder {
private String clientId;
private Collection requestedScopes;
private Collection requestedCustomScopes;
- private SessionConfiguration.EndpointRegion region;
private int requestCode = DEFAULT_REQUEST_CODE;
public Builder(@NonNull Activity activity) {
@@ -171,11 +178,6 @@ public Builder customScopes(@NonNull Collection customScopes) {
return this;
}
- public Builder region(@NonNull SessionConfiguration.EndpointRegion region) {
- this.region = region;
- return this;
- }
-
public Builder activityRequestCode(int requestCode) {
this.requestCode = requestCode;
return this;
@@ -186,10 +188,6 @@ public SsoDeeplink build() {
checkNotEmpty(requestedScopes, "Scopes must be set.");
- if (region == null) {
- region = SessionConfiguration.EndpointRegion.WORLD;
- }
-
if (requestedCustomScopes == null) {
requestedCustomScopes = new ArrayList<>();
}
@@ -197,7 +195,7 @@ public SsoDeeplink build() {
if (requestCode == DEFAULT_REQUEST_CODE) {
Log.i(UBER_SDK_LOG_TAG, "Request code is not set, using default request code");
}
- return new SsoDeeplink(activity, clientId, region, requestedScopes, requestedCustomScopes, requestCode);
+ return new SsoDeeplink(activity, clientId, requestedScopes, requestedCustomScopes, requestCode);
}
}
}
diff --git a/core-android/src/main/java/com/uber/sdk/android/core/utils/AppProtocol.java b/core-android/src/main/java/com/uber/sdk/android/core/utils/AppProtocol.java
index 0359d94b..61f8c1e4 100644
--- a/core-android/src/main/java/com/uber/sdk/android/core/utils/AppProtocol.java
+++ b/core-android/src/main/java/com/uber/sdk/android/core/utils/AppProtocol.java
@@ -17,7 +17,8 @@
import javax.annotation.Nullable;
public class AppProtocol {
- public static final String UBER_PACKAGE_NAME = "com.ubercab";
+ public static final String[] UBER_PACKAGE_NAMES =
+ {"com.ubercab", "com.ubercab.presidio.app", "com.ubercab.presidio.exo"};
public static final String DEEPLINK_SCHEME = "uber";
public static final String PLATFORM = "android";
@@ -31,13 +32,24 @@ private static HashSet buildAppSignatureHashes() {
set.add(UBER_RIDER_HASH);
return set;
}
+
+ /**
+ * Validates minimum version of app required or returns true if in debug.
+ */
+ public boolean validateMinimumVersion(Context context, PackageInfo packageInfo, int minimumVersion) {
+ if (isDebug(context)) {
+ return true;
+ }
+
+ return packageInfo.versionCode >= minimumVersion;
+ }
+
+ /**
+ * Validates the app signature required or returns true if in debug.
+ */
@SuppressLint("PackageManagerGetSignatures")
public boolean validateSignature(Context context, String packageName) {
- String brand = Build.BRAND;
- int applicationFlags = context.getApplicationInfo().flags;
- if ((brand.startsWith("Android") || brand.startsWith("generic")) &&
- (applicationFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
- // We are debugging on an emulator, don't validate package signature.
+ if (isDebug(context)) {
return true;
}
@@ -96,4 +108,15 @@ public String getAppSignature(@NonNull Context context) {
MessageDigest getSha1MessageDigest() throws NoSuchAlgorithmException {
return MessageDigest.getInstance(HASH_ALGORITHM_SHA1);
}
+
+ private boolean isDebug(Context context) {
+ String brand = Build.BRAND;
+ int applicationFlags = context.getApplicationInfo().flags;
+ if ((brand.startsWith("Android") || brand.startsWith("generic")) &&
+ (applicationFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0) {
+ // We are debugging on an emulator, don't validate package signature.
+ return true;
+ }
+ return false;
+ }
}
diff --git a/core-android/src/test/java/com/uber/sdk/android/core/UberButtonTest.java b/core-android/src/test/java/com/uber/sdk/android/core/UberButtonTest.java
index 42c1588d..7ba06cfc 100644
--- a/core-android/src/test/java/com/uber/sdk/android/core/UberButtonTest.java
+++ b/core-android/src/test/java/com/uber/sdk/android/core/UberButtonTest.java
@@ -37,11 +37,6 @@
import org.junit.Test;
import org.robolectric.Robolectric;
import org.robolectric.RuntimeEnvironment;
-import org.robolectric.res.Attribute;
-import org.robolectric.shadows.CoreShadowsAdapter;
-import org.robolectric.shadows.RoboAttributeSet;
-
-import java.util.Arrays;
import static org.assertj.core.api.Assertions.assertThat;
import static org.junit.Assert.assertEquals;
@@ -54,23 +49,6 @@
*/
public class UberButtonTest extends RobolectricTestBase {
- private static final String ANDROID_ATTR_BACKGROUND = "android:attr/background";
- private static final String ANDROID_ATTR_DRAWABLE_LEFT = "android:attr/drawableLeft";
- private static final String ANDROID_ATTR_DRAWABLE_TOP = "android:attr/drawableTop";
- private static final String ANDROID_ATTR_DRAWABLE_RIGHT = "android:attr/drawableRight";
- private static final String ANDROID_ATTR_DRAWABLE_BOTTOM = "android:attr/drawableBottom";
- private static final String ANDROID_ATTR_DRAWABLE_PADDING = "android:attr/drawablePadding";
- private static final String ANDROID_ATTR_GRAVITY = "android:attr/gravity";
- private static final String ANDROID_ATTR_PADDING = "android:attr/padding";
- private static final String ANDROID_ATTR_PADDING_LEFT = "android:attr/paddingLeft";
- private static final String ANDROID_ATTR_PADDING_TOP = "android:attr/paddingTop";
- private static final String ANDROID_ATTR_PADDING_RIGHT = "android:attr/paddingRight";
- private static final String ANDROID_ATTR_PADDING_BOTTOM = "android:attr/paddingBottom";
- private static final String ANDROID_ATTR_TEXT_COLOR = "android:attr/textColor";
- private static final String ANDROID_ATTR_TEXT_SIZE = "android:attr/textSize";
- private static final String ANDROID_ATTR_TEXT_STYLE = "android:attr/textStyle";
- private static final String ANDROID_ATTR_TEXT = "android:attr/text";
-
private static final String ANDROID_COLOR_BLACK = "@android:color/black";
private static final String ANDROID_COLOR_WHITE = "@android:color/white";
private static final String DRAWABLE_UBER_BADGE = "@drawable/uber_badge";
@@ -83,7 +61,6 @@ public class UberButtonTest extends RobolectricTestBase {
private static final String TEXT = "test";
private static final String UBER_PACKAGE_NAME = "com.uber.sdk.android.core";
- private static final String UBER_ATTR_UBER_STYE = UBER_PACKAGE_NAME + ":attr/ub__style";
private Context context;
@@ -94,22 +71,22 @@ public void setup() {
@Test
public void onCreate_whenBackgroundAttributeSet_shouldSetBackground() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(ANDROID_ATTR_BACKGROUND, ANDROID_COLOR_WHITE)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(android.R.attr.background, ANDROID_COLOR_WHITE)
+ .build();
UberButton uberButton = new UberButton(context, attributeSet, 0, 0) { };
assertEquals(Color.WHITE, ((ColorDrawable) uberButton.getBackground()).getColor());
}
@Test
public void onCreate_whenCompoundDrawablesAndPaddingSet_shouldSetCompoundDrawableAttributes() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(ANDROID_ATTR_DRAWABLE_LEFT, DRAWABLE_UBER_BADGE),
- makeAttribute(ANDROID_ATTR_DRAWABLE_TOP, DRAWABLE_UBER_BADGE),
- makeAttribute(ANDROID_ATTR_DRAWABLE_RIGHT, DRAWABLE_UBER_BADGE),
- makeAttribute(ANDROID_ATTR_DRAWABLE_BOTTOM, DRAWABLE_UBER_BADGE),
- makeAttribute(ANDROID_ATTR_DRAWABLE_PADDING, ONE_SP)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(android.R.attr.drawableLeft, DRAWABLE_UBER_BADGE)
+ .addAttribute(android.R.attr.drawableTop, DRAWABLE_UBER_BADGE)
+ .addAttribute(android.R.attr.drawableRight, DRAWABLE_UBER_BADGE)
+ .addAttribute(android.R.attr.drawableBottom, DRAWABLE_UBER_BADGE)
+ .addAttribute(android.R.attr.drawablePadding, ONE_SP)
+ .build();
UberButton uberButton = new UberButton(context, attributeSet, 0, 0) { };
Drawable[] drawables = uberButton.getCompoundDrawables();
@@ -122,9 +99,9 @@ public void onCreate_whenCompoundDrawablesAndPaddingSet_shouldSetCompoundDrawabl
@Test
public void onCreate_whenOverallPaddingSet_shouldAddOverallPadding() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(ANDROID_ATTR_PADDING, ONE_SP)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(android.R.attr.padding, ONE_SP)
+ .build();
UberButton uberButton = new UberButton(context, attributeSet, 0, 0) { };
assertEquals(1, uberButton.getPaddingLeft());
assertEquals(1, uberButton.getPaddingTop());
@@ -134,12 +111,13 @@ public void onCreate_whenOverallPaddingSet_shouldAddOverallPadding() {
@Test
public void onCreate_whenIndividualPaddingsSet_shouldHaveSeparatePaddings() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(ANDROID_ATTR_PADDING_LEFT, ONE_SP),
- makeAttribute(ANDROID_ATTR_PADDING_TOP, TWO_SP),
- makeAttribute(ANDROID_ATTR_PADDING_RIGHT, THREE_SP),
- makeAttribute(ANDROID_ATTR_PADDING_BOTTOM, FOUR_SP)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(android.R.attr.paddingLeft, ONE_SP)
+ .addAttribute(android.R.attr.paddingTop, TWO_SP)
+ .addAttribute(android.R.attr.paddingRight, THREE_SP)
+ .addAttribute(android.R.attr.paddingBottom, FOUR_SP)
+ .build();
+
UberButton uberButton = new UberButton(context, attributeSet, 0, 0) { };
assertEquals(1, uberButton.getPaddingLeft());
assertEquals(2, uberButton.getPaddingTop());
@@ -149,11 +127,12 @@ public void onCreate_whenIndividualPaddingsSet_shouldHaveSeparatePaddings() {
@Test
public void onCreate_whenIndividualAndOverallPaddingsSet_shouldHaveIndividualPaddingsTrumpOverall() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(ANDROID_ATTR_PADDING, ONE_SP),
- makeAttribute(ANDROID_ATTR_PADDING_TOP, TWO_SP),
- makeAttribute(ANDROID_ATTR_PADDING_BOTTOM, FOUR_SP)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(android.R.attr.padding, ONE_SP)
+ .addAttribute(android.R.attr.paddingTop, TWO_SP)
+ .addAttribute(android.R.attr.paddingBottom, FOUR_SP)
+ .build();
+
UberButton uberButton = new UberButton(context, attributeSet, 0, 0) { };
assertEquals(1, uberButton.getPaddingLeft());
assertEquals(2, uberButton.getPaddingTop());
@@ -163,13 +142,14 @@ public void onCreate_whenIndividualAndOverallPaddingsSet_shouldHaveIndividualPad
@Test
public void onCreate_whenTextAttributesSet_shouldAddAllAttributes() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(ANDROID_ATTR_TEXT_COLOR, ANDROID_COLOR_BLACK),
- makeAttribute(ANDROID_ATTR_GRAVITY, GRAVITY_END),
- makeAttribute(ANDROID_ATTR_TEXT_SIZE, FOUR_SP),
- makeAttribute(ANDROID_ATTR_TEXT_STYLE, STYLE_ITALIC),
- makeAttribute(ANDROID_ATTR_TEXT, TEXT)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(android.R.attr.textColor, ANDROID_COLOR_BLACK)
+ .addAttribute(android.R.attr.gravity, GRAVITY_END)
+ .addAttribute(android.R.attr.textSize, FOUR_SP)
+ .addAttribute(android.R.attr.textStyle, STYLE_ITALIC)
+ .addAttribute(android.R.attr.text, TEXT)
+ .build();
+
UberButton uberButton = new UberButton(context, attributeSet, 0, 0) { };
assertEquals(Color.BLACK, uberButton.getCurrentTextColor());
assertEquals(Typeface.ITALIC, uberButton.getTypeface().getStyle());
@@ -203,9 +183,9 @@ public void onCreate_whenNoAttributesSet_shouldUseUberButtonDefaults() {
@Test
public void onCreate_whenUberStyleSet_shouldUseUberStyle() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(UBER_ATTR_UBER_STYE, "white")
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(R.attr.ub__style, "white")
+ .build();
UberButton uberButton = new UberButton(context, attributeSet, 0, R.style.UberButton_White) { };
Resources resources = context.getResources();
@@ -266,12 +246,4 @@ public void getActivity_whenContextIsNotActivity_shouldThrowException() {
uberButton.getActivity();
}
-
- private static AttributeSet makeAttributeSet(Attribute... attributes) {
- return new RoboAttributeSet(Arrays.asList(attributes), new CoreShadowsAdapter().getResourceLoader());
- }
-
- private static Attribute makeAttribute(String fullyQualifiedAttributeName, Object value) {
- return new Attribute(fullyQualifiedAttributeName, String.valueOf(value), UBER_PACKAGE_NAME);
- }
}
diff --git a/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginButtonTest.java b/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginButtonTest.java
index cef33764..bc914417 100644
--- a/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginButtonTest.java
+++ b/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginButtonTest.java
@@ -29,6 +29,7 @@
import android.util.AttributeSet;
import com.google.common.collect.Sets;
+import com.uber.sdk.android.core.R;
import com.uber.sdk.android.core.RobolectricTestBase;
import com.uber.sdk.core.auth.Scope;
import com.uber.sdk.rides.client.SessionConfiguration;
@@ -37,11 +38,6 @@
import org.junit.Test;
import org.mockito.Mock;
import org.robolectric.Robolectric;
-import org.robolectric.res.Attribute;
-import org.robolectric.shadows.CoreShadowsAdapter;
-import org.robolectric.shadows.RoboAttributeSet;
-
-import java.util.Arrays;
import java.util.HashSet;
import static org.assertj.core.api.Assertions.assertThat;
@@ -54,7 +50,6 @@
public class LoginButtonTest extends RobolectricTestBase {
- private static final String UBER_PACKAGE_NAME = "com.uber.sdk.android.core";
private static final HashSet SCOPES = Sets.newHashSet(Scope.HISTORY, Scope.REQUEST_RECEIPT);
private static final int REQUEST_CODE = 11133;
private Activity activity;
@@ -100,9 +95,9 @@ public void testButtonClickWithoutRequestCode_shouldUseDefaultCode() {
@Test
public void testButtonClickWithScopesFromXml_shouldUseParseScopes() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(UBER_PACKAGE_NAME + ":attr/ub__scopes", "history|request_receipt")
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(R.attr.ub__scopes, "history|request_receipt")
+ .build();
loginButton = new TestLoginButton(activity, attributeSet, loginManager);
loginButton.setCallback(loginCallback);
@@ -114,10 +109,10 @@ public void testButtonClickWithScopesFromXml_shouldUseParseScopes() {
@Test
public void testButtonClickWithScopesRequestCodeFromXml_shouldUseParseAll() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(UBER_PACKAGE_NAME + ":attr/ub__scopes", "history|request_receipt"),
- makeAttribute(UBER_PACKAGE_NAME + ":attr/ub__request_code", REQUEST_CODE)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(R.attr.ub__scopes, "history|request_receipt")
+ .addAttribute(R.attr.ub__request_code, String.valueOf(REQUEST_CODE))
+ .build();
loginButton = new TestLoginButton(activity, attributeSet, loginManager);
loginButton.setCallback(loginCallback);
@@ -129,10 +124,10 @@ public void testButtonClickWithScopesRequestCodeFromXml_shouldUseParseAll() {
@Test
public void testButtonClickWithoutLoginManager_shouldCreateNew() {
- AttributeSet attributeSet = makeAttributeSet(
- makeAttribute(UBER_PACKAGE_NAME + ":attr/ub__scopes", "history|request_receipt"),
- makeAttribute(UBER_PACKAGE_NAME + ":attr/ub__request_code", REQUEST_CODE)
- );
+ AttributeSet attributeSet = Robolectric.buildAttributeSet()
+ .addAttribute(R.attr.ub__scopes, "history|request_receipt")
+ .addAttribute(R.attr.ub__request_code, String.valueOf(REQUEST_CODE))
+ .build();
loginButton = new LoginButton(activity, attributeSet);
loginButton.setSessionConfiguration(new SessionConfiguration.Builder().setClientId("clientId").build());
@@ -191,12 +186,4 @@ protected LoginManager getOrCreateLoginManager() {
return manager;
}
}
-
- private static AttributeSet makeAttributeSet(Attribute... attributes) {
- return new RoboAttributeSet(Arrays.asList(attributes), new CoreShadowsAdapter().getResourceLoader());
- }
-
- private static Attribute makeAttribute(String fullyQualifiedAttributeName, Object value) {
- return new Attribute(fullyQualifiedAttributeName, String.valueOf(value), UBER_PACKAGE_NAME);
- }
}
\ No newline at end of file
diff --git a/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginManagerTest.java b/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginManagerTest.java
index ad002a09..59cfc7ae 100644
--- a/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginManagerTest.java
+++ b/core-android/src/test/java/com/uber/sdk/android/core/auth/LoginManagerTest.java
@@ -91,11 +91,11 @@ public class LoginManagerTest extends RobolectricTestBase {
private static final ImmutableList MIXED_SCOPES = ImmutableList.of(Scope.PROFILE, Scope.REQUEST_RECEIPT);
private static final ImmutableList GENERAL_SCOPES = ImmutableList.of(Scope.PROFILE, Scope.HISTORY);
- private static final String WORLD_REGION =
- "uber://connect?client_id=Client1234&scope=profile%20request_receipt&login_type=WORLD&sdk=android&sdk_version="
+ private static final String DEFAULT_REGION =
+ "uber://connect?client_id=Client1234&scope=profile%20request_receipt&sdk=android&sdk_version="
+ BuildConfig.VERSION_NAME;
- private static final String INSTALL = "https://m.uber.com/sign-up?client_id=Client1234&user-agent=core-android-v0.5.4-login_manager";
+ private static final String INSTALL = "https://m.uber.com/sign-up?client_id=Client1234&user-agent=core-android-v0.6.0-login_manager";
private static final String AUTHORIZATION_CODE = "Auth123Code";
@Mock
@@ -125,7 +125,7 @@ public void setup() {
@Test
public void loginWithAppInstalledPrivilegedScopes_shouldLaunchIntent() {
- stubAppInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAME, SsoDeeplink.MIN_VERSION_SUPPORTED);
+ stubAppInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAMES[0], SsoDeeplink.MIN_VERSION_SUPPORTED);
loginManager.login(activity);
@@ -134,7 +134,7 @@ public void loginWithAppInstalledPrivilegedScopes_shouldLaunchIntent() {
verify(activity).startActivityForResult(intentCaptor.capture(), codeCaptor.capture());
- assertThat(intentCaptor.getValue().getData().toString()).isEqualTo(WORLD_REGION);
+ assertThat(intentCaptor.getValue().getData().toString()).isEqualTo(DEFAULT_REGION);
assertThat(codeCaptor.getValue()).isEqualTo(REQUEST_CODE_LOGIN_DEFAULT);
}
@@ -142,7 +142,7 @@ public void loginWithAppInstalledPrivilegedScopes_shouldLaunchIntent() {
public void loginWithAppInstalledPrivilegedScopesAndRequestCode_shouldLaunchIntent() {
loginManager = new LoginManager(accessTokenManager, callback, sessionConfiguration, REQUEST_CODE);
- stubAppInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAME, SsoDeeplink.MIN_VERSION_SUPPORTED);
+ stubAppInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAMES[0], SsoDeeplink.MIN_VERSION_SUPPORTED);
loginManager.login(activity);
@@ -151,7 +151,7 @@ public void loginWithAppInstalledPrivilegedScopesAndRequestCode_shouldLaunchInte
verify(activity).startActivityForResult(intentCaptor.capture(), codeCaptor.capture());
- assertThat(intentCaptor.getValue().getData().toString()).isEqualTo(WORLD_REGION);
+ assertThat(intentCaptor.getValue().getData().toString()).isEqualTo(DEFAULT_REGION);
assertThat(codeCaptor.getValue()).isEqualTo(REQUEST_CODE);
}
@@ -160,7 +160,7 @@ public void loginWithoutAppInstalledGeneralScopes_shouldLaunchWebView() {
sessionConfiguration = sessionConfiguration.newBuilder().setScopes(GENERAL_SCOPES).build();
loginManager = new LoginManager(accessTokenManager, callback, sessionConfiguration);
- stubAppNotInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAME);
+ stubAppNotInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAMES[0]);
loginManager.login(activity);
@@ -185,7 +185,7 @@ public void loginWithoutAppInstalledPrivilegedScopes_shouldLaunchAppInstall() {
loginManager = new LoginManager(accessTokenManager, callback, sessionConfiguration)
.setRedirectForAuthorizationCode(false);
- stubAppNotInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAME);
+ stubAppNotInstalled(packageManager, AppProtocol.UBER_PACKAGE_NAMES[0]);
loginManager.login(activity);
@@ -371,6 +371,7 @@ private static PackageManager stubAppInstalled(PackageManager packageManager, St
final PackageInfo packageInfo = new PackageInfo();
packageInfo.versionCode = versionCode;
packageInfo.signatures = new Signature[]{new Signature(PUBLIC_SIGNATURE)};
+ packageInfo.packageName = packageName;
try {
when(packageManager.getPackageInfo(eq(packageName), anyInt()))
.thenReturn(packageInfo);
diff --git a/core-android/src/test/java/com/uber/sdk/android/core/auth/OAuthWebViewClientTest.java b/core-android/src/test/java/com/uber/sdk/android/core/auth/OAuthWebViewClientTest.java
index cfe7fd57..0d72ddd8 100644
--- a/core-android/src/test/java/com/uber/sdk/android/core/auth/OAuthWebViewClientTest.java
+++ b/core-android/src/test/java/com/uber/sdk/android/core/auth/OAuthWebViewClientTest.java
@@ -84,24 +84,6 @@ public void onBuildUrl_withDefaultRegion_shouldHaveDefaultUberDomain() {
"show_fb=false&signup_params=eyJyZWRpcmVjdF90b19sb2dpbiI6dHJ1ZX0%3D%0A", url);
}
- @Test
- public void onBuildUrl_withChinaRegion_shouldHaveChinaDomain() {
- String clientId = "clientId1234";
- String redirectUri = "localHost1234";
-
- SessionConfiguration loginConfiguration = new SessionConfiguration.Builder()
- .setRedirectUri(redirectUri)
- .setClientId(clientId)
- .setScopes(Arrays.asList(Scope.HISTORY))
- .setEndpointRegion(SessionConfiguration.EndpointRegion.CHINA).build();
-
- String url = testLoginActivity.buildUrl(redirectUri, ResponseType.TOKEN, loginConfiguration);
- assertEquals(
- "https://login.uber.com.cn/oauth/v2/authorize?client_id=" + clientId +
- "&redirect_uri=" + redirectUri + "&response_type=token&scope=history" +
- "&show_fb=false&signup_params=eyJyZWRpcmVjdF90b19sb2dpbiI6dHJ1ZX0%3D%0A", url);
- }
-
@Test
public void onLoadLoginView_withNoRedirectUrl_shouldReturnError() {
SessionConfiguration config = new SessionConfiguration.Builder().setClientId("clientId").build();
diff --git a/core-android/src/test/java/com/uber/sdk/android/core/auth/SsoDeeplinkTest.java b/core-android/src/test/java/com/uber/sdk/android/core/auth/SsoDeeplinkTest.java
index 7c1792e9..78782dae 100644
--- a/core-android/src/test/java/com/uber/sdk/android/core/auth/SsoDeeplinkTest.java
+++ b/core-android/src/test/java/com/uber/sdk/android/core/auth/SsoDeeplinkTest.java
@@ -34,7 +34,6 @@
import com.uber.sdk.android.core.RobolectricTestBase;
import com.uber.sdk.android.core.utils.AppProtocol;
import com.uber.sdk.core.auth.Scope;
-import com.uber.sdk.rides.client.SessionConfiguration;
import org.junit.Before;
import org.junit.Test;
@@ -50,7 +49,6 @@
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import static org.mockito.Matchers.any;
-import static org.mockito.Matchers.anyCollection;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.anyString;
import static org.mockito.Matchers.eq;
@@ -64,11 +62,8 @@ public class SsoDeeplinkTest extends RobolectricTestBase {
private static final Set GENERAL_SCOPES = Sets.newHashSet(Scope.HISTORY, Scope.PROFILE);
private static final int REQUEST_CODE = 1234;
- private static final String CHINA__REGION =
- "uber://connect?client_id=MYCLIENTID&scope=profile%20history&login_type=CHINA&sdk=android&sdk_version=" + BuildConfig.VERSION_NAME;
-
- private static final String WORLD_REGION =
- "uber://connect?client_id=MYCLIENTID&scope=profile%20history&login_type=WORLD&sdk=android&sdk_version=" + BuildConfig.VERSION_NAME;
+ private static final String DEFAULT_REGION =
+ "uber://connect?client_id=MYCLIENTID&scope=profile%20history&sdk=android&sdk_version=" + BuildConfig.VERSION_NAME;
@Mock
PackageManager packageManager;
@@ -120,7 +115,7 @@ public void testIsSupported_appInstalledButOldVersion_shouldBeFalse() {
when(activity.getPackageManager()).thenReturn(packageManager);
try {
- when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAME, 0)).thenReturn(packageInfo);
+ when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAMES[0], 0)).thenReturn(packageInfo);
} catch (PackageManager.NameNotFoundException e) {
fail("Unable to mock Package Manager");
}
@@ -140,7 +135,7 @@ public void testIsSupported_appInstalledButOldVersion_shouldBeFalse() {
public void testIsSupported_noAppInstalled_shouldBeFalse() {
when(activity.getPackageManager()).thenReturn(packageManager);
try {
- when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAME, PackageManager.GET_META_DATA))
+ when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAMES[0], PackageManager.GET_META_DATA))
.thenThrow(PackageManager.NameNotFoundException.class);
} catch (PackageManager.NameNotFoundException e) {
fail("Unable to mock Package Manager");
@@ -157,29 +152,6 @@ public void testIsSupported_noAppInstalled_shouldBeFalse() {
assertThat(isSupported).isFalse();
}
- @Test
- public void testInvokeWithAllParams_shouldContainsFullUri() {
- enableSupport();
-
- final SsoDeeplink link = new SsoDeeplink.Builder(activity)
- .clientId(CLIENT_ID)
- .region(SessionConfiguration.EndpointRegion.CHINA)
- .scopes(GENERAL_SCOPES)
- .activityRequestCode(REQUEST_CODE)
- .build();
- link.appProtocol = protocol;
- link.execute();
-
- final ArgumentCaptor intentCaptor = ArgumentCaptor.forClass(Intent.class);
- final ArgumentCaptor requestCodeCaptor = ArgumentCaptor.forClass(Integer.class);
- verify(activity).startActivityForResult(intentCaptor.capture(), requestCodeCaptor.capture());
-
- final Uri uri = intentCaptor.getValue().getData();
-
- assertThat(uri.toString()).isEqualTo(CHINA__REGION);
- assertThat(requestCodeCaptor.getValue()).isEqualTo(REQUEST_CODE);
- }
-
@Test
public void testInvokeWithoutRegion_shouldUseWorld() {
enableSupport();
@@ -199,7 +171,7 @@ public void testInvokeWithoutRegion_shouldUseWorld() {
final Uri uri = intentCaptor.getValue().getData();
- assertThat(uri.toString()).isEqualTo(WORLD_REGION);
+ assertThat(uri.toString()).isEqualTo(DEFAULT_REGION);
assertThat(requestCodeCaptor.getValue()).isEqualTo(REQUEST_CODE);
}
@@ -221,7 +193,7 @@ public void testInvokeWithoutRequestCode_shouldUseDefaultRequstCode() {
Uri uri = intentCaptor.getValue().getData();
- assertThat(uri.toString()).isEqualTo(WORLD_REGION);
+ assertThat(uri.toString()).isEqualTo(DEFAULT_REGION);
assertThat(requestCodeCaptor.getValue()).isEqualTo(LoginManager.REQUEST_CODE_LOGIN_DEFAULT);
}
@@ -232,7 +204,6 @@ public void testInvokeWithoutScopes_shouldFail() {
final SsoDeeplink link = new SsoDeeplink.Builder(activity)
.clientId(CLIENT_ID)
- .region(SessionConfiguration.EndpointRegion.WORLD)
.activityRequestCode(REQUEST_CODE)
.build();
@@ -249,7 +220,6 @@ public void testInvokeWithScopesAndCustomScopes_shouldSucceed() {
final SsoDeeplink link = new SsoDeeplink.Builder(activity)
.clientId(CLIENT_ID)
- .region(SessionConfiguration.EndpointRegion.WORLD)
.activityRequestCode(REQUEST_CODE)
.scopes(GENERAL_SCOPES)
.customScopes(collection)
@@ -270,7 +240,6 @@ public void testInvokeWithoutClientId_shouldFail() {
final SsoDeeplink link = new SsoDeeplink.Builder(activity)
.scopes(GENERAL_SCOPES)
- .region(SessionConfiguration.EndpointRegion.WORLD)
.activityRequestCode(REQUEST_CODE)
.build();
@@ -282,7 +251,7 @@ public void testInvokeWithoutClientId_shouldFail() {
public void testInvokeWithoutAppInstalled_shouldFail() {
when(activity.getPackageManager()).thenReturn(packageManager);
try {
- when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAME, PackageManager.GET_META_DATA))
+ when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAMES[0], PackageManager.GET_META_DATA))
.thenThrow(PackageManager.NameNotFoundException.class);
} catch (PackageManager.NameNotFoundException e) {
fail("Unable to mock Package Manager");
@@ -302,11 +271,12 @@ private void enableSupport() {
when(activity.getPackageManager()).thenReturn(packageManager);
try {
- when(packageManager.getPackageInfo(eq(AppProtocol.UBER_PACKAGE_NAME), anyInt()))
+ when(packageManager.getPackageInfo(eq(AppProtocol.UBER_PACKAGE_NAMES[0]), anyInt()))
.thenReturn(packageInfo);
} catch (PackageManager.NameNotFoundException e) {
fail("Unable to mock Package Manager");
}
when(protocol.validateSignature(any(Context.class), anyString())).thenReturn(true);
+ when(protocol.validateMinimumVersion(any(Context.class), any(PackageInfo.class), anyInt())).thenReturn(true);
}
}
\ No newline at end of file
diff --git a/core-android/src/test/java/com/uber/sdk/android/core/utils/AppProtocolTest.java b/core-android/src/test/java/com/uber/sdk/android/core/utils/AppProtocolTest.java
index 74f6ecd1..508ace04 100644
--- a/core-android/src/test/java/com/uber/sdk/android/core/utils/AppProtocolTest.java
+++ b/core-android/src/test/java/com/uber/sdk/android/core/utils/AppProtocolTest.java
@@ -73,19 +73,19 @@ public void setUp() throws Exception {
@Test
public void validateSignature_whenValid_returnsTrue() throws Exception {
stubAppSignature(GOOD_SIGNATURE);
- assertTrue(appProtocol.validateSignature(activity, AppProtocol.UBER_PACKAGE_NAME));
+ assertTrue(appProtocol.validateSignature(activity, AppProtocol.UBER_PACKAGE_NAMES[0]));
}
@Test
public void validateSignature_whenInvalid_returnsFalse() throws Exception {
stubAppSignature(BAD_SIGNATURE);
- assertFalse(appProtocol.validateSignature(activity, AppProtocol.UBER_PACKAGE_NAME));
+ assertFalse(appProtocol.validateSignature(activity, AppProtocol.UBER_PACKAGE_NAMES[0]));
}
@Test
public void validateSignature_whenGoodAndBad_returnsFalse() throws Exception {
stubAppSignature(GOOD_SIGNATURE, BAD_SIGNATURE);
- assertFalse(appProtocol.validateSignature(activity, AppProtocol.UBER_PACKAGE_NAME));
+ assertFalse(appProtocol.validateSignature(activity, AppProtocol.UBER_PACKAGE_NAMES[0]));
}
@Test
@@ -98,7 +98,8 @@ public void getApplicationSignature_whenValidPackageSignature_shouldSucceed() th
public void getPackageSignature_whenNameNotFoundException_shouldReturnNull() throws Exception {
stubAppSignature(GOOD_SIGNATURE);
final Throwable throwable = new PackageManager.NameNotFoundException();
- doThrow(throwable).when(packageManager).getPackageInfo(AppProtocol.UBER_PACKAGE_NAME, PackageManager.GET_SIGNATURES);
+ doThrow(throwable).when(packageManager)
+ .getPackageInfo(AppProtocol.UBER_PACKAGE_NAMES[0], PackageManager.GET_SIGNATURES);
assertThat(appProtocol.getAppSignature(activity)).isNull();
}
@@ -106,7 +107,7 @@ public void getPackageSignature_whenNameNotFoundException_shouldReturnNull() thr
@Test
public void getPackageSignature_whenNullPackageInfo_shouldReturnNull() throws Exception {
stubAppSignature(GOOD_SIGNATURE);
- when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAME, PackageManager.GET_SIGNATURES))
+ when(packageManager.getPackageInfo(AppProtocol.UBER_PACKAGE_NAMES[0], PackageManager.GET_SIGNATURES))
.thenReturn(null);
assertThat(appProtocol.getAppSignature(activity)).isNull();
@@ -132,7 +133,7 @@ public void getPackageSignature_whenNoSuchAlgorithmException_shouldReturnNull()
}
private void stubAppSignature(String... sig) throws Exception {
- when(activity.getPackageName()).thenReturn(AppProtocol.UBER_PACKAGE_NAME);
+ when(activity.getPackageName()).thenReturn(AppProtocol.UBER_PACKAGE_NAMES[0]);
when(activity.getPackageManager()).thenReturn(packageManager);
Signature[] signatures = new Signature[sig.length];
@@ -143,7 +144,7 @@ private void stubAppSignature(String... sig) throws Exception {
packageInfo.signatures = signatures;
try {
- when(packageManager.getPackageInfo(eq(AppProtocol.UBER_PACKAGE_NAME), anyInt()))
+ when(packageManager.getPackageInfo(eq(AppProtocol.UBER_PACKAGE_NAMES[0]), anyInt()))
.thenReturn(packageInfo);
} catch (PackageManager.NameNotFoundException e) {
fail("Unable to mock Package Manager");
diff --git a/gradle.properties b/gradle.properties
index fe518a73..a7b9eb19 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -2,4 +2,4 @@ group=com.uber.sdk
groupId=com.uber.sdk
artifactId=rides-android
githubDownloadPrefix=https://github.com/uber/rides-android-sdk/releases/download/
-version=0.5.5-SNAPSHOT
+version=0.6.0
diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index 5b7e6468..92edd979 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Mon Oct 12 19:04:32 PDT 2015
+#Fri Feb 10 13:49:35 PST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-2.13-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
diff --git a/rides-android/build.gradle b/rides-android/build.gradle
index 0f3a728f..0c6a3d52 100644
--- a/rides-android/build.gradle
+++ b/rides-android/build.gradle
@@ -10,7 +10,7 @@ buildscript {
}
dependencies {
- classpath 'com.github.dcendents:android-maven-gradle-plugin:1.3'
+ classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
}
}
@@ -168,7 +168,7 @@ dependencies {
testCompile 'com.google.http-client:google-http-client-jackson2:1.19.0'
testCompile 'org.mockito:mockito-core:1.10.19'
testCompile 'org.assertj:assertj-core:1.7.1'
- testCompile 'org.robolectric:robolectric:3.0'
+ testCompile 'org.robolectric:robolectric:3.2.2'
testCompile ('com.github.tomakehurst:wiremock:2.0.10-beta') {
exclude module:'asm'
}
diff --git a/rides-android/src/main/java/com/uber/sdk/android/rides/RequestDeeplink.java b/rides-android/src/main/java/com/uber/sdk/android/rides/RequestDeeplink.java
index 524a0edc..325a0c17 100644
--- a/rides-android/src/main/java/com/uber/sdk/android/rides/RequestDeeplink.java
+++ b/rides-android/src/main/java/com/uber/sdk/android/rides/RequestDeeplink.java
@@ -46,7 +46,7 @@
*/
public class RequestDeeplink implements Deeplink {
- private static final String USER_AGENT_DEEPLINK = "rides-android-v0.5.4-deeplink";
+ private static final String USER_AGENT_DEEPLINK = "rides-android-v0.6.0-deeplink";
@NonNull
private final Uri uri;
@@ -78,7 +78,12 @@ public void execute() {
@Override
public boolean isSupported() {
- return PackageManagers.isPackageAvailable(context, AppProtocol.UBER_PACKAGE_NAME);
+ for (String packageName : AppProtocol.UBER_PACKAGE_NAMES) {
+ if(PackageManagers.isPackageAvailable(context, packageName)) {
+ return true;
+ }
+ }
+ return false;
}
/**
diff --git a/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestActivity.java b/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestActivity.java
index 1f01570c..e821d151 100644
--- a/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestActivity.java
+++ b/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestActivity.java
@@ -68,7 +68,7 @@ public class RideRequestActivity extends Activity implements LoginCallback, Ride
static final int LOGIN_REQUEST_CODE = 1112;
private static final int REQUEST_FINE_LOCATION_PERMISSION_CODE = 1002;
- private static final String USER_AGENT_RIDE_WIDGET = "rides-android-v0.5.4-ride_request_widget";
+ private static final String USER_AGENT_RIDE_WIDGET = "rides-android-v0.6.0-ride_request_widget";
@VisibleForTesting static final String RIDE_PARAMETERS = "ride_parameters";
static final String EXTRA_LOGIN_CONFIGURATION = "login_configuration";
diff --git a/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestButton.java b/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestButton.java
index 7ccd097a..58222078 100644
--- a/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestButton.java
+++ b/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestButton.java
@@ -61,7 +61,7 @@ public class RideRequestButton extends FrameLayout implements RideRequestButtonV
@StyleRes
int[] STYLES = {R.style.UberButton, R.style.UberButton_White};
- private static final String USER_AGENT_BUTTON = "rides-android-v0.5.4-button";
+ private static final String USER_AGENT_BUTTON = "rides-android-v0.6.0-button";
private RideRequestBehavior rideRequestBehavior;
diff --git a/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestView.java b/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestView.java
index 5b49ddb0..9142bfe5 100644
--- a/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestView.java
+++ b/rides-android/src/main/java/com/uber/sdk/android/rides/RideRequestView.java
@@ -55,7 +55,7 @@
*/
public class RideRequestView extends LinearLayout {
- private static final String USER_AGENT_RIDE_VIEW = "rides-android-v0.5.4-ride_request_view";
+ private static final String USER_AGENT_RIDE_VIEW = "rides-android-v0.6.0-ride_request_view";
@Nullable private AccessTokenSession accessTokenSession;
@NonNull @VisibleForTesting RideParameters rideParameters = new RideParameters.Builder().build();
@Nullable private RideRequestViewCallback rideRequestViewCallback;
@@ -167,7 +167,7 @@ static String buildUrlFromRideParameters(@NonNull Context context,
Uri.Builder builder = new Uri.Builder();
builder.scheme(HTTPS)
- .authority(ENDPOINT + "." + loginConfiguration.getEndpointRegion().domain)
+ .authority(ENDPOINT + "." + loginConfiguration.getEndpointRegion().getDomain())
.appendEncodedPath(PATH);
if (rideParameters.getUserAgent() == null) {
diff --git a/rides-android/src/test/java/android/net/http/AndroidHttpClient.java b/rides-android/src/test/java/android/net/http/AndroidHttpClient.java
deleted file mode 100644
index 4d44478a..00000000
--- a/rides-android/src/test/java/android/net/http/AndroidHttpClient.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (c) 2016 Uber Technologies, Inc.
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"), to deal
- * in the Software without restriction, including without limitation the rights
- * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in
- * all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
- * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
- * THE SOFTWARE.
- */
-
-package android.net.http;
-
-/**
- * Apache HTTP Client was deprecated and is no longer part of compile classpath.
- * Robolectic still links to it so an empty class is needed for compiling purposes.
- *
- * See Robolectric issue for
- * details.
- */
-public class AndroidHttpClient { }
diff --git a/rides-android/src/test/java/com/uber/sdk/android/rides/RequestDeeplinkTest.java b/rides-android/src/test/java/com/uber/sdk/android/rides/RequestDeeplinkTest.java
index 48d2d4b4..0a294a38 100644
--- a/rides-android/src/test/java/com/uber/sdk/android/rides/RequestDeeplinkTest.java
+++ b/rides-android/src/test/java/com/uber/sdk/android/rides/RequestDeeplinkTest.java
@@ -31,6 +31,7 @@
import org.junit.Test;
import org.robolectric.Robolectric;
+import org.robolectric.RuntimeEnvironment;
import org.robolectric.res.builder.RobolectricPackageManager;
import org.robolectric.shadows.ShadowActivity;
@@ -56,7 +57,7 @@ public class RequestDeeplinkTest extends RobolectricTestBase {
private static final Double DROPOFF_LONG = -122.6789;
private static final String DROPOFF_NICK = "pickupNick";
private static final String DROPOFF_ADDR = "Dropoff Address";
- private static final String USER_AGENT_DEEPLINK = "rides-android-v0.5.4-deeplink";
+ private static final String USER_AGENT_DEEPLINK = "rides-android-v0.6.0-deeplink";
private Context context;
@@ -179,7 +180,7 @@ public void execute_whenUberAppInsalled_shouldPointToUberApp() throws IOExceptio
Activity activity = Robolectric.setupActivity(Activity.class);
ShadowActivity shadowActivity = shadowOf(activity);
- RobolectricPackageManager packageManager = (RobolectricPackageManager) shadowActivity.getPackageManager();
+ RobolectricPackageManager packageManager = RuntimeEnvironment.getRobolectricPackageManager();
PackageInfo uberPackage = new PackageInfo();
uberPackage.packageName = UBER_PACKAGE_NAME;
diff --git a/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestActivityTest.java b/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestActivityTest.java
index 050a1707..beb9bc87 100644
--- a/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestActivityTest.java
+++ b/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestActivityTest.java
@@ -121,13 +121,13 @@ public void onLoad_whenNullUserAgent_shouldAddRideWidgetUserAgent() {
"refreshToken", "tokenType");
activity.onLoginSuccess(accessToken);
- assertEquals("rides-android-v0.5.4-ride_request_widget",
+ assertEquals("rides-android-v0.6.0-ride_request_widget",
activity.rideRequestView.rideParameters.getUserAgent());
}
@Test
public void onLoad_withUserAgentInRideParametersButton_shouldNotGetOverridden() {
- String userAgent = "rides-android-v0.5.4-button";
+ String userAgent = "rides-android-v0.6.0-button";
RideParameters rideParameters = new RideParameters.Builder().build();
rideParameters.setUserAgent(userAgent);
Intent data = RideRequestActivity.newIntent(Robolectric.setupActivity(Activity.class),
diff --git a/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestViewTest.java b/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestViewTest.java
index 0d84f971..821b49eb 100644
--- a/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestViewTest.java
+++ b/rides-android/src/test/java/com/uber/sdk/android/rides/RideRequestViewTest.java
@@ -74,7 +74,7 @@ public class RideRequestViewTest extends RobolectricTestBase {
private static final String DROPOFF_NICK = "pickupNick";
private static final String DROPOFF_ADDR = "Dropoff Address";
private static final String TOKEN_STRING = "thisIsAnAccessToken";
- private static final String USER_AGENT_RIDE_VIEW = "rides-android-v0.5.4-ride_request_view";
+ private static final String USER_AGENT_RIDE_VIEW = "rides-android-v0.6.0-ride_request_view";
private AccessToken accessToken;
private RideRequestView rideRequestView;
@@ -103,27 +103,12 @@ public void onBuildUrl_inDefaultRegion_shouldHaveUrlWithDefaultDomain() throws I
SessionConfiguration configuration = new SessionConfiguration.Builder()
.setClientId("clientId")
- .setEndpointRegion(SessionConfiguration.EndpointRegion.WORLD)
.build();
String result = RideRequestView.buildUrlFromRideParameters(context, rideParameters, configuration);
assertEquals(expectedUri, result);
}
- @Test
- public void onBuildUrl_inChinaRegion_shouldHaveUrlWithChinaDomain() throws IOException {
- String path = "src/test/resources/riderequestviewuris/china_uri";
- String expectedUri = readUriResourceWithUserAgentParam(path, USER_AGENT_RIDE_VIEW);
-
- RideParameters rideParameters = new RideParameters.Builder().build();
- SessionConfiguration configuration = new SessionConfiguration.Builder()
- .setClientId("clientId")
- .setEndpointRegion(SessionConfiguration.EndpointRegion.CHINA)
- .build();
-
- String result = RideRequestView.buildUrlFromRideParameters(context, rideParameters, configuration);
- assertEquals(expectedUri, result);
- }
@Test
public void onBuildUrl_inSandboxMode_shouldHaveUrlWithSandboxParam() throws IOException {
@@ -131,7 +116,6 @@ public void onBuildUrl_inSandboxMode_shouldHaveUrlWithSandboxParam() throws IOEx
SessionConfiguration configuration = new SessionConfiguration.Builder()
.setClientId("clientId")
- .setEndpointRegion(SessionConfiguration.EndpointRegion.WORLD)
.setEnvironment(SessionConfiguration.Environment.SANDBOX)
.build();
@@ -152,7 +136,6 @@ public void onBuildUrl_withRideParams_shouldHaveRideParamsQueryParams() throws I
.build();
SessionConfiguration configuration = new SessionConfiguration.Builder()
.setClientId("clientId")
- .setEndpointRegion(SessionConfiguration.EndpointRegion.WORLD)
.build();
String result = RideRequestView.buildUrlFromRideParameters(context, rideParameters, configuration);
@@ -161,7 +144,7 @@ public void onBuildUrl_withRideParams_shouldHaveRideParamsQueryParams() throws I
@Test
public void onBuildUrl_withUserAgentNonNull_shouldNotOverride() throws IOException {
- String widgetUserAgent = "rides-android-v0.5.4-ride_request_widget";
+ String widgetUserAgent = "rides-android-v0.6.0-ride_request_widget";
String path = "src/test/resources/riderequestviewuris/default_uri";
String expectedUri = readUriResourceWithUserAgentParam(path, widgetUserAgent);
@@ -170,7 +153,6 @@ public void onBuildUrl_withUserAgentNonNull_shouldNotOverride() throws IOExcepti
SessionConfiguration configuration = new SessionConfiguration.Builder()
.setClientId("clientId")
- .setEndpointRegion(SessionConfiguration.EndpointRegion.WORLD)
.build();
String result = RideRequestView.buildUrlFromRideParameters(context, rideParameters, configuration);
@@ -265,6 +247,6 @@ public void shouldOverrideUrlLoading_whenNonHttpOrRedirect_shouldOverrideAndLaun
verifyZeroInteractions(callback);
Intent startedIntent = shadowActivity.getNextStartedActivity();
assertEquals(Intent.ACTION_VIEW, startedIntent.getAction());
- assertEquals("tel:+91555555555#Intent;end", startedIntent.toUri(0));
+ assertEquals("tel:+91555555555#Intent;action=android.intent.action.VIEW;end", startedIntent.toUri(0));
}
}
diff --git a/rides-android/src/test/java/com/uber/sdk/android/rides/RobolectricTestBase.java b/rides-android/src/test/java/com/uber/sdk/android/rides/RobolectricTestBase.java
index 271b1548..b883522b 100644
--- a/rides-android/src/test/java/com/uber/sdk/android/rides/RobolectricTestBase.java
+++ b/rides-android/src/test/java/com/uber/sdk/android/rides/RobolectricTestBase.java
@@ -23,13 +23,13 @@
package com.uber.sdk.android.rides;
import org.junit.runner.RunWith;
-import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
/**
* Base test class to remove use of annotations on all test classes.
*/
-@RunWith(RobolectricGradleTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
public abstract class RobolectricTestBase {
}
diff --git a/rides-android/src/test/java/com/uber/sdk/android/rides/internal/RideRequestButtonControllerTest.java b/rides-android/src/test/java/com/uber/sdk/android/rides/internal/RideRequestButtonControllerTest.java
index 180d8a77..a1f79675 100644
--- a/rides-android/src/test/java/com/uber/sdk/android/rides/internal/RideRequestButtonControllerTest.java
+++ b/rides-android/src/test/java/com/uber/sdk/android/rides/internal/RideRequestButtonControllerTest.java
@@ -32,6 +32,7 @@
import com.uber.sdk.android.rides.RideParameters;
import com.uber.sdk.android.rides.RideRequestButtonCallback;
import com.uber.sdk.rides.client.error.ApiError;
+import com.uber.sdk.rides.client.internal.BigDecimalAdapter;
import com.uber.sdk.rides.client.model.PriceEstimate;
import com.uber.sdk.rides.client.model.PriceEstimatesResponse;
import com.uber.sdk.rides.client.model.TimeEstimate;
@@ -78,8 +79,8 @@
@RunWith(MockitoJUnitRunner.class)
public class RideRequestButtonControllerTest {
- private static final String TIME_ESTIMATES_API = "/v1/estimates/time";
- private static final String PRICE_ESTIMATES_API = "/v1/estimates/price";
+ private static final String TIME_ESTIMATES_API = "/v1.2/estimates/time";
+ private static final String PRICE_ESTIMATES_API = "/v1.2/estimates/price";
private static WireMockConfiguration WIRE_MOCK_CONFIG = wireMockConfig()
.notifier(new ConsoleNotifier(true))
.dynamicPort();
@@ -135,6 +136,7 @@ public void setUp() throws Exception {
.build();
Moshi moshi = new Moshi.Builder()
+ .add(new BigDecimalAdapter())
.build();
okHttpClient = new OkHttpClient.Builder()
diff --git a/rides-android/src/test/resources/__files/prices_estimate.json b/rides-android/src/test/resources/__files/prices_estimate.json
index bd1f2d56..006bff1c 100644
--- a/rides-android/src/test/resources/__files/prices_estimate.json
+++ b/rides-android/src/test/resources/__files/prices_estimate.json
@@ -2,105 +2,105 @@
"prices": [
{
"localized_display_name": "uberPOOL",
- "high_estimate": 6,
+ "high_estimate": 6.0,
"minimum": null,
"duration": 1080,
"estimate": "$5.75",
"distance": 2.5,
"display_name": "uberPOOL",
"product_id": "26546650-e557-4a7b-86e7-6a3942445247",
- "low_estimate": 5,
+ "low_estimate": 5.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
{
"localized_display_name": "uberX",
- "high_estimate": 12,
+ "high_estimate": 12.0,
"minimum": 7,
"duration": 1080,
"estimate": "$9-12",
"distance": 2.5,
"display_name": "uberX",
"product_id": "a1111c8c-c720-46c3-8534-2fcdd730040d",
- "low_estimate": 9,
+ "low_estimate": 9.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
{
"localized_display_name": "uberXL",
- "high_estimate": 18,
+ "high_estimate": 18.0,
"minimum": 9,
"duration": 1080,
"estimate": "$14-18",
"distance": 2.5,
"display_name": "uberXL",
"product_id": "821415d8-3bd5-4e27-9604-194e4359a449",
- "low_estimate": 14,
+ "low_estimate": 14.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
{
"localized_display_name": "UberSELECT",
- "high_estimate": 26,
+ "high_estimate": 26.0,
"minimum": 11,
"duration": 1080,
"estimate": "$21-26",
"distance": 2.5,
"display_name": "UberSELECT",
"product_id": "57c0ff4e-1493-4ef9-a4df-6b961525cf92",
- "low_estimate": 21,
+ "low_estimate": 21.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
{
"localized_display_name": "UberBLACK",
- "high_estimate": 34,
+ "high_estimate": 34.0,
"minimum": 15,
"duration": 1080,
"estimate": "$27-34",
"distance": 2.5,
"display_name": "UberBLACK",
"product_id": "d4abaae7-f4d6-4152-91cc-77523e8165a4",
- "low_estimate": 27,
+ "low_estimate": 27.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
{
"localized_display_name": "UberSUV",
- "high_estimate": 47,
+ "high_estimate": 47.0,
"minimum": 25,
"duration": 1080,
"estimate": "$38-47",
"distance": 2.5,
"display_name": "UberSUV",
"product_id": "8920cb5e-51a4-4fa4-acdf-dd86c5e18ae0",
- "low_estimate": 38,
+ "low_estimate": 38.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
{
"localized_display_name": "ASSIST",
- "high_estimate": 12,
+ "high_estimate": 12.0,
"minimum": 7,
"duration": 1080,
"estimate": "$9-12",
"distance": 2.5,
"display_name": "ASSIST",
"product_id": "ff5ed8fe-6585-4803-be13-3ca541235de3",
- "low_estimate": 9,
+ "low_estimate": 9.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
{
"localized_display_name": "uberWAV",
- "high_estimate": 23,
+ "high_estimate": 23.0,
"minimum": 9,
"duration": 1080,
"estimate": "$18-23",
"distance": 2.5,
"display_name": "uberWAV",
"product_id": "2832a1f5-cfc0-48bb-ab76-7ea7a62060e7",
- "low_estimate": 18,
+ "low_estimate": 18.0,
"surge_multiplier": 1.0,
"currency_code": "USD"
},
diff --git a/samples/login-sample/build.gradle b/samples/login-sample/build.gradle
index 739f97f5..e4edf35e 100644
--- a/samples/login-sample/build.gradle
+++ b/samples/login-sample/build.gradle
@@ -10,7 +10,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.1.0'
+ classpath 'com.android.tools.build:gradle:2.2.3'
}
}
diff --git a/samples/request-button-sample/build.gradle b/samples/request-button-sample/build.gradle
index 06388fbd..f1261cbe 100644
--- a/samples/request-button-sample/build.gradle
+++ b/samples/request-button-sample/build.gradle
@@ -10,7 +10,7 @@ buildscript {
jcenter()
}
dependencies {
- classpath 'com.android.tools.build:gradle:2.1.0'
+ classpath 'com.android.tools.build:gradle:2.2.3'
}
}
diff --git a/samples/request-button-sample/src/main/java/com/uber/sdk/android/rides/samples/SampleActivity.java b/samples/request-button-sample/src/main/java/com/uber/sdk/android/rides/samples/SampleActivity.java
index 4516f8e8..449b551b 100644
--- a/samples/request-button-sample/src/main/java/com/uber/sdk/android/rides/samples/SampleActivity.java
+++ b/samples/request-button-sample/src/main/java/com/uber/sdk/android/rides/samples/SampleActivity.java
@@ -85,10 +85,6 @@ protected void onCreate(Bundle savedInstanceState) {
.setServerToken(SERVER_TOKEN)
.build();
- // Optional: to use the SDK in China, set the region property
- // See https://developer.uber.com/docs/china for more details.
- // configuration.setEndpointRegion(SessionConfiguration.EndpointRegion.CHINA);
-
validateConfiguration(configuration);
ServerTokenSession session = new ServerTokenSession(configuration);
diff --git a/test-shared/test/java/com/uber/sdk/android/core/RobolectricTestBase.java b/test-shared/test/java/com/uber/sdk/android/core/RobolectricTestBase.java
index 0e4b6fda..be796f8c 100644
--- a/test-shared/test/java/com/uber/sdk/android/core/RobolectricTestBase.java
+++ b/test-shared/test/java/com/uber/sdk/android/core/RobolectricTestBase.java
@@ -26,10 +26,10 @@
import org.junit.runner.RunWith;
import org.mockito.junit.MockitoJUnit;
import org.mockito.junit.MockitoRule;
-import org.robolectric.RobolectricGradleTestRunner;
+import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
-@RunWith(RobolectricGradleTestRunner.class)
+@RunWith(RobolectricTestRunner.class)
@Config(constants = BuildConfig.class, sdk = 21)
public abstract class RobolectricTestBase {
diff --git a/test-shared/test/java/com/uber/sdk/android/core/SdkPreferences.java b/test-shared/test/java/com/uber/sdk/android/core/SdkPreferences.java
index 3be9e4f5..467445a3 100644
--- a/test-shared/test/java/com/uber/sdk/android/core/SdkPreferences.java
+++ b/test-shared/test/java/com/uber/sdk/android/core/SdkPreferences.java
@@ -54,7 +54,7 @@ public String getRedirectUri() {
@NonNull
public SessionConfiguration.EndpointRegion getRegion() {
- return SessionConfiguration.EndpointRegion.valueOf(sharedPreferences.getString(REGION_KEY, SessionConfiguration.EndpointRegion.WORLD.name()));
+ return SessionConfiguration.EndpointRegion.valueOf(sharedPreferences.getString(REGION_KEY, SessionConfiguration.EndpointRegion.DEFAULT.name()));
}
@Nullable