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
1342942d
Commit
1342942d
authored
Mar 14, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
打点
parent
518ef4a0
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
362 additions
and
85 deletions
+362
-85
app/src/main/java/com/ccwangluo/accelerator/App.kt
app/src/main/java/com/ccwangluo/accelerator/App.kt
+4
-2
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
.../com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
+5
-1
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
...rc/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
+11
-0
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
...a/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
+49
-11
app/src/main/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
...in/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
+23
-0
app/src/main/java/com/ccwangluo/accelerator/ui/login/LoginViewModel.kt
...java/com/ccwangluo/accelerator/ui/login/LoginViewModel.kt
+11
-1
app/src/main/java/com/ccwangluo/accelerator/ui/login/PhoneLoginActivity.kt
.../com/ccwangluo/accelerator/ui/login/PhoneLoginActivity.kt
+16
-1
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
...java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
+31
-16
app/src/main/java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
.../java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
+2
-0
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
...c/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
+9
-0
app/src/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
...c/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
+14
-6
app/src/main/java/com/ccwangluo/accelerator/utils/SettingSPUtils.kt
...in/java/com/ccwangluo/accelerator/utils/SettingSPUtils.kt
+7
-0
app/src/main/java/com/ccwangluo/accelerator/utils/SysUtils.kt
...src/main/java/com/ccwangluo/accelerator/utils/SysUtils.kt
+46
-18
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/BaseData.kt
...va/com/ccwangluo/accelerator/utils/dataReport/BaseData.kt
+23
-0
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/DataReoortUtils.kt
...ccwangluo/accelerator/utils/dataReport/DataReoortUtils.kt
+46
-0
app/src/main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
.../main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
+49
-16
app/src/main/res/drawable/shape_tab_indicator.xml
app/src/main/res/drawable/shape_tab_indicator.xml
+2
-2
app/src/main/res/layout/fragment_quick.xml
app/src/main/res/layout/fragment_quick.xml
+1
-0
app/src/main/res/layout/item_tab.xml
app/src/main/res/layout/item_tab.xml
+1
-0
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
+11
-10
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
+1
-1
No files found.
app/src/main/java/com/ccwangluo/accelerator/App.kt
View file @
1342942d
...
@@ -7,6 +7,8 @@ import android.os.Environment
...
@@ -7,6 +7,8 @@ import android.os.Environment
import
androidx.multidex.MultiDex
import
androidx.multidex.MultiDex
import
com.ccwangluo.accelerator.ui.MainActivity
import
com.ccwangluo.accelerator.ui.MainActivity
import
com.ccwangluo.accelerator.utils.PhoneUtils
import
com.ccwangluo.accelerator.utils.PhoneUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.tencent.bugly.Bugly
import
com.tencent.bugly.Bugly
...
@@ -35,11 +37,11 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
...
@@ -35,11 +37,11 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
MultiDex
.
install
(
this
)
MultiDex
.
install
(
this
)
Core
.
init
(
this
,
MainActivity
::
class
)
Core
.
init
(
this
,
MainActivity
::
class
)
MMKV
.
initialize
(
this
)
MMKV
.
initialize
(
this
)
XGPushConfig
.
enableDebug
(
this
,
true
);
XGPushConfig
.
enableDebug
(
this
,
true
);
XUtil
.
init
(
this
)
XUtil
.
init
(
this
)
}
}
fun
initBugly
(){
fun
initBugly
()
{
/**
/**
* true表示app启动自动初始化升级模块; false不会自动初始化;
* true表示app启动自动初始化升级模块; false不会自动初始化;
* 开发者如果担心sdk初始化影响app启动速度,可以设置为false,
* 开发者如果担心sdk初始化影响app启动速度,可以设置为false,
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
View file @
1342942d
...
@@ -9,8 +9,8 @@ import com.ccwangluo.accelerator.ui.home.AccelertorFragment
...
@@ -9,8 +9,8 @@ import com.ccwangluo.accelerator.ui.home.AccelertorFragment
import
com.ccwangluo.accelerator.ui.home.AccelertorViewModel
import
com.ccwangluo.accelerator.ui.home.AccelertorViewModel
import
com.ccwangluo.accelerator.ui.home.MineFragment
import
com.ccwangluo.accelerator.ui.home.MineFragment
import
com.ccwangluo.accelerator.ui.home.NewsFragment
import
com.ccwangluo.accelerator.ui.home.NewsFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
...
@@ -100,6 +100,10 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
...
@@ -100,6 +100,10 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
val
index
:
Int
=
CollectionUtils
.
arrayIndexOf
(
titles
,
item
.
getTitle
())
val
index
:
Int
=
CollectionUtils
.
arrayIndexOf
(
titles
,
item
.
getTitle
())
if
(
index
!=
-
1
)
{
if
(
index
!=
-
1
)
{
binding
.
viewPager
.
setCurrentItem
(
index
,
true
)
binding
.
viewPager
.
setCurrentItem
(
index
,
true
)
when
(
index
){
0
->
DataReoortUtils
.
report
(
"st_speed_tab_clk"
)
1
->
DataReoortUtils
.
report
(
"st_msg_tab_clk"
)
}
return
true
return
true
}
}
return
false
return
false
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
View file @
1342942d
...
@@ -34,6 +34,7 @@ import android.hardware.SensorEventListener
...
@@ -34,6 +34,7 @@ import android.hardware.SensorEventListener
import
android.os.Handler
import
android.os.Handler
import
android.util.Log
import
android.util.Log
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.xuexiang.xutil.net.NetworkUtils
import
com.xuexiang.xutil.net.NetworkUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
import
fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
...
@@ -50,6 +51,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -50,6 +51,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
private
val
connect
=
registerForActivityResult
(
StartService
())
{
private
val
connect
=
registerForActivityResult
(
StartService
())
{
if
(
it
)
{
if
(
it
)
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
2
))
ToastUtils
.
show
(
"开启vpn权限失败"
)
ToastUtils
.
show
(
"开启vpn权限失败"
)
}
}
}
}
...
@@ -63,6 +65,12 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -63,6 +65,12 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
accelertorViewModel
=
accelertorViewModel
=
ViewModelProvider
(
this
).
get
(
AccelertorViewModel
::
class
.
java
)
ViewModelProvider
(
this
).
get
(
AccelertorViewModel
::
class
.
java
)
// app 启动
if
(
SettingSPUtils
.
lastAPPOpenReportTime
==
0L
||
System
.
currentTimeMillis
()
-
SettingSPUtils
.
lastAPPOpenReportTime
>
30
*
60
*
1000
)
{
DataReoortUtils
.
report
(
"start_app"
)
}
initPhoneUtils
()
initPhoneUtils
()
//获取权限
//获取权限
Dexter
.
withContext
(
this
)
Dexter
.
withContext
(
this
)
...
@@ -105,6 +113,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -105,6 +113,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
PrivacyDialog
(
this
,
HttpConfig
.
HTML_HOST_PRIVACY
+
"index.html"
)
{
PrivacyDialog
(
this
,
HttpConfig
.
HTML_HOST_PRIVACY
+
"index.html"
)
{
if
(
it
)
{
if
(
it
)
{
SettingSPUtils
.
isAgreePrivacy
=
true
SettingSPUtils
.
isAgreePrivacy
=
true
DataReoortUtils
.
report
(
"st_agrmt_ok"
)
}
else
{
}
else
{
finish
()
finish
()
}
}
...
@@ -115,6 +124,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -115,6 +124,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
AcceleratorUtils
.
initConnect
(
this
,
connect
)
AcceleratorUtils
.
initConnect
(
this
,
connect
)
mSensorManager
=
getSystemService
(
SENSOR_SERVICE
)
as
SensorManager
mSensorManager
=
getSystemService
(
SENSOR_SERVICE
)
as
SensorManager
mSensorEventListener
=
JCVideoPlayer
.
JCAutoFullscreenListener
()
mSensorEventListener
=
JCVideoPlayer
.
JCAutoFullscreenListener
()
DataReoortUtils
.
report
(
"st_app_open"
)
}
}
...
@@ -125,6 +135,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -125,6 +135,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
override
fun
onSuccess
(
data
:
Any
,
flag
:
Int
)
{
override
fun
onSuccess
(
data
:
Any
,
flag
:
Int
)
{
//token在设备卸载重装的时候有可能会变
//token在设备卸载重装的时候有可能会变
Log
.
d
(
"TPush"
,
"注册成功,设备token为:$data"
)
Log
.
d
(
"TPush"
,
"注册成功,设备token为:$data"
)
DataReoortUtils
.
report
(
"st_app_start_push"
)
}
}
override
fun
onFail
(
data
:
Any
,
errCode
:
Int
,
msg
:
String
)
{
override
fun
onFail
(
data
:
Any
,
errCode
:
Int
,
msg
:
String
)
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
View file @
1342942d
...
@@ -20,6 +20,7 @@ import com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
...
@@ -20,6 +20,7 @@ import com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.bg.BaseService
...
@@ -80,7 +81,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -80,7 +81,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
netDelay2Unit
.
visibility
=
View
.
GONE
binding
.
netDelay2Unit
.
visibility
=
View
.
GONE
}
}
if
(!
it
.
lossRate
.
isEmpty
()
&&
state
==
BaseService
.
State
.
Connected
)
{
if
(!
it
.
lossRate
.
isEmpty
()
&&
state
==
BaseService
.
State
.
Connected
)
{
binding
.
netLost1
.
setText
(
it
.
lossRate
)
binding
.
netLost1
.
setText
(
it
.
lossRate
)
binding
.
netLost2
.
setText
(
it
.
lossRate
)
binding
.
netLost2
.
setText
(
it
.
lossRate
)
binding
.
netLost1Unit
.
visibility
=
View
.
VISIBLE
binding
.
netLost1Unit
.
visibility
=
View
.
VISIBLE
...
@@ -150,10 +151,17 @@ class AccelertorFragment : XPageFragment() {
...
@@ -150,10 +151,17 @@ class AccelertorFragment : XPageFragment() {
override
fun
initListeners
()
{
override
fun
initListeners
()
{
binding
.
iconNotice
.
setOnClickListener
{
binding
.
iconNotice
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_sysmsg_clk"
)
openToWebview
(
HttpConfig
.
UI_MESSAGE_URL
)
openToWebview
(
HttpConfig
.
UI_MESSAGE_URL
)
}
}
binding
.
accShare
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_share_clk"
)
// TODO: 2022/3/14 share
}
binding
.
gamePage
.
setOnClickListener
{
binding
.
gamePage
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_game_sysmsg_clk"
)
openWebviewForResult
(
HttpConfig
.
UI_GAME_URL
+
"?gameId=${AcceleratorUtils.game?.id}"
)
openWebviewForResult
(
HttpConfig
.
UI_GAME_URL
+
"?gameId=${AcceleratorUtils.game?.id}"
)
}
}
...
@@ -170,13 +178,16 @@ class AccelertorFragment : XPageFragment() {
...
@@ -170,13 +178,16 @@ class AccelertorFragment : XPageFragment() {
}
}
binding
.
preventAccLost
.
setOnClickListener
{
binding
.
preventAccLost
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_lostcon_clk"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
}
}
binding
.
preventAccInvalid
.
setOnClickListener
{
binding
.
preventAccInvalid
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_disabl_clk"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=2"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=2"
)
}
}
binding
.
btnExpend
.
setOnClickListener
{
binding
.
btnExpend
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_msg_clk"
)
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
binding
.
expandableLayout1
.
toggle
()
binding
.
expandableLayout1
.
toggle
()
binding
.
expandableLayout2
.
expand
()
binding
.
expandableLayout2
.
expand
()
...
@@ -188,20 +199,24 @@ class AccelertorFragment : XPageFragment() {
...
@@ -188,20 +199,24 @@ class AccelertorFragment : XPageFragment() {
}
}
}
}
binding
.
btnQuick
.
setOnClickListener
{
binding
.
btnQuick
.
setOnClickListener
{
//Beta.checkUpgrade(true,false)
accelertorViewModel
.
accState
.
value
?.
let
{
accelertorViewModel
.
accState
.
value
?.
let
{
if
(
it
.
canStop
)
{
if
(
it
.
canStop
)
{
context
?.
let
{
context
?.
let
{
CommonDialog
(
it
).
setTitle
(
"加速停止确认"
)
CommonDialog
(
it
).
setTitle
(
"加速停止确认"
)
.
setContent
(
"停止加速可能会导致游戏断线,是否确认停止?"
)
.
setContent
(
"停止加速可能会导致游戏断线,是否确认停止?"
)
.
setBtnLeft
(
"取消"
,
{}).
setBtnRight
(
"停止加速"
,
{
.
setBtnLeft
(
"取消"
,
{
DataReoortUtils
.
report
(
"st_speed_stop_pop_cancel_clk"
)
}).
setBtnRight
(
"停止加速"
,
{
DataReoortUtils
.
report
(
"st_speed_stop_pop_ok_clk"
)
AcceleratorUtils
.
stopAccelerator
()
AcceleratorUtils
.
stopAccelerator
()
}).
show
<
CommonDialog
>()
}).
show
<
CommonDialog
>()
DataReoortUtils
.
report
(
"st_speed_stop_pop_show"
)
}
}
DataReoortUtils
.
report
(
"st_speed_stop_clk"
)
return
@setOnClickListener
return
@setOnClickListener
}
else
{
DataReoortUtils
.
report
(
"st_speed_start_clk"
)
}
}
}
}
if
(!
LoginUtils
.
hasToken
())
{
if
(!
LoginUtils
.
hasToken
())
{
context
?.
let
{
it1
->
context
?.
let
{
it1
->
...
@@ -209,6 +224,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -209,6 +224,7 @@ class AccelertorFragment : XPageFragment() {
})
})
}
}
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
return
@setOnClickListener
return
@setOnClickListener
}
}
...
@@ -218,6 +234,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -218,6 +234,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
},
2000
)
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
return
@setOnClickListener
return
@setOnClickListener
}
}
AcceleratorUtils
.
getGameList
(
this
)
{
AcceleratorUtils
.
getGameList
(
this
)
{
...
@@ -230,6 +247,10 @@ class AccelertorFragment : XPageFragment() {
...
@@ -230,6 +247,10 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
},
2000
)
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"1"
)
)
return
@getGameList
return
@getGameList
}
}
}
}
...
@@ -239,10 +260,15 @@ class AccelertorFragment : XPageFragment() {
...
@@ -239,10 +260,15 @@ class AccelertorFragment : XPageFragment() {
binding
.
btnQuick
.
isEnabled
=
false
binding
.
btnQuick
.
isEnabled
=
false
startAnim
()
startAnim
()
}
else
{
}
else
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
3
)
)
MemberDialog
(
this
@AccelertorFragment
).
show
<
MemberDialog
>()
MemberDialog
(
this
@AccelertorFragment
).
show
<
MemberDialog
>()
}
}
}
}
}
else
{
}
else
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
ToastUtils
.
show
(
"获取游戏配置异常"
)
ToastUtils
.
show
(
"获取游戏配置异常"
)
}
}
}
}
...
@@ -253,7 +279,12 @@ class AccelertorFragment : XPageFragment() {
...
@@ -253,7 +279,12 @@ class AccelertorFragment : XPageFragment() {
binding
.
gameStart
.
setOnClickListener
{
binding
.
gameStart
.
setOnClickListener
{
if
(!
binding
.
expandableLayout1
.
isExpanded
)
{
if
(!
binding
.
expandableLayout1
.
isExpanded
)
{
AcceleratorUtils
.
game
?.
let
{
AcceleratorUtils
.
game
?.
let
{
DataReoortUtils
.
report
(
"st_speed_game_start_clk"
)
try
{
AppUtils
.
launchApp
(
it
.
packageName
)
AppUtils
.
launchApp
(
it
.
packageName
)
}
catch
(
e
:
Exception
)
{
}
if
(
state
==
BaseService
.
State
.
Connected
)
{
if
(
state
==
BaseService
.
State
.
Connected
)
{
binding
.
gameStart
.
postDelayed
({
binding
.
gameStart
.
postDelayed
({
ToastUtils
.
show
(
"TT正在为游戏加速"
)
ToastUtils
.
show
(
"TT正在为游戏加速"
)
...
@@ -262,6 +293,8 @@ class AccelertorFragment : XPageFragment() {
...
@@ -262,6 +293,8 @@ class AccelertorFragment : XPageFragment() {
}
}
}
}
}
}
}
}
fun
openToWebview
(
url
:
String
)
{
fun
openToWebview
(
url
:
String
)
{
...
@@ -282,12 +315,12 @@ class AccelertorFragment : XPageFragment() {
...
@@ -282,12 +315,12 @@ class AccelertorFragment : XPageFragment() {
override
fun
onFragmentResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
override
fun
onFragmentResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onFragmentResult
(
requestCode
,
resultCode
,
data
)
super
.
onFragmentResult
(
requestCode
,
resultCode
,
data
)
if
(
requestCode
==
CLICK_START_ACC_REQUEST_CODE
)
{
if
(
requestCode
==
CLICK_START_ACC_REQUEST_CODE
)
{
binding
.
btnQuick
.
performClick
()
binding
.
btnQuick
.
performClick
()
}
}
}
}
private
val
CLICK_START_ACC_REQUEST_CODE
:
Int
=
100
;
private
val
CLICK_START_ACC_REQUEST_CODE
:
Int
=
100
;
private
fun
openWebviewForResult
(
url
:
String
)
{
private
fun
openWebviewForResult
(
url
:
String
)
{
LoginUtils
.
token
?.
let
{
LoginUtils
.
token
?.
let
{
PageOption
.
to
(
CommonWebViewFragment
::
class
.
java
)
PageOption
.
to
(
CommonWebViewFragment
::
class
.
java
)
...
@@ -297,7 +330,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -297,7 +330,7 @@ class AccelertorFragment : XPageFragment() {
}
?:
let
{
}
?:
let
{
context
?.
let
{
it1
->
context
?.
let
{
it1
->
LoginUtils
.
login
(
it1
)
{
LoginUtils
.
login
(
it1
)
{
if
(
it
)
{
if
(
it
)
{
PageOption
.
to
(
CommonWebViewFragment
::
class
.
java
)
PageOption
.
to
(
CommonWebViewFragment
::
class
.
java
)
.
putString
(
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
...
@@ -319,10 +352,14 @@ class AccelertorFragment : XPageFragment() {
...
@@ -319,10 +352,14 @@ class AccelertorFragment : XPageFragment() {
context
?.
let
{
context
?.
let
{
CommonDialog
(
it
).
setTitle
(
"防止加速掉线"
)
CommonDialog
(
it
).
setTitle
(
"防止加速掉线"
)
.
setContent
(
"为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置"
)
.
setContent
(
"为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置"
)
.
setBtnLeft
(
"取消"
,
{}).
setBtnRight
(
"去设置"
,
{
.
setBtnLeft
(
"取消"
,
{
DataReoortUtils
.
report
(
"st_speed_course_pop_cancel_clk"
)
}).
setBtnRight
(
"去设置"
,
{
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
DataReoortUtils
.
report
(
"st_speed_course_pop_set_clk"
)
}).
show
<
CommonDialog
>()
}).
show
<
CommonDialog
>()
SettingSPUtils
.
isFirstAccSuccess
=
false
SettingSPUtils
.
isFirstAccSuccess
=
false
DataReoortUtils
.
report
(
"st_speed_course_pop_show"
)
}
}
}
}
...
@@ -389,8 +426,9 @@ class AccelertorFragment : XPageFragment() {
...
@@ -389,8 +426,9 @@ class AccelertorFragment : XPageFragment() {
binding
.
progressViewCircleSmall
.
startProgressAnimation
()
binding
.
progressViewCircleSmall
.
startProgressAnimation
()
}
}
fun
startAccSuccess
(){
fun
startAccSuccess
()
{
if
(
binding
.
gameStart
.
visibility
==
View
.
GONE
)
{
if
(
binding
.
gameStart
.
visibility
==
View
.
GONE
)
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
1
))
binding
.
gamePicIn1
.
startAnimation
(
getDefaultAnim
())
binding
.
gamePicIn1
.
startAnimation
(
getDefaultAnim
())
binding
.
accStateTx
.
visibility
=
View
.
VISIBLE
binding
.
accStateTx
.
visibility
=
View
.
VISIBLE
binding
.
btnQuick
.
setBackgroundResource
(
R
.
mipmap
.
quick_stop
)
binding
.
btnQuick
.
setBackgroundResource
(
R
.
mipmap
.
quick_stop
)
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
View file @
1342942d
...
@@ -24,14 +24,17 @@ import com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
...
@@ -24,14 +24,17 @@ import com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.http.HttpConfig
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.tabs.TabLayout
import
com.google.android.material.tabs.TabLayoutMediator
import
com.google.android.material.tabs.TabLayoutMediator
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.just.agentweb.download.DownloadTask
import
com.just.agentweb.download.DownloadTask
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xui.widget.tabbar.TabSegment
import
com.xuexiang.xui.widget.toast.XToast
import
com.xuexiang.xui.widget.toast.XToast
import
com.xuexiang.xutil.XUtil
import
com.xuexiang.xutil.XUtil
import
com.xuexiang.xutil.app.AppUtils
import
com.xuexiang.xutil.app.AppUtils
...
@@ -101,12 +104,14 @@ class NewsFragment : XPageFragment() {
...
@@ -101,12 +104,14 @@ class NewsFragment : XPageFragment() {
if
(
itemData
.
type
==
1
)
{
if
(
itemData
.
type
==
1
)
{
itemData
.
url
?.
let
{
itemData
.
url
?.
let
{
DataReoortUtils
.
report
(
"st_qq_clk"
,
mapOf
(
"scene"
to
3
))
context
?.
let
{
it1
->
SysUtils
.
joinQQGroup
(
it1
)
}
context
?.
let
{
it1
->
SysUtils
.
joinQQGroup
(
it1
)
}
}
}
}
}
if
(
itemData
.
type
==
2
)
{
if
(
itemData
.
type
==
2
)
{
itemData
.
url
?.
let
{
itemData
.
url
?.
let
{
DataReoortUtils
.
report
(
"st_google_clk"
,
mapOf
(
"scene"
to
3
))
openToWebview
(
it
)
openToWebview
(
it
)
}
}
}
}
...
@@ -133,6 +138,24 @@ class NewsFragment : XPageFragment() {
...
@@ -133,6 +138,24 @@ class NewsFragment : XPageFragment() {
tab
.
setCustomView
(
R
.
layout
.
item_tab
)
tab
.
setCustomView
(
R
.
layout
.
item_tab
)
tab
.
text
=
titles
[
position
]
tab
.
text
=
titles
[
position
]
}.
attach
()
}.
attach
()
binding
.
tabLayout
.
addOnTabSelectedListener
(
object
:
TabLayout
.
OnTabSelectedListener
{
override
fun
onTabSelected
(
tab
:
TabLayout
.
Tab
?)
{
tab
?.
let
{
DataReoortUtils
.
report
(
"st_msg_channel_clk"
,
mapOf
(
"headline"
to
it
.
position
.
toString
()))
}
}
override
fun
onTabUnselected
(
tab
:
TabLayout
.
Tab
?)
{
}
override
fun
onTabReselected
(
tab
:
TabLayout
.
Tab
?)
{
}
})
AcceleratorUtils
.
getGameList
(
this
)
{
AcceleratorUtils
.
getGameList
(
this
)
{
if
(
it
)
{
if
(
it
)
{
AcceleratorUtils
.
game
?.
let
{
AcceleratorUtils
.
game
?.
let
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/login/LoginViewModel.kt
View file @
1342942d
...
@@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModel
...
@@ -5,6 +5,7 @@ import androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
androidx.lifecycle.viewModelScope
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
...
@@ -26,9 +27,18 @@ class LoginViewModel : ViewModel() {
...
@@ -26,9 +27,18 @@ class LoginViewModel : ViewModel() {
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/verifyCode/login"
,
map
)
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/verifyCode/login"
,
map
)
res
?.
let
{
res
?.
let
{
if
(
it
.
code
==
200
)
{
if
(
it
.
code
==
200
)
{
DataReoortUtils
.
report
(
"st_login_vercode_result"
,
mapOf
(
"result"
to
1
))
LoginUtils
.
token
=
it
.
data
?.
token
LoginUtils
.
token
=
it
.
data
?.
token
LoginUtils
.
uid
=
it
.
data
?.
phone
loginState
.
postValue
(
true
)
loginState
.
postValue
(
true
)
}
else
{
}
else
{
val
map
=
mutableMapOf
<
String
,
Any
>(
"result"
to
0
)
it
.
error
?.
let
{
it1
->
map
.
put
(
"cause"
,
it1
)
}
DataReoortUtils
.
report
(
"st_login_vercode_result"
,
map
)
ToastUtils
.
show
(
it
.
error
)
ToastUtils
.
show
(
it
.
error
)
}
}
}
}
...
@@ -48,7 +58,7 @@ class LoginViewModel : ViewModel() {
...
@@ -48,7 +58,7 @@ class LoginViewModel : ViewModel() {
sendCodeState
.
postValue
(
false
)
sendCodeState
.
postValue
(
false
)
ToastUtils
.
show
(
it
.
error
)
ToastUtils
.
show
(
it
.
error
)
}
}
}
?:
let
{
}
?:
let
{
sendCodeState
.
postValue
(
false
)
sendCodeState
.
postValue
(
false
)
}
}
}
}
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/login/PhoneLoginActivity.kt
View file @
1342942d
...
@@ -10,6 +10,7 @@ import com.ccwangluo.accelerator.ui.web.BlankActivity
...
@@ -10,6 +10,7 @@ import com.ccwangluo.accelerator.ui.web.BlankActivity
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.http.HttpConfig
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.annotation.Page
...
@@ -32,6 +33,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -32,6 +33,7 @@ class PhoneLoginActivity : XPageActivity() {
setContentView
(
binding
.
root
)
setContentView
(
binding
.
root
)
initViews
()
initViews
()
initListeners
()
initListeners
()
DataReoortUtils
.
report
(
"st_login_vercode_show"
)
}
}
fun
initViews
()
{
fun
initViews
()
{
...
@@ -50,6 +52,16 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -50,6 +52,16 @@ class PhoneLoginActivity : XPageActivity() {
binding
.
login
.
isEnabled
=
false
binding
.
login
.
isEnabled
=
false
}
}
}
}
binding
.
phoneEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
if
(
hasFocus
)
{
DataReoortUtils
.
report
(
"st_login_ph_input"
)
}
}
binding
.
authCodeEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
if
(
hasFocus
)
{
DataReoortUtils
.
report
(
"st_login_vercode_write"
)
}
}
binding
.
authCodeEt
.
addTextChangedListener
{
binding
.
authCodeEt
.
addTextChangedListener
{
val
authCdoe
=
it
.
toString
().
trim
()
val
authCdoe
=
it
.
toString
().
trim
()
...
@@ -77,6 +89,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -77,6 +89,7 @@ class PhoneLoginActivity : XPageActivity() {
loginViewModel
.
loginState
.
observe
(
this
,
{
loginViewModel
.
loginState
.
observe
(
this
,
{
if
(
it
)
{
if
(
it
)
{
LoginUtils
.
stopTimer
()
LoginUtils
.
stopTimer
()
DataReoortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_vercode"
))
finish
()
finish
()
}
}
})
})
...
@@ -105,7 +118,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -105,7 +118,7 @@ class PhoneLoginActivity : XPageActivity() {
}
}
binding
.
userAggreement
.
setOnClickListener
{
binding
.
userAggreement
.
setOnClickListener
{
val
intent
=
Intent
(
this
,
BlankActivity
::
class
.
java
)
val
intent
=
Intent
(
this
,
BlankActivity
::
class
.
java
)
intent
.
putExtra
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
url_user_agreement
)
intent
.
putExtra
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
url_user_agreement
)
startActivity
(
intent
)
startActivity
(
intent
)
}
}
...
@@ -115,6 +128,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -115,6 +128,7 @@ class PhoneLoginActivity : XPageActivity() {
}
}
binding
.
authCodeBtn
.
setOnClickListener
{
binding
.
authCodeBtn
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_login_vercode_request_clk"
)
val
phone
=
binding
.
phoneEt
.
text
.
toString
()
val
phone
=
binding
.
phoneEt
.
text
.
toString
()
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
isPhone
(
phone
))
{
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
isPhone
(
phone
))
{
ToastUtils
.
show
(
"输入正确的手机号"
)
ToastUtils
.
show
(
"输入正确的手机号"
)
...
@@ -129,6 +143,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -129,6 +143,7 @@ class PhoneLoginActivity : XPageActivity() {
}
}
binding
.
login
.
setOnClickListener
{
binding
.
login
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_login_vercode_btn_clk"
)
//检查验证码,手机号格式
//检查验证码,手机号格式
val
phone
=
binding
.
phoneEt
.
text
.
toString
()
val
phone
=
binding
.
phoneEt
.
text
.
toString
()
val
authCdoe
=
binding
.
authCodeEt
.
text
.
toString
()
val
authCdoe
=
binding
.
authCodeEt
.
text
.
toString
()
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
View file @
1342942d
...
@@ -26,6 +26,7 @@ import android.util.DisplayMetrics
...
@@ -26,6 +26,7 @@ import android.util.DisplayMetrics
import
android.util.Log
import
android.util.Log
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.plugin.PluginContract
import
com.github.shadowsocks.plugin.PluginContract
import
com.tencent.bugly.beta.Beta
import
com.tencent.bugly.beta.Beta
...
@@ -91,10 +92,13 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -91,10 +92,13 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
openWebviewByWholeUrl
(
url
:
String
)
{
fun
openWebviewByWholeUrl
(
url
:
String
)
{
val
params
=
Bundle
()
val
params
=
Bundle
()
if
(
url
.
startsWith
(
"http:"
)||
url
.
startsWith
(
"https:"
)){
if
(
url
.
startsWith
(
"http:"
)
||
url
.
startsWith
(
"https:"
))
{
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
}
else
{
}
else
{
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
HTML_HOST_PRIVACY
+
url
)
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
HTML_HOST_PRIVACY
+
url
)
}
}
xPageFragment
.
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
xPageFragment
.
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
...
@@ -103,7 +107,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -103,7 +107,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
//打开系统设置
//打开系统设置
@JavascriptInterface
@JavascriptInterface
fun
openSysSetting
()
{
fun
openSysSetting
()
{
xPageFragment
.
startActivity
(
Intent
(
Settings
.
ACTION_SETTINGS
));
xPageFragment
.
startActivity
(
Intent
(
Settings
.
ACTION_SETTINGS
));
}
}
@JavascriptInterface
@JavascriptInterface
...
@@ -129,7 +133,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -129,7 +133,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
* 获取token
* 获取token
*/
*/
@JavascriptInterface
@JavascriptInterface
fun
getToken
(
callback
:
String
){
fun
getToken
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
LoginUtils
.
token
)
.
quickCallJs
(
callback
,
LoginUtils
.
token
)
}
}
...
@@ -143,11 +147,16 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -143,11 +147,16 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
//是否有更新:1有 0没有
//是否有更新:1有 0没有
//最新安装包的版本名称
//最新安装包的版本名称
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"1"
,
AppUtils
.
getAppVersionName
(),
it
.
versionName
)
.
quickCallJs
(
callback
,
"1"
,
AppUtils
.
getAppVersionName
(),
it
.
versionName
)
}
?:
let
{
}
?:
let
{
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"0"
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionName
())
.
quickCallJs
(
callback
,
"0"
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionName
()
)
}
}
}
}
...
@@ -155,23 +164,23 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -155,23 +164,23 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
* 当前加速状态 1 加速中,0 未加速
* 当前加速状态 1 加速中,0 未加速
*/
*/
@JavascriptInterface
@JavascriptInterface
fun
getAccelerateState
(
callback
:
String
){
fun
getAccelerateState
(
callback
:
String
)
{
if
(
BaseService
.
State
.
Connected
==
AcceleratorUtils
.
state
)
{
if
(
BaseService
.
State
.
Connected
==
AcceleratorUtils
.
state
)
{
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"1"
)
.
quickCallJs
(
callback
,
"1"
)
}
else
{
}
else
{
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"0"
)
.
quickCallJs
(
callback
,
"0"
)
}
}
}
}
private
val
handler
:
Handler
=
Handler
()
private
val
handler
:
Handler
=
Handler
()
/**
/**
* 点击游戏主页下面的加速按钮调用
* 点击游戏主页下面的加速按钮调用
*/
*/
@JavascriptInterface
@JavascriptInterface
fun
clickAccelerateBtn
(){
fun
clickAccelerateBtn
()
{
handler
.
post
{
handler
.
post
{
xPageFragment
.
setFragmentResult
(
500
,
Intent
())
xPageFragment
.
setFragmentResult
(
500
,
Intent
())
xPageFragment
.
popToBack
()
xPageFragment
.
popToBack
()
...
@@ -183,7 +192,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -183,7 +192,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
*/
*/
@JavascriptInterface
@JavascriptInterface
fun
doAppUpdate
()
{
fun
doAppUpdate
()
{
Beta
.
checkUpgrade
(
true
,
false
)
Beta
.
checkUpgrade
(
true
,
false
)
}
}
/**
/**
...
@@ -326,7 +335,8 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -326,7 +335,8 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
.
quickCallJs
(
.
quickCallJs
(
callback
,
callback
,
android
.
os
.
Build
.
VERSION
.
RELEASE
,
android
.
os
.
Build
.
VERSION
.
RELEASE
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
(),
android
.
os
.
Build
.
VERSION
.
SDK_INT
.
toString
()
SysUtils
.
getDpi
(
xPageFragment
).
toString
(),
android
.
os
.
Build
.
VERSION
.
SDK_INT
.
toString
()
)
)
}
}
...
@@ -345,4 +355,9 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -345,4 +355,9 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
System
.
exit
(
0
)
System
.
exit
(
0
)
}
}
@JavascriptInterface
fun
dataReport
(
event
:
String
,
data
:
String
)
{
DataReoortUtils
.
report
(
event
,
data
)
}
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
View file @
1342942d
...
@@ -9,6 +9,7 @@ import androidx.appcompat.app.AppCompatActivity
...
@@ -9,6 +9,7 @@ import androidx.appcompat.app.AppCompatActivity
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.ccwangluo.accelerator.model.*
import
com.ccwangluo.accelerator.model.*
import
com.ccwangluo.accelerator.ui.dialog.CommonDialog
import
com.ccwangluo.accelerator.ui.dialog.CommonDialog
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
...
@@ -215,6 +216,7 @@ object AcceleratorUtils {
...
@@ -215,6 +216,7 @@ object AcceleratorUtils {
AcceleratorUtils
.
state
=
state
AcceleratorUtils
.
state
=
state
stateListener
(
state
,
getAccTime
(),
null
)
stateListener
(
state
,
getAccTime
(),
null
)
if
(
state
==
BaseService
.
State
.
Stopped
&&
!
msg
.
isNullOrBlank
())
{
if
(
state
==
BaseService
.
State
.
Stopped
&&
!
msg
.
isNullOrBlank
())
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
3
.
toString
()))
if
(
"vip到期"
.
equals
(
msg
)||(
msg
!=
null
&&
msg
.
startsWith
(
"vip已到期"
))){
if
(
"vip到期"
.
equals
(
msg
)||(
msg
!=
null
&&
msg
.
startsWith
(
"vip已到期"
))){
vipExpireListener
()
vipExpireListener
()
}
else
{
}
else
{
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
View file @
1342942d
...
@@ -8,6 +8,7 @@ import androidx.lifecycle.lifecycleScope
...
@@ -8,6 +8,7 @@ import androidx.lifecycle.lifecycleScope
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.UserProfile
import
com.ccwangluo.accelerator.model.UserProfile
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
...
@@ -116,9 +117,11 @@ object LoginUtils {
...
@@ -116,9 +117,11 @@ object LoginUtils {
res
?.
let
{
res
?.
let
{
if
(
it
.
code
==
200
)
{
if
(
it
.
code
==
200
)
{
token
=
it
.
data
?.
token
token
=
it
.
data
?.
token
uid
=
it
.
data
?.
phone
withContext
(
Dispatchers
.
Main
)
{
withContext
(
Dispatchers
.
Main
)
{
ToastUtils
.
show
(
"登录成功"
)
ToastUtils
.
show
(
"登录成功"
)
OneKeyLoginManager
.
getInstance
().
finishAuthActivity
()
OneKeyLoginManager
.
getInstance
().
finishAuthActivity
()
DataReoortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_all"
))
callBack
(
true
)
callBack
(
true
)
}
}
}
else
{
}
else
{
...
@@ -161,6 +164,12 @@ object LoginUtils {
...
@@ -161,6 +164,12 @@ object LoginUtils {
return
!
AuthManager
.
authToken
.
isNullOrBlank
()
return
!
AuthManager
.
authToken
.
isNullOrBlank
()
}
}
var
uid
:
String
?
get
()
=
MMKV
.
defaultMMKV
().
decodeString
(
"ACC_UID"
,
null
)
set
(
acc_uid
)
{
MMKV
.
defaultMMKV
().
putString
(
"ACC_UID"
,
acc_uid
)
}
fun
logout
()
{
fun
logout
()
{
}
}
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
View file @
1342942d
...
@@ -11,6 +11,7 @@ import android.widget.RelativeLayout
...
@@ -11,6 +11,7 @@ import android.widget.RelativeLayout
import
android.widget.TextView
import
android.widget.TextView
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.chuanglan.shanyan_sdk.tool.ShanYanUIConfig
import
com.chuanglan.shanyan_sdk.tool.ShanYanUIConfig
...
@@ -20,9 +21,6 @@ import com.xuexiang.xpage.core.PageOption
...
@@ -20,9 +21,6 @@ import com.xuexiang.xpage.core.PageOption
import
org.json.JSONObject
import
org.json.JSONObject
object
PhoneUtils
{
object
PhoneUtils
{
private
val
TAG
:
String
=
PhoneUtils
.
javaClass
.
name
private
val
TAG
:
String
=
PhoneUtils
.
javaClass
.
name
...
@@ -58,13 +56,22 @@ object PhoneUtils {
...
@@ -58,13 +56,22 @@ object PhoneUtils {
{
code
,
result
->
{
code
,
result
->
if
(
code
!=
1000
)
{
if
(
code
!=
1000
)
{
callback
(
false
,
""
)
callback
(
false
,
""
)
}
else
{
DataReoortUtils
.
report
(
"st_login_one_show"
)
}
}
Log
.
i
(
TAG
,
"openLoginAuth: $result"
)
Log
.
i
(
TAG
,
"openLoginAuth: $result"
)
}
}
)
{
code
,
result
->
)
{
code
,
result
->
if
(
code
==
1000
)
{
if
(
code
==
1000
)
{
val
json
=
JSONObject
(
result
)
val
json
=
JSONObject
(
result
)
DataReoortUtils
.
report
(
"st_login_one_result"
,
mapOf
(
"result"
to
1
))
callback
(
true
,
json
.
getString
(
"token"
))
callback
(
true
,
json
.
getString
(
"token"
))
}
else
{
DataReoortUtils
.
report
(
"st_login_one_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
result
)
)
}
}
}
}
}
}
...
@@ -139,9 +146,10 @@ object PhoneUtils {
...
@@ -139,9 +146,10 @@ object PhoneUtils {
.
addCustomView
(
.
addCustomView
(
mOtherTv
,
true
,
false
mOtherTv
,
true
,
false
)
{
context
,
view
->
)
{
context
,
view
->
val
intent
=
Intent
(
context
,
PhoneLoginActivity
::
class
.
java
)
val
intent
=
Intent
(
context
,
PhoneLoginActivity
::
class
.
java
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
context
.
startActivity
(
intent
)
context
.
startActivity
(
intent
)
DataReoortUtils
.
report
(
"st_login_other_clk"
)
}
}
.
setPrivacyState
(
false
)
.
setPrivacyState
(
false
)
.
setCheckedImgPath
(
mCheckedImg
)
.
setCheckedImgPath
(
mCheckedImg
)
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/SettingSPUtils.kt
View file @
1342942d
...
@@ -12,6 +12,7 @@ object SettingSPUtils {
...
@@ -12,6 +12,7 @@ object SettingSPUtils {
private
val
IS_FIRST_ACC_SUCCESS
=
"is_first_acc_success"
private
val
IS_FIRST_ACC_SUCCESS
=
"is_first_acc_success"
private
val
IS_AGREE_PRIVACY_KEY
=
"is_agree_privacy_key"
private
val
IS_AGREE_PRIVACY_KEY
=
"is_agree_privacy_key"
private
val
IS_SMART_ACC_OPEN
=
"is_smart_acc_open"
private
val
IS_SMART_ACC_OPEN
=
"is_smart_acc_open"
private
val
LAST_APP_SRART_TIME
=
"LAST_APP_SRART_TIME"
/**
/**
...
@@ -41,5 +42,11 @@ object SettingSPUtils {
...
@@ -41,5 +42,11 @@ object SettingSPUtils {
MMKV
.
defaultMMKV
().
putBoolean
(
IS_SMART_ACC_OPEN
,
isSmartAccOpen
)
MMKV
.
defaultMMKV
().
putBoolean
(
IS_SMART_ACC_OPEN
,
isSmartAccOpen
)
}
}
var
lastAPPOpenReportTime
:
Long
get
()
=
MMKV
.
defaultMMKV
().
decodeLong
(
LAST_APP_SRART_TIME
,
0L
)
set
(
lastAPPOpenReportTime
)
{
MMKV
.
defaultMMKV
().
putLong
(
LAST_APP_SRART_TIME
,
lastAPPOpenReportTime
)
}
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/SysUtils.kt
View file @
1342942d
...
@@ -2,22 +2,21 @@ package com.ccwangluo.accelerator.utils
...
@@ -2,22 +2,21 @@ package com.ccwangluo.accelerator.utils
import
android.content.Context
import
android.content.Context
import
android.content.pm.PackageManager
import
android.content.pm.PackageManager
import
android.os.Build
import
android.text.TextUtils
import
android.text.TextUtils
import
android.util.DisplayMetrics
import
android.util.DisplayMetrics
import
com.ccwangluo.accelerator.model.NetState
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xutil.net.NetworkUtils
import
com.xuexiang.xutil.net.NetworkUtils
import
java.io.BufferedReader
import
java.io.InputStreamReader
import
java.text.SimpleDateFormat
import
java.text.SimpleDateFormat
import
java.util.*
import
java.util.*
import
kotlin.collections.ArrayList
import
kotlin.collections.ArrayList
import
android.app.DownloadManager
import
android.app.DownloadManager
import
android.content.Intent
import
android.content.Intent
import
android.net.*
import
android.net.*
import
android.os.Build
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageActivity
import
com.xuexiang.xpage.base.XPageActivity
import
com.xuexiang.xutil.system.DeviceUtils
import
java.lang.Exception
import
java.lang.Exception
...
@@ -41,7 +40,6 @@ object SysUtils {
...
@@ -41,7 +40,6 @@ object SysUtils {
}
}
/*
/*
* 判断设备 是否使用代理上网
* 判断设备 是否使用代理上网
* */
* */
...
@@ -118,23 +116,12 @@ object SysUtils {
...
@@ -118,23 +116,12 @@ object SysUtils {
}
}
fun
joinQQGroup
(
context
:
Context
)
{
fun
joinQQGroup
(
context
:
Context
)
{
/**
val key = "
388Tnjzn_jkY7SNKO1ACI6PL5gbhpeYR
"
val
key
=
"
5CmyFzMWyucgmmLTM7JLG_sSArmaFQxT
"
val
intent
=
Intent
()
val
intent
=
Intent
()
intent
.
data
=
intent
.
data
=
Uri
.
parse
(
"mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26jump_from%3Dwebapi%26k%3D$key"
)
Uri
.
parse
(
"mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26jump_from%3Dwebapi%26k%3D$key"
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
try {
context.startActivity(intent)
} catch (e: Exception) {
ToastUtils.show("没有安装qq")
}*/
val
key
=
"5CmyFzMWyucgmmLTM7JLG_sSArmaFQxT"
val
intent
=
Intent
()
intent
.
data
=
Uri
.
parse
(
"mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26jump_from%3Dwebapi%26k%3D$key"
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try
{
try
{
...
@@ -144,4 +131,45 @@ object SysUtils {
...
@@ -144,4 +131,45 @@ object SysUtils {
ToastUtils
.
show
(
"没有安装qq"
)
ToastUtils
.
show
(
"没有安装qq"
)
}
}
}
}
fun
getDeviceUUID
():
String
?
{
var
uuid
=
loadDeviceUUID
()
if
(
TextUtils
.
isEmpty
(
uuid
))
{
uuid
=
buildDeviceUUID
()
saveDeviceUUID
(
uuid
)
}
return
uuid
}
private
fun
buildDeviceUUID
():
String
{
var
androidId
:
String
=
DeviceUtils
.
getAndroidID
()
if
(
"9774d56d682e549c"
==
androidId
)
{
val
random
=
Random
()
androidId
=
(
Integer
.
toHexString
(
random
.
nextInt
())
+
Integer
.
toHexString
(
random
.
nextInt
())
+
Integer
.
toHexString
(
random
.
nextInt
()))
}
return
UUID
(
androidId
.
hashCode
().
toLong
(),
getBuildInfo
().
hashCode
().
toLong
()).
toString
()
}
fun
getBuildInfo
():
String
{
val
buildSB
=
StringBuffer
()
buildSB
.
append
(
Build
.
BRAND
).
append
(
"/"
)
buildSB
.
append
(
Build
.
PRODUCT
).
append
(
"/"
)
buildSB
.
append
(
Build
.
DEVICE
).
append
(
"/"
)
buildSB
.
append
(
Build
.
ID
).
append
(
"/"
)
buildSB
.
append
(
Build
.
VERSION
.
INCREMENTAL
)
return
buildSB
.
toString
()
}
private
fun
saveDeviceUUID
(
uuid
:
String
)
{
//device_uuid
MMKV
.
defaultMMKV
().
putString
(
"device_uuid"
,
uuid
)
}
private
fun
loadDeviceUUID
():
String
?
{
return
MMKV
.
defaultMMKV
().
decodeString
(
"device_uuid"
,
null
)
}
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/BaseData.kt
0 → 100644
View file @
1342942d
package
com.ccwangluo.accelerator.utils.dataReport
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.google.gson.JsonObject
import
com.xuexiang.xutil.net.NetworkUtils
import
org.json.JSONObject
import
java.time.LocalDateTime
data class
BaseData
(
var
channel
:
Int
=
0
,
var
client_ip
:
String
=
NetworkUtils
.
getIPAddress
(
true
),
var
did
:
String
?
=
SysUtils
.
getDeviceUUID
(),
var
ds
:
String
=
LocalDateTime
.
now
().
toString
(),
var
event
:
String
=
""
,
var
ouid
:
String
?
=
LoginUtils
.
uid
,
var
platform
:
Int
=
1
,
var
role_id
:
String
=
"0"
,
var
server
:
Int
=
0
,
var
data
:
JsonObject
?
=
null
)
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/DataReoortUtils.kt
0 → 100644
View file @
1342942d
package
com.ccwangluo.accelerator.utils.dataReport
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.google.gson.Gson
import
com.google.gson.JsonParser
import
com.xuexiang.xutil.net.NetworkUtils
import
org.json.JSONObject
import
java.time.LocalDateTime
/**
* 日志上报
*/
object
DataReoortUtils
{
val
list
=
mutableSetOf
<
BaseData
>()
val
gson
=
Gson
()
fun
report
(
eventName
:
String
,
param
:
Map
<
String
,
out
Any
>)
{
report
(
eventName
,
gson
.
toJson
(
param
).
toString
())
}
fun
report
(
eventName
:
String
,
dataInfo
:
String
?)
{
val
data
=
BaseData
()
dataInfo
?.
let
{
data
.
data
=
JsonParser
().
parse
(
it
).
asJsonObject
}
data
.
event
=
eventName
list
.
add
(
data
)
if
(
SysUtils
.
getConnectivityStatus
())
{
var
set
=
mutableSetOf
<
BaseData
>()
set
.
addAll
(
list
)
list
.
clear
()
HttpGo
.
postDataASync
(
"https://d-tt-agent.srccwl.com/data/batch"
,
set
)
{
if
(!
it
)
{
list
.
addAll
(
set
)
}
}
}
}
fun
report
(
eventName
:
String
)
{
report
(
eventName
,
null
)
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/http/HttpGo.kt
View file @
1342942d
...
@@ -2,20 +2,26 @@ package com.ccwangluo.accelerator.utils.http
...
@@ -2,20 +2,26 @@ package com.ccwangluo.accelerator.utils.http
import
com.ccwangluo.accelerator.model.BaseModel
import
com.ccwangluo.accelerator.model.BaseModel
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.BaseData
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.http.HttpConfig
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.google.gson.reflect.TypeToken
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.tencent.bugly.proguard.T
import
com.xuexiang.xutil.XUtil
import
com.xuexiang.xutil.XUtil
import
com.umeng.vt.diff.V
import
com.umeng.vt.diff.V
import
okhttp3.*
import
okhttp3.*
import
okhttp3.HttpUrl.Companion.toHttpUrl
import
okhttp3.HttpUrl.Companion.toHttpUrl
import
okhttp3.MediaType.Companion.toMediaTypeOrNull
import
okhttp3.MediaType.Companion.toMediaTypeOrNull
import
okhttp3.RequestBody.Companion.toRequestBody
import
okhttp3.RequestBody.Companion.toRequestBody
import
org.json.JSONObject
import
timber.log.Timber
import
timber.log.Timber
import
java.io.IOException
import
java.security.SecureRandom
import
java.security.SecureRandom
import
java.security.cert.X509Certificate
import
java.security.cert.X509Certificate
import
java.util.concurrent.TimeUnit
import
java.util.concurrent.TimeUnit
import
java.util.logging.Level
import
java.util.logging.Logger
import
javax.net.ssl.SSLContext
import
javax.net.ssl.SSLContext
import
javax.net.ssl.SSLSocketFactory
import
javax.net.ssl.SSLSocketFactory
import
javax.net.ssl.X509TrustManager
import
javax.net.ssl.X509TrustManager
...
@@ -37,6 +43,7 @@ object HttpGo {
...
@@ -37,6 +43,7 @@ object HttpGo {
.
sslSocketFactory
(
initSSLSocketFactory
(),
initTrustManager
())
.
sslSocketFactory
(
initSSLSocketFactory
(),
initTrustManager
())
.
build
()
.
build
()
gson
=
Gson
()
gson
=
Gson
()
Logger
.
getLogger
(
OkHttpClient
::
class
.
java
.
getName
()).
setLevel
(
Level
.
FINE
)
}
}
...
@@ -59,11 +66,11 @@ object HttpGo {
...
@@ -59,11 +66,11 @@ object HttpGo {
if
(
response
.
isSuccessful
)
{
if
(
response
.
isSuccessful
)
{
val
type
=
object
:
TypeToken
<
BaseModel
<
T
>>()
{}.
type
val
type
=
object
:
TypeToken
<
BaseModel
<
T
>>()
{}.
type
val
string
=
response
.
body
?.
string
()
val
string
=
response
.
body
?.
string
()
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
return
result
return
result
}
else
if
(
response
.
code
==
401
){
}
else
if
(
response
.
code
==
401
)
{
LoginUtils
.
clearToken
()
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
}
else
{
}
else
{
ToastUtils
.
show
(
"网络错误"
)
ToastUtils
.
show
(
"网络错误"
)
}
}
...
@@ -81,7 +88,10 @@ object HttpGo {
...
@@ -81,7 +88,10 @@ object HttpGo {
/**
/**
* 同步请求
* 同步请求
*/
*/
inline
fun
<
reified
T
>
postSync
(
url
:
String
,
param
:
MutableMap
<
String
,
out
Any
>):
BaseModel
<
T
>?
{
inline
fun
<
reified
T
>
postSync
(
url
:
String
,
param
:
MutableMap
<
String
,
out
Any
>
):
BaseModel
<
T
>?
{
try
{
try
{
val
body
:
RequestBody
=
gson
.
toJson
(
param
).
toString
().
toRequestBody
(
jsonType
)
val
body
:
RequestBody
=
gson
.
toJson
(
param
).
toString
().
toRequestBody
(
jsonType
)
val
request
=
Request
.
Builder
()
val
request
=
Request
.
Builder
()
...
@@ -95,20 +105,14 @@ object HttpGo {
...
@@ -95,20 +105,14 @@ object HttpGo {
val
response
:
Response
=
call
.
execute
()
val
response
:
Response
=
call
.
execute
()
if
(
response
.
isSuccessful
)
{
if
(
response
.
isSuccessful
)
{
val
string
=
response
.
body
?.
string
()
val
string
=
response
.
body
?.
string
()
Timber
.
i
(
"postSync:"
+
string
.
toString
())
Timber
.
i
(
"postSync:"
+
string
.
toString
())
val
type
=
object
:
TypeToken
<
BaseModel
<
T
>>()
{}.
type
val
type
=
object
:
TypeToken
<
BaseModel
<
T
>>()
{}.
type
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
result
?.
let
{
if
(
it
.
code
==
401
)
{
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),{})
}
}
return
result
return
result
}
else
if
(
response
.
code
==
401
)
{
}
else
if
(
response
.
code
==
401
)
{
LoginUtils
.
clearToken
()
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
}
else
{
}
else
{
ToastUtils
.
show
(
"网络错误"
)
ToastUtils
.
show
(
"网络错误"
)
...
@@ -119,6 +123,35 @@ object HttpGo {
...
@@ -119,6 +123,35 @@ object HttpGo {
return
null
return
null
}
}
/**
* 异步请求 (专用于数据上报)
*/
fun
postDataASync
(
url
:
String
,
param
:
MutableSet
<
BaseData
>,
callback
:
(
Boolean
)
->
Unit
)
{
try
{
val
prebody
=
gson
.
toJson
(
param
).
toString
()
Timber
.
i
(
"pre postDataASync:%s"
,
prebody
)
val
body
:
RequestBody
=
prebody
.
toRequestBody
(
jsonType
)
val
request
=
Request
.
Builder
()
.
url
(
url
)
.
post
(
body
)
val
call
=
okHttpClient
.
newCall
(
request
.
build
())
call
.
enqueue
(
object
:
Callback
{
override
fun
onFailure
(
call
:
Call
,
e
:
IOException
)
{
callback
(
false
)
}
override
fun
onResponse
(
call
:
Call
,
response
:
Response
)
{
var
result
=
response
.
body
?.
string
()
Timber
.
i
(
"success postDataASync:%s"
,
result
)
callback
(
true
)
}
})
}
catch
(
e
:
java
.
lang
.
Exception
)
{
Timber
.
i
(
"error postASync:"
+
e
)
}
}
private
fun
initSSLSocketFactory
():
SSLSocketFactory
{
private
fun
initSSLSocketFactory
():
SSLSocketFactory
{
var
sslContext
:
SSLContext
?
=
null
var
sslContext
:
SSLContext
?
=
null
...
...
app/src/main/res/drawable/shape_tab_indicator.xml
View file @
1342942d
...
@@ -4,8 +4,8 @@
...
@@ -4,8 +4,8 @@
<item>
<item>
<shape>
<shape>
<gradient
<gradient
android:endColor=
"#6646DE"
android:endColor=
"#
ee
6646DE"
android:startColor=
"#4FDDE3"
/>
android:startColor=
"#
ee
4FDDE3"
/>
<corners
android:radius=
"2dp"
/>
<corners
android:radius=
"2dp"
/>
</shape>
</shape>
</item>
</item>
...
...
app/src/main/res/layout/fragment_quick.xml
View file @
1342942d
...
@@ -32,6 +32,7 @@
...
@@ -32,6 +32,7 @@
android:textSize=
"16sp"
/>
android:textSize=
"16sp"
/>
<ImageView
<ImageView
android:id=
"@+id/acc_share"
android:layout_width=
"20dp"
android:layout_width=
"20dp"
android:layout_height=
"20dp"
android:layout_height=
"20dp"
android:layout_alignParentEnd=
"true"
android:layout_alignParentEnd=
"true"
...
...
app/src/main/res/layout/item_tab.xml
View file @
1342942d
...
@@ -10,6 +10,7 @@
...
@@ -10,6 +10,7 @@
android:layout_width=
"32dp"
android:layout_width=
"32dp"
android:layout_centerHorizontal=
"true"
android:layout_centerHorizontal=
"true"
android:layout_height=
"5dp"
android:layout_height=
"5dp"
android:layout_marginBottom=
"5dp"
android:src=
"@drawable/tab_bg"
/>
android:src=
"@drawable/tab_bg"
/>
<com.google.android.material.textview.MaterialTextView
<com.google.android.material.textview.MaterialTextView
...
...
core/src/main/java/com/github/shadowsocks/bg/AuthManager.kt
View file @
1342942d
...
@@ -36,6 +36,7 @@ object AuthManager {
...
@@ -36,6 +36,7 @@ object AuthManager {
val
okHttpClient
:
OkHttpClient
val
okHttpClient
:
OkHttpClient
val
gson
:
Gson
val
gson
:
Gson
val
mmkv
=
MMKV
.
mmkvWithID
(
"InterProcessKV"
,
MMKV
.
MULTI_PROCESS_MODE
)
private
const
val
KEY_TOKEN
=
"com.ccwangluo.KEY_TOKEN"
private
const
val
KEY_TOKEN
=
"com.ccwangluo.KEY_TOKEN"
...
@@ -53,33 +54,33 @@ object AuthManager {
...
@@ -53,33 +54,33 @@ object AuthManager {
}
}
var
gameId
:
String
?
var
gameId
:
String
?
get
()
=
MMKV
.
defaultMMKV
()
.
decodeString
(
"CONFIG_GAMEID"
,
null
)
get
()
=
mmkv
.
decodeString
(
"CONFIG_GAMEID"
,
null
)
set
(
gameId
)
{
set
(
gameId
)
{
MMKV
.
defaultMMKV
()
.
putString
(
"CONFIG_GAMEID"
,
gameId
)
mmkv
.
putString
(
"CONFIG_GAMEID"
,
gameId
)
}
}
var
area
:
String
?
var
area
:
String
?
get
()
=
MMKV
.
defaultMMKV
()
.
decodeString
(
"CONFIG_AREA"
,
null
)
get
()
=
mmkv
.
decodeString
(
"CONFIG_AREA"
,
null
)
set
(
gameId
)
{
set
(
gameId
)
{
MMKV
.
defaultMMKV
()
.
putString
(
"CONFIG_AREA"
,
gameId
)
mmkv
.
putString
(
"CONFIG_AREA"
,
gameId
)
}
}
var
authToken
:
String
?
var
authToken
:
String
?
get
()
=
MMKV
.
mmkvWithID
(
"InterProcessKV"
,
MMKV
.
MULTI_PROCESS_MODE
)
.
decodeString
(
KEY_TOKEN
,
null
)
get
()
=
mmkv
.
decodeString
(
KEY_TOKEN
,
null
)
set
(
token
)
{
set
(
token
)
{
MMKV
.
mmkvWithID
(
"InterProcessKV"
,
MMKV
.
MULTI_PROCESS_MODE
)
.
putString
(
KEY_TOKEN
,
token
)
mmkv
.
putString
(
KEY_TOKEN
,
token
)
}
}
// 加速时长
// 加速时长
var
ACC_TIME
:
Long
var
ACC_TIME
:
Long
get
()
=
MMKV
.
defaultMMKV
()
.
decodeLong
(
"ACC_TIME"
,
0L
)
get
()
=
mmkv
.
decodeLong
(
"ACC_TIME"
,
0L
)
set
(
acc_time
)
{
set
(
acc_time
)
{
MMKV
.
defaultMMKV
()
.
putLong
(
"ACC_TIME"
,
acc_time
)
mmkv
.
putLong
(
"ACC_TIME"
,
acc_time
)
}
}
var
Last_ACC_TIme
:
Long
var
Last_ACC_TIme
:
Long
get
()
=
MMKV
.
defaultMMKV
()
.
decodeLong
(
"LAST_ACC_TIME"
,
0L
)
get
()
=
mmkv
.
decodeLong
(
"LAST_ACC_TIME"
,
0L
)
set
(
last_acc_time
)
{
set
(
last_acc_time
)
{
MMKV
.
defaultMMKV
()
.
putLong
(
"LAST_ACC_TIME"
,
last_acc_time
)
mmkv
.
putLong
(
"LAST_ACC_TIME"
,
last_acc_time
)
}
}
class
AuthException
(
msg
:
String
)
:
IOException
(
msg
),
BaseService
.
ExpectedException
class
AuthException
(
msg
:
String
)
:
IOException
(
msg
),
BaseService
.
ExpectedException
...
...
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
View file @
1342942d
...
@@ -12,7 +12,7 @@ object HttpConfig {
...
@@ -12,7 +12,7 @@ object HttpConfig {
* 主页h5
* 主页h5
*/
*/
val
UI_MAIN_URL
=
"https://test-cc-tt-front.orangenet.org.cn/#"
//测试
val
UI_MAIN_URL
=
"https://test-cc-tt-front.orangenet.org.cn/#"
//测试
//
val UI_MAIN_URL = "http://10.3.64.200:8080/#"
//
val UI_MAIN_URL = "http://10.3.64.200:8080/#"
//val UI_MAIN_URL = "https://cc-tt-front.srccwl.com/#" //生产
//val UI_MAIN_URL = "https://cc-tt-front.srccwl.com/#" //生产
//隐私协议地址
//隐私协议地址
...
...
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