File tree Expand file tree Collapse file tree 2 files changed +27
-15
lines changed
android/src/main/java/com/cloudwebrtc/webrtc/utils Expand file tree Collapse file tree 2 files changed +27
-15
lines changed Original file line number Diff line number Diff line change 7
7
8
8
public final class AnyThreadResult implements MethodChannel .Result {
9
9
final private MethodChannel .Result result ;
10
+ final private Handler handler = new Handler (Looper .getMainLooper ());
10
11
11
12
public AnyThreadResult (MethodChannel .Result result ) {
12
13
this .result = result ;
13
14
}
14
15
15
16
@ Override
16
17
public void success (Object o ) {
17
- final Handler handler = new Handler (Looper .getMainLooper ());
18
- handler .post (()->result .success (o ));
18
+ post (()->result .success (o ));
19
19
}
20
20
21
21
@ Override
22
22
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 ));
25
24
}
26
25
27
26
@ Override
28
27
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
+ }
31
37
}
32
38
}
Original file line number Diff line number Diff line change 6
6
import io .flutter .plugin .common .EventChannel ;
7
7
8
8
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
+
11
12
public AnyThreadSink (EventChannel .EventSink eventSink ) {
12
13
this .eventSink = eventSink ;
13
14
}
14
-
15
+
15
16
@ Override
16
17
public void success (Object o ) {
17
- final Handler handler = new Handler (Looper .getMainLooper ());
18
- handler .post (()->eventSink .success (o ));
18
+ post (()->eventSink .success (o ));
19
19
}
20
20
21
21
@ Override
22
22
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 ));
25
24
}
26
25
27
26
@ Override
28
27
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
+ }
31
37
}
32
38
}
You can’t perform that action at this time.
0 commit comments