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
83704994
Commit
83704994
authored
Mar 16, 2019
by
Mygod
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add hosts to TV
parent
420397fd
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
27 deletions
+45
-27
mobile/src/main/java/com/github/shadowsocks/GlobalSettingsPreferenceFragment.kt
...om/github/shadowsocks/GlobalSettingsPreferenceFragment.kt
+2
-1
mobile/src/main/java/com/github/shadowsocks/preference/BrowsableEditTextPreferenceDialogFragment.kt
...s/preference/BrowsableEditTextPreferenceDialogFragment.kt
+3
-3
tv/src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt
.../java/com/github/shadowsocks/tv/MainPreferenceFragment.kt
+36
-22
tv/src/main/res/xml/pref_main.xml
tv/src/main/res/xml/pref_main.xml
+4
-1
No files found.
mobile/src/main/java/com/github/shadowsocks/GlobalSettingsPreferenceFragment.kt
View file @
83704994
...
@@ -36,6 +36,7 @@ import com.github.shadowsocks.net.TcpFastOpen
...
@@ -36,6 +36,7 @@ import com.github.shadowsocks.net.TcpFastOpen
import
com.github.shadowsocks.preference.BrowsableEditTextPreferenceDialogFragment
import
com.github.shadowsocks.preference.BrowsableEditTextPreferenceDialogFragment
import
com.github.shadowsocks.preference.EditTextPreferenceModifiers
import
com.github.shadowsocks.preference.EditTextPreferenceModifiers
import
com.github.shadowsocks.preference.HostsSummaryProvider
import
com.github.shadowsocks.preference.HostsSummaryProvider
import
com.github.shadowsocks.utils.readableMessage
import
com.github.shadowsocks.utils.remove
import
com.github.shadowsocks.utils.remove
class
GlobalSettingsPreferenceFragment
:
PreferenceFragmentCompat
()
{
class
GlobalSettingsPreferenceFragment
:
PreferenceFragmentCompat
()
{
...
@@ -133,7 +134,7 @@ class GlobalSettingsPreferenceFragment : PreferenceFragmentCompat() {
...
@@ -133,7 +134,7 @@ class GlobalSettingsPreferenceFragment : PreferenceFragmentCompat() {
// we read and persist all its content here to avoid content URL permission issues
// we read and persist all its content here to avoid content URL permission issues
hosts
.
text
=
activity
.
contentResolver
.
openInputStream
(
data
!!
.
data
!!
)
!!
.
bufferedReader
().
readText
()
hosts
.
text
=
activity
.
contentResolver
.
openInputStream
(
data
!!
.
data
!!
)
!!
.
bufferedReader
().
readText
()
}
catch
(
e
:
RuntimeException
)
{
}
catch
(
e
:
RuntimeException
)
{
activity
.
snackbar
(
e
.
localized
Message
).
show
()
activity
.
snackbar
(
e
.
readable
Message
).
show
()
}
}
}
}
else
->
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
else
->
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
...
...
mobile/src/main/java/com/github/shadowsocks/preference/BrowsableEditTextPreferenceDialogFragment.kt
View file @
83704994
...
@@ -26,6 +26,7 @@ import android.view.View
...
@@ -26,6 +26,7 @@ import android.view.View
import
androidx.appcompat.app.AlertDialog
import
androidx.appcompat.app.AlertDialog
import
androidx.core.os.bundleOf
import
androidx.core.os.bundleOf
import
androidx.preference.EditTextPreferenceDialogFragmentCompat
import
androidx.preference.EditTextPreferenceDialogFragmentCompat
import
com.github.shadowsocks.MainActivity
import
com.github.shadowsocks.R
import
com.github.shadowsocks.R
import
com.google.android.material.snackbar.Snackbar
import
com.google.android.material.snackbar.Snackbar
...
@@ -37,7 +38,7 @@ class BrowsableEditTextPreferenceDialogFragment : EditTextPreferenceDialogFragme
...
@@ -37,7 +38,7 @@ class BrowsableEditTextPreferenceDialogFragment : EditTextPreferenceDialogFragme
override
fun
onPrepareDialogBuilder
(
builder
:
AlertDialog
.
Builder
)
{
override
fun
onPrepareDialogBuilder
(
builder
:
AlertDialog
.
Builder
)
{
super
.
onPrepareDialogBuilder
(
builder
)
super
.
onPrepareDialogBuilder
(
builder
)
builder
.
setNeutralButton
(
R
.
string
.
browse
)
{
_
,
_
->
builder
.
setNeutralButton
(
R
.
string
.
browse
)
{
_
,
_
->
val
activity
=
requireActivity
()
val
activity
=
activity
as
MainActivity
try
{
try
{
targetFragment
!!
.
startActivityForResult
(
Intent
(
Intent
.
ACTION_GET_CONTENT
).
apply
{
targetFragment
!!
.
startActivityForResult
(
Intent
(
Intent
.
ACTION_GET_CONTENT
).
apply
{
addCategory
(
Intent
.
CATEGORY_OPENABLE
)
addCategory
(
Intent
.
CATEGORY_OPENABLE
)
...
@@ -45,8 +46,7 @@ class BrowsableEditTextPreferenceDialogFragment : EditTextPreferenceDialogFragme
...
@@ -45,8 +46,7 @@ class BrowsableEditTextPreferenceDialogFragment : EditTextPreferenceDialogFragme
},
targetRequestCode
)
},
targetRequestCode
)
return
@setNeutralButton
return
@setNeutralButton
}
catch
(
_
:
ActivityNotFoundException
)
{
}
catch
(
_
:
SecurityException
)
{
}
}
catch
(
_
:
ActivityNotFoundException
)
{
}
catch
(
_
:
SecurityException
)
{
}
Snackbar
.
make
(
activity
.
findViewById
<
View
>(
R
.
id
.
content
),
activity
.
snackbar
(
activity
.
getString
(
R
.
string
.
file_manager_missing
)).
show
()
R
.
string
.
file_manager_missing
,
Snackbar
.
LENGTH_SHORT
).
show
()
}
}
}
}
}
}
tv/src/main/java/com/github/shadowsocks/tv/MainPreferenceFragment.kt
View file @
83704994
...
@@ -48,6 +48,7 @@ import com.github.shadowsocks.net.HttpsTest
...
@@ -48,6 +48,7 @@ import com.github.shadowsocks.net.HttpsTest
import
com.github.shadowsocks.net.TcpFastOpen
import
com.github.shadowsocks.net.TcpFastOpen
import
com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.preference.EditTextPreferenceModifiers
import
com.github.shadowsocks.preference.EditTextPreferenceModifiers
import
com.github.shadowsocks.preference.HostsSummaryProvider
import
com.github.shadowsocks.preference.OnPreferenceDataStoreChangeListener
import
com.github.shadowsocks.preference.OnPreferenceDataStoreChangeListener
import
com.github.shadowsocks.utils.Key
import
com.github.shadowsocks.utils.Key
import
com.github.shadowsocks.utils.datas
import
com.github.shadowsocks.utils.datas
...
@@ -60,12 +61,14 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -60,12 +61,14 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
private
const
val
REQUEST_CONNECT
=
1
private
const
val
REQUEST_CONNECT
=
1
private
const
val
REQUEST_REPLACE_PROFILES
=
2
private
const
val
REQUEST_REPLACE_PROFILES
=
2
private
const
val
REQUEST_EXPORT_PROFILES
=
3
private
const
val
REQUEST_EXPORT_PROFILES
=
3
private
const
val
REQUEST_HOSTS
=
4
private
const
val
TAG
=
"MainPreferenceFragment"
private
const
val
TAG
=
"MainPreferenceFragment"
}
}
private
lateinit
var
fab
:
ListPreference
private
lateinit
var
fab
:
ListPreference
private
lateinit
var
stats
:
Preference
private
lateinit
var
stats
:
Preference
private
lateinit
var
controlImport
:
Preference
private
lateinit
var
controlImport
:
Preference
private
lateinit
var
hosts
:
EditTextPreference
private
lateinit
var
serviceMode
:
Preference
private
lateinit
var
serviceMode
:
Preference
private
lateinit
var
tfo
:
SwitchPreference
private
lateinit
var
tfo
:
SwitchPreference
private
lateinit
var
shareOverLan
:
Preference
private
lateinit
var
shareOverLan
:
Preference
...
@@ -79,6 +82,7 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -79,6 +82,7 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
Key
.
modeTransproxy
->
Pair
(
true
,
true
)
Key
.
modeTransproxy
->
Pair
(
true
,
true
)
else
->
throw
IllegalArgumentException
(
"newValue: $newValue"
)
else
->
throw
IllegalArgumentException
(
"newValue: $newValue"
)
}
}
hosts
.
isEnabled
=
enabledLocalDns
portLocalDns
.
isEnabled
=
enabledLocalDns
portLocalDns
.
isEnabled
=
enabledLocalDns
portTransproxy
.
isEnabled
=
enabledTransproxy
portTransproxy
.
isEnabled
=
enabledTransproxy
true
true
...
@@ -118,19 +122,13 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -118,19 +122,13 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
})
})
if
(
msg
!=
null
)
Toast
.
makeText
(
requireContext
(),
getString
(
R
.
string
.
vpn_error
,
msg
),
Toast
.
LENGTH_SHORT
).
show
()
if
(
msg
!=
null
)
Toast
.
makeText
(
requireContext
(),
getString
(
R
.
string
.
vpn_error
,
msg
),
Toast
.
LENGTH_SHORT
).
show
()
this
.
state
=
state
this
.
state
=
state
if
(
state
==
BaseService
.
State
.
Stopped
)
{
val
stopped
=
state
==
BaseService
.
State
.
Stopped
controlImport
.
isEnabled
=
true
controlImport
.
isEnabled
=
stopped
tfo
.
isEnabled
=
true
tfo
.
isEnabled
=
stopped
serviceMode
.
isEnabled
=
true
serviceMode
.
isEnabled
=
stopped
shareOverLan
.
isEnabled
=
true
shareOverLan
.
isEnabled
=
stopped
portProxy
.
isEnabled
=
true
portProxy
.
isEnabled
=
stopped
onServiceModeChange
.
onPreferenceChange
(
null
,
DataStore
.
serviceMode
)
if
(
stopped
)
onServiceModeChange
.
onPreferenceChange
(
null
,
DataStore
.
serviceMode
)
else
{
}
else
{
controlImport
.
isEnabled
=
false
tfo
.
isEnabled
=
false
serviceMode
.
isEnabled
=
false
shareOverLan
.
isEnabled
=
false
portProxy
.
isEnabled
=
false
portLocalDns
.
isEnabled
=
false
portLocalDns
.
isEnabled
=
false
portTransproxy
.
isEnabled
=
false
portTransproxy
.
isEnabled
=
false
}
}
...
@@ -183,6 +181,8 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -183,6 +181,8 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
tfo
.
summary
=
getString
(
R
.
string
.
tcp_fastopen_summary_unsupported
,
System
.
getProperty
(
"os.version"
))
tfo
.
summary
=
getString
(
R
.
string
.
tcp_fastopen_summary_unsupported
,
System
.
getProperty
(
"os.version"
))
}
}
hosts
=
findPreference
(
Key
.
hosts
)
!!
hosts
.
summaryProvider
=
HostsSummaryProvider
serviceMode
=
findPreference
(
Key
.
serviceMode
)
!!
serviceMode
=
findPreference
(
Key
.
serviceMode
)
!!
shareOverLan
=
findPreference
(
Key
.
shareOverLan
)
!!
shareOverLan
=
findPreference
(
Key
.
shareOverLan
)
!!
portProxy
=
findPreference
(
Key
.
portProxy
)
!!
portProxy
=
findPreference
(
Key
.
portProxy
)
!!
...
@@ -192,13 +192,7 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -192,13 +192,7 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
portTransproxy
=
findPreference
(
Key
.
portTransproxy
)
!!
portTransproxy
=
findPreference
(
Key
.
portTransproxy
)
!!
portTransproxy
.
onBindEditTextListener
=
EditTextPreferenceModifiers
.
Port
portTransproxy
.
onBindEditTextListener
=
EditTextPreferenceModifiers
.
Port
serviceMode
.
onPreferenceChangeListener
=
onServiceModeChange
serviceMode
.
onPreferenceChangeListener
=
onServiceModeChange
findPreference
<
Preference
>(
Key
.
about
)
!!
.
apply
{
findPreference
<
Preference
>(
Key
.
about
)
!!
.
summary
=
getString
(
R
.
string
.
about_title
,
BuildConfig
.
VERSION_NAME
)
summary
=
getString
(
R
.
string
.
about_title
,
BuildConfig
.
VERSION_NAME
)
setOnPreferenceClickListener
{
Toast
.
makeText
(
requireContext
(),
"https://shadowsocks.org/android"
,
Toast
.
LENGTH_SHORT
).
show
()
true
}
}
tester
=
ViewModelProviders
.
of
(
this
).
get
()
tester
=
ViewModelProviders
.
of
(
this
).
get
()
changeState
(
BaseService
.
State
.
Idle
)
// reset everything to init state
changeState
(
BaseService
.
State
.
Idle
)
// reset everything to init state
...
@@ -274,15 +268,25 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -274,15 +268,25 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
},
REQUEST_EXPORT_PROFILES
)
},
REQUEST_EXPORT_PROFILES
)
true
true
}
}
Key
.
about
->
{
Toast
.
makeText
(
requireContext
(),
"https://shadowsocks.org/android"
,
Toast
.
LENGTH_SHORT
).
show
()
true
}
else
->
super
.
onPreferenceTreeClick
(
preference
)
else
->
super
.
onPreferenceTreeClick
(
preference
)
}
}
private
fun
startFilesForResult
(
intent
:
Intent
,
requestCode
:
Int
)
{
override
fun
onDisplayPreferenceDialog
(
preference
:
Preference
?)
{
if
(
preference
!=
hosts
||
startFilesForResult
(
Intent
(
Intent
.
ACTION_GET_CONTENT
).
setType
(
"*/*"
),
REQUEST_HOSTS
))
super
.
onDisplayPreferenceDialog
(
preference
)
}
private
fun
startFilesForResult
(
intent
:
Intent
,
requestCode
:
Int
):
Boolean
{
try
{
try
{
startActivityForResult
(
intent
.
addCategory
(
Intent
.
CATEGORY_OPENABLE
),
requestCode
)
startActivityForResult
(
intent
.
addCategory
(
Intent
.
CATEGORY_OPENABLE
),
requestCode
)
return
return
false
}
catch
(
_
:
ActivityNotFoundException
)
{
}
catch
(
_
:
SecurityException
)
{
}
}
catch
(
_
:
ActivityNotFoundException
)
{
}
catch
(
_
:
SecurityException
)
{
}
Toast
.
makeText
(
requireContext
(),
R
.
string
.
file_manager_missing
,
Toast
.
LENGTH_SHORT
).
show
()
Toast
.
makeText
(
requireContext
(),
R
.
string
.
file_manager_missing
,
Toast
.
LENGTH_SHORT
).
show
()
return
true
}
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
...
@@ -317,6 +321,16 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
...
@@ -317,6 +321,16 @@ class MainPreferenceFragment : LeanbackPreferenceFragmentCompat(), ShadowsocksCo
Toast
.
makeText
(
context
,
e
.
readableMessage
,
Toast
.
LENGTH_SHORT
).
show
()
Toast
.
makeText
(
context
,
e
.
readableMessage
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
}
}
REQUEST_HOSTS
->
{
if
(
resultCode
!=
Activity
.
RESULT_OK
)
return
val
context
=
requireContext
()
try
{
// we read and persist all its content here to avoid content URL permission issues
hosts
.
text
=
context
.
contentResolver
.
openInputStream
(
data
!!
.
data
!!
)
!!
.
bufferedReader
().
readText
()
}
catch
(
e
:
RuntimeException
)
{
Toast
.
makeText
(
context
,
e
.
readableMessage
,
Toast
.
LENGTH_SHORT
).
show
()
}
}
else
->
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
else
->
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
}
}
}
}
...
...
tv/src/main/res/xml/pref_main.xml
View file @
83704994
...
@@ -19,7 +19,7 @@
...
@@ -19,7 +19,7 @@
app:title=
"@string/action_export_file"
/>
app:title=
"@string/action_export_file"
/>
<PreferenceCategory
<PreferenceCategory
app:title=
"@string/settings"
app:title=
"@string/settings"
app:initialExpandedChildrenCount=
"
2
"
>
app:initialExpandedChildrenCount=
"
3
"
>
<SwitchPreference
<SwitchPreference
app:key=
"isAutoConnect"
app:key=
"isAutoConnect"
app:persistent=
"false"
app:persistent=
"false"
...
@@ -29,6 +29,9 @@
...
@@ -29,6 +29,9 @@
app:key=
"tcp_fastopen"
app:key=
"tcp_fastopen"
app:summary=
"@string/tcp_fastopen_summary"
app:summary=
"@string/tcp_fastopen_summary"
app:title=
"TCP Fast Open"
/>
app:title=
"TCP Fast Open"
/>
<EditTextPreference
app:key=
"hosts"
app:title=
"hosts"
/>
<ListPreference
<ListPreference
app:key=
"serviceMode"
app:key=
"serviceMode"
...
...
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