Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
com.ccwangluo.accelerator
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sheteng
com.ccwangluo.accelerator
Commits
8bb82543
Commit
8bb82543
authored
Apr 14, 2019
by
Mygod
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update dependencies
parent
2c644f6b
Changes
16
Show whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
31 additions
and
31 deletions
+31
-31
build.gradle
build.gradle
+1
-1
core/build.gradle
core/build.gradle
+4
-7
core/src/main/java/com/github/shadowsocks/Core.kt
core/src/main/java/com/github/shadowsocks/Core.kt
+5
-0
core/src/main/java/com/github/shadowsocks/bg/BaseService.kt
core/src/main/java/com/github/shadowsocks/bg/BaseService.kt
+1
-1
core/src/main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt
...main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt
+3
-4
core/src/main/java/com/github/shadowsocks/bg/RemoteConfig.kt
core/src/main/java/com/github/shadowsocks/bg/RemoteConfig.kt
+2
-2
core/src/main/java/com/github/shadowsocks/net/ConcurrentLocalSocketListener.kt
...m/github/shadowsocks/net/ConcurrentLocalSocketListener.kt
+3
-4
core/src/main/java/com/github/shadowsocks/net/HttpsTest.kt
core/src/main/java/com/github/shadowsocks/net/HttpsTest.kt
+1
-1
core/src/main/java/com/github/shadowsocks/net/LocalDnsServer.kt
...rc/main/java/com/github/shadowsocks/net/LocalDnsServer.kt
+3
-4
gradle/wrapper/gradle-wrapper.jar
gradle/wrapper/gradle-wrapper.jar
+0
-0
gradle/wrapper/gradle-wrapper.properties
gradle/wrapper/gradle-wrapper.properties
+1
-1
gradlew
gradlew
+1
-1
gradlew.bat
gradlew.bat
+1
-1
mobile/build.gradle
mobile/build.gradle
+1
-1
mobile/src/main/java/com/github/shadowsocks/AppManager.kt
mobile/src/main/java/com/github/shadowsocks/AppManager.kt
+3
-2
tv/build.gradle
tv/build.gradle
+1
-1
No files found.
build.gradle
View file @
8bb82543
...
...
@@ -4,7 +4,7 @@ apply plugin: 'com.github.ben-manes.versions'
buildscript
{
ext
{
kotlinVersion
=
'1.3.
21
'
kotlinVersion
=
'1.3.
30
'
minSdkVersion
=
21
sdkVersion
=
28
compileSdkVersion
=
28
...
...
core/build.gradle
View file @
8bb82543
...
...
@@ -45,28 +45,25 @@ androidExtensions {
def
lifecycleVersion
=
'2.0.0'
def
roomVersion
=
'2.0.0'
def
workVersion
=
'1.0.0'
dependencies
{
api
project
(
':plugin'
)
api
"android.arch.work:work-runtime-ktx:$workVersion"
api
"androidx.lifecycle:lifecycle-extensions:$lifecycleVersion"
api
"androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycleVersion"
api
'androidx.preference:preference:1.0.0'
api
"androidx.room:room-runtime:$roomVersion"
api
'androidx.work:work-runtime-ktx:2.0.1'
api
'com.crashlytics.sdk.android:crashlytics:2.9.9'
api
'com.google.firebase:firebase-config:16.
4.1
'
api
'com.google.firebase:firebase-config:16.
5.0
'
api
'com.google.firebase:firebase-core:16.0.8'
api
"com.takisoft.preferencex:preferencex:$preferencexVersion"
api
'dnsjava:dnsjava:2.1.8'
api
'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.
1.1
'
api
'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.
2.0
'
api
'org.connectbot.jsocks:jsocks:1.0.0'
kapt
"androidx.lifecycle:lifecycle-compiler:$lifecycleVersion"
kapt
"androidx.room:room-compiler:$roomVersion"
testImplementation
"androidx.arch.core:core-testing:$lifecycleVersion"
testImplementation
"junit:junit:$junitVersion"
androidTestImplementation
"android.arch.work:work-testing:$workVersion"
androidTestImplementation
"androidx.room:room-testing:$roomVersion"
androidTestImplementation
"androidx.test:runner:$androidTestVersion"
androidTestImplementation
"androidx.test.espresso:espresso-core:$androidEspressoVersion"
androidTestImplementation
"androidx.test.ext:junit-ktx:1.1.0"
androidTestImplementation
'androidx.test.ext:junit-ktx:1.1.0'
}
core/src/main/java/com/github/shadowsocks/Core.kt
View file @
8bb82543
...
...
@@ -41,6 +41,7 @@ import androidx.work.WorkManager
import
com.crashlytics.android.Crashlytics
import
com.github.shadowsocks.acl.Acl
import
com.github.shadowsocks.aidl.ShadowsocksConnection
import
com.github.shadowsocks.core.BuildConfig
import
com.github.shadowsocks.core.R
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.ProfileManager
...
...
@@ -50,6 +51,8 @@ import com.github.shadowsocks.utils.*
import
com.google.firebase.FirebaseApp
import
com.google.firebase.analytics.FirebaseAnalytics
import
io.fabric.sdk.android.Fabric
import
kotlinx.coroutines.DEBUG_PROPERTY_NAME
import
kotlinx.coroutines.DEBUG_PROPERTY_VALUE_ON
import
java.io.File
import
java.io.IOException
import
kotlin.reflect.KClass
...
...
@@ -97,6 +100,8 @@ object Core {
}
}
// overhead of debug mode is minimal: https://github.com/Kotlin/kotlinx.coroutines/blob/f528898/docs/debugging.md#debug-mode
System
.
setProperty
(
DEBUG_PROPERTY_NAME
,
DEBUG_PROPERTY_VALUE_ON
)
Fabric
.
with
(
deviceStorage
,
Crashlytics
())
// multiple processes needs manual set-up
FirebaseApp
.
initializeApp
(
deviceStorage
)
WorkManager
.
initialize
(
deviceStorage
,
Configuration
.
Builder
().
build
())
...
...
core/src/main/java/com/github/shadowsocks/bg/BaseService.kt
View file @
8bb82543
...
...
@@ -254,7 +254,7 @@ object BaseService {
if
(
data
.
state
==
State
.
Stopping
)
return
// channge the state
data
.
changeState
(
State
.
Stopping
)
GlobalScope
.
launch
(
Dispatchers
.
Main
,
CoroutineStart
.
UNDISPATCHED
)
{
GlobalScope
.
launch
(
Dispatchers
.
Main
.
immediate
)
{
Core
.
analytics
.
logEvent
(
"stop"
,
bundleOf
(
Pair
(
FirebaseAnalytics
.
Param
.
METHOD
,
tag
)))
data
.
connectingJob
?.
cancelAndJoin
()
// ensure stop connecting first
this
@Interface
as
Service
...
...
core/src/main/java/com/github/shadowsocks/bg/GuardedProcessPool.kt
View file @
8bb82543
...
...
@@ -104,8 +104,7 @@ class GuardedProcessPool(private val onFatal: suspend (IOException) -> Unit) : C
}
}
private
val
job
=
Job
()
override
val
coroutineContext
get
()
=
Dispatchers
.
Main
+
job
override
val
coroutineContext
=
Dispatchers
.
Main
.
immediate
+
Job
()
@MainThread
fun
start
(
cmd
:
List
<
String
>,
onRestartCallback
:
(
suspend
()
->
Unit
)?
=
null
)
{
...
...
@@ -118,7 +117,7 @@ class GuardedProcessPool(private val onFatal: suspend (IOException) -> Unit) : C
@MainThread
fun
close
(
scope
:
CoroutineScope
)
{
job
.
cancel
()
scope
.
launch
{
job
.
join
()
}
cancel
()
coroutineContext
[
Job
]
!!
.
also
{
job
->
scope
.
launch
{
job
.
join
()
}
}
}
}
core/src/main/java/com/github/shadowsocks/bg/RemoteConfig.kt
View file @
8bb82543
...
...
@@ -37,13 +37,13 @@ object RemoteConfig {
}
fun
scheduleFetch
()
=
config
.
fetch
().
addOnCompleteListener
{
if
(
it
.
isSuccessful
)
config
.
activate
Fetched
()
else
it
.
exception
?.
log
()
if
(
it
.
isSuccessful
)
config
.
activate
()
else
it
.
exception
?.
log
()
}
suspend
fun
fetch
()
=
suspendCancellableCoroutine
<
Pair
<
FirebaseRemoteConfig
,
Boolean
>>
{
cont
->
config
.
fetch
().
addOnCompleteListener
{
if
(
it
.
isSuccessful
)
{
config
.
activate
Fetched
()
config
.
activate
()
cont
.
resume
(
config
to
true
)
}
else
{
it
.
exception
?.
log
()
...
...
core/src/main/java/com/github/shadowsocks/net/ConcurrentLocalSocketListener.kt
View file @
8bb82543
...
...
@@ -27,8 +27,7 @@ import java.io.File
abstract
class
ConcurrentLocalSocketListener
(
name
:
String
,
socketFile
:
File
)
:
LocalSocketListener
(
name
,
socketFile
),
CoroutineScope
{
private
val
job
=
SupervisorJob
()
override
val
coroutineContext
get
()
=
Dispatchers
.
IO
+
job
+
CoroutineExceptionHandler
{
_
,
t
->
printLog
(
t
)
}
override
val
coroutineContext
=
Dispatchers
.
IO
+
SupervisorJob
()
+
CoroutineExceptionHandler
{
_
,
t
->
printLog
(
t
)
}
override
fun
accept
(
socket
:
LocalSocket
)
{
launch
{
super
.
accept
(
socket
)
}
...
...
@@ -36,8 +35,8 @@ abstract class ConcurrentLocalSocketListener(name: String, socketFile: File) : L
override
fun
shutdown
(
scope
:
CoroutineScope
)
{
running
=
false
job
.
cancel
()
cancel
()
super
.
shutdown
(
scope
)
scope
.
launch
{
job
.
join
()
}
coroutineContext
[
Job
]
!!
.
also
{
job
->
scope
.
launch
{
job
.
join
()
}
}
}
}
core/src/main/java/com/github/shadowsocks/net/HttpsTest.kt
View file @
8bb82543
...
...
@@ -91,7 +91,7 @@ class HttpsTest : ViewModel() {
conn
.
setRequestProperty
(
"Connection"
,
"close"
)
conn
.
instanceFollowRedirects
=
false
conn
.
useCaches
=
false
running
=
conn
to
GlobalScope
.
launch
(
Dispatchers
.
Main
,
CoroutineStart
.
UNDISPATCHED
)
{
running
=
conn
to
GlobalScope
.
launch
(
Dispatchers
.
Main
.
immediate
)
{
status
.
value
=
withContext
(
Dispatchers
.
IO
)
{
try
{
val
start
=
SystemClock
.
elapsedRealtime
()
...
...
core/src/main/java/com/github/shadowsocks/net/LocalDnsServer.kt
View file @
8bb82543
...
...
@@ -73,8 +73,7 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array<InetAd
}
private
val
monitor
=
ChannelMonitor
()
private
val
job
=
SupervisorJob
()
override
val
coroutineContext
=
job
+
CoroutineExceptionHandler
{
_
,
t
->
printLog
(
t
)
}
override
val
coroutineContext
=
SupervisorJob
()
+
CoroutineExceptionHandler
{
_
,
t
->
printLog
(
t
)
}
suspend
fun
start
(
listen
:
SocketAddress
)
=
DatagramChannel
.
open
().
run
{
configureBlocking
(
false
)
...
...
@@ -170,8 +169,8 @@ class LocalDnsServer(private val localResolver: suspend (String) -> Array<InetAd
}
fun
shutdown
(
scope
:
CoroutineScope
)
{
job
.
cancel
()
cancel
()
monitor
.
close
(
scope
)
scope
.
launch
{
job
.
join
()
}
coroutineContext
[
Job
]
!!
.
also
{
job
->
scope
.
launch
{
job
.
join
()
}
}
}
}
gradle/wrapper/gradle-wrapper.jar
View file @
8bb82543
No preview for this file type
gradle/wrapper/gradle-wrapper.properties
View file @
8bb82543
distributionBase
=
GRADLE_USER_HOME
distributionPath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-5.3.1-all.zip
zipStoreBase
=
GRADLE_USER_HOME
zipStorePath
=
wrapper/dists
distributionUrl
=
https
\:
//services.gradle.org/distributions/gradle-5.2.1-all.zip
gradlew
View file @
8bb82543
...
...
@@ -28,7 +28,7 @@ APP_NAME="Gradle"
APP_BASE_NAME
=
`
basename
"
$0
"
`
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS
=
""
DEFAULT_JVM_OPTS
=
'"-Xmx64m"'
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD
=
"maximum"
...
...
gradlew.bat
View file @
8bb82543
...
...
@@ -14,7 +14,7 @@ set APP_BASE_NAME=%~n0
set
APP_HOME
=
%DIRNAME%
@rem
Add
default
JVM
options
here
.
You
can
also
use
JAVA_OPTS
and
GRADLE_OPTS
to
pass
JVM
options
to
this
script
.
set
DEFAULT_JVM_OPTS
=
set
DEFAULT_JVM_OPTS
=
"-Xmx64m"
@rem
Find
java
.exe
if
defined
JAVA_HOME
goto
findJavaFromJavaHome
...
...
mobile/build.gradle
View file @
8bb82543
...
...
@@ -39,7 +39,7 @@ android {
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
}
lintOptions
.
checkReleaseBuilds
false
packagingOptions
.
exclude
'**/*.kotlin_*'
splits
{
abi
{
enable
true
...
...
mobile/src/main/java/com/github/shadowsocks/AppManager.kt
View file @
8bb82543
...
...
@@ -53,6 +53,7 @@ import com.google.android.material.snackbar.Snackbar
import
kotlinx.android.synthetic.main.layout_apps.*
import
kotlinx.android.synthetic.main.layout_apps_item.view.*
import
kotlinx.coroutines.*
import
kotlin.coroutines.coroutineContext
class
AppManager
:
AppCompatActivity
()
{
companion
object
{
...
...
@@ -125,7 +126,7 @@ class AppManager : AppCompatActivity() {
suspend
fun
reload
()
{
apps
=
getCachedApps
(
packageManager
).
map
{
(
packageName
,
packageInfo
)
->
yield
()
coroutineContext
[
Job
]
!!
.
ensureActive
()
ProxiedApp
(
packageManager
,
packageInfo
.
applicationInfo
,
packageName
)
}.
sortedWith
(
compareBy
({
!
isProxiedApp
(
it
)
},
{
it
.
name
.
toString
()
}))
}
...
...
@@ -196,7 +197,7 @@ class AppManager : AppCompatActivity() {
@UiThread
private
fun
loadApps
()
{
loader
?.
cancel
()
loader
=
GlobalScope
.
launch
(
Dispatchers
.
Main
,
CoroutineStart
.
UNDISPATCHED
)
{
loader
=
GlobalScope
.
launch
(
Dispatchers
.
Main
.
immediate
)
{
loading
.
crossFadeFrom
(
list
)
val
adapter
=
list
.
adapter
as
AppsAdapter
withContext
(
Dispatchers
.
IO
)
{
adapter
.
reload
()
}
...
...
tv/build.gradle
View file @
8bb82543
...
...
@@ -38,7 +38,7 @@ android {
proguardFiles
getDefaultProguardFile
(
'proguard-android.txt'
),
'proguard-rules.pro'
}
}
lintOptions
.
checkReleaseBuilds
false
packagingOptions
.
exclude
'**/*.kotlin_*'
splits
{
abi
{
enable
true
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment