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
84da64fa
Commit
84da64fa
authored
Nov 19, 2015
by
Max Lv
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #436 from Mygod/master
Fix rate display
parents
bcbd409c
52cd6d15
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
40 additions
and
45 deletions
+40
-45
src/main/scala/com/github/shadowsocks/BaseService.scala
src/main/scala/com/github/shadowsocks/BaseService.scala
+3
-5
src/main/scala/com/github/shadowsocks/ParserActivity.scala
src/main/scala/com/github/shadowsocks/ParserActivity.scala
+10
-13
src/main/scala/com/github/shadowsocks/ProfileManagerActivity.scala
...scala/com/github/shadowsocks/ProfileManagerActivity.scala
+8
-10
src/main/scala/com/github/shadowsocks/Shadowsocks.scala
src/main/scala/com/github/shadowsocks/Shadowsocks.scala
+6
-4
src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala
.../scala/com/github/shadowsocks/ShadowsocksNatService.scala
+4
-4
src/main/scala/com/github/shadowsocks/ShadowsocksSettings.scala
...in/scala/com/github/shadowsocks/ShadowsocksSettings.scala
+1
-1
src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala
.../scala/com/github/shadowsocks/ShadowsocksVpnService.scala
+4
-4
src/main/scala/com/github/shadowsocks/utils/TrafficMonitor.scala
...n/scala/com/github/shadowsocks/utils/TrafficMonitor.scala
+3
-3
src/main/scala/com/github/shadowsocks/utils/TrafficMonitorThread.scala
...a/com/github/shadowsocks/utils/TrafficMonitorThread.scala
+1
-1
No files found.
src/main/scala/com/github/shadowsocks/BaseService.scala
View file @
84da64fa
...
@@ -39,8 +39,6 @@
...
@@ -39,8 +39,6 @@
package
com.github.shadowsocks
package
com.github.shadowsocks
import
java.util.Locale
import
android.app.Notification
import
android.app.Notification
import
android.content.Context
import
android.content.Context
import
android.os.
{
Handler
,
RemoteCallbackList
}
import
android.os.
{
Handler
,
RemoteCallbackList
}
...
@@ -96,7 +94,7 @@ trait BaseService {
...
@@ -96,7 +94,7 @@ trait BaseService {
}
}
def
startRunner
(
config
:
Config
)
{
def
startRunner
(
config
:
Config
)
{
this
.
config
=
config
;
this
.
config
=
config
TrafficMonitor
.
reset
()
TrafficMonitor
.
reset
()
trafficMonitorThread
=
new
TrafficMonitorThread
(
this
)
trafficMonitorThread
=
new
TrafficMonitorThread
(
this
)
...
@@ -129,7 +127,7 @@ trait BaseService {
...
@@ -129,7 +127,7 @@ trait BaseService {
handler
.
post
(()
=>
{
handler
.
post
(()
=>
{
if
(
callbackCount
>
0
)
{
if
(
callbackCount
>
0
)
{
val
n
=
callbacks
.
beginBroadcast
()
val
n
=
callbacks
.
beginBroadcast
()
for
(
i
<-
0
to
n
-
1
)
{
for
(
i
<-
0
until
n
)
{
try
{
try
{
callbacks
.
getBroadcastItem
(
i
).
trafficUpdated
(
txRate
,
rxRate
,
txTotal
,
rxTotal
)
callbacks
.
getBroadcastItem
(
i
).
trafficUpdated
(
txRate
,
rxRate
,
txTotal
,
rxTotal
)
}
catch
{
}
catch
{
...
@@ -146,7 +144,7 @@ trait BaseService {
...
@@ -146,7 +144,7 @@ trait BaseService {
handler
.
post
(()
=>
if
(
state
!=
s
)
{
handler
.
post
(()
=>
if
(
state
!=
s
)
{
if
(
callbackCount
>
0
)
{
if
(
callbackCount
>
0
)
{
val
n
=
callbacks
.
beginBroadcast
()
val
n
=
callbacks
.
beginBroadcast
()
for
(
i
<-
0
to
n
-
1
)
{
for
(
i
<-
0
until
n
)
{
try
{
try
{
callbacks
.
getBroadcastItem
(
i
).
stateChanged
(
s
,
msg
)
callbacks
.
getBroadcastItem
(
i
).
stateChanged
(
s
,
msg
)
}
catch
{
}
catch
{
...
...
src/main/scala/com/github/shadowsocks/ParserActivity.scala
View file @
84da64fa
...
@@ -39,15 +39,15 @@
...
@@ -39,15 +39,15 @@
package
com.github.shadowsocks
package
com.github.shadowsocks
import
android.app.
{
Activity
,
AlertDialog
}
import
android.content.DialogInterface
import
android.content.DialogInterface
import
android.graphics.Color
import
android.graphics.Color
import
android.graphics.drawable.ColorDrawable
import
android.graphics.drawable.ColorDrawable
import
android.os.Bundle
import
android.os.Bundle
import
android.support.v7.app.
{
AppCompatActivity
,
AlertDialog
}
import
android.view.WindowManager
import
android.view.WindowManager
import
com.github.shadowsocks.utils.Parser
import
com.github.shadowsocks.utils.Parser
class
ParserActivity
extends
Activity
{
class
ParserActivity
extends
A
ppCompatA
ctivity
{
override
def
onCreate
(
savedInstanceState
:
Bundle
)
{
override
def
onCreate
(
savedInstanceState
:
Bundle
)
{
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
val
data
=
getIntent
.
getData
.
toString
val
data
=
getIntent
.
getData
.
toString
...
@@ -56,30 +56,27 @@ class ParserActivity extends Activity {
...
@@ -56,30 +56,27 @@ class ParserActivity extends Activity {
finish
()
finish
()
return
return
}
}
showAsPopup
(
this
)
showAsPopup
()
val
dialog
=
new
AlertDialog
.
Builder
(
this
)
val
dialog
=
new
AlertDialog
.
Builder
(
this
)
.
setTitle
(
R
.
string
.
add_profile_dialog
)
.
setTitle
(
R
.
string
.
add_profile_dialog
)
.
setCancelable
(
false
)
.
setCancelable
(
false
)
.
setPositiveButton
(
android
.
R
.
string
.
yes
,
((
dialog
:
DialogInterface
,
id
:
Int
)
=>
{
.
setPositiveButton
(
android
.
R
.
string
.
yes
,
((
dialog
:
DialogInterface
,
id
:
Int
)
=>
{
ShadowsocksApplication
.
profileManager
.
createProfile
(
profile
.
get
)
ShadowsocksApplication
.
profileManager
.
createProfile
(
profile
.
get
)
dialog
.
dismiss
()
})
:
DialogInterface.OnClickListener
)
.
setNegativeButton
(
android
.
R
.
string
.
no
,
((
dialog
:
DialogInterface
,
id
:
Int
)
=>
{
dialog
.
dismiss
()
})
:
DialogInterface.OnClickListener
)
})
:
DialogInterface.OnClickListener
)
.
setNegativeButton
(
android
.
R
.
string
.
no
,
null
)
.
setMessage
(
data
)
.
setMessage
(
data
)
.
create
()
.
create
()
dialog
.
setOnDismissListener
((
dialog
:
DialogInterface
)
=>
finish
())
// builder method was added in API 17
dialog
.
setOnDismissListener
((
dialog
:
DialogInterface
)
=>
finish
())
// builder method was added in API 17
dialog
.
show
()
dialog
.
show
()
}
}
def
showAsPopup
(
activity
:
Activity
)
{
def
showAsPopup
()
{
activity
.
getWindow
.
setFlags
(
WindowManager
.
LayoutParams
.
FLAG_DIM_BEHIND
,
val
window
=
getWindow
WindowManager
.
LayoutParams
.
FLAG_DIM_BEHIND
)
window
.
setFlags
(
WindowManager
.
LayoutParams
.
FLAG_DIM_BEHIND
,
WindowManager
.
LayoutParams
.
FLAG_DIM_BEHIND
)
val
params
=
activity
.
getW
indow
.
getAttributes
val
params
=
w
indow
.
getAttributes
params
.
alpha
=
1.0f
params
.
alpha
=
1.0f
params
.
dimAmount
=
0.5f
params
.
dimAmount
=
0.5f
activity
.
getW
indow
.
setAttributes
(
params
.
asInstanceOf
[
android.view.WindowManager.LayoutParams
])
w
indow
.
setAttributes
(
params
.
asInstanceOf
[
android.view.WindowManager.LayoutParams
])
activity
.
getW
indow
.
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
TRANSPARENT
))
w
indow
.
setBackgroundDrawable
(
new
ColorDrawable
(
Color
.
TRANSPARENT
))
}
}
}
}
src/main/scala/com/github/shadowsocks/ProfileManagerActivity.scala
View file @
84da64fa
package
com.github.shadowsocks
package
com.github.shadowsocks
import
android.app.AlertDialog
import
android.content.Intent
import
android.content.
{
DialogInterface
,
Intent
}
import
android.os.Bundle
import
android.os.Bundle
import
android.support.design.widget.Snackbar
import
android.support.design.widget.Snackbar
import
android.support.v7.app.
AppCompatActivity
import
android.support.v7.app.
{
AlertDialog
,
AppCompatActivity
}
import
android.support.v7.widget.RecyclerView.ViewHolder
import
android.support.v7.widget.RecyclerView.ViewHolder
import
android.support.v7.widget.Toolbar.OnMenuItemClickListener
import
android.support.v7.widget.Toolbar.OnMenuItemClickListener
import
android.support.v7.widget.helper.ItemTouchHelper
import
android.support.v7.widget.helper.ItemTouchHelper
import
android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback
import
android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback
import
android.support.v7.widget.
{
DefaultItemAnimator
,
LinearLayoutManager
,
RecyclerView
,
Toolbar
}
import
android.support.v7.widget.
{
DefaultItemAnimator
,
LinearLayoutManager
,
RecyclerView
,
Toolbar
}
import
android.text.style.TextAppearanceSpan
import
android.text.style.TextAppearanceSpan
import
android.text.
{
Spann
ed
,
SpannableStringBuilder
}
import
android.text.
{
Spann
ableStringBuilder
,
Spanned
}
import
android.view.View.
{
OnAttachStateChangeListener
,
OnClickListener
}
import
android.view.View.
{
OnAttachStateChangeListener
,
OnClickListener
}
import
android.view.
{
LayoutInflater
,
MenuItem
,
View
,
ViewGroup
}
import
android.view.
{
LayoutInflater
,
MenuItem
,
View
,
ViewGroup
}
import
android.widget.
{
LinearLayout
,
ImageView
,
CheckedTextView
,
Toast
}
import
android.widget.
{
CheckedTextView
,
ImageView
,
LinearLayout
,
Toast
}
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.utils.
{
TrafficMonitor
,
Parse
r
,
Utils
}
import
com.github.shadowsocks.utils.
{
Parser
,
TrafficMonito
r
,
Utils
}
import
com.google.zxing.integration.android.IntentIntegrator
import
com.google.zxing.integration.android.IntentIntegrator
import
net.glxn.qrgen.android.QRCode
import
net.glxn.qrgen.android.QRCode
...
@@ -38,13 +37,12 @@ class ProfileManagerActivity extends AppCompatActivity with OnMenuItemClickListe
...
@@ -38,13 +37,12 @@ class ProfileManagerActivity extends AppCompatActivity with OnMenuItemClickListe
image
.
setLayoutParams
(
new
LinearLayout
.
LayoutParams
(-
1
,
-
1
))
image
.
setLayoutParams
(
new
LinearLayout
.
LayoutParams
(-
1
,
-
1
))
val
qrcode
=
QRCode
.
from
(
Parser
.
generate
(
item
))
val
qrcode
=
QRCode
.
from
(
Parser
.
generate
(
item
))
.
withSize
(
Utils
.
dpToPx
(
ProfileManagerActivity
.
this
,
250
),
Utils
.
dpToPx
(
ProfileManagerActivity
.
this
,
250
))
.
withSize
(
Utils
.
dpToPx
(
ProfileManagerActivity
.
this
,
250
),
Utils
.
dpToPx
(
ProfileManagerActivity
.
this
,
250
))
.
asInstanceOf
[
QRCode
]
.
asInstanceOf
[
QRCode
]
.
bitmap
()
image
.
setImageBitmap
(
qrcode
.
bitmap
()
)
image
.
setImageBitmap
(
qrcode
)
new
AlertDialog
.
Builder
(
ProfileManagerActivity
.
this
)
new
AlertDialog
.
Builder
(
ProfileManagerActivity
.
this
)
.
setCancelable
(
true
)
.
setCancelable
(
true
)
.
setNegativeButton
(
getString
(
R
.
string
.
close
),
.
setNegativeButton
(
R
.
string
.
close
,
null
)
((
dialog
:
DialogInterface
,
id
:
Int
)
=>
dialog
.
cancel
())
:
DialogInterface.OnClickListener
)
.
setView
(
image
)
.
setView
(
image
)
.
create
()
.
create
()
.
show
()
.
show
()
...
...
src/main/scala/com/github/shadowsocks/Shadowsocks.scala
View file @
84da64fa
...
@@ -40,7 +40,7 @@ package com.github.shadowsocks
...
@@ -40,7 +40,7 @@ package com.github.shadowsocks
import
java.io.
{
FileOutputStream
,
IOException
,
InputStream
,
OutputStream
}
import
java.io.
{
FileOutputStream
,
IOException
,
InputStream
,
OutputStream
}
import
java.util
import
java.util
import
java.util.
{
Locale
,
Timer
,
TimerTask
}
import
java.util.
Locale
import
android.app.backup.BackupManager
import
android.app.backup.BackupManager
import
android.app.
{
Activity
,
ProgressDialog
}
import
android.app.
{
Activity
,
ProgressDialog
}
...
@@ -55,7 +55,7 @@ import android.support.v4.content.ContextCompat
...
@@ -55,7 +55,7 @@ import android.support.v4.content.ContextCompat
import
android.support.v7.app.AppCompatActivity
import
android.support.v7.app.AppCompatActivity
import
android.support.v7.widget.Toolbar
import
android.support.v7.widget.Toolbar
import
android.util.Log
import
android.util.Log
import
android.view.
{
View
Group
,
View
,
ViewParent
}
import
android.view.
{
View
,
ViewGroup
,
ViewParent
}
import
android.widget._
import
android.widget._
import
com.github.jorgecastilloprz.FABProgressCircle
import
com.github.jorgecastilloprz.FABProgressCircle
import
com.github.shadowsocks.aidl.
{
IShadowsocksService
,
IShadowsocksServiceCallback
}
import
com.github.shadowsocks.aidl.
{
IShadowsocksService
,
IShadowsocksServiceCallback
}
...
@@ -73,8 +73,7 @@ object Typefaces {
...
@@ -73,8 +73,7 @@ object Typefaces {
cache
synchronized
{
cache
synchronized
{
if
(!
cache
.
containsKey
(
assetPath
))
{
if
(!
cache
.
containsKey
(
assetPath
))
{
try
{
try
{
val
t
:
Typeface
=
Typeface
.
createFromAsset
(
c
.
getAssets
,
assetPath
)
cache
.
put
(
assetPath
,
Typeface
.
createFromAsset
(
c
.
getAssets
,
assetPath
))
cache
.
put
(
assetPath
,
t
)
}
catch
{
}
catch
{
case
e
:
Exception
=>
case
e
:
Exception
=>
Log
.
e
(
TAG
,
"Could not get typeface '"
+
assetPath
+
"' because "
+
e
.
getMessage
)
Log
.
e
(
TAG
,
"Could not get typeface '"
+
assetPath
+
"' because "
+
e
.
getMessage
)
...
@@ -467,6 +466,9 @@ class Shadowsocks
...
@@ -467,6 +466,9 @@ class Shadowsocks
// Check if current profile changed
// Check if current profile changed
if
(
ShadowsocksApplication
.
profileId
!=
currentProfile
.
id
)
reloadProfile
()
if
(
ShadowsocksApplication
.
profileId
!=
currentProfile
.
id
)
reloadProfile
()
callback
.
trafficUpdated
(
TrafficMonitor
.
getTxRate
,
TrafficMonitor
.
getRxRate
,
TrafficMonitor
.
getTxTotal
,
TrafficMonitor
.
getRxTotal
)
}
}
private
def
setPreferenceEnabled
(
enabled
:
Boolean
)
{
private
def
setPreferenceEnabled
(
enabled
:
Boolean
)
{
...
...
src/main/scala/com/github/shadowsocks/ShadowsocksNatService.scala
View file @
84da64fa
...
@@ -74,10 +74,10 @@ class ShadowsocksNatService extends Service with BaseService {
...
@@ -74,10 +74,10 @@ class ShadowsocksNatService extends Service with BaseService {
var
apps
:
Array
[
ProxiedApp
]
=
null
var
apps
:
Array
[
ProxiedApp
]
=
null
val
myUid
=
Process
.
myUid
()
val
myUid
=
Process
.
myUid
()
var
sslocalPid
:
Int
=
0
;
var
sslocalPid
:
Int
=
0
var
sstunnelPid
:
Int
=
0
;
var
sstunnelPid
:
Int
=
0
var
redsocksPid
:
Int
=
0
;
var
redsocksPid
:
Int
=
0
var
pdnsdPid
:
Int
=
0
;
var
pdnsdPid
:
Int
=
0
private
val
dnsAddressCache
=
new
SparseArray
[
String
]
private
val
dnsAddressCache
=
new
SparseArray
[
String
]
...
...
src/main/scala/com/github/shadowsocks/ShadowsocksSettings.scala
View file @
84da64fa
...
@@ -2,11 +2,11 @@ package com.github.shadowsocks
...
@@ -2,11 +2,11 @@ package com.github.shadowsocks
import
java.util.Locale
import
java.util.Locale
import
android.app.AlertDialog
import
android.content.
{
DialogInterface
,
Intent
}
import
android.content.
{
DialogInterface
,
Intent
}
import
android.net.Uri
import
android.net.Uri
import
android.os.
{
Build
,
Bundle
}
import
android.os.
{
Build
,
Bundle
}
import
android.preference.
{
SwitchPreference
,
Preference
,
PreferenceFragment
}
import
android.preference.
{
SwitchPreference
,
Preference
,
PreferenceFragment
}
import
android.support.v7.app.AlertDialog
import
android.webkit.
{
WebViewClient
,
WebView
}
import
android.webkit.
{
WebViewClient
,
WebView
}
import
com.github.shadowsocks.utils.Key
import
com.github.shadowsocks.utils.Key
...
...
src/main/scala/com/github/shadowsocks/ShadowsocksVpnService.scala
View file @
84da64fa
...
@@ -70,10 +70,10 @@ class ShadowsocksVpnService extends VpnService with BaseService {
...
@@ -70,10 +70,10 @@ class ShadowsocksVpnService extends VpnService with BaseService {
var
vpnThread
:
ShadowsocksVpnThread
=
null
var
vpnThread
:
ShadowsocksVpnThread
=
null
var
closeReceiver
:
BroadcastReceiver
=
null
var
closeReceiver
:
BroadcastReceiver
=
null
var
sslocalPid
:
Int
=
0
;
var
sslocalPid
:
Int
=
0
var
sstunnelPid
:
Int
=
0
;
var
sstunnelPid
:
Int
=
0
var
tun2socksPid
:
Int
=
0
;
var
tun2socksPid
:
Int
=
0
var
pdnsdPid
:
Int
=
0
;
var
pdnsdPid
:
Int
=
0
def
isByass
(
net
:
SubnetUtils
)
:
Boolean
=
{
def
isByass
(
net
:
SubnetUtils
)
:
Boolean
=
{
val
info
=
net
.
getInfo
val
info
=
net
.
getInfo
...
...
src/main/scala/com/github/shadowsocks/utils/TrafficMonitor.scala
View file @
84da64fa
package
com.github.shadowsocks.utils
package
com.github.shadowsocks.utils
import
java.lang.
{
Math
,
System
}
import
java.lang.
System
import
java.text.DecimalFormat
import
java.text.DecimalFormat
import
com.github.shadowsocks.
{
R
,
ShadowsocksApplication
}
import
com.github.shadowsocks.
{
R
,
ShadowsocksApplication
}
...
@@ -39,8 +39,8 @@ object TrafficMonitor {
...
@@ -39,8 +39,8 @@ object TrafficMonitor {
val
now
=
getTraffic
(
tx
,
rx
)
val
now
=
getTraffic
(
tx
,
rx
)
val
delta
=
now
.
timestamp
-
last
.
timestamp
val
delta
=
now
.
timestamp
-
last
.
timestamp
if
(
delta
!=
0
)
{
if
(
delta
!=
0
)
{
txRate
=
(
now
.
tx
-
last
.
tx
)
/
delta
txRate
=
(
now
.
tx
-
last
.
tx
)
*
1000
/
delta
rxRate
=
(
now
.
rx
-
last
.
rx
)
/
delta
rxRate
=
(
now
.
rx
-
last
.
rx
)
*
1000
/
delta
}
}
txTotal
+=
now
.
tx
-
last
.
tx
txTotal
+=
now
.
tx
-
last
.
tx
rxTotal
+=
now
.
rx
-
last
.
rx
rxTotal
+=
now
.
rx
-
last
.
rx
...
...
src/main/scala/com/github/shadowsocks/utils/TrafficMonitorThread.scala
View file @
84da64fa
...
@@ -39,7 +39,7 @@
...
@@ -39,7 +39,7 @@
package
com.github.shadowsocks.utils
package
com.github.shadowsocks.utils
import
java.io.
{
File
,
FileDescriptor
,
IOException
}
import
java.io.
{
File
,
IOException
}
import
java.util.concurrent.Executors
import
java.util.concurrent.Executors
import
android.net.
{
LocalServerSocket
,
LocalSocket
,
LocalSocketAddress
}
import
android.net.
{
LocalServerSocket
,
LocalSocket
,
LocalSocketAddress
}
...
...
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