Skip to content

Commit a00057a

Browse files
Merge pull request #23 from jacek-marchwicki/new-okhttp
New okhttp
2 parents a522486 + 998e13f commit a00057a

23 files changed

+175
-280
lines changed

.travis.yml

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,15 @@
11
sudo: false
22
language: android
3+
jdk:
4+
- oraclejdk8
35

46
android:
57
components:
68
- tools
79
- platform-tools
8-
- build-tools-22.0.1
9-
- android-22
10+
- build-tools-25.0.2
11+
- android-25
1012
- extra-google-m2repository
1113
- extra-android-m2repository
12-
addons:
13-
apt_packages:
14-
- pandoc
1514

1615
script: ./gradlew build
17-
18-
after_script:
19-
- for f in "websockets-example/build/outputs/lint-results*.html"; do pandoc $f -t plain; done
20-
- for f in "websockets-rxjava-example/build/outputs/lint-results*.html"; do pandoc $f -t plain; done
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
#Fri Apr 03 16:38:12 CEST 2015
1+
#Wed Mar 22 17:26:20 CET 2017
22
distributionBase=GRADLE_USER_HOME
33
distributionPath=wrapper/dists
44
zipStoreBase=GRADLE_USER_HOME
55
zipStorePath=wrapper/dists
6-
distributionUrl=https\://services.gradle.org/distributions/gradle-2.11-all.zip
6+
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip

websockets-rxjava-example/build.gradle

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ buildscript {
44
jcenter()
55
}
66
dependencies {
7-
classpath 'com.android.tools.build:gradle:2.1.0-beta1'
7+
classpath 'com.android.tools.build:gradle:2.3.0'
88
}
99
}
1010

@@ -19,25 +19,26 @@ repositories {
1919
dependencies {
2020
compile project(":websockets-rxjava")
2121
compile 'io.reactivex:rxandroid:0.24.0'
22-
compile 'com.android.support:recyclerview-v7:21.0.0'
23-
compile 'com.google.guava:guava:18.0'
24-
compile "com.google.code.gson:gson:2.3"
22+
compile 'com.android.support:recyclerview-v7:25.3.0'
23+
compile 'com.android.support:support-v4:25.3.0'
24+
compile 'com.google.guava:guava:20.0'
25+
compile "com.google.code.gson:gson:2.7"
2526
//compile "com.appunite:websockets:1.0"
2627

2728
testCompile "org.hamcrest:hamcrest-all:1.3"
2829
testCompile 'junit:junit:4.11'
2930
testCompile 'org.mockito:mockito-all:1.9.5'
3031
testCompile 'com.google.truth:truth:0.25'
31-
testCompile 'com.google.guava:guava:18.0'
32+
testCompile 'com.google.guava:guava:20.0'
3233
}
3334

3435
android {
35-
compileSdkVersion 22
36-
buildToolsVersion "22.0.1"
36+
compileSdkVersion 25
37+
buildToolsVersion '25.0.2'
3738

3839
defaultConfig {
39-
minSdkVersion 8
40-
targetSdkVersion 22
40+
minSdkVersion 9
41+
targetSdkVersion 25
4142
}
4243
buildTypes {
4344
release {
@@ -46,6 +47,8 @@ android {
4647
}
4748
lintOptions {
4849
disable 'InvalidPackage'
50+
textOutput "stdout"
51+
textReport true
4952
}
5053

5154
compileOptions {

websockets-rxjava-example/src/main/AndroidManifest.xml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,6 @@
44
android:versionCode="1"
55
android:versionName="1.0" >
66

7-
<uses-sdk
8-
android:minSdkVersion="8"
9-
android:targetSdkVersion="16" />
10-
117
<uses-permission android:name="android.permission.INTERNET" />
128

139
<application

websockets-rxjava-example/src/main/java/com/appunite/socket/MainPresenter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ public void onNext(RxObjectEvent rxObjectEvent) {
185185
+ ", " + wrongMessageFormat.exception().toString()));
186186
} else if (rxObjectEvent instanceof RxObjectEventDisconnected) {
187187
//noinspection ThrowableResultOfMethodCallIgnored
188-
final Exception exception = ((RxObjectEventDisconnected) rxObjectEvent).exception();
188+
final Throwable exception = ((RxObjectEventDisconnected) rxObjectEvent).exception();
189189
if (!(exception instanceof InterruptedException)) {
190190
subscriber.onNext(new Pair<>("error", exception.toString()));
191191
}

websockets-rxjava-example/src/main/java/com/example/Socket.java

Lines changed: 18 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,13 @@ public RxObjectEventConn call(RxObjectEventDisconnected rxEventDisconnected) {
8484
.lift(LoggingObservables.<RxObjectEventConnected>loggingLift(LOGGER, "ConnectedEvent"));
8585

8686
connectedMessage
87-
.flatMap(new FlatMapToRegisterMessage())
87+
.flatMap(new Func1<RxObjectEventConnected, Observable<?>>() {
88+
@Override
89+
public Observable<?> call(RxObjectEventConnected rxEventConn) {
90+
return RxMoreObservables.sendObjectMessage(rxEventConn.sender(), new RegisterMessage("asdf"))
91+
.toObservable();
92+
}
93+
})
8894
.lift(LoggingObservables.loggingOnlyErrorLift(LOGGER, "SendRegisterEvent"))
8995
.onErrorReturn(com.example.MoreObservables.throwableToIgnoreError())
9096
.subscribe();
@@ -123,8 +129,8 @@ public RxObjectEventConn call(Long aLong, RxObjectEventConn rxEventConn) {
123129
.flatMap(new Func1<RxObjectEventConn, Observable<?>>() {
124130
@Override
125131
public Observable<?> call(RxObjectEventConn rxEventConn) {
126-
return Observable.just(new PingMessage("send_only_when_connected"))
127-
.compose(RxMoreObservables.sendMessage(rxEventConn));
132+
return RxMoreObservables.sendObjectMessage(rxEventConn.sender(), new PingMessage("send_only_when_connected"))
133+
.toObservable();
128134
}
129135
})
130136
.subscribe();
@@ -141,8 +147,8 @@ public Observable<?> call(Long aLong) {
141147
.flatMap(new Func1<RxObjectEventConn, Observable<?>>() {
142148
@Override
143149
public Observable<?> call(RxObjectEventConn rxEventConn) {
144-
return Observable.just(new PingMessage("be_sure_to_send"))
145-
.compose(RxMoreObservables.sendMessage(rxEventConn));
150+
return RxMoreObservables.sendObjectMessage(rxEventConn.sender(), new PingMessage("be_sure_to_send"))
151+
.toObservable();
146152
}
147153
});
148154
}
@@ -190,7 +196,13 @@ private Observable<DataMessage> requestData(final RxObjectEventConn rxEventConn,
190196
public Observable<DataMessage> call(final String messageId) {
191197

192198
final Observable<Object> sendMessageObservable = createMessage.call(messageId)
193-
.compose(RxMoreObservables.sendMessage(rxEventConn));
199+
.flatMap(new Func1<Object, Observable<?>>() {
200+
@Override
201+
public Observable<?> call(Object s) {
202+
return RxMoreObservables.sendObjectMessage(rxEventConn.sender(), s)
203+
.toObservable();
204+
}
205+
});
194206

195207
final Observable<DataMessage> waitForResponseObservable = events
196208
.compose(com.example.MoreObservables.filterAndMap(RxObjectEventMessage.class))
@@ -238,11 +250,4 @@ public Boolean call(RxObjectEventMessage rxEvent) {
238250
}
239251

240252

241-
private class FlatMapToRegisterMessage implements Func1<RxObjectEventConnected, Observable<Object>> {
242-
@Override
243-
public Observable<Object> call(RxObjectEventConnected rxEventConn) {
244-
return Observable.just(new RegisterMessage("asdf"))
245-
.compose(RxMoreObservables.sendMessage(rxEventConn));
246-
}
247-
}
248253
}

websockets-rxjava-example/src/main/java/com/example/model/MessageType.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public MessageType deserialize(JsonElement json, Type typeOfT, JsonDeserializati
4646

4747
final String asString = json.getAsString();
4848
try {
49-
return MessageType.valueOf(asString.toUpperCase());
49+
return MessageType.valueOf(asString.toUpperCase(Locale.US));
5050
} catch (IllegalArgumentException e) {
5151
throw new JsonParseException("Unknown request type: " + asString);
5252
}
Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<resources>
3-
<color name="black_87">#de000000</color>
43
<color name="white_87">#deffffff</color>
54
<color name="white_51">#99ffffff</color>
65
</resources>

websockets-rxjava/build.gradle

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ buildscript {
44
jcenter()
55
}
66
dependencies {
7-
classpath 'com.android.tools.build:gradle:2.1.0-beta1'
7+
classpath 'com.android.tools.build:gradle:2.3.0'
88
}
99
}
1010

@@ -21,8 +21,8 @@ repositories {
2121
}
2222

2323
dependencies {
24-
compile 'com.squareup.okhttp3:okhttp-ws:3.1.1'
25-
compile "io.reactivex:rxjava:1.0.9"
24+
compile 'com.squareup.okhttp3:okhttp:3.5.0'
25+
compile "io.reactivex:rxjava:1.1.0"
2626
compile "com.google.code.findbugs:jsr305:2.0.1"
2727

2828
testCompile "org.hamcrest:hamcrest-all:1.3"

websockets-rxjava/src/main/java/com/appunite/websocket/rx/RxMoreObservables.java

Lines changed: 28 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,15 @@
1919
import com.appunite.websocket.rx.object.ObjectSerializer;
2020
import com.appunite.websocket.rx.object.ObjectWebSocketSender;
2121
import com.appunite.websocket.rx.object.RxObjectWebSockets;
22-
import com.appunite.websocket.rx.object.messages.RxObjectEventConn;
23-
import com.appunite.websocket.rx.messages.RxEventConn;
24-
25-
import okhttp3.RequestBody;
26-
import okhttp3.ws.WebSocket;
2722

23+
import java.util.concurrent.Callable;
2824
import java.util.logging.Level;
2925
import java.util.logging.Logger;
3026

3127
import javax.annotation.Nonnull;
3228

33-
import rx.Observable;
34-
import rx.Observer;
35-
import rx.Subscriber;
36-
import rx.functions.Func1;
29+
import okhttp3.WebSocket;
30+
import rx.Single;
3731

3832
public class RxMoreObservables {
3933

@@ -42,91 +36,47 @@ public class RxMoreObservables {
4236
public RxMoreObservables() {
4337
}
4438

45-
@Nonnull
46-
private static Observable<Object> sendMessage(final @Nonnull WebSocket sender, final @Nonnull String message) {
47-
return Observable.create(new Observable.OnSubscribe<Object>() {
48-
@Override
49-
public void call(Subscriber<? super Object> subscriber) {
50-
try {
51-
logger.log(Level.FINE, "sendStringMessage: {0}", message);
52-
sender.sendMessage(RequestBody.create(WebSocket.TEXT, message));
53-
subscriber.onNext(new Object());
54-
subscriber.onCompleted();
55-
} catch (Exception e) {
56-
subscriber.onError(e);
57-
}
58-
}
59-
});
60-
}
61-
6239
/**
63-
* Transformer that convert String message to observable that returns if message was sent
64-
*
65-
* @param connection connection event that is used to send message
66-
* @return Observable that returns {@link Observer#onNext(Object)} with new Object()
67-
* and {@link Observer#onCompleted()} or {@link Observer#onError(Throwable)}
40+
* Enqueue message to send
6841
*
69-
* @see #sendMessage(ObjectWebSocketSender, Object)
42+
* @param sender connection event that is used to send message
43+
* @param message message to send
44+
* @return Single that returns true if message was enqueued
45+
* @see #sendObjectMessage(ObjectWebSocketSender, Object)
7046
*/
71-
@SuppressWarnings("unused")
7247
@Nonnull
73-
public static Observable.Transformer<String, Object> sendMessage(@Nonnull final RxEventConn connection) {
74-
return new Observable.Transformer<String, Object>() {
48+
public static Single<Boolean> sendMessage(final @Nonnull WebSocket sender, final @Nonnull String message) {
49+
return Single.fromCallable(new Callable<Boolean>() {
7550
@Override
76-
public Observable<Object> call(Observable<String> stringObservable) {
77-
return stringObservable.flatMap(new Func1<String, Observable<?>>() {
78-
@Override
79-
public Observable<?> call(String message) {
80-
return sendMessage(connection.sender(), message);
81-
}
82-
});
83-
}
84-
};
85-
}
86-
87-
@Nonnull
88-
private static Observable<Object> sendMessage(final @Nonnull ObjectWebSocketSender sender, final @Nonnull Object message) {
89-
return Observable.create(new Observable.OnSubscribe<Object>() {
90-
@Override
91-
public void call(Subscriber<? super Object> subscriber) {
92-
try {
93-
logger.log(Level.FINE, "sendStringMessage: {0}", message.toString());
94-
sender.sendObjectMessage(message);
95-
subscriber.onNext(new Object());
96-
subscriber.onCompleted();
97-
} catch (Exception e) {
98-
subscriber.onError(e);
99-
}
51+
public Boolean call() throws Exception {
52+
logger.log(Level.FINE, "sendStringMessage: {0}", message);
53+
return sender.send(message);
10054
}
10155
});
10256
}
10357

104-
10558
/**
106-
* Transformer that convert Object message to observable that returns if message was sent
107-
*
59+
* Send object
60+
* <p>
10861
* Object is parsed via {@link ObjectSerializer} given by
10962
* {@link RxObjectWebSockets#RxObjectWebSockets(RxWebSockets, ObjectSerializer)}
11063
*
111-
* @param connection connection event that is used to send message
112-
* @return Observable that returns {@link Observer#onNext(Object)} with new Object()
113-
* and {@link Observer#onCompleted()} or {@link Observer#onError(Throwable)}
114-
*
115-
* @see #sendMessage(RxEventConn)
64+
* @param sender connection event that is used to send message
65+
* @param message message to serialize and sent
66+
* @return Single that returns true if message was enqueued or ObjectParseException if couldn't
67+
* serialize
68+
* @see #sendMessage(WebSocket, String)
11669
*/
117-
@SuppressWarnings("unused")
11870
@Nonnull
119-
public static Observable.Transformer<Object, Object> sendMessage(@Nonnull final RxObjectEventConn connection) {
120-
return new Observable.Transformer<Object, Object>() {
71+
public static Single<Boolean> sendObjectMessage(final @Nonnull ObjectWebSocketSender sender, final @Nonnull Object message) {
72+
return Single.fromCallable(new Callable<Boolean>() {
12173
@Override
122-
public Observable<Object> call(Observable<Object> stringObservable) {
123-
return stringObservable.flatMap(new Func1<Object, Observable<?>>() {
124-
@Override
125-
public Observable<?> call(Object message) {
126-
return sendMessage(connection.sender(), message);
127-
}
128-
});
74+
public Boolean call() throws Exception {
75+
logger.log(Level.FINE, "sendStringMessage: {0}", message);
76+
return sender.sendObjectMessage(message);
12977
}
130-
};
78+
});
13179
}
80+
81+
13282
}

0 commit comments

Comments
 (0)