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
c9921bec
Commit
c9921bec
authored
Feb 18, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
加速器调试
parent
f0acd09f
Changes
23
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
23 changed files
with
408 additions
and
160 deletions
+408
-160
app/src/main/java/com/ccwangluo/accelerator/App.kt
app/src/main/java/com/ccwangluo/accelerator/App.kt
+2
-0
app/src/main/java/com/ccwangluo/accelerator/model/Game.kt
app/src/main/java/com/ccwangluo/accelerator/model/Game.kt
+18
-0
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
.../com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
+2
-0
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
...rc/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
+7
-4
app/src/main/java/com/ccwangluo/accelerator/ui/dialog/MemberDialog.kt
.../java/com/ccwangluo/accelerator/ui/dialog/MemberDialog.kt
+1
-1
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
...a/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
+42
-19
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorViewModel.kt
.../com/ccwangluo/accelerator/ui/home/AccelertorViewModel.kt
+3
-11
app/src/main/java/com/ccwangluo/accelerator/ui/home/MineFragment.kt
...in/java/com/ccwangluo/accelerator/ui/home/MineFragment.kt
+1
-15
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
...java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
+1
-2
app/src/main/java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
.../java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
+85
-12
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
...c/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
+2
-0
app/src/main/java/com/ccwangluo/accelerator/utils/SettingSPUtils.kt
...in/java/com/ccwangluo/accelerator/utils/SettingSPUtils.kt
+7
-5
app/src/main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
.../main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
+3
-1
app/src/main/res/layout/fragment_quick.xml
app/src/main/res/layout/fragment_quick.xml
+1
-0
app/src/main/res/values/styles.xml
app/src/main/res/values/styles.xml
+1
-0
core/build.gradle.kts
core/build.gradle.kts
+2
-5
core/src/main/java/com/github/shadowsocks/HttpConfig.kt
core/src/main/java/com/github/shadowsocks/HttpConfig.kt
+0
-15
core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt
...java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt
+6
-0
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
+173
-68
core/src/main/java/com/github/shadowsocks/http/FreshToken.kt
core/src/main/java/com/github/shadowsocks/http/FreshToken.kt
+11
-0
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
+27
-0
core/src/main/java/com/github/shadowsocks/http/LineConfig.kt
core/src/main/java/com/github/shadowsocks/http/LineConfig.kt
+13
-0
mobile/src/main/res/xml/network_security_config.xml
mobile/src/main/res/xml/network_security_config.xml
+0
-2
No files found.
app/src/main/java/com/ccwangluo/accelerator/App.kt
View file @
c9921bec
...
...
@@ -9,6 +9,7 @@ import com.ccwangluo.accelerator.utils.PhoneUtils
import
com.github.shadowsocks.Core
import
com.hjq.toast.ToastUtils
import
com.tencent.map.geolocation.TencentLocationManager
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.PageConfig
import
com.xuexiang.xpage.base.XPageActivity
...
...
@@ -26,6 +27,7 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
ToastUtils
.
init
(
this
)
MultiDex
.
install
(
this
)
Core
.
init
(
this
,
MainActivity
::
class
)
MMKV
.
initialize
(
this
)
}
override
fun
onConfigurationChanged
(
newConfig
:
Configuration
)
{
...
...
app/src/main/java/com/ccwangluo/accelerator/model/Game.kt
0 → 100644
View file @
c9921bec
package
com.ccwangluo.accelerator.model
data class
Game
(
val
list
:
List
<
GameInfo
>?,
val
total
:
Int
?
)
data class
GameInfo
(
val
anotherName
:
String
,
val
createdDate
:
String
,
val
gameName
:
String
,
val
greatNum
:
Int
,
val
icon
:
String
,
val
id
:
Int
,
val
imgs
:
String
,
val
introduction
:
String
,
val
packageName
:
String
)
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
View file @
c9921bec
...
...
@@ -9,6 +9,7 @@ import com.ccwangluo.accelerator.ui.home.AccelertorFragment
import
com.ccwangluo.accelerator.ui.home.AccelertorViewModel
import
com.ccwangluo.accelerator.ui.home.MineFragment
import
com.ccwangluo.accelerator.ui.home.NewsFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.xuexiang.xpage.annotation.Page
...
...
@@ -54,6 +55,7 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
binding
.
viewPager
.
setOffscreenPageLimit
(
titles
.
size
-
1
);
binding
.
viewPager
.
adapter
=
adapter
AcceleratorUtils
.
getGameList
(
this
,{})
}
override
fun
initListeners
()
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
View file @
c9921bec
...
...
@@ -11,8 +11,9 @@ import com.ccwangluo.accelerator.ui.home.AccelertorViewModel
import
com.ccwangluo.accelerator.ui.login.SplashFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.PhoneUtils
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.
http.
HttpConfig
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.bg.AuthManager
import
com.github.shadowsocks.utils.StartService
import
com.hjq.toast.ToastUtils
import
com.karumi.dexter.Dexter
...
...
@@ -44,7 +45,6 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
super
.
onCreate
(
savedInstanceState
)
accelertorViewModel
=
ViewModelProvider
(
this
).
get
(
AccelertorViewModel
::
class
.
java
)
MMKV
.
initialize
(
this
)
initPhoneUtils
()
//获取权限
Dexter
.
withContext
(
this
)
...
...
@@ -95,7 +95,6 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
}
AcceleratorUtils
.
initConnect
(
this
,
connect
)
}
private
fun
initPhoneUtils
()
{
...
...
@@ -136,7 +135,11 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
}
override
fun
onLocationChanged
(
p0
:
TencentLocation
?,
p1
:
Int
,
p2
:
String
?)
{
println
(
p0
)
if
(
p1
==
0
){
p0
?.
province
?.
let
{
AuthManager
.
area
=
it
}
}
}
override
fun
onStatusUpdate
(
p0
:
String
?,
p1
:
Int
,
p2
:
String
?)
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/dialog/MemberDialog.kt
View file @
c9921bec
...
...
@@ -5,7 +5,7 @@ import android.os.Bundle
import
android.widget.ImageView
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.
http.
HttpConfig
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xui.widget.dialog.materialdialog.CustomMaterialDialog
import
com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
View file @
c9921bec
package
com.ccwangluo.accelerator.ui.home
import
android.graphics.Color
import
android.os.Bundle
import
android.view.LayoutInflater
import
android.view.View
...
...
@@ -18,11 +17,12 @@ import com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.
http.
HttpConfig
import
com.github.shadowsocks.bg.BaseService
import
com.hjq.toast.ToastUtils
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xutil.app.AppUtils
class
AccelertorFragment
:
XPageFragment
()
{
private
lateinit
var
binding
:
FragmentQuickBinding
...
...
@@ -86,13 +86,13 @@ class AccelertorFragment : XPageFragment() {
}
binding
.
activeNetwork
.
setText
(
SysUtils
.
getActiveNet
())
if
(
SettingSPUtils
.
isSmartAccOpen
)
{
binding
.
smartAccOpen
.
setText
(
"已开启"
)
binding
.
smartAccOpen
.
setText
(
"已开启
>
"
)
binding
.
smartAccOpen
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
open_acc_enable
))
binding
.
smartAccOpen
Btn
.
visibility
=
View
.
GONE
binding
.
smartAccOpen
Area
.
visibility
=
View
.
GONE
}
else
{
binding
.
smartAccOpen
.
setText
(
"未开启 >"
)
binding
.
smartAccOpen
.
setTextColor
(
resources
.
getColor
(
R
.
color
.
white
))
binding
.
smartAccOpen
Btn
.
visibility
=
View
.
VISIBLE
binding
.
smartAccOpen
Area
.
visibility
=
View
.
VISIBLE
}
})
...
...
@@ -112,33 +112,32 @@ class AccelertorFragment : XPageFragment() {
override
fun
initListeners
()
{
binding
.
iconNotice
.
setOnClickListener
{
openToWebview
(
"/message"
)
openToWebview
(
HttpConfig
.
UI_MESSAGE_URL
)
}
binding
.
gamePage
.
setOnClickListener
{
openToWebview
(
"/game"
)
openToWebview
(
HttpConfig
.
UI_GAME_URL
)
}
binding
.
smartAccOpen
.
setOnClickListener
{
if
(!
SettingSPUtils
.
isSmartAccOpen
)
{
openToWebview
(
"/setting"
)
openToWebview
(
HttpConfig
.
UI_SETTING_URL
)
}
}
binding
.
smartAccOpenBtn
.
setOnClickListener
{
if
(!
SettingSPUtils
.
isSmartAccOpen
)
{
openToWebview
(
"/setting"
)
openToWebview
(
HttpConfig
.
UI_SETTING_URL
)
}
}
binding
.
preventAccLost
.
setOnClickListener
{
openToWebview
(
"/questionDetail"
)
openToWebview
(
HttpConfig
.
UI_QUESTION_URL
)
}
binding
.
preventAccInvalid
.
setOnClickListener
{
openToWebview
(
"/speed"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
)
}
binding
.
btnExpend
.
setOnClickListener
{
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
binding
.
expandableLayout1
.
toggle
()
...
...
@@ -176,18 +175,34 @@ class AccelertorFragment : XPageFragment() {
},
2000
)
return
@setOnClickListener
}
// TODO: 2022/2/16 是否安装了这个包
//用户是否有使用时长
LoginUtils
.
getUserHasTimer
(
this
)
{
AcceleratorUtils
.
getGameList
(
this
)
{
if
(
it
)
{
binding
.
btnQuick
.
isEnabled
=
false
AcceleratorUtils
.
startAccelerator
()
startAnim
()
//
AcceleratorUtils
.
game
?.
let
{
if
(
AppUtils
.
isInstallApp
(
it
.
packageName
))
{
binding
.
quickTopToastTx
.
setText
(
"请先安装游戏后加速"
)
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToastTx
.
visibility
=
View
.
GONE
},
2000
)
return
@getGameList
}
}
//用户是否有使用时长
LoginUtils
.
getUserHasTimer
(
this
)
{
if
(
it
)
{
binding
.
btnQuick
.
isEnabled
=
false
AcceleratorUtils
.
startAccelerator
(
this
)
startAnim
()
}
else
{
MemberDialog
(
this
).
show
<
MemberDialog
>()
}
}
}
else
{
MemberDialog
(
this
).
show
<
MemberDialog
>(
)
ToastUtils
.
show
(
"获取游戏配置异常"
)
}
}
}
}
...
...
@@ -225,6 +240,14 @@ class AccelertorFragment : XPageFragment() {
binding
.
accStateTx
.
setText
(
SysUtils
.
getAccTimeString
(
time
))
binding
.
accStateTx
.
visibility
=
View
.
VISIBLE
binding
.
btnQuick
.
setBackgroundResource
(
R
.
mipmap
.
quick_stop
)
if
(
SettingSPUtils
.
isFirstAccSuccess
)
{
CommonDialog
(
this
).
setTitle
(
"防止加速掉线"
)
.
setContent
(
"为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置"
)
.
setBtnLeft
(
"取消"
,
{}).
setBtnRight
(
"去设置"
,
{
openToWebview
(
HttpConfig
.
UI_SETTING_URL
)
}).
show
<
CommonDialog
>()
SettingSPUtils
.
isFirstAccSuccess
=
false
}
}
else
if
(
state
==
BaseService
.
State
.
Stopped
)
{
stopAnim
()
binding
.
accStateTx
.
visibility
=
View
.
GONE
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorViewModel.kt
View file @
c9921bec
...
...
@@ -2,20 +2,9 @@ package com.ccwangluo.accelerator.ui.home
import
androidx.lifecycle.MutableLiveData
import
androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.NetState
import
com.ccwangluo.accelerator.model.UserProfile
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.github.shadowsocks.bg.BaseService
import
com.hjq.toast.ToastUtils
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.delay
import
kotlinx.coroutines.launch
import
java.io.BufferedReader
import
java.io.InputStreamReader
class
AccelertorViewModel
:
ViewModel
()
{
...
...
@@ -28,4 +17,7 @@ class AccelertorViewModel : ViewModel() {
//用户状态
var
userProfile
=
MutableLiveData
<
UserProfile
>()
//加速配置
// var gameConfig = MutableLiveData<GameConfig>()
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/ui/home/MineFragment.kt
View file @
c9921bec
package
com.ccwangluo.accelerator.ui.home
import
android.content.Intent
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
...
...
@@ -9,7 +8,7 @@ import androidx.fragment.app.Fragment
import
com.ccwangluo.accelerator.databinding.FragmentMineBinding
import
com.ccwangluo.accelerator.ui.web.AndroidInterface
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.
http.
HttpConfig
import
com.just.agentweb.core.AgentWeb
import
com.just.agentweb.core.client.DefaultWebClient
import
com.xuexiang.xpage.base.XPageFragment
...
...
@@ -69,19 +68,6 @@ class MineFragment : XPageFragment() {
.
go
(
url
)
}
override
fun
setUserVisibleHint
(
isVisibleToUser
:
Boolean
)
{
super
.
setUserVisibleHint
(
isVisibleToUser
)
if
(
isVisibleToUser
)
{
LoginUtils
.
token
?.
let
{
agentWeb
?.
getJsAccessEntrace
()
?.
quickCallJs
(
"userToken"
,
it
)
}
?:
let
{
agentWeb
?.
getJsAccessEntrace
()
?.
quickCallJs
(
"clearToken"
)
}
}
}
override
fun
onHiddenChanged
(
hidden
:
Boolean
)
{
super
.
onHiddenChanged
(
hidden
)
if
(!
hidden
)
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
View file @
c9921bec
...
...
@@ -2,9 +2,8 @@ package com.ccwangluo.accelerator.ui.web
import
android.os.Bundle
import
android.webkit.JavascriptInterface
import
androidx.core.content.ContextCompat.checkSelfPermission
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.
http.
HttpConfig
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.just.agentweb.core.AgentWeb
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
View file @
c9921bec
...
...
@@ -6,15 +6,27 @@ import android.os.RemoteException
import
androidx.activity.result.ActivityResultLauncher
import
androidx.appcompat.app.AppCompatActivity
import
androidx.lifecycle.lifecycleScope
import
com.ccwangluo.accelerator.model.NetState
import
com.ccwangluo.accelerator.model.*
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.acl.Acl
import
com.github.shadowsocks.aidl.IShadowsocksService
import
com.github.shadowsocks.aidl.IShadowsocksServiceCallback
import
com.github.shadowsocks.aidl.ShadowsocksConnection
import
com.github.shadowsocks.bg.AuthManager
import
com.github.shadowsocks.bg.AuthManager.ACC_TIME
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.http.LineConfig
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xutil.net.NetworkUtils
import
kotlinx.coroutines.*
import
timber.log.Timber
import
java.util.concurrent.Executors
import
java.util.concurrent.TimeUnit
...
...
@@ -34,21 +46,37 @@ object AcceleratorUtils {
// service
var
state
=
BaseService
.
State
.
Idle
//游戏
var
game
:
GameInfo
?
=
null
//加速前延迟
var
pre_net
=
-
1
//加速后延迟
var
acc_net
=
-
1
//
var
count
=
0
// 加速时长
var
ACC_TIME
=
0L
var
stateListener
:
(
BaseService
.
State
,
Long
,
NetState
?)
->
Unit
=
{
state
,
l
,
net
->
}
fun
getGameList
(
xPageFragment
:
XPageFragment
,
callback
:
(
Boolean
)
->
Unit
)
{
game
?.
let
{
callback
(
true
)
}
?:
let
{
xPageFragment
.
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
val
res
=
HttpGo
.
getSync
<
Game
>(
"/api/new/game/list?id=1&page=1&size=1"
)
res
?.
let
{
game
=
it
.
data
?.
list
?.
get
(
0
)
callback
(
true
)
game
?.
let
{
AuthManager
.
gameId
=
it
.
id
.
toString
()
}
}
}
}
}
fun
initConnect
(
context
:
AppCompatActivity
,
connect
:
ActivityResultLauncher
<
Void
?
>)
{
this
.
context
=
context
...
...
@@ -57,7 +85,7 @@ object AcceleratorUtils {
ProfileManager
.
ensureNotEmpty
()
context
.
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
while
(
true
)
{
val
net
=
SysUtils
.
getNetPing
(
"10.3.0.
34
"
)
val
net
=
SysUtils
.
getNetPing
(
"10.3.0.
229
"
)
if
(
state
!=
BaseService
.
State
.
Connected
)
{
pre_net
=
net
.
delay
acc_net
=
-
1
...
...
@@ -72,6 +100,8 @@ object AcceleratorUtils {
net
.
preNetDelay
=
pre_net
net
.
accNetDelay
=
acc_net
stateListener
(
state
,
getAccTime
(),
net
)
delay
(
1000
)
}
}
...
...
@@ -83,8 +113,54 @@ object AcceleratorUtils {
}
}
fun
startAccelerator
()
{
connect
.
launch
(
null
)
fun
startAccelerator
(
xPageFragment
:
XPageFragment
)
{
game
?.
let
{
initAuthProfile
(
xPageFragment
)
}
}
fun
initAuthProfile
(
xPageFragment
:
XPageFragment
)
{
xPageFragment
.
lifecycleScope
.
launch
(
Dispatchers
.
IO
)
{
AuthManager
.
getLineConfig
()
?.
let
{
if
(
it
.
code
!=
200
){
return
@let
}
val
profileId
=
1L
val
profile
=
ProfileManager
.
getProfile
(
profileId
)
?:
Profile
()
profile
.
host
=
it
.
data
.
host
profile
.
token
=
it
.
data
.
token
profile
.
remotePort
=
it
.
data
.
port
profile
.
proxyApps
=
true
val
proxyGames
=
mutableSetOf
(
"com.sec.android.app.sbrowser"
,
"com.nexon.maplem.global"
,
"jp.co.cygames.umamusume"
,
"com.ea.gp.apexlegendsmobilefps"
,
"jp.konami.duellinks"
,
"com.riotgames.league.wildrift"
,
"com.garena.game.codm"
,
"com.google.android.configupdater"
,
"com.miHoYo.GenshinImpact"
,
"com.rekoo.pubgm"
,
"com.pubg.krmobile"
,
"com.tgc.sky.android"
,
"com.YoStarJP.Arknights"
,
"com.riotgames.league.wildrifttw"
)
proxyGames
.
addAll
(
profile
.
individual
.
split
(
"\n"
))
Timber
.
d
(
"start vpn with games: $proxyGames"
)
profile
.
individual
=
proxyGames
.
joinToString
(
"\n"
)
profile
.
route
=
Acl
.
BYPASS_LAN
profile
.
password
=
"barfoo!"
profile
.
method
=
"none"
profile
.
beatsInterval
=
60
withContext
(
Dispatchers
.
Main
){
ProfileManager
.
updateProfile
(
profile
)
connect
.
launch
(
null
)
}
}
}
}
fun
registerStateListener
(
listener
:
(
BaseService
.
State
,
Long
,
NetState
?)
->
Unit
)
{
...
...
@@ -105,9 +181,6 @@ object AcceleratorUtils {
private
val
shadowsocksConnection
=
object
:
ShadowsocksConnection
.
Callback
{
override
fun
stateChanged
(
state
:
BaseService
.
State
,
profileName
:
String
?,
msg
:
String
?)
{
AcceleratorUtils
.
state
=
state
if
(
state
==
BaseService
.
State
.
Connected
)
{
ACC_TIME
=
System
.
currentTimeMillis
()
}
stateListener
(
state
,
getAccTime
(),
null
)
}
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
View file @
c9921bec
...
...
@@ -8,6 +8,7 @@ import com.ccwangluo.accelerator.model.UserProfile
import
com.ccwangluo.accelerator.ui.login.PhoneLoginFragment
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.github.shadowsocks.bg.AuthManager
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageFragment
...
...
@@ -107,6 +108,7 @@ object LoginUtils {
res
?.
let
{
if
(
it
.
code
==
200
)
{
token
=
it
.
data
?.
token
AuthManager
.
authToken
=
token
ToastUtils
.
show
(
"登录成功"
)
OneKeyLoginManager
.
getInstance
().
finishAuthActivity
()
withContext
(
Dispatchers
.
Main
)
{
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/SettingSPUtils.kt
View file @
c9921bec
...
...
@@ -9,18 +9,18 @@ import com.tencent.mmkv.MMKV
* @since 2018/11/27 下午5:16
*/
object
SettingSPUtils
{
private
val
IS_FIRST_
OPEN_KEY
=
"is_first_open_key
"
private
val
IS_FIRST_
ACC_SUCCESS
=
"is_first_acc_success
"
private
val
IS_AGREE_PRIVACY_KEY
=
"is_agree_privacy_key"
private
val
IS_SMART_ACC_OPEN
=
"is_smart_acc_open"
/**
* 设置是否是第一次启动
* 设置是否是第一次启动
加速
*/
var
isFirst
Open
:
Boolean
get
()
=
MMKV
.
defaultMMKV
().
decodeBool
(
IS_FIRST_
OPEN_KEY
,
true
)
var
isFirst
AccSuccess
:
Boolean
get
()
=
MMKV
.
defaultMMKV
().
decodeBool
(
IS_FIRST_
ACC_SUCCESS
,
true
)
set
(
isFirstOpen
)
{
MMKV
.
defaultMMKV
().
putBoolean
(
IS_FIRST_
OPEN_KEY
,
isFirstOpen
)
MMKV
.
defaultMMKV
().
putBoolean
(
IS_FIRST_
ACC_SUCCESS
,
isFirstOpen
)
}
/**
...
...
@@ -40,4 +40,6 @@ object SettingSPUtils {
set
(
isSmartAccOpen
)
{
MMKV
.
defaultMMKV
().
putBoolean
(
IS_SMART_ACC_OPEN
,
isSmartAccOpen
)
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
View file @
c9921bec
...
...
@@ -2,11 +2,12 @@ package com.ccwangluo.accelerator.utils.http
import
com.ccwangluo.accelerator.model.BaseModel
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.github.shadowsocks.HttpConfig
import
com.github.shadowsocks.
http.
HttpConfig
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.hjq.toast.ToastUtils
import
okhttp3.*
import
okhttp3.HttpUrl.Companion.toHttpUrl
import
okhttp3.MediaType.Companion.toMediaTypeOrNull
import
okhttp3.RequestBody.Companion.toRequestBody
import
timber.log.Timber
...
...
@@ -129,4 +130,5 @@ object HttpGo {
}
}
}
}
app/src/main/res/layout/fragment_quick.xml
View file @
c9921bec
...
...
@@ -509,6 +509,7 @@
</LinearLayout>
<LinearLayout
android:id=
"@+id/smart_acc_open_area"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"11dp"
...
...
app/src/main/res/values/styles.xml
View file @
c9921bec
...
...
@@ -17,5 +17,6 @@
<item
name=
"tabSelectedTextColor"
>
@color/black
</item>
<item
name=
"android:textSize"
>
16sp
</item>
<item
name=
"android:textColor"
>
#FF9E9E9E
</item>
<item
name=
"tabBackground"
>
@color/white
</item>
</style>
</resources>
\ No newline at end of file
core/build.gradle.kts
View file @
c9921bec
...
...
@@ -33,9 +33,7 @@ dependencies {
api
(
"androidx.drawerlayout:drawerlayout:1.1.1"
)
api
(
"androidx.fragment:fragment-ktx:1.3.5"
)
api
(
"com.google.android.material:material:1.4.0"
)
api
(
"com.android.volley:volley:1.2.0"
)
implementation
(
"com.squareup.okhttp3:okhttp:4.9.0"
)
api
(
"androidx.lifecycle:lifecycle-common-java8:$lifecycleVersion"
)
api
(
"androidx.lifecycle:lifecycle-livedata-core-ktx:$lifecycleVersion"
)
api
(
"androidx.preference:preference:1.1.1"
)
...
...
@@ -44,12 +42,11 @@ dependencies {
api
(
"androidx.work:work-runtime-ktx:$workVersion"
)
api
(
"com.google.android.gms:play-services-oss-licenses:17.0.0"
)
api
(
"com.google.code.gson:gson:2.8.7"
)
// api("com.google.firebase:firebase-analytics-ktx:19.0.0")
// api("com.google.firebase:firebase-crashlytics:18.1.0")
api
(
"com.jakewharton.timber:timber:4.7.1"
)
api
(
"dnsjava:dnsjava:3.4.0"
)
api
(
"org.jetbrains.kotlinx:kotlinx-coroutines-android:$coroutinesVersion"
)
api
(
"org.jetbrains.kotlinx:kotlinx-coroutines-play-services:$coroutinesVersion"
)
implementation
(
"com.tencent:mmkv:1.2.10"
)
kapt
(
"androidx.room:room-compiler:$roomVersion"
)
androidTestImplementation
(
"androidx.room:room-testing:$roomVersion"
)
androidTestImplementation
(
"androidx.test.ext:junit-ktx:1.1.3"
)
...
...
core/src/main/java/com/github/shadowsocks/HttpConfig.kt
deleted
100644 → 0
View file @
f0acd09f
package
com.github.shadowsocks
object
HttpConfig
{
//app后端
val
baseUrl
=
"http://test-cc-tt-api.orangenet.org.cn"
/**
* 主页h5
*/
val
UI_MAIN_URL
=
"http://10.3.0.217:8080/#"
//隐私协议地址
val
privacy_url
=
"http:wwww.baidu.com"
}
\ No newline at end of file
core/src/main/java/com/github/shadowsocks/aidl/ShadowsocksConnection.kt
View file @
c9921bec
...
...
@@ -26,6 +26,7 @@ import android.content.Intent
import
android.content.ServiceConnection
import
android.os.IBinder
import
android.os.RemoteException
import
com.github.shadowsocks.bg.AuthManager.ACC_TIME
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.bg.VpnService
import
com.github.shadowsocks.utils.Action
...
...
@@ -68,6 +69,11 @@ class ShadowsocksConnection(private var listenForDeath: Boolean = false) : Servi
val
callback
=
callback
?:
return
GlobalScope
.
launch
(
Dispatchers
.
Main
.
immediate
)
{
callback
.
stateChanged
(
BaseService
.
State
.
values
()[
state
],
profileName
,
msg
)
if
(
BaseService
.
State
.
values
()[
state
]
==
BaseService
.
State
.
Connected
)
{
ACC_TIME
=
System
.
currentTimeMillis
()
}
else
{
ACC_TIME
=
0L
}
}
}
override
fun
trafficUpdated
(
profileId
:
Long
,
stats
:
TrafficStats
)
{
...
...
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
View file @
c9921bec
This diff is collapsed.
Click to expand it.
core/src/main/java/com/github/shadowsocks/http/FreshToken.kt
0 → 100644
View file @
c9921bec
package
com.github.shadowsocks.http
data class
FreshToken
(
val
code
:
Int
,
val
error
:
String
?,
val
`data`
:
Token
)
data class
Token
(
val
token
:
String
?
)
\ No newline at end of file
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
0 → 100644
View file @
c9921bec
package
com.github.shadowsocks.http
object
HttpConfig
{
//app后端
val
baseUrl
=
"https://test-cc-tt-api.orangenet.org.cn"
/**
* 主页h5
*/
val
UI_MAIN_URL
=
"https://test-cc-tt-front.orangenet.org.cn/#"
//隐私协议地址
val
privacy_url
=
"http:wwww.baidu.com"
val
UI_MESSAGE_URL
=
"/message"
val
UI_GAME_URL
=
"/game"
val
UI_SETTING_URL
=
"/setting"
val
UI_QUESTION_URL
=
"/questionDetail"
val
UI_SPEED_URL
=
"/speed"
}
\ No newline at end of file
core/src/main/java/com/github/shadowsocks/http/LineConfig.kt
0 → 100644
View file @
c9921bec
package
com.github.shadowsocks.http
data class
LineConfig
(
val
code
:
Int
,
val
`data`
:
Data
)
data class
Data
(
val
host
:
String
,
val
method
:
String
,
val
port
:
Int
,
val
token
:
String
)
\ No newline at end of file
mobile/src/main/res/xml/network_security_config.xml
View file @
c9921bec
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config
cleartextTrafficPermitted=
"true"
>
<domain
includeSubdomains=
"true"
>
192.168.137.1
</domain>
<domain
includeSubdomains=
"true"
>
10.3.0.34
</domain>
</domain-config>
</network-security-config>
\ No newline at end of file
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