Merge branch 'master-rx-java-2' into kotlin_migration
# Conflicts: # build.gradle
This commit is contained in:
commit
488d15a22b
10
build.gradle
10
build.gradle
|
|
@ -27,22 +27,24 @@ dependencies {
|
|||
|
||||
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
|
||||
compile 'io.reactivex.rxjava2:rxjava:2.1.1'
|
||||
|
||||
|
||||
provided 'com.android.support:appcompat-v7:26.0.0-beta2'
|
||||
provided 'com.android.support:recyclerview-v7:26.0.0-beta2'
|
||||
|
||||
provided 'com.squareup.retrofit2:retrofit:2.3.0'
|
||||
|
||||
provided 'com.facebook.fresco:fresco:1.3.0'
|
||||
provided 'com.facebook.fresco:fresco:1.4.0'
|
||||
provided 'com.bluelinelabs:logansquare:1.3.7'
|
||||
|
||||
provided 'com.scottyab:aes-crypto:0.0.4'
|
||||
|
||||
provided('io.socket:socket.io-client:0.8.3') {
|
||||
// don't use latest(1.0 and above) because they don't support Socket.IO server 1.x version
|
||||
//noinspection NewerVersionAvailable
|
||||
provided('io.socket:socket.io-client:0.9.0') {
|
||||
exclude group: 'org.json', module: 'json'
|
||||
}
|
||||
|
||||
provided('com.crashlytics.sdk.android:crashlytics:2.6.7@aar') {
|
||||
provided('com.crashlytics.sdk.android:crashlytics:2.6.8@aar') {
|
||||
transitive = true;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -52,7 +52,7 @@ public abstract class ApiModel implements Serializable {
|
|||
*/
|
||||
@SuppressWarnings({"PMD.PreserveStackTrace", "PMD.CyclomaticComplexity"})
|
||||
// PreserveStackTrace: it's ok - we are logging it on Lc.e()
|
||||
protected static void validateCollection(@NonNull final Collection collection, @NonNull final CollectionValidationRule collectionValidationRule)
|
||||
public static void validateCollection(@NonNull final Collection collection, @NonNull final CollectionValidationRule collectionValidationRule)
|
||||
throws ValidationException {
|
||||
boolean haveValidItem = false;
|
||||
int position = 0;
|
||||
|
|
@ -117,7 +117,7 @@ public abstract class ApiModel implements Serializable {
|
|||
//do nothing
|
||||
}
|
||||
|
||||
protected enum CollectionValidationRule {
|
||||
public enum CollectionValidationRule {
|
||||
EXCEPTION_IF_ANY_INVALID,
|
||||
EXCEPTION_IF_ALL_INVALID,
|
||||
REMOVE_INVALID_ITEMS,
|
||||
|
|
|
|||
|
|
@ -62,7 +62,7 @@ public class LoganSquareEnumConverter<T extends Enum & LoganSquareEnum> extends
|
|||
if (defaultValue != null) {
|
||||
return defaultValue;
|
||||
}
|
||||
throw new ShouldNotHappenException();
|
||||
throw new ShouldNotHappenException("Enum parsing exception for value: " + string);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
|
|
|||
|
|
@ -24,6 +24,8 @@ import android.support.annotation.NonNull;
|
|||
import java.io.IOException;
|
||||
import java.io.InterruptedIOException;
|
||||
import java.net.SocketException;
|
||||
import java.util.Collection;
|
||||
import java.util.Map;
|
||||
|
||||
import javax.net.ssl.SSLException;
|
||||
|
||||
|
|
@ -62,17 +64,41 @@ public abstract class JsonResponseBodyConverter<T> implements Converter<Response
|
|||
}
|
||||
|
||||
if (result instanceof ApiModel) {
|
||||
try {
|
||||
((ApiModel) result).validate();
|
||||
} catch (final ApiModel.ValidationException validationException) {
|
||||
Lc.assertion(validationException);
|
||||
throw validationException;
|
||||
}
|
||||
validateModel((ApiModel) result);
|
||||
}
|
||||
if (result instanceof Collection) {
|
||||
validateCollection((Collection) result);
|
||||
}
|
||||
if (result instanceof Map) {
|
||||
validateCollection(((Map)result).values());
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
private void validateModel(@NonNull final ApiModel result) throws IOException {
|
||||
try {
|
||||
result.validate();
|
||||
} catch (final ApiModel.ValidationException validationException) {
|
||||
Lc.assertion(validationException);
|
||||
throw validationException;
|
||||
}
|
||||
}
|
||||
|
||||
private void validateCollection(@NonNull final Collection result) throws IOException {
|
||||
try {
|
||||
ApiModel.validateCollection(result, getValidateCollectionRule());
|
||||
} catch (final ApiModel.ValidationException validationException) {
|
||||
Lc.assertion(validationException);
|
||||
throw validationException;
|
||||
}
|
||||
}
|
||||
|
||||
@NonNull
|
||||
protected ApiModel.CollectionValidationRule getValidateCollectionRule() {
|
||||
return ApiModel.CollectionValidationRule.EXCEPTION_IF_ANY_INVALID;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses response to specific object.
|
||||
*
|
||||
|
|
|
|||
Loading…
Reference in New Issue