From 26fb0e5e3c6c86f8a3d3df686df721ecc551c9d2 Mon Sep 17 00:00:00 2001 From: Mygod Date: Sun, 4 Feb 2018 03:35:10 -0800 Subject: [PATCH] Prevent ANR for TFO --- mobile/src/main/java/com/github/shadowsocks/App.kt | 2 +- .../src/main/java/com/github/shadowsocks/utils/TcpFastOpen.kt | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/mobile/src/main/java/com/github/shadowsocks/App.kt b/mobile/src/main/java/com/github/shadowsocks/App.kt index f3ddbfc5..67886b18 100644 --- a/mobile/src/main/java/com/github/shadowsocks/App.kt +++ b/mobile/src/main/java/com/github/shadowsocks/App.kt @@ -137,7 +137,7 @@ class App : Application() { // handle data restored if (DataStore.directBootAware && UserManagerCompat.isUserUnlocked(this)) DirectBoot.update() - TcpFastOpen.enabled(DataStore.publicStore.getBoolean(Key.tfo, TcpFastOpen.sendEnabled)) + TcpFastOpen.enabledAsync(DataStore.publicStore.getBoolean(Key.tfo, TcpFastOpen.sendEnabled)) if (DataStore.publicStore.getLong(Key.assetUpdateTime, -1) != info.lastUpdateTime) { val assetManager = assets for (dir in arrayOf("acl", "overture")) diff --git a/mobile/src/main/java/com/github/shadowsocks/utils/TcpFastOpen.kt b/mobile/src/main/java/com/github/shadowsocks/utils/TcpFastOpen.kt index 49c2781d..b2f036ea 100644 --- a/mobile/src/main/java/com/github/shadowsocks/utils/TcpFastOpen.kt +++ b/mobile/src/main/java/com/github/shadowsocks/utils/TcpFastOpen.kt @@ -52,4 +52,5 @@ object TcpFastOpen { "else", " echo Failed.", "fi"), null, true)?.joinToString("\n") + fun enabledAsync(value: Boolean) = thread { enabled(value) }.join(1000) }