File tree Expand file tree Collapse file tree 2 files changed +23
-1
lines changed
src/main/java/com/cybrosis/catdea Expand file tree Collapse file tree 2 files changed +23
-1
lines changed Original file line number Diff line number Diff line change 18
18
19
19
import com .android .ddmlib .AndroidDebugBridge ;
20
20
import com .android .tools .idea .adb .AdbService ;
21
- import com .intellij . util . concurrency .EdtExecutorService ;
21
+ import com .cybrosis . catdea . utils . CompatibilityUtil .EdtExecutorService ;
22
22
import com .google .common .util .concurrent .FutureCallback ;
23
23
import com .google .common .util .concurrent .Futures ;
24
24
import com .google .common .util .concurrent .ListenableFuture ;
Original file line number Diff line number Diff line change 19
19
import com .android .ddmlib .logcat .LogCatHeader ;
20
20
import com .android .ddmlib .logcat .LogCatTimestamp ;
21
21
22
+ import java .lang .reflect .Field ;
22
23
import java .lang .reflect .Method ;
23
24
import java .time .Instant ;
24
25
import java .time .LocalDateTime ;
25
26
import java .time .ZoneId ;
26
27
import java .time .format .DateTimeFormatter ;
28
+ import java .util .concurrent .Executor ;
27
29
28
30
/**
29
31
* @author cybrosis
@@ -54,4 +56,24 @@ public static String getTimestamp(LogCatHeader header) {
54
56
return LocalDateTime .ofInstant (instant , ZONE ).format (FORMATTER );
55
57
}
56
58
}
59
+
60
+ public static class EdtExecutorService {
61
+ public static Executor getInstance () {
62
+ try {
63
+ final Class <?> clazz = Class .forName ("com.intellij.util.concurrency.EdtExecutorService" );
64
+ final Method method = clazz .getDeclaredMethod ("getInstance" );
65
+ return (Executor ) method .invoke (null );
66
+ } catch (ReflectiveOperationException ignored ) {
67
+ try {
68
+ final Class <?> clazz = Class .forName ("com.android.tools.idea.concurrent.EdtExecutor" );
69
+ final Field field = clazz .getDeclaredField ("INSTANCE" );
70
+ return (Executor ) field .get (null );
71
+ } catch (ReflectiveOperationException e ) {
72
+ final NoClassDefFoundError error = new NoClassDefFoundError ("Either com.intellij.util.concurrency.EdtExecutorService or com.android.tools.idea.concurrent.EdtExecutor should exist" );
73
+ error .initCause (e );
74
+ throw error ;
75
+ }
76
+ }
77
+ }
78
+ }
57
79
}
You can’t perform that action at this time.
0 commit comments