8000 Reduce code. · linuxerwang/flutter-webrtc@a666b3f · GitHub
[go: up one dir, main page]

Skip to content

Commit a666b3f

Browse files
committed
Reduce code.
1 parent 6701ef2 commit a666b3f

File tree

2 files changed

+27
-15
lines changed

2 files changed

+27
-15
lines changed

android/src/main/java/com/cloudwebrtc/webrtc/utils/AnyThreadResult.java

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,32 @@
77

88
public final class AnyThreadResult implements MethodChannel.Result {
99
final private MethodChannel.Result result;
10+
final private Handler handler = new Handler(Looper.getMainLooper());
1011

1112
public AnyThreadResult(MethodChannel.Result result) {
1213
this.result = result;
1314
}
1415

1516
@Override
1617
public void success(Object o) {
17-
final Handler handler = new Handler(Looper.getMainLooper());
18-
handler.post(()->result.success(o));
18+
post(()->result.success(o));
1919
}
2020

2121
@Override
2222
public void error(String s, String s1, Object o) {
23-
final Handler handler = new Handler(Looper.getMainLooper());
24-
handler.post(()->result.error(s, s1, o));
23+
post(()->result.error(s, s1, o));
2524
}
2625

2726
@Override
2827
public void notImplemented() {
29-
final Handler handler = new Handler(Looper.getMainLooper());
30-
handler.post(result::notImplemented);
28+
post(result::notImplemented);
29+
}
30+
31+
private void post(Runnable r) {
32+
if(Looper.getMainLooper() == Looper.myLooper()){
33+
r.run();
34+
}else{
35+
handler.post(r);
36+
}
3137
}
3238
}

android/src/main/java/com/cloudwebrtc/webrtc/utils/AnyThreadSink.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,27 +6,33 @@
66
import io.flutter.plugin.common.EventChannel;
77

88
public final class AnyThreadSink implements EventChannel.EventSink {
9-
private final EventChannel.EventSink eventSink;
10-
9+
final private EventChannel.EventSink eventSink;
10+
final private Handler handler = new Handler(Looper.getMainLooper());
11+
1112
public AnyThreadSink(EventChannel.EventSink eventSink) {
1213
this.eventSink = eventSink;
1314
}
14-
15+
1516
@Override
1617
public void success(Object o) {
17-
final Handler handler = new Handler(Looper.getMainLooper());
18-
handler.post(()->eventSink.success(o));
18+
post(()->eventSink.success(o));
1919
}
2020

2121
@Override
2222
public void error(String s, String s1, Object o) {
23-
final Handler handler = new Handler(Looper.getMainLooper());
24-
handler.post(()->eventSink.error(s, s1, o));
23+
post(()->eventSink.error(s, s1, o));
2524
}
2625

2726
@Override
2827
public void endOfStream() {
29-
final Handler handler = new Handler(Looper.getMainLooper());
30-
handler.post(eventSink::endOfStream);
28+
post(eventSink::endOfStream);
29+
}
30+
31+
private void post(Runnable r) {
32+
if(Looper.getMainLooper() == Looper.myLooper()){
33+
r.run();
34+
}else{
35+
handler.post(r);
36+
}
3137
}
3238
}

0 commit comments

Comments
 (0)
0