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
1c9f1f8f
Commit
1c9f1f8f
authored
May 22, 2019
by
Mygod
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Do not restart service if it was stopped before
parent
bd9f6140
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
19 additions
and
8 deletions
+19
-8
core/src/main/java/com/github/shadowsocks/BootReceiver.kt
core/src/main/java/com/github/shadowsocks/BootReceiver.kt
+4
-0
core/src/main/java/com/github/shadowsocks/bg/BaseService.kt
core/src/main/java/com/github/shadowsocks/bg/BaseService.kt
+7
-1
core/src/main/java/com/github/shadowsocks/bg/TrafficMonitor.kt
...src/main/java/com/github/shadowsocks/bg/TrafficMonitor.kt
+0
-1
core/src/main/java/com/github/shadowsocks/preference/DataStore.kt
.../main/java/com/github/shadowsocks/preference/DataStore.kt
+4
-0
core/src/main/java/com/github/shadowsocks/utils/Constants.kt
core/src/main/java/com/github/shadowsocks/utils/Constants.kt
+1
-1
core/src/main/res/values/strings.xml
core/src/main/res/values/strings.xml
+1
-1
mobile/src/main/java/com/github/shadowsocks/GlobalSettingsPreferenceFragment.kt
...om/github/shadowsocks/GlobalSettingsPreferenceFragment.kt
+1
-1
mobile/src/main/res/xml/pref_global.xml
mobile/src/main/res/xml/pref_global.xml
+0
-1
tv/src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt
.../java/com/github/shadowsocks/tv/MainPreferenceFragment.kt
+1
-1
tv/src/main/res/xml/pref_main.xml
tv/src/main/res/xml/pref_main.xml
+0
-1
No files found.
core/src/main/java/com/github/shadowsocks/BootReceiver.kt
View file @
1c9f1f8f
...
@@ -43,6 +43,10 @@ class BootReceiver : BroadcastReceiver() {
...
@@ -43,6 +43,10 @@ class BootReceiver : BroadcastReceiver() {
}
}
override
fun
onReceive
(
context
:
Context
,
intent
:
Intent
)
{
override
fun
onReceive
(
context
:
Context
,
intent
:
Intent
)
{
if
(!
DataStore
.
persistAcrossReboot
)
{
// sanity check
enabled
=
false
return
}
val
doStart
=
when
(
intent
.
action
)
{
val
doStart
=
when
(
intent
.
action
)
{
Intent
.
ACTION_BOOT_COMPLETED
->
!
DataStore
.
directBootAware
Intent
.
ACTION_BOOT_COMPLETED
->
!
DataStore
.
directBootAware
Intent
.
ACTION_LOCKED_BOOT_COMPLETED
->
DataStore
.
directBootAware
Intent
.
ACTION_LOCKED_BOOT_COMPLETED
->
DataStore
.
directBootAware
...
...
core/src/main/java/com/github/shadowsocks/bg/BaseService.kt
View file @
1c9f1f8f
...
@@ -29,6 +29,7 @@ import android.util.Log
...
@@ -29,6 +29,7 @@ import android.util.Log
import
androidx.core.content.getSystemService
import
androidx.core.content.getSystemService
import
androidx.core.os.bundleOf
import
androidx.core.os.bundleOf
import
com.crashlytics.android.Crashlytics
import
com.crashlytics.android.Crashlytics
import
com.github.shadowsocks.BootReceiver
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core.app
import
com.github.shadowsocks.Core.app
import
com.github.shadowsocks.aidl.IShadowsocksService
import
com.github.shadowsocks.aidl.IShadowsocksService
...
@@ -36,6 +37,7 @@ import com.github.shadowsocks.aidl.IShadowsocksServiceCallback
...
@@ -36,6 +37,7 @@ import com.github.shadowsocks.aidl.IShadowsocksServiceCallback
import
com.github.shadowsocks.aidl.TrafficStats
import
com.github.shadowsocks.aidl.TrafficStats
import
com.github.shadowsocks.core.R
import
com.github.shadowsocks.core.R
import
com.github.shadowsocks.plugin.PluginManager
import
com.github.shadowsocks.plugin.PluginManager
import
com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.utils.Action
import
com.github.shadowsocks.utils.Action
import
com.github.shadowsocks.utils.broadcastReceiver
import
com.github.shadowsocks.utils.broadcastReceiver
import
com.github.shadowsocks.utils.printLog
import
com.github.shadowsocks.utils.printLog
...
@@ -285,7 +287,10 @@ object BaseService {
...
@@ -285,7 +287,10 @@ object BaseService {
data
.
changeState
(
State
.
Stopped
,
msg
)
data
.
changeState
(
State
.
Stopped
,
msg
)
// stop the service if nothing has bound to it
// stop the service if nothing has bound to it
if
(
restart
)
startRunner
()
else
stopSelf
()
if
(
restart
)
startRunner
()
else
{
BootReceiver
.
enabled
=
false
stopSelf
()
}
}
}
}
}
...
@@ -313,6 +318,7 @@ object BaseService {
...
@@ -313,6 +318,7 @@ object BaseService {
data
.
proxy
=
proxy
data
.
proxy
=
proxy
data
.
udpFallback
=
if
(
fallback
==
null
)
null
else
ProxyInstance
(
fallback
,
profile
.
route
)
data
.
udpFallback
=
if
(
fallback
==
null
)
null
else
ProxyInstance
(
fallback
,
profile
.
route
)
BootReceiver
.
enabled
=
DataStore
.
persistAcrossReboot
if
(!
data
.
closeReceiverRegistered
)
{
if
(!
data
.
closeReceiverRegistered
)
{
registerReceiver
(
data
.
closeReceiver
,
IntentFilter
().
apply
{
registerReceiver
(
data
.
closeReceiver
,
IntentFilter
().
apply
{
addAction
(
Action
.
RELOAD
)
addAction
(
Action
.
RELOAD
)
...
...
core/src/main/java/com/github/shadowsocks/bg/TrafficMonitor.kt
View file @
1c9f1f8f
...
@@ -29,7 +29,6 @@ import com.github.shadowsocks.preference.DataStore
...
@@ -29,7 +29,6 @@ import com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.utils.DirectBoot
import
com.github.shadowsocks.utils.DirectBoot
import
java.io.File
import
java.io.File
import
java.io.IOException
import
java.io.IOException
import
java.lang.IllegalStateException
import
java.nio.ByteBuffer
import
java.nio.ByteBuffer
import
java.nio.ByteOrder
import
java.nio.ByteOrder
...
...
core/src/main/java/com/github/shadowsocks/preference/DataStore.kt
View file @
1c9f1f8f
...
@@ -22,6 +22,7 @@ package com.github.shadowsocks.preference
...
@@ -22,6 +22,7 @@ package com.github.shadowsocks.preference
import
android.os.Binder
import
android.os.Binder
import
androidx.preference.PreferenceDataStore
import
androidx.preference.PreferenceDataStore
import
com.github.shadowsocks.BootReceiver
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.database.PrivateDatabase
import
com.github.shadowsocks.database.PrivateDatabase
import
com.github.shadowsocks.database.PublicDatabase
import
com.github.shadowsocks.database.PublicDatabase
...
@@ -61,6 +62,8 @@ object DataStore : OnPreferenceDataStoreChangeListener {
...
@@ -61,6 +62,8 @@ object DataStore : OnPreferenceDataStoreChangeListener {
var
profileId
:
Long
var
profileId
:
Long
get
()
=
publicStore
.
getLong
(
Key
.
id
)
?:
0
get
()
=
publicStore
.
getLong
(
Key
.
id
)
?:
0
set
(
value
)
=
publicStore
.
putLong
(
Key
.
id
,
value
)
set
(
value
)
=
publicStore
.
putLong
(
Key
.
id
,
value
)
val
persistAcrossReboot
get
()
=
publicStore
.
getBoolean
(
Key
.
persistAcrossReboot
)
?:
BootReceiver
.
enabled
.
also
{
publicStore
.
putBoolean
(
Key
.
persistAcrossReboot
,
it
)
}
val
canToggleLocked
:
Boolean
get
()
=
publicStore
.
getBoolean
(
Key
.
directBootAware
)
==
true
val
canToggleLocked
:
Boolean
get
()
=
publicStore
.
getBoolean
(
Key
.
directBootAware
)
==
true
val
directBootAware
:
Boolean
get
()
=
Core
.
directBootSupported
&&
canToggleLocked
val
directBootAware
:
Boolean
get
()
=
Core
.
directBootSupported
&&
canToggleLocked
val
tcpFastOpen
:
Boolean
get
()
=
TcpFastOpen
.
sendEnabled
&&
DataStore
.
publicStore
.
getBoolean
(
Key
.
tfo
,
true
)
val
tcpFastOpen
:
Boolean
get
()
=
TcpFastOpen
.
sendEnabled
&&
DataStore
.
publicStore
.
getBoolean
(
Key
.
tfo
,
true
)
...
@@ -101,6 +104,7 @@ object DataStore : OnPreferenceDataStoreChangeListener {
...
@@ -101,6 +104,7 @@ object DataStore : OnPreferenceDataStoreChangeListener {
* Initialize settings that have complicated default values.
* Initialize settings that have complicated default values.
*/
*/
fun
initGlobal
()
{
fun
initGlobal
()
{
persistAcrossReboot
if
(
publicStore
.
getBoolean
(
Key
.
tfo
)
==
null
)
publicStore
.
putBoolean
(
Key
.
tfo
,
tcpFastOpen
)
if
(
publicStore
.
getBoolean
(
Key
.
tfo
)
==
null
)
publicStore
.
putBoolean
(
Key
.
tfo
,
tcpFastOpen
)
if
(
publicStore
.
getString
(
Key
.
portProxy
)
==
null
)
portProxy
=
portProxy
if
(
publicStore
.
getString
(
Key
.
portProxy
)
==
null
)
portProxy
=
portProxy
if
(
publicStore
.
getString
(
Key
.
portLocalDns
)
==
null
)
portLocalDns
=
portLocalDns
if
(
publicStore
.
getString
(
Key
.
portLocalDns
)
==
null
)
portLocalDns
=
portLocalDns
...
...
core/src/main/java/com/github/shadowsocks/utils/Constants.kt
View file @
1c9f1f8f
...
@@ -43,7 +43,7 @@ object Key {
...
@@ -43,7 +43,7 @@ object Key {
const
val
route
=
"route"
const
val
route
=
"route"
const
val
isAutoConnec
t
=
"isAutoConnect"
const
val
persistAcrossReboo
t
=
"isAutoConnect"
const
val
directBootAware
=
"directBootAware"
const
val
directBootAware
=
"directBootAware"
const
val
proxyApps
=
"isProxyApps"
const
val
proxyApps
=
"isProxyApps"
...
...
core/src/main/res/values/strings.xml
View file @
1c9f1f8f
...
@@ -53,7 +53,7 @@
...
@@ -53,7 +53,7 @@
<string
name=
"bypass_apps"
>
Bypass
</string>
<string
name=
"bypass_apps"
>
Bypass
</string>
<string
name=
"bypass_apps_summary"
>
Enable this option to bypass selected apps
</string>
<string
name=
"bypass_apps_summary"
>
Enable this option to bypass selected apps
</string>
<string
name=
"auto_connect"
>
Auto Connect
</string>
<string
name=
"auto_connect"
>
Auto Connect
</string>
<string
name=
"auto_connect_summary"
>
Enable Shadowsocks on startup
</string>
<string
name=
"auto_connect_summary"
>
Enable Shadowsocks on startup
/app update if it was running before
</string>
<string
name=
"direct_boot_aware"
>
Allow Toggling in Lock Screen
</string>
<string
name=
"direct_boot_aware"
>
Allow Toggling in Lock Screen
</string>
<string
name=
"direct_boot_aware_summary"
>
Your selected profile information will be less protected
</string>
<string
name=
"direct_boot_aware_summary"
>
Your selected profile information will be less protected
</string>
<string
name=
"tcp_fastopen_summary"
>
Toggling might require ROOT permission
</string>
<string
name=
"tcp_fastopen_summary"
>
Toggling might require ROOT permission
</string>
...
...
mobile/src/main/java/com/github/shadowsocks/GlobalSettingsPreferenceFragment.kt
View file @
1c9f1f8f
...
@@ -37,7 +37,7 @@ class GlobalSettingsPreferenceFragment : PreferenceFragmentCompat() {
...
@@ -37,7 +37,7 @@ class GlobalSettingsPreferenceFragment : PreferenceFragmentCompat() {
preferenceManager
.
preferenceDataStore
=
DataStore
.
publicStore
preferenceManager
.
preferenceDataStore
=
DataStore
.
publicStore
DataStore
.
initGlobal
()
DataStore
.
initGlobal
()
addPreferencesFromResource
(
R
.
xml
.
pref_global
)
addPreferencesFromResource
(
R
.
xml
.
pref_global
)
val
boot
=
findPreference
(
Key
.
isAutoConnec
t
)
as
SwitchPreference
val
boot
=
findPreference
(
Key
.
persistAcrossReboo
t
)
as
SwitchPreference
boot
.
setOnPreferenceChangeListener
{
_
,
value
->
boot
.
setOnPreferenceChangeListener
{
_
,
value
->
BootReceiver
.
enabled
=
value
as
Boolean
BootReceiver
.
enabled
=
value
as
Boolean
true
true
...
...
mobile/src/main/res/xml/pref_global.xml
View file @
1c9f1f8f
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
android:key=
"settings_screen"
android:key=
"settings_screen"
app:initialExpandedChildrenCount=
"3"
>
app:initialExpandedChildrenCount=
"3"
>
<SwitchPreference
android:key=
"isAutoConnect"
<SwitchPreference
android:key=
"isAutoConnect"
android:persistent=
"false"
android:summary=
"@string/auto_connect_summary"
android:summary=
"@string/auto_connect_summary"
android:title=
"@string/auto_connect"
/>
android:title=
"@string/auto_connect"
/>
<SwitchPreference
<SwitchPreference
...
...
tv/src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt
View file @
1c9f1f8f
...
@@ -161,7 +161,7 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -161,7 +161,7 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
stats
=
findPreference
(
Key
.
controlStats
)
stats
=
findPreference
(
Key
.
controlStats
)
controlImport
=
findPreference
(
Key
.
controlImport
)
controlImport
=
findPreference
(
Key
.
controlImport
)
(
findPreference
(
Key
.
isAutoConnec
t
)
as
SwitchPreference
).
apply
{
(
findPreference
(
Key
.
persistAcrossReboo
t
)
as
SwitchPreference
).
apply
{
setOnPreferenceChangeListener
{
_
,
value
->
setOnPreferenceChangeListener
{
_
,
value
->
BootReceiver
.
enabled
=
value
as
Boolean
BootReceiver
.
enabled
=
value
as
Boolean
true
true
...
...
tv/src/main/res/xml/pref_main.xml
View file @
1c9f1f8f
...
@@ -25,7 +25,6 @@
...
@@ -25,7 +25,6 @@
app:initialExpandedChildrenCount=
"2"
>
app:initialExpandedChildrenCount=
"2"
>
<SwitchPreference
<SwitchPreference
android:key=
"isAutoConnect"
android:key=
"isAutoConnect"
android:persistent=
"false"
android:summary=
"@string/auto_connect_summary"
android:summary=
"@string/auto_connect_summary"
android:title=
"@string/auto_connect"
/>
android:title=
"@string/auto_connect"
/>
<SwitchPreference
<SwitchPreference
...
...
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