From 9051f8074e36bae99eff3288ef63b6cec4babb6c Mon Sep 17 00:00:00 2001 From: Denis Karmyshakov Date: Wed, 5 Jul 2017 15:25:09 +0300 Subject: [PATCH 1/6] Changes fix --- build.gradle | 6 +++--- src/main/java/ru/touchin/templates/chat/Chat.java | 12 ++---------- 2 files changed, 5 insertions(+), 13 deletions(-) diff --git a/build.gradle b/build.gradle index b0cdb80..08a258b 100644 --- a/build.gradle +++ b/build.gradle @@ -27,8 +27,8 @@ dependencies { compile 'io.reactivex:rxandroid:1.2.1' compile 'io.reactivex:rxjava:1.3.0' - provided 'com.android.support:appcompat-v7:25.3.1' - provided 'com.android.support:recyclerview-v7:25.3.1' + provided 'com.android.support:appcompat-v7:25.4.0' + provided 'com.android.support:recyclerview-v7:25.4.0' provided 'com.squareup.retrofit2:retrofit:2.3.0' provided('com.google.http-client:google-http-client-jackson2:1.22.0') { @@ -44,7 +44,7 @@ dependencies { 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; } diff --git a/src/main/java/ru/touchin/templates/chat/Chat.java b/src/main/java/ru/touchin/templates/chat/Chat.java index b8b38db..fd32b55 100644 --- a/src/main/java/ru/touchin/templates/chat/Chat.java +++ b/src/main/java/ru/touchin/templates/chat/Chat.java @@ -31,7 +31,6 @@ import java.util.concurrent.Executors; import java.util.concurrent.TimeUnit; import ru.touchin.roboswag.core.log.Lc; -import ru.touchin.roboswag.core.observables.collections.Change; import ru.touchin.roboswag.core.observables.collections.ObservableCollection; import ru.touchin.roboswag.core.observables.collections.ObservableList; import rx.Completable; @@ -77,15 +76,8 @@ public abstract class Chat { final List reversedMessages = new ArrayList<>(initialMessages); Collections.reverse(reversedMessages); return Observable.from(reversedMessages) - .concatWith(sendingMessages.observeChanges().concatMap(changes -> { - final Collection insertedMessages = new ArrayList<>(); - for (final Change change : changes.getChanges()) { - if (change.getType() == Change.Type.INSERTED) { - insertedMessages.addAll(change.getChangedItems()); - } - } - return insertedMessages.isEmpty() ? Observable.empty() : Observable.from(insertedMessages); - })) + .concatWith(sendingMessages.observeChanges().concatMap(changes -> + changes.getInsertedItems().isEmpty() ? Observable.empty() : Observable.from(changes.getInsertedItems()))) //observe on some scheduler? .flatMap(message -> internalSendMessage(message).toObservable()); }); From cde6c030f13eb5c91d7cf88f5fd54ae94a93fee7 Mon Sep 17 00:00:00 2001 From: gorodeckii Date: Wed, 12 Jul 2017 12:39:37 +0300 Subject: [PATCH 2/6] socket.io new version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 08a258b..293e88e 100644 --- a/build.gradle +++ b/build.gradle @@ -40,7 +40,7 @@ dependencies { provided 'com.scottyab:aes-crypto:0.0.4' - provided('io.socket:socket.io-client:0.8.3') { + provided('io.socket:socket.io-client:0.9.0') { exclude group: 'org.json', module: 'json' } From 796371648c290cbb7e1e7b41fe08cd3b2bd615ec Mon Sep 17 00:00:00 2001 From: gorodeckii Date: Thu, 13 Jul 2017 15:50:44 +0300 Subject: [PATCH 3/6] description for unknown enum values --- .../touchin/templates/logansquare/LoganSquareEnumConverter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/ru/touchin/templates/logansquare/LoganSquareEnumConverter.java b/src/main/java/ru/touchin/templates/logansquare/LoganSquareEnumConverter.java index f94921a..53827f3 100644 --- a/src/main/java/ru/touchin/templates/logansquare/LoganSquareEnumConverter.java +++ b/src/main/java/ru/touchin/templates/logansquare/LoganSquareEnumConverter.java @@ -62,7 +62,7 @@ public class LoganSquareEnumConverter extends if (defaultValue != null) { return defaultValue; } - throw new ShouldNotHappenException(); + throw new ShouldNotHappenException("Enum parsing exception for value: " + string); } @Nullable From 06acc22f11e5baf659ab8b40c948d5efcf827c2e Mon Sep 17 00:00:00 2001 From: gorodeckii Date: Thu, 13 Jul 2017 17:01:26 +0300 Subject: [PATCH 4/6] validation for collection responses --- .../java/ru/touchin/templates/ApiModel.java | 4 ++-- .../retrofit/JsonResponseBodyConverter.java | 23 +++++++++++++++++++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/main/java/ru/touchin/templates/ApiModel.java b/src/main/java/ru/touchin/templates/ApiModel.java index e319d9b..5755445 100644 --- a/src/main/java/ru/touchin/templates/ApiModel.java +++ b/src/main/java/ru/touchin/templates/ApiModel.java @@ -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, diff --git a/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java b/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java index f82f2d0..e181bff 100644 --- a/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java +++ b/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java @@ -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; @@ -69,10 +71,31 @@ public abstract class JsonResponseBodyConverter implements Converter Date: Thu, 13 Jul 2017 17:19:01 +0300 Subject: [PATCH 5/6] fix static --- .../retrofit/JsonResponseBodyConverter.java | 39 ++++++++++--------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java b/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java index e181bff..cceb06b 100644 --- a/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java +++ b/src/main/java/ru/touchin/templates/retrofit/JsonResponseBodyConverter.java @@ -64,33 +64,36 @@ public abstract class JsonResponseBodyConverter implements Converter Date: Mon, 17 Jul 2017 14:15:33 +0300 Subject: [PATCH 6/6] update libs --- build.gradle | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 293e88e..344dafd 100644 --- a/build.gradle +++ b/build.gradle @@ -35,11 +35,13 @@ dependencies { exclude(group: 'org.apache.httpcomponents', module: 'httpclient') } - 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' + // 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' }