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
Hide 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
import
androidx.multidex.MultiDex
import
com.ccwangluo.accelerator.ui.MainActivity
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.hjq.toast.ToastUtils
import
com.tencent.bugly.Bugly
...
...
@@ -35,11 +37,11 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
MultiDex
.
install
(
this
)
Core
.
init
(
this
,
MainActivity
::
class
)
MMKV
.
initialize
(
this
)
XGPushConfig
.
enableDebug
(
this
,
true
);
XGPushConfig
.
enableDebug
(
this
,
true
);
XUtil
.
init
(
this
)
}
fun
initBugly
(){
fun
initBugly
()
{
/**
* true表示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
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.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.base.XPageFragment
...
...
@@ -100,6 +100,10 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
val
index
:
Int
=
CollectionUtils
.
arrayIndexOf
(
titles
,
item
.
getTitle
())
if
(
index
!=
-
1
)
{
binding
.
viewPager
.
setCurrentItem
(
index
,
true
)
when
(
index
){
0
->
DataReoortUtils
.
report
(
"st_speed_tab_clk"
)
1
->
DataReoortUtils
.
report
(
"st_msg_tab_clk"
)
}
return
true
}
return
false
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
View file @
1342942d
...
...
@@ -34,6 +34,7 @@ import android.hardware.SensorEventListener
import
android.os.Handler
import
android.util.Log
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.xuexiang.xutil.net.NetworkUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
...
...
@@ -50,6 +51,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
private
val
connect
=
registerForActivityResult
(
StartService
())
{
if
(
it
)
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
2
))
ToastUtils
.
show
(
"开启vpn权限失败"
)
}
}
...
...
@@ -63,6 +65,12 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
accelertorViewModel
=
ViewModelProvider
(
this
).
get
(
AccelertorViewModel
::
class
.
java
)
// app 启动
if
(
SettingSPUtils
.
lastAPPOpenReportTime
==
0L
||
System
.
currentTimeMillis
()
-
SettingSPUtils
.
lastAPPOpenReportTime
>
30
*
60
*
1000
)
{
DataReoortUtils
.
report
(
"start_app"
)
}
initPhoneUtils
()
//获取权限
Dexter
.
withContext
(
this
)
...
...
@@ -105,6 +113,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
PrivacyDialog
(
this
,
HttpConfig
.
HTML_HOST_PRIVACY
+
"index.html"
)
{
if
(
it
)
{
SettingSPUtils
.
isAgreePrivacy
=
true
DataReoortUtils
.
report
(
"st_agrmt_ok"
)
}
else
{
finish
()
}
...
...
@@ -115,6 +124,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
AcceleratorUtils
.
initConnect
(
this
,
connect
)
mSensorManager
=
getSystemService
(
SENSOR_SERVICE
)
as
SensorManager
mSensorEventListener
=
JCVideoPlayer
.
JCAutoFullscreenListener
()
DataReoortUtils
.
report
(
"st_app_open"
)
}
...
...
@@ -125,6 +135,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
override
fun
onSuccess
(
data
:
Any
,
flag
:
Int
)
{
//token在设备卸载重装的时候有可能会变
Log
.
d
(
"TPush"
,
"注册成功,设备token为:$data"
)
DataReoortUtils
.
report
(
"st_app_start_push"
)
}
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
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.bg.BaseService
...
...
@@ -80,7 +81,7 @@ class AccelertorFragment : XPageFragment() {
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
.
netLost2
.
setText
(
it
.
lossRate
)
binding
.
netLost1Unit
.
visibility
=
View
.
VISIBLE
...
...
@@ -150,10 +151,17 @@ class AccelertorFragment : XPageFragment() {
override
fun
initListeners
()
{
binding
.
iconNotice
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_sysmsg_clk"
)
openToWebview
(
HttpConfig
.
UI_MESSAGE_URL
)
}
binding
.
accShare
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_share_clk"
)
// TODO: 2022/3/14 share
}
binding
.
gamePage
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_game_sysmsg_clk"
)
openWebviewForResult
(
HttpConfig
.
UI_GAME_URL
+
"?gameId=${AcceleratorUtils.game?.id}"
)
}
...
...
@@ -170,13 +178,16 @@ class AccelertorFragment : XPageFragment() {
}
binding
.
preventAccLost
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_lostcon_clk"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
}
binding
.
preventAccInvalid
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_disabl_clk"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=2"
)
}
binding
.
btnExpend
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_speed_msg_clk"
)
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
binding
.
expandableLayout1
.
toggle
()
binding
.
expandableLayout2
.
expand
()
...
...
@@ -188,20 +199,24 @@ class AccelertorFragment : XPageFragment() {
}
}
binding
.
btnQuick
.
setOnClickListener
{
//Beta.checkUpgrade(true,false)
accelertorViewModel
.
accState
.
value
?.
let
{
if
(
it
.
canStop
)
{
context
?.
let
{
CommonDialog
(
it
).
setTitle
(
"加速停止确认"
)
.
setContent
(
"停止加速可能会导致游戏断线,是否确认停止?"
)
.
setBtnLeft
(
"取消"
,
{}).
setBtnRight
(
"停止加速"
,
{
.
setBtnLeft
(
"取消"
,
{
DataReoortUtils
.
report
(
"st_speed_stop_pop_cancel_clk"
)
}).
setBtnRight
(
"停止加速"
,
{
DataReoortUtils
.
report
(
"st_speed_stop_pop_ok_clk"
)
AcceleratorUtils
.
stopAccelerator
()
}).
show
<
CommonDialog
>()
DataReoortUtils
.
report
(
"st_speed_stop_pop_show"
)
}
DataReoortUtils
.
report
(
"st_speed_stop_clk"
)
return
@setOnClickListener
}
else
{
DataReoortUtils
.
report
(
"st_speed_start_clk"
)
}
}
if
(!
LoginUtils
.
hasToken
())
{
context
?.
let
{
it1
->
...
...
@@ -209,6 +224,7 @@ class AccelertorFragment : XPageFragment() {
})
}
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
return
@setOnClickListener
}
...
...
@@ -218,6 +234,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
return
@setOnClickListener
}
AcceleratorUtils
.
getGameList
(
this
)
{
...
...
@@ -230,6 +247,10 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"1"
)
)
return
@getGameList
}
}
...
...
@@ -239,10 +260,15 @@ class AccelertorFragment : XPageFragment() {
binding
.
btnQuick
.
isEnabled
=
false
startAnim
()
}
else
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
3
)
)
MemberDialog
(
this
@AccelertorFragment
).
show
<
MemberDialog
>()
}
}
}
else
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
ToastUtils
.
show
(
"获取游戏配置异常"
)
}
}
...
...
@@ -253,7 +279,12 @@ class AccelertorFragment : XPageFragment() {
binding
.
gameStart
.
setOnClickListener
{
if
(!
binding
.
expandableLayout1
.
isExpanded
)
{
AcceleratorUtils
.
game
?.
let
{
AppUtils
.
launchApp
(
it
.
packageName
)
DataReoortUtils
.
report
(
"st_speed_game_start_clk"
)
try
{
AppUtils
.
launchApp
(
it
.
packageName
)
}
catch
(
e
:
Exception
)
{
}
if
(
state
==
BaseService
.
State
.
Connected
)
{
binding
.
gameStart
.
postDelayed
({
ToastUtils
.
show
(
"TT正在为游戏加速"
)
...
...
@@ -262,6 +293,8 @@ class AccelertorFragment : XPageFragment() {
}
}
}
}
fun
openToWebview
(
url
:
String
)
{
...
...
@@ -282,12 +315,12 @@ class AccelertorFragment : XPageFragment() {
override
fun
onFragmentResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?)
{
super
.
onFragmentResult
(
requestCode
,
resultCode
,
data
)
if
(
requestCode
==
CLICK_START_ACC_REQUEST_CODE
)
{
if
(
requestCode
==
CLICK_START_ACC_REQUEST_CODE
)
{
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
)
{
LoginUtils
.
token
?.
let
{
PageOption
.
to
(
CommonWebViewFragment
::
class
.
java
)
...
...
@@ -297,7 +330,7 @@ class AccelertorFragment : XPageFragment() {
}
?:
let
{
context
?.
let
{
it1
->
LoginUtils
.
login
(
it1
)
{
if
(
it
)
{
if
(
it
)
{
PageOption
.
to
(
CommonWebViewFragment
::
class
.
java
)
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
...
...
@@ -319,10 +352,14 @@ class AccelertorFragment : XPageFragment() {
context
?.
let
{
CommonDialog
(
it
).
setTitle
(
"防止加速掉线"
)
.
setContent
(
"为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置"
)
.
setBtnLeft
(
"取消"
,
{}).
setBtnRight
(
"去设置"
,
{
.
setBtnLeft
(
"取消"
,
{
DataReoortUtils
.
report
(
"st_speed_course_pop_cancel_clk"
)
}).
setBtnRight
(
"去设置"
,
{
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
DataReoortUtils
.
report
(
"st_speed_course_pop_set_clk"
)
}).
show
<
CommonDialog
>()
SettingSPUtils
.
isFirstAccSuccess
=
false
DataReoortUtils
.
report
(
"st_speed_course_pop_show"
)
}
}
...
...
@@ -389,8 +426,9 @@ class AccelertorFragment : XPageFragment() {
binding
.
progressViewCircleSmall
.
startProgressAnimation
()
}
fun
startAccSuccess
(){
fun
startAccSuccess
()
{
if
(
binding
.
gameStart
.
visibility
==
View
.
GONE
)
{
DataReoortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
1
))
binding
.
gamePicIn1
.
startAnimation
(
getDefaultAnim
())
binding
.
accStateTx
.
visibility
=
View
.
VISIBLE
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
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.google.android.material.appbar.AppBarLayout
import
com.google.android.material.tabs.TabLayout
import
com.google.android.material.tabs.TabLayoutMediator
import
com.hjq.toast.ToastUtils
import
com.just.agentweb.download.DownloadTask
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xui.widget.tabbar.TabSegment
import
com.xuexiang.xui.widget.toast.XToast
import
com.xuexiang.xutil.XUtil
import
com.xuexiang.xutil.app.AppUtils
...
...
@@ -101,12 +104,14 @@ class NewsFragment : XPageFragment() {
if
(
itemData
.
type
==
1
)
{
itemData
.
url
?.
let
{
DataReoortUtils
.
report
(
"st_qq_clk"
,
mapOf
(
"scene"
to
3
))
context
?.
let
{
it1
->
SysUtils
.
joinQQGroup
(
it1
)
}
}
}
if
(
itemData
.
type
==
2
)
{
itemData
.
url
?.
let
{
DataReoortUtils
.
report
(
"st_google_clk"
,
mapOf
(
"scene"
to
3
))
openToWebview
(
it
)
}
}
...
...
@@ -133,6 +138,24 @@ class NewsFragment : XPageFragment() {
tab
.
setCustomView
(
R
.
layout
.
item_tab
)
tab
.
text
=
titles
[
position
]
}.
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
)
{
if
(
it
)
{
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
import
androidx.lifecycle.viewModelScope
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.hjq.toast.ToastUtils
import
kotlinx.coroutines.Dispatchers
...
...
@@ -26,9 +27,18 @@ class LoginViewModel : ViewModel() {
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/verifyCode/login"
,
map
)
res
?.
let
{
if
(
it
.
code
==
200
)
{
DataReoortUtils
.
report
(
"st_login_vercode_result"
,
mapOf
(
"result"
to
1
))
LoginUtils
.
token
=
it
.
data
?.
token
LoginUtils
.
uid
=
it
.
data
?.
phone
loginState
.
postValue
(
true
)
}
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
)
}
}
...
...
@@ -48,7 +58,7 @@ class LoginViewModel : ViewModel() {
sendCodeState
.
postValue
(
false
)
ToastUtils
.
show
(
it
.
error
)
}
}
?:
let
{
}
?:
let
{
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
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.hjq.toast.ToastUtils
import
com.xuexiang.xpage.annotation.Page
...
...
@@ -32,6 +33,7 @@ class PhoneLoginActivity : XPageActivity() {
setContentView
(
binding
.
root
)
initViews
()
initListeners
()
DataReoortUtils
.
report
(
"st_login_vercode_show"
)
}
fun
initViews
()
{
...
...
@@ -50,6 +52,16 @@ class PhoneLoginActivity : XPageActivity() {
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
{
val
authCdoe
=
it
.
toString
().
trim
()
...
...
@@ -77,6 +89,7 @@ class PhoneLoginActivity : XPageActivity() {
loginViewModel
.
loginState
.
observe
(
this
,
{
if
(
it
)
{
LoginUtils
.
stopTimer
()
DataReoortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_vercode"
))
finish
()
}
})
...
...
@@ -105,7 +118,7 @@ class PhoneLoginActivity : XPageActivity() {
}
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
)
startActivity
(
intent
)
}
...
...
@@ -115,6 +128,7 @@ class PhoneLoginActivity : XPageActivity() {
}
binding
.
authCodeBtn
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_login_vercode_request_clk"
)
val
phone
=
binding
.
phoneEt
.
text
.
toString
()
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
isPhone
(
phone
))
{
ToastUtils
.
show
(
"输入正确的手机号"
)
...
...
@@ -129,6 +143,7 @@ class PhoneLoginActivity : XPageActivity() {
}
binding
.
login
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_login_vercode_btn_clk"
)
//检查验证码,手机号格式
val
phone
=
binding
.
phoneEt
.
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
import
android.util.Log
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.plugin.PluginContract
import
com.tencent.bugly.beta.Beta
...
...
@@ -91,10 +92,13 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun
openWebviewByWholeUrl
(
url
:
String
)
{
val
params
=
Bundle
()
if
(
url
.
startsWith
(
"http:"
)||
url
.
startsWith
(
"https:"
)){
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
}
else
{
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
HTML_HOST_PRIVACY
+
url
)
if
(
url
.
startsWith
(
"http:"
)
||
url
.
startsWith
(
"https:"
))
{
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
}
else
{
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
HTML_HOST_PRIVACY
+
url
)
}
xPageFragment
.
openPage
(
CommonWebViewFragment
::
class
.
java
,
params
)
...
...
@@ -103,7 +107,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
//打开系统设置
@JavascriptInterface
fun
openSysSetting
()
{
xPageFragment
.
startActivity
(
Intent
(
Settings
.
ACTION_SETTINGS
));
xPageFragment
.
startActivity
(
Intent
(
Settings
.
ACTION_SETTINGS
));
}
@JavascriptInterface
...
...
@@ -129,7 +133,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
* 获取token
*/
@JavascriptInterface
fun
getToken
(
callback
:
String
){
fun
getToken
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
LoginUtils
.
token
)
}
...
...
@@ -143,11 +147,16 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
//是否有更新:1有 0没有
//最新安装包的版本名称
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"1"
,
AppUtils
.
getAppVersionName
(),
it
.
versionName
)
.
quickCallJs
(
callback
,
"1"
,
AppUtils
.
getAppVersionName
(),
it
.
versionName
)
}
?:
let
{
}
?:
let
{
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)
* 当前加速状态 1 加速中,0 未加速
*/
@JavascriptInterface
fun
getAccelerateState
(
callback
:
String
){
if
(
BaseService
.
State
.
Connected
==
AcceleratorUtils
.
state
)
{
fun
getAccelerateState
(
callback
:
String
)
{
if
(
BaseService
.
State
.
Connected
==
AcceleratorUtils
.
state
)
{
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"1"
)
}
else
{
}
else
{
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"0"
)
}
}
private
val
handler
:
Handler
=
Handler
()
private
val
handler
:
Handler
=
Handler
()
/**
* 点击游戏主页下面的加速按钮调用
*/
@JavascriptInterface
fun
clickAccelerateBtn
(){
fun
clickAccelerateBtn
()
{
handler
.
post
{
xPageFragment
.
setFragmentResult
(
500
,
Intent
())
xPageFragment
.
popToBack
()
...
...
@@ -183,7 +192,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
*/
@JavascriptInterface
fun
doAppUpdate
()
{
Beta
.
checkUpgrade
(
true
,
false
)
Beta
.
checkUpgrade
(
true
,
false
)
}
/**
...
...
@@ -326,7 +335,8 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
.
quickCallJs
(
callback
,
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)
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
import
androidx.lifecycle.lifecycleScope
import
com.ccwangluo.accelerator.model.*
import
com.ccwangluo.accelerator.ui.dialog.CommonDialog
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.Core
...
...
@@ -215,6 +216,7 @@ object AcceleratorUtils {
AcceleratorUtils
.
state
=
state
stateListener
(
state
,
getAccTime
(),
null
)
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已到期"
))){
vipExpireListener
()
}
else
{
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
View file @
1342942d
...
...
@@ -8,6 +8,7 @@ import androidx.lifecycle.lifecycleScope
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.UserProfile
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.github.shadowsocks.Core
...
...
@@ -116,9 +117,11 @@ object LoginUtils {
res
?.
let
{
if
(
it
.
code
==
200
)
{
token
=
it
.
data
?.
token
uid
=
it
.
data
?.
phone
withContext
(
Dispatchers
.
Main
)
{
ToastUtils
.
show
(
"登录成功"
)
OneKeyLoginManager
.
getInstance
().
finishAuthActivity
()
DataReoortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_all"
))
callBack
(
true
)
}
}
else
{
...
...
@@ -161,6 +164,12 @@ object LoginUtils {
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
()
{
}
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
View file @
1342942d
...
...
@@ -11,6 +11,7 @@ import android.widget.RelativeLayout
import
android.widget.TextView
import
com.ccwangluo.accelerator.R
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.tool.ShanYanUIConfig
...
...
@@ -20,9 +21,6 @@ import com.xuexiang.xpage.core.PageOption
import
org.json.JSONObject
object
PhoneUtils
{
private
val
TAG
:
String
=
PhoneUtils
.
javaClass
.
name
...
...
@@ -58,13 +56,22 @@ object PhoneUtils {
{
code
,
result
->
if
(
code
!=
1000
)
{
callback
(
false
,
""
)
}
else
{
DataReoortUtils
.
report
(
"st_login_one_show"
)
}
Log
.
i
(
TAG
,
"openLoginAuth: $result"
)
}
)
{
code
,
result
->
if
(
code
==
1000
)
{
val
json
=
JSONObject
(
result
)
DataReoortUtils
.
report
(
"st_login_one_result"
,
mapOf
(
"result"
to
1
))
callback
(
true
,
json
.
getString
(
"token"
))
}
else
{
DataReoortUtils
.
report
(
"st_login_one_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
result
)
)
}
}
}
...
...
@@ -92,7 +99,7 @@ object PhoneUtils {
RelativeLayout
.
LayoutParams
.
WRAP_CONTENT
)
val
screenHeight
=
AbScreenUtils
.
getScreenHeight
(
context
,
false
)
val
mOtherTvTop
=
AbScreenUtils
.
dp2px
(
context
,
100f
)
val
mOtherTvTop
=
AbScreenUtils
.
dp2px
(
context
,
100f
)
otherLayoutParams
.
setMargins
(
0
,
screenHeight
-
mOtherTvTop
,
0
,
0
)
otherLayoutParams
.
addRule
(
RelativeLayout
.
CENTER_HORIZONTAL
)
mOtherTv
.
layoutParams
=
otherLayoutParams
...
...
@@ -139,10 +146,11 @@ object PhoneUtils {
.
addCustomView
(
mOtherTv
,
true
,
false
)
{
context
,
view
->
val
intent
=
Intent
(
context
,
PhoneLoginActivity
::
class
.
java
)
val
intent
=
Intent
(
context
,
PhoneLoginActivity
::
class
.
java
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
context
.
startActivity
(
intent
)
}
DataReoortUtils
.
report
(
"st_login_other_clk"
)
}
.
setPrivacyState
(
false
)
.
setCheckedImgPath
(
mCheckedImg
)
.
setUncheckedImgPath
(
mCunheckedImg
)
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/SettingSPUtils.kt
View file @
1342942d
...
...
@@ -12,6 +12,7 @@ object SettingSPUtils {
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"
private
val
LAST_APP_SRART_TIME
=
"LAST_APP_SRART_TIME"
/**
...
...
@@ -41,5 +42,11 @@ object SettingSPUtils {
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
import
android.content.Context
import
android.content.pm.PackageManager
import
android.os.Build
import
android.text.TextUtils
import
android.util.DisplayMetrics
import
com.ccwangluo.accelerator.model.NetState
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xutil.net.NetworkUtils
import
java.io.BufferedReader
import
java.io.InputStreamReader
import
java.text.SimpleDateFormat
import
java.util.*
import
kotlin.collections.ArrayList
import
android.app.DownloadManager
import
android.content.Intent
import
android.net.*
import
android.os.Build
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageActivity
import
com.xuexiang.xutil.system.DeviceUtils
import
java.lang.Exception
...
...
@@ -41,7 +40,6 @@ object SysUtils {
}
/*
* 判断设备 是否使用代理上网
* */
...
...
@@ -118,23 +116,12 @@ object SysUtils {
}
fun
joinQQGroup
(
context
:
Context
)
{
/**
val key = "
388Tnjzn_jkY7SNKO1ACI6PL5gbhpeYR
"
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
)
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)
try
{
...
...
@@ -144,4 +131,45 @@ object SysUtils {
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
import
com.ccwangluo.accelerator.model.BaseModel
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.BaseData
import
com.github.shadowsocks.http.HttpConfig
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.hjq.toast.ToastUtils
import
com.tencent.bugly.proguard.T
import
com.xuexiang.xutil.XUtil
import
com.umeng.vt.diff.V
import
okhttp3.*
import
okhttp3.HttpUrl.Companion.toHttpUrl
import
okhttp3.MediaType.Companion.toMediaTypeOrNull
import
okhttp3.RequestBody.Companion.toRequestBody
import
org.json.JSONObject
import
timber.log.Timber
import
java.io.IOException
import
java.security.SecureRandom
import
java.security.cert.X509Certificate
import
java.util.concurrent.TimeUnit
import
java.util.logging.Level
import
java.util.logging.Logger
import
javax.net.ssl.SSLContext
import
javax.net.ssl.SSLSocketFactory
import
javax.net.ssl.X509TrustManager
...
...
@@ -37,6 +43,7 @@ object HttpGo {
.
sslSocketFactory
(
initSSLSocketFactory
(),
initTrustManager
())
.
build
()
gson
=
Gson
()
Logger
.
getLogger
(
OkHttpClient
::
class
.
java
.
getName
()).
setLevel
(
Level
.
FINE
)
}
...
...
@@ -59,11 +66,11 @@ object HttpGo {
if
(
response
.
isSuccessful
)
{
val
type
=
object
:
TypeToken
<
BaseModel
<
T
>>()
{}.
type
val
string
=
response
.
body
?.
string
()
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
return
result
}
else
if
(
response
.
code
==
401
){
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
}
else
if
(
response
.
code
==
401
)
{
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
}
else
{
ToastUtils
.
show
(
"网络错误"
)
}
...
...
@@ -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
{
val
body
:
RequestBody
=
gson
.
toJson
(
param
).
toString
().
toRequestBody
(
jsonType
)
val
request
=
Request
.
Builder
()
...
...
@@ -95,20 +105,14 @@ object HttpGo {
val
response
:
Response
=
call
.
execute
()
if
(
response
.
isSuccessful
)
{
val
string
=
response
.
body
?.
string
()
Timber
.
i
(
"postSync:"
+
string
.
toString
())
Timber
.
i
(
"postSync:"
+
string
.
toString
())
val
type
=
object
:
TypeToken
<
BaseModel
<
T
>>()
{}.
type
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
result
?.
let
{
if
(
it
.
code
==
401
)
{
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),{})
}
}
val
result
:
BaseModel
<
T
>?
=
gson
.
fromJson
(
string
,
type
)
return
result
}
else
if
(
response
.
code
==
401
)
{
}
else
if
(
response
.
code
==
401
)
{
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
LoginUtils
.
clearToken
()
LoginUtils
.
login
(
XUtil
.
getContext
(),
{})
}
else
{
ToastUtils
.
show
(
"网络错误"
)
...
...
@@ -119,6 +123,35 @@ object HttpGo {
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
{
var
sslContext
:
SSLContext
?
=
null
...
...
app/src/main/res/drawable/shape_tab_indicator.xml
View file @
1342942d
...
...
@@ -4,8 +4,8 @@
<item>
<shape>
<gradient
android:endColor=
"#6646DE"
android:startColor=
"#4FDDE3"
/>
android:endColor=
"#
ee
6646DE"
android:startColor=
"#
ee
4FDDE3"
/>
<corners
android:radius=
"2dp"
/>
</shape>
</item>
...
...
app/src/main/res/layout/fragment_quick.xml
View file @
1342942d
...
...
@@ -32,6 +32,7 @@
android:textSize=
"16sp"
/>
<ImageView
android:id=
"@+id/acc_share"
android:layout_width=
"20dp"
android:layout_height=
"20dp"
android:layout_alignParentEnd=
"true"
...
...
app/src/main/res/layout/item_tab.xml
View file @
1342942d
...
...
@@ -10,6 +10,7 @@
android:layout_width=
"32dp"
android:layout_centerHorizontal=
"true"
android:layout_height=
"5dp"
android:layout_marginBottom=
"5dp"
android:src=
"@drawable/tab_bg"
/>
<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 {
val
okHttpClient
:
OkHttpClient
val
gson
:
Gson
val
mmkv
=
MMKV
.
mmkvWithID
(
"InterProcessKV"
,
MMKV
.
MULTI_PROCESS_MODE
)
private
const
val
KEY_TOKEN
=
"com.ccwangluo.KEY_TOKEN"
...
...
@@ -53,33 +54,33 @@ object AuthManager {
}
var
gameId
:
String
?
get
()
=
MMKV
.
defaultMMKV
()
.
decodeString
(
"CONFIG_GAMEID"
,
null
)
get
()
=
mmkv
.
decodeString
(
"CONFIG_GAMEID"
,
null
)
set
(
gameId
)
{
MMKV
.
defaultMMKV
()
.
putString
(
"CONFIG_GAMEID"
,
gameId
)
mmkv
.
putString
(
"CONFIG_GAMEID"
,
gameId
)
}
var
area
:
String
?
get
()
=
MMKV
.
defaultMMKV
()
.
decodeString
(
"CONFIG_AREA"
,
null
)
get
()
=
mmkv
.
decodeString
(
"CONFIG_AREA"
,
null
)
set
(
gameId
)
{
MMKV
.
defaultMMKV
()
.
putString
(
"CONFIG_AREA"
,
gameId
)
mmkv
.
putString
(
"CONFIG_AREA"
,
gameId
)
}
var
authToken
:
String
?
get
()
=
MMKV
.
mmkvWithID
(
"InterProcessKV"
,
MMKV
.
MULTI_PROCESS_MODE
)
.
decodeString
(
KEY_TOKEN
,
null
)
get
()
=
mmkv
.
decodeString
(
KEY_TOKEN
,
null
)
set
(
token
)
{
MMKV
.
mmkvWithID
(
"InterProcessKV"
,
MMKV
.
MULTI_PROCESS_MODE
)
.
putString
(
KEY_TOKEN
,
token
)
mmkv
.
putString
(
KEY_TOKEN
,
token
)
}
// 加速时长
var
ACC_TIME
:
Long
get
()
=
MMKV
.
defaultMMKV
()
.
decodeLong
(
"ACC_TIME"
,
0L
)
get
()
=
mmkv
.
decodeLong
(
"ACC_TIME"
,
0L
)
set
(
acc_time
)
{
MMKV
.
defaultMMKV
()
.
putLong
(
"ACC_TIME"
,
acc_time
)
mmkv
.
putLong
(
"ACC_TIME"
,
acc_time
)
}
var
Last_ACC_TIme
:
Long
get
()
=
MMKV
.
defaultMMKV
()
.
decodeLong
(
"LAST_ACC_TIME"
,
0L
)
get
()
=
mmkv
.
decodeLong
(
"LAST_ACC_TIME"
,
0L
)
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
...
...
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
View file @
1342942d
...
...
@@ -12,7 +12,7 @@ object HttpConfig {
* 主页h5
*/
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/#" //生产
//隐私协议地址
...
...
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