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
a5e8f6c8
Commit
a5e8f6c8
authored
Mar 15, 2022
by
sheteng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
分享和权限说明
parent
1342942d
Changes
26
Hide whitespace changes
Inline
Side-by-side
Showing
26 changed files
with
631 additions
and
261 deletions
+631
-261
app/build.gradle.kts
app/build.gradle.kts
+4
-4
app/proguard-rules.pro
app/proguard-rules.pro
+96
-0
app/src/main/AndroidManifest.xml
app/src/main/AndroidManifest.xml
+22
-23
app/src/main/java/com/ccwangluo/accelerator/App.kt
app/src/main/java/com/ccwangluo/accelerator/App.kt
+12
-4
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
.../com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
+3
-3
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
...rc/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
+59
-56
app/src/main/java/com/ccwangluo/accelerator/ui/dialog/PermissionDialog.kt
...a/com/ccwangluo/accelerator/ui/dialog/PermissionDialog.kt
+25
-0
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
...a/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
+26
-29
app/src/main/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
...in/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
+31
-43
app/src/main/java/com/ccwangluo/accelerator/ui/login/LoginViewModel.kt
...java/com/ccwangluo/accelerator/ui/login/LoginViewModel.kt
+5
-4
app/src/main/java/com/ccwangluo/accelerator/ui/login/PhoneLoginActivity.kt
.../com/ccwangluo/accelerator/ui/login/PhoneLoginActivity.kt
+7
-10
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
...java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
+44
-52
app/src/main/java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
.../java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
+2
-12
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
...c/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
+3
-5
app/src/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
...c/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
+5
-7
app/src/main/java/com/ccwangluo/accelerator/utils/ShareUtils.kt
...c/main/java/com/ccwangluo/accelerator/utils/ShareUtils.kt
+62
-0
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/BaseData.kt
...va/com/ccwangluo/accelerator/utils/dataReport/BaseData.kt
+1
-1
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/DataRePortUtils.kt
...ccwangluo/accelerator/utils/dataReport/DataRePortUtils.kt
+2
-6
app/src/main/res/layout/bottom_sheet_share.xml
app/src/main/res/layout/bottom_sheet_share.xml
+131
-0
app/src/main/res/layout/dialog_premission.xml
app/src/main/res/layout/dialog_premission.xml
+86
-0
app/src/main/res/mipmap-xxxhdpi/ic_pyq.png
app/src/main/res/mipmap-xxxhdpi/ic_pyq.png
+0
-0
app/src/main/res/mipmap-xxxhdpi/ic_qq.png
app/src/main/res/mipmap-xxxhdpi/ic_qq.png
+0
-0
app/src/main/res/mipmap-xxxhdpi/ic_qqkj.png
app/src/main/res/mipmap-xxxhdpi/ic_qqkj.png
+0
-0
app/src/main/res/mipmap-xxxhdpi/ic_wechat.png
app/src/main/res/mipmap-xxxhdpi/ic_wechat.png
+0
-0
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
+4
-2
repositories.gradle.kts
repositories.gradle.kts
+1
-0
No files found.
app/build.gradle.kts
View file @
a5e8f6c8
...
...
@@ -28,6 +28,7 @@ android {
manifestPlaceholders
.
put
(
"XG_ACCESS_ID"
,
"1580009634"
)
manifestPlaceholders
.
put
(
"XG_ACCESS_KEY"
,
"AIJKAIYR3WPS"
)
manifestPlaceholders
.
put
(
"qqappid"
,
"101994779"
)
}
buildTypes
{
...
...
@@ -41,14 +42,13 @@ android {
isMinifyEnabled
=
false
}
}
buildFeatures
.
viewBinding
=
true
}
setupApp
()
android
.
defaultConfig
.
applicationId
=
"com.ccwangluo.accelerator"
android
.
buildFeatures
.
viewBinding
=
true
android
.
buildTypes
.
named
(
"release"
)
dependencies
{
implementation
(
fileTree
(
mapOf
(
"dir"
to
"libs"
,
"include"
to
listOf
(
"*.jar"
,
"*.aar"
))))
implementation
(
"androidx.appcompat:appcompat:1.3.1"
)
...
...
@@ -102,7 +102,7 @@ dependencies {
implementation
(
"com.umeng.umsdk:share-wx:7.1.7"
)
//微信完整版)
implementation
(
"com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9"
)
//
//
implementation("com.umeng.umsdk:share-qq:7.1.7")//QQ完整版)
implementation
(
"com.umeng.umsdk:share-qq:7.1.7"
)
//QQ完整版)
// implementation("com.squareup.okhttp3:okhttp:3.14.9")//QQ官方sdk 3.53及之后版本需要集成okhttp3.x,必选)
//gps
...
...
app/proguard-rules.pro
View file @
a5e8f6c8
...
...
@@ -176,3 +176,99 @@
-
keep
class
com
.
tencent
.
tpns
.
baseapi
.
**
{
*
;}
-
keep
class
com
.
tencent
.
tpns
.
mqttchannel
.
**
{
*
;}
-
keep
class
com
.
tencent
.
tpns
.
dataacquisition
.
**
{
*
;}
-
dontshrink
-
dontoptimize
-
dontwarn
com
.
google
.
android
.
maps
.
**
-
dontwarn
com
.
squareup
.
okhttp
.
**
-
dontwarn
android
.
webkit
.
WebView
-
dontwarn
com
.
umeng
.
**
-
dontwarn
com
.
tencent
.
weibo
.
sdk
.
**
-
dontwarn
com
.
facebook
.
**
-
keep
public
class
javax
.
**
-
keep
public
class
android
.
webkit
.
**
-
dontwarn
android
.
support
.
v4
.
**
-
keep
enum
com
.
facebook
.
**
-
keepattributes
Exceptions
,
InnerClasses
,
Signature
-
keepattributes
*
Annotation
*
-
keepattributes
SourceFile
,
LineNumberTable
-
keepattributes
EnclosingMethod
-
keep
public
interface
com
.
facebook
.
**
-
keep
public
interface
com
.
tencent
.
**
-
keep
public
interface
com
.
umeng
.
socialize
.
**
-
keep
public
interface
com
.
umeng
.
socialize
.
sensor
.
**
-
keep
public
interface
com
.
umeng
.
scrshot
.
**
-
keep
public
class
com
.
umeng
.
socialize
.
*
{
*
;}
-
keep
class
com
.
umeng
.
commonsdk
.
statistics
.
common
.
MLog
{
*
;}
-
keep
class
com
.
umeng
.
commonsdk
.
UMConfigure
{
*
;}
-
keep
class
com
.
umeng
.
**
{
*
;}
-
keep
class
com
.
umeng
.
**
-
keep
class
com
.
facebook
.
**
-
keep
class
com
.
facebook
.
**
{
*
;
}
-
keep
class
com
.
umeng
.
scrshot
.
**
-
keep
public
class
com
.
tencent
.
**
{
*
;}
-
keep
class
com
.
umeng
.
socialize
.
sensor
.
**
-
keep
class
com
.
umeng
.
socialize
.
handler
.
**
-
keep
class
com
.
umeng
.
socialize
.
handler
.
*
-
keep
class
com
.
umeng
.
weixin
.
handler
.
**
-
keep
class
com
.
umeng
.
weixin
.
handler
.
*
-
keep
class
com
.
umeng
.
qq
.
handler
.
**
-
keep
class
com
.
umeng
.
qq
.
handler
.
*
-
keep
class
UMMoreHandler
{
*
;}
-
keep
class
com
.
tencent
.
mm
.
sdk
.
modelmsg
.
WXMediaMessage
{
*
;}
-
keep
class
com
.
tencent
.
mm
.
sdk
.
modelmsg
.
**
implements
com
.
tencent
.
mm
.
sdk
.
modelmsg
.
WXMediaMessage
$
IMediaObject
{
*
;}
-
keep
class
im
.
yixin
.
sdk
.
api
.
YXMessage
{
*
;}
-
keep
class
im
.
yixin
.
sdk
.
api
.
**
implements
im
.
yixin
.
sdk
.
api
.
YXMessage
$
YXMessageData
{
*
;}
-
keep
class
com
.
tencent
.
mm
.
sdk
.
**
{
*
;
}
-
keep
class
com
.
tencent
.
mm
.
opensdk
.
**
{
*
;
}
-
keep
class
com
.
tencent
.
wxop
.
**
{
*
;
}
-
keep
class
com
.
tencent
.
mm
.
sdk
.
**
{
*
;
}
-
dontwarn
twitter4j
.
**
-
keep
class
twitter4j
.
**
{
*
;
}
-
keep
class
com
.
tencent
.
**
{
*
;}
-
dontwarn
com
.
tencent
.
**
-
keep
class
com
.
kakao
.
**
{
*
;}
-
dontwarn
com
.
kakao
.
**
-
keep
public
class
com
.
umeng
.
com
.
umeng
.
soexample
.
R
$
*
{
public
static
final
int
*
;
}
-
keep
public
class
com
.
linkedin
.
android
.
mobilesdk
.
R
$
*
{
public
static
final
int
*
;
}
-
keepclassmembers
enum
*
{
public
static
**
[]
values
();
public
static
**
valueOf
(
java
.
lang
.
String
);
}
-
keep
class
com
.
tencent
.
open
.
TDialog
$
*
-
keep
class
com
.
tencent
.
open
.
TDialog
$
*
{
*
;}
-
keep
class
com
.
tencent
.
open
.
PKDialog
-
keep
class
com
.
tencent
.
open
.
PKDialog
{
*
;}
-
keep
class
com
.
tencent
.
open
.
PKDialog
$
*
-
keep
class
com
.
tencent
.
open
.
PKDialog
$
*
{
*
;}
-
keep
class
com
.
umeng
.
socialize
.
impl
.
ImageImpl
{
*
;}
-
keep
class
com
.
sina
.
**
{
*
;}
-
dontwarn
com
.
sina
.
**
-
keep
class
com
.
alipay
.
share
.
sdk
.
**
{
*
;
}
-
keepnames
class
*
implements
android
.
os
.
Parcelable
{
public
static
final
**
CREATOR
;
}
-
keep
class
com
.
linkedin
.
**
{
*
;
}
-
keep
class
com
.
android
.
dingtalk
.
share
.
ddsharemodule
.
**
{
*
;
}
-
keepattributes
Signature
app/src/main/AndroidManifest.xml
View file @
a5e8f6c8
...
...
@@ -23,12 +23,12 @@
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_ADMIN"
/>
<!-- 支持A-GPS辅助定位 -->
<uses-permission
android:name=
"android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"
/>
<!-- 用于 log 日志 -->
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<!-- 配置可查询包名, 配置测试游戏必须添加 添加 -->
<queries>
<package
android:name=
"com.tencent.mm"
/>
<package
android:name=
"com.tencent.mobileqq"
/>
<package
android:name=
"com.qzone"
/>
<package
android:name=
"com.baidu.browser.apps"
/>
<package
android:name=
"com.ldsanguo.shark"
/>
<package
android:name=
"com.ldsanguomj.shark"
/>
...
...
@@ -36,7 +36,6 @@
<package
android:name=
"com.google.android.gsf"
/>
<package
android:name=
"com.google.android.gms"
/>
<package
android:name=
"com.android.vending"
/>
<package
android:name=
"com.tencent.mobileqq"
/>
<package
android:name=
"com.tencent.mm"
/>
<package
android:name=
"com.goplaycn.googleinstall"
/>
<package
android:name=
"io.kkzs"
/>
...
...
@@ -102,15 +101,15 @@
android:name=
".wxapi.WXEntryActivity"
android:configChanges=
"keyboardHidden|orientation|screenSize"
android:exported=
"true"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- <provider -->
<!-- android:name="android.support.v4.content.FileProvider" -->
<!-- android:authorities="com.ccwangluo.accelerator.fileprovider" -->
<!-- android:exported="false" -->
<!-- android:grantUriPermissions="true"> --
>
<!-- <meta-data -->
<!-- android:name="android.support.FILE_PROVIDER_PATHS" -->
<!-- android:resource="@xml/filepaths"/> --
>
<!-- </provider> --
>
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<provider
android:name=
"androidx.core.content.FileProvider"
android:authorities=
"com.ccwangluo.accelerator.fileprovider"
android:exported=
"false"
android:grantUriPermissions=
"true"
>
<meta-data
android:name=
"android.support.FILE_PROVIDER_PATHS"
android:resource=
"@xml/filepaths"
/
>
</provider
>
<activity
android:name=
"com.tencent.tauth.AuthActivity"
android:launchMode=
"singleTask"
...
...
@@ -120,24 +119,24 @@
<category
android:name=
"android.intent.category.DEFAULT"
/>
<category
android:name=
"android.intent.category.BROWSABLE"
/>
<data
android:scheme=
"1212121"
/>
<data
android:scheme=
"101994779"
/>
</intent-filter>
</activity>
<activity
android:name=
"com.tencent.connect.common.AssistActivity"
android:configChanges=
"orientation|keyboardHidden"
android:screenOrientation=
"behind"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- <provider -->
<!-- android:authorities="${applicationId}.fileprovider" -->
<!-- android:name="android.support.v4.content.FileProvider" -->
<!-- android:exported="false" -->
<!-- android:grantUriPermissions="true" -->
<!-- > -->
<!-- <meta-data -->
<!-- android:name="android.support.FILE_PROVIDER_PATHS" -->
<!-- android:resource="@xml/filepaths"/> -->
<!-- </provider> -->
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- <provider-->
<!-- android:authorities="com.ccwangluo.accelerator.fileprovider"-->
<!-- android:name="androidx.core.content.FileProvider"-->
<!-- android:exported="false"-->
<!-- android:grantUriPermissions="true"-->
<!-- >-->
<!-- <meta-data-->
<!-- android:name="android.support.FILE_PROVIDER_PATHS"-->
<!-- android:resource="@xml/filepaths"/>-->
<!-- </provider>-->
<activity
android:name=
"com.chuanglan.shanyan_sdk.view.CmccLoginActivity"
android:configChanges=
"keyboardHidden|orientation|screenSize"
...
...
app/src/main/java/com/ccwangluo/accelerator/App.kt
View file @
a5e8f6c8
package
com.ccwangluo.accelerator
import
android.app.Application
import
android.content.Context
import
android.content.res.Configuration
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
import
com.tencent.bugly.BuglyStrategy
import
com.tencent.bugly.beta.Beta
import
com.tencent.android.tpush.XGPushConfig
import
com.tencent.map.geolocation.TencentLocationManager
import
com.tencent.mmkv.MMKV
import
com.umeng.commonsdk.UMConfigure
import
com.umeng.socialize.PlatformConfig
import
com.xuexiang.xpage.PageConfig
import
com.xuexiang.xpage.base.XPageActivity
import
com.xuexiang.xutil.XUtil
...
...
@@ -39,6 +37,16 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
MMKV
.
initialize
(
this
)
XGPushConfig
.
enableDebug
(
this
,
true
);
XUtil
.
init
(
this
)
UMConfigure
.
init
(
this
,
"61f0aa7fe014255fcb06a0bd"
,
"umeng"
,
UMConfigure
.
DEVICE_TYPE_PHONE
,
""
)
// 微信设置
PlatformConfig
.
setWeixin
(
"wx9271931475fae8ce"
,
"8f8686adb87efa476af92f2ccd196dad"
);
PlatformConfig
.
setWXFileProvider
(
"com.ccwangluo.accelerator.fileprovider"
);
// QQ设置
PlatformConfig
.
setQQZone
(
"101994779"
,
"7c34e16cadc3040bb3e8fa900c8a9c0f"
);
PlatformConfig
.
setQQFileProvider
(
"com.tencent.sample2.fileprovider"
);
}
fun
initBugly
()
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/BottomNavigationFragment.kt
View file @
a5e8f6c8
...
...
@@ -10,7 +10,7 @@ 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.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.google.android.material.bottomnavigation.BottomNavigationView
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.base.XPageFragment
...
...
@@ -101,8 +101,8 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
if
(
index
!=
-
1
)
{
binding
.
viewPager
.
setCurrentItem
(
index
,
true
)
when
(
index
){
0
->
DataRe
o
ortUtils
.
report
(
"st_speed_tab_clk"
)
1
->
DataRe
o
ortUtils
.
report
(
"st_msg_tab_clk"
)
0
->
DataRe
P
ortUtils
.
report
(
"st_speed_tab_clk"
)
1
->
DataRe
P
ortUtils
.
report
(
"st_msg_tab_clk"
)
}
return
true
}
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
View file @
a5e8f6c8
...
...
@@ -33,25 +33,18 @@ import android.hardware.SensorManager
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
com.ccwangluo.accelerator.ui.dialog.PermissionDialog
import
com.ccwangluo.accelerator.utils.dataReport.DataRePortUtils
import
fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
import
java.security.Permission
import
com.tencent.android.tpush.XGIOperateCallback
import
com.tencent.android.tpush.XGPushManager
class
MainActivity
()
:
XPageActivity
(),
TencentLocationListener
{
private
val
connect
=
registerForActivityResult
(
StartService
())
{
if
(
it
)
{
DataRe
oortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
2
))
DataRe
PortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
2
))
ToastUtils
.
show
(
"开启vpn权限失败"
)
}
}
...
...
@@ -64,68 +57,76 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
super
.
onCreate
(
savedInstanceState
)
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
System
.
currentTimeMillis
()
-
SettingSPUtils
.
lastAPPOpenReportTime
>
30
*
60
*
1000
)
{
DataRe
o
ortUtils
.
report
(
"start_app"
)
DataRe
P
ortUtils
.
report
(
"start_app"
)
}
initPhoneUtils
()
//获取权限
Dexter
.
withContext
(
this
)
.
withPermissions
(
Manifest
.
permission
.
READ_PHONE_STATE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
ACCESS_FINE_LOCATION
,
Manifest
.
permission
.
CAMERA
)
.
withListener
(
object
:
MultiplePermissionsListener
{
override
fun
onPermissionsChecked
(
p0
:
MultiplePermissionsReport
?)
{
p0
?.
let
{
it
.
grantedPermissionResponses
.
forEach
{
if
(
it
.
permissionName
.
equals
(
Manifest
.
permission
.
ACCESS_FINE_LOCATION
))
{
TencentLocationManager
.
getInstance
(
this
@MainActivity
)
.
requestSingleFreshLocation
(
null
,
this
@MainActivity
,
Looper
.
getMainLooper
()
)
}
}
}
}
override
fun
onPermissionRationaleShouldBeShown
(
p0
:
MutableList
<
PermissionRequest
>?,
p1
:
PermissionToken
?
)
{
// PermissionUtils.openAppSettings()
}
}).
check
()
PageOption
.
to
(
SplashFragment
::
class
.
java
).
open
(
this
)
Tencent
.
setIsPermissionGranted
(
true
)
//隐私协议
if
(!
SettingSPUtils
.
isAgreePrivacy
)
{
PrivacyDialog
(
this
,
HttpConfig
.
HTML_HOST_PRIVACY
+
"index.html"
)
{
PrivacyDialog
(
this
,
HttpConfig
.
HTML_HOST_PRIVACY
+
"index.html"
)
{
if
(
it
)
{
SettingSPUtils
.
isAgreePrivacy
=
true
DataReoortUtils
.
report
(
"st_agrmt_ok"
)
DataRePortUtils
.
report
(
"st_agrmt_ok"
)
PermissionDialog
(
this
)
{
getPermission
()
}.
show
<
PermissionDialog
>()
}
else
{
finish
()
}
}.
show
<
PrivacyDialog
>()
}
else
{
getPermission
()
}
AcceleratorUtils
.
initConnect
(
this
,
connect
)
mSensorManager
=
getSystemService
(
SENSOR_SERVICE
)
as
SensorManager
mSensorEventListener
=
JCVideoPlayer
.
JCAutoFullscreenListener
()
DataReoortUtils
.
report
(
"st_app_open"
)
DataRePortUtils
.
report
(
"st_app_open"
)
}
fun
getPermission
()
{
//获取权限
Dexter
.
withContext
(
this
)
.
withPermissions
(
Manifest
.
permission
.
READ_PHONE_STATE
,
Manifest
.
permission
.
WRITE_EXTERNAL_STORAGE
,
Manifest
.
permission
.
READ_EXTERNAL_STORAGE
,
Manifest
.
permission
.
ACCESS_FINE_LOCATION
,
Manifest
.
permission
.
CAMERA
)
.
withListener
(
object
:
MultiplePermissionsListener
{
override
fun
onPermissionsChecked
(
p0
:
MultiplePermissionsReport
?)
{
p0
?.
let
{
it
.
grantedPermissionResponses
.
forEach
{
if
(
it
.
permissionName
.
equals
(
Manifest
.
permission
.
ACCESS_FINE_LOCATION
))
{
TencentLocationManager
.
getInstance
(
this
@MainActivity
)
.
requestSingleFreshLocation
(
null
,
this
@MainActivity
,
Looper
.
getMainLooper
()
)
}
}
}
}
override
fun
onPermissionRationaleShouldBeShown
(
p0
:
MutableList
<
PermissionRequest
>?,
p1
:
PermissionToken
?
)
{
// PermissionUtils.openAppSettings()
}
}).
check
()
}
private
fun
initPhoneUtils
()
{
...
...
@@ -135,7 +136,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
override
fun
onSuccess
(
data
:
Any
,
flag
:
Int
)
{
//token在设备卸载重装的时候有可能会变
Log
.
d
(
"TPush"
,
"注册成功,设备token为:$data"
)
DataRe
o
ortUtils
.
report
(
"st_app_start_push"
)
DataRe
P
ortUtils
.
report
(
"st_app_start_push"
)
}
override
fun
onFail
(
data
:
Any
,
errCode
:
Int
,
msg
:
String
)
{
...
...
@@ -155,13 +156,15 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
super
.
onResume
()
val
mSensor
=
mSensorManager
?.
getDefaultSensor
(
Sensor
.
TYPE_ACCELEROMETER
);
mSensorManager
?.
registerListener
(
mSensorEventListener
,
mSensor
,
SensorManager
.
SENSOR_DELAY_NORMAL
mSensorEventListener
,
mSensor
,
SensorManager
.
SENSOR_DELAY_NORMAL
)
Handler
().
postDelayed
({
AcceleratorUtils
.
checkVpn
()
},
1000
)
//QQ官方sdk授权
Tencent
.
setIsPermissionGranted
(
true
);
}
override
fun
onPause
()
{
...
...
@@ -186,9 +189,9 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
}
override
fun
onActivityResult
(
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?
requestCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
UMShareAPI
.
get
(
this
).
onActivityResult
(
requestCode
,
resultCode
,
data
)
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/dialog/PermissionDialog.kt
0 → 100644
View file @
a5e8f6c8
package
com.ccwangluo.accelerator.ui.dialog
import
android.content.Context
import
android.view.View
import
com.ccwangluo.accelerator.R
import
com.xuexiang.xui.widget.dialog.materialdialog.CustomMaterialDialog
import
com.xuexiang.xui.widget.dialog.materialdialog.MaterialDialog
class
PermissionDialog
(
var
context
:
Context
,
var
callBack
:
(
Boolean
)
->
Unit
)
:
CustomMaterialDialog
(
context
)
{
override
fun
getDialogBuilder
(
context
:
Context
?):
MaterialDialog
.
Builder
{
return
MaterialDialog
.
Builder
(
context
!!
)
.
customView
(
R
.
layout
.
dialog_premission
,
false
);
}
override
fun
initViews
(
context
:
Context
?)
{
findViewById
<
View
>(
R
.
id
.
premission_know
).
setOnClickListener
{
this
.
dismiss
<
PermissionDialog
>()
callBack
(
true
)
}
}
init
{
mDialog
.
setCancelable
(
false
)
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/ui/home/AccelertorFragment.kt
View file @
a5e8f6c8
...
...
@@ -3,8 +3,6 @@ package com.ccwangluo.accelerator.ui.home
import
android.content.Intent
import
android.graphics.drawable.AnimationDrawable
import
android.os.Bundle
import
android.support.v4.media.session.PlaybackStateCompat
import
android.util.Log
import
android.view.LayoutInflater
import
android.view.View
import
android.view.ViewGroup
...
...
@@ -19,20 +17,20 @@ import com.ccwangluo.accelerator.ui.dialog.MemberDialog
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.ShareUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.http.HttpConfig
import
com.hjq.toast.ToastUtils
import
com.tencent.bugly.beta.Beta
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.core.PageOption
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xui.utils.ViewUtils
import
com.xuexiang.xui.widget.progress.CircleProgressView
import
com.xuexiang.xutil.app.AppUtils
class
AccelertorFragment
:
XPageFragment
()
{
private
lateinit
var
binding
:
FragmentQuickBinding
private
lateinit
var
accelertorViewModel
:
AccelertorViewModel
...
...
@@ -151,17 +149,16 @@ class AccelertorFragment : XPageFragment() {
override
fun
initListeners
()
{
binding
.
iconNotice
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_speed_sysmsg_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_sysmsg_clk"
)
openToWebview
(
HttpConfig
.
UI_MESSAGE_URL
)
}
binding
.
accShare
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_share_clk"
)
// TODO: 2022/3/14 share
DataRePortUtils
.
report
(
"st_share_clk"
)
activity
?.
let
{
it1
->
ShareUtils
().
share
(
it1
)
}
}
binding
.
gamePage
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_game_sysmsg_clk"
)
DataRe
P
ortUtils
.
report
(
"st_game_sysmsg_clk"
)
openWebviewForResult
(
HttpConfig
.
UI_GAME_URL
+
"?gameId=${AcceleratorUtils.game?.id}"
)
}
...
...
@@ -178,16 +175,16 @@ class AccelertorFragment : XPageFragment() {
}
binding
.
preventAccLost
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_speed_lostcon_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_lostcon_clk"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
}
binding
.
preventAccInvalid
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_speed_disabl_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_disabl_clk"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=2"
)
}
binding
.
btnExpend
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_speed_msg_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_msg_clk"
)
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
binding
.
expandableLayout1
.
toggle
()
binding
.
expandableLayout2
.
expand
()
...
...
@@ -205,17 +202,17 @@ class AccelertorFragment : XPageFragment() {
CommonDialog
(
it
).
setTitle
(
"加速停止确认"
)
.
setContent
(
"停止加速可能会导致游戏断线,是否确认停止?"
)
.
setBtnLeft
(
"取消"
,
{
DataRe
o
ortUtils
.
report
(
"st_speed_stop_pop_cancel_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_stop_pop_cancel_clk"
)
}).
setBtnRight
(
"停止加速"
,
{
DataRe
o
ortUtils
.
report
(
"st_speed_stop_pop_ok_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_stop_pop_ok_clk"
)
AcceleratorUtils
.
stopAccelerator
()
}).
show
<
CommonDialog
>()
DataRe
o
ortUtils
.
report
(
"st_speed_stop_pop_show"
)
DataRe
P
ortUtils
.
report
(
"st_speed_stop_pop_show"
)
}
DataRe
o
ortUtils
.
report
(
"st_speed_stop_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_stop_clk"
)
return
@setOnClickListener
}
else
{
DataRe
o
ortUtils
.
report
(
"st_speed_start_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_start_clk"
)
}
}
if
(!
LoginUtils
.
hasToken
())
{
...
...
@@ -224,7 +221,7 @@ class AccelertorFragment : XPageFragment() {
})
}
DataRe
o
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
DataRe
P
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
return
@setOnClickListener
}
...
...
@@ -234,7 +231,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
DataRe
o
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
DataRe
P
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
return
@setOnClickListener
}
AcceleratorUtils
.
getGameList
(
this
)
{
...
...
@@ -247,7 +244,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"1"
)
)
...
...
@@ -260,7 +257,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
btnQuick
.
isEnabled
=
false
startAnim
()
}
else
{
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
3
)
)
...
...
@@ -268,7 +265,7 @@ class AccelertorFragment : XPageFragment() {
}
}
}
else
{
DataRe
o
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
DataRe
P
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"3"
))
ToastUtils
.
show
(
"获取游戏配置异常"
)
}
}
...
...
@@ -279,7 +276,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
gameStart
.
setOnClickListener
{
if
(!
binding
.
expandableLayout1
.
isExpanded
)
{
AcceleratorUtils
.
game
?.
let
{
DataRe
o
ortUtils
.
report
(
"st_speed_game_start_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_game_start_clk"
)
try
{
AppUtils
.
launchApp
(
it
.
packageName
)
}
catch
(
e
:
Exception
)
{
...
...
@@ -353,13 +350,13 @@ class AccelertorFragment : XPageFragment() {
CommonDialog
(
it
).
setTitle
(
"防止加速掉线"
)
.
setContent
(
"为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置"
)
.
setBtnLeft
(
"取消"
,
{
DataRe
o
ortUtils
.
report
(
"st_speed_course_pop_cancel_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_course_pop_cancel_clk"
)
}).
setBtnRight
(
"去设置"
,
{
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
DataRe
o
ortUtils
.
report
(
"st_speed_course_pop_set_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_course_pop_set_clk"
)
}).
show
<
CommonDialog
>()
SettingSPUtils
.
isFirstAccSuccess
=
false
DataRe
o
ortUtils
.
report
(
"st_speed_course_pop_show"
)
DataRe
P
ortUtils
.
report
(
"st_speed_course_pop_show"
)
}
}
...
...
@@ -428,7 +425,7 @@ class AccelertorFragment : XPageFragment() {
fun
startAccSuccess
()
{
if
(
binding
.
gameStart
.
visibility
==
View
.
GONE
)
{
DataRe
o
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
1
))
DataRe
P
ortUtils
.
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 @
a5e8f6c8
...
...
@@ -6,7 +6,6 @@ import android.view.View
import
android.view.ViewGroup
import
android.widget.ImageView
import
android.widget.TextView
import
android.widget.Toast
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
androidx.recyclerview.widget.LinearLayoutManager
...
...
@@ -15,29 +14,19 @@ import com.bumptech.glide.Glide
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.adapter.KotlinDataAdapter
import
com.ccwangluo.accelerator.databinding.FragmentNewsBinding
import
com.ccwangluo.accelerator.model.News
import
com.ccwangluo.accelerator.model.Plugin
import
com.ccwangluo.accelerator.ui.MainActivity
import
com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter
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.ccwangluo.accelerator.utils.dataReport.DataRePortUtils
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
class
NewsFragment
:
XPageFragment
()
{
private
var
_binding
:
FragmentNewsBinding
?
=
null
...
...
@@ -88,45 +77,45 @@ class NewsFragment : XPageFragment() {
val
layoutManager
=
LinearLayoutManager
(
context
,
RecyclerView
.
HORIZONTAL
,
false
)
binding
.
gameNewsList
?.
setLayoutManager
(
layoutManager
)
binding
.
gameNewsList
.
adapter
=
KotlinDataAdapter
.
Builder
<
Plugin
>()
.
setData
(
dataList
)
.
setLayoutId
(
R
.
layout
.
item_news_game
)
.
addBindView
{
itemView
,
itemData
->
context
?.
let
{
Glide
.
with
(
it
).
load
(
itemData
.
icon
)
.
into
(
itemView
.
findViewById
<
ImageView
>(
R
.
id
.
plugin_img
))
}
itemView
.
findViewById
<
TextView
>(
R
.
id
.
plugin_name
).
setText
(
itemData
.
name
)
itemView
.
setOnClickListener
{
if
(!
itemData
.
isOpen
)
{
ToastUtils
.
show
(
"暂不支持${itemData.name}"
)
return
@setOnClickListener
.
setData
(
dataList
)
.
setLayoutId
(
R
.
layout
.
item_news_game
)
.
addBindView
{
itemView
,
itemData
->
context
?.
let
{
Glide
.
with
(
it
).
load
(
itemData
.
icon
)
.
into
(
itemView
.
findViewById
<
ImageView
>(
R
.
id
.
plugin_img
))
}
itemView
.
findViewById
<
TextView
>(
R
.
id
.
plugin_name
).
setText
(
itemData
.
name
)
itemView
.
setOnClickListener
{
if
(!
itemData
.
isOpen
)
{
ToastUtils
.
show
(
"暂不支持${itemData.name}"
)
return
@setOnClickListener
}
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
==
1
)
{
itemData
.
url
?.
let
{
DataRePortUtils
.
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
)
if
(
itemData
.
type
==
2
)
{
itemData
.
url
?.
let
{
DataRePortUtils
.
report
(
"st_google_clk"
,
mapOf
(
"scene"
to
3
))
openToWebview
(
it
)
}
}
}
if
(
itemData
.
type
==
3
)
{
itemData
.
url
?.
let
{
context
?.
let
{
it1
->
SysUtils
.
downloadFile
(
it1
,
it
)
ToastUtils
.
show
(
"开始下载"
)
if
(
itemData
.
type
==
3
)
{
itemData
.
url
?.
let
{
context
?.
let
{
it1
->
SysUtils
.
downloadFile
(
it1
,
it
)
ToastUtils
.
show
(
"开始下载"
)
}
}
}
}
}
}.
create
()
}.
create
()
newsViewModel
.
pluginList
.
observe
(
this
,
{
dataList
.
clear
()
dataList
.
addAll
(
it
)
...
...
@@ -141,9 +130,8 @@ class NewsFragment : XPageFragment() {
binding
.
tabLayout
.
addOnTabSelectedListener
(
object
:
TabLayout
.
OnTabSelectedListener
{
override
fun
onTabSelected
(
tab
:
TabLayout
.
Tab
?)
{
tab
?.
let
{
DataRe
oortUtils
.
report
(
"st_msg_channel_clk"
,
mapOf
(
"headline"
to
it
.
position
.
toString
()
))
DataRe
PortUtils
.
report
(
"st_msg_channel_clk"
,
mapOf
(
"headlin"
to
it
.
position
))
}
}
override
fun
onTabUnselected
(
tab
:
TabLayout
.
Tab
?)
{
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/login/LoginViewModel.kt
View file @
a5e8f6c8
...
...
@@ -5,12 +5,12 @@ 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.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRePortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.hjq.toast.ToastUtils
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.withContext
class
LoginViewModel
:
ViewModel
()
{
...
...
@@ -23,11 +23,12 @@ class LoginViewModel : ViewModel() {
val
map
=
mutableMapOf
<
String
,
String
>()
map
.
put
(
"phone"
,
phone
)
map
.
put
(
"verifyCode"
,
authCdoe
)
SysUtils
.
getDeviceUUID
()
?.
let
{
map
.
put
(
"did"
,
it
)
}
viewModelScope
.
launch
(
Dispatchers
.
IO
)
{
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/verifyCode/login"
,
map
)
res
?.
let
{
if
(
it
.
code
==
200
)
{
DataRe
o
ortUtils
.
report
(
"st_login_vercode_result"
,
mapOf
(
"result"
to
1
))
DataRe
P
ortUtils
.
report
(
"st_login_vercode_result"
,
mapOf
(
"result"
to
1
))
LoginUtils
.
token
=
it
.
data
?.
token
LoginUtils
.
uid
=
it
.
data
?.
phone
loginState
.
postValue
(
true
)
...
...
@@ -36,7 +37,7 @@ class LoginViewModel : ViewModel() {
it
.
error
?.
let
{
it1
->
map
.
put
(
"cause"
,
it1
)
}
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_login_vercode_result"
,
map
)
ToastUtils
.
show
(
it
.
error
)
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/login/PhoneLoginActivity.kt
View file @
a5e8f6c8
...
...
@@ -8,15 +8,12 @@ import androidx.lifecycle.ViewModelProvider
import
com.ccwangluo.accelerator.databinding.FragmentLoginPhoneBinding
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.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.hjq.toast.ToastUtils
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.base.XPageActivity
import
com.xuexiang.xpage.core.PageOption
import
com.xuexiang.xpage.enums.CoreAnim
import
com.xuexiang.xutil.common.StringUtils
import
java.util.regex.Pattern
...
...
@@ -33,7 +30,7 @@ class PhoneLoginActivity : XPageActivity() {
setContentView
(
binding
.
root
)
initViews
()
initListeners
()
DataRe
o
ortUtils
.
report
(
"st_login_vercode_show"
)
DataRe
P
ortUtils
.
report
(
"st_login_vercode_show"
)
}
fun
initViews
()
{
...
...
@@ -54,12 +51,12 @@ class PhoneLoginActivity : XPageActivity() {
}
binding
.
phoneEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
if
(
hasFocus
)
{
DataRe
o
ortUtils
.
report
(
"st_login_ph_input"
)
DataRe
P
ortUtils
.
report
(
"st_login_ph_input"
)
}
}
binding
.
authCodeEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
if
(
hasFocus
)
{
DataRe
o
ortUtils
.
report
(
"st_login_vercode_write"
)
DataRe
P
ortUtils
.
report
(
"st_login_vercode_write"
)
}
}
...
...
@@ -89,7 +86,7 @@ class PhoneLoginActivity : XPageActivity() {
loginViewModel
.
loginState
.
observe
(
this
,
{
if
(
it
)
{
LoginUtils
.
stopTimer
()
DataRe
o
ortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_vercode"
))
DataRe
P
ortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_vercode"
))
finish
()
}
})
...
...
@@ -128,7 +125,7 @@ class PhoneLoginActivity : XPageActivity() {
}
binding
.
authCodeBtn
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_login_vercode_request_clk"
)
DataRe
P
ortUtils
.
report
(
"st_login_vercode_request_clk"
)
val
phone
=
binding
.
phoneEt
.
text
.
toString
()
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
isPhone
(
phone
))
{
ToastUtils
.
show
(
"输入正确的手机号"
)
...
...
@@ -143,7 +140,7 @@ class PhoneLoginActivity : XPageActivity() {
}
binding
.
login
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_login_vercode_btn_clk"
)
DataRe
P
ortUtils
.
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 @
a5e8f6c8
...
...
@@ -7,35 +7,19 @@ import com.github.shadowsocks.http.HttpConfig
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.just.agentweb.core.AgentWeb
import
com.karumi.dexter.Dexter
import
com.karumi.dexter.MultiplePermissionsReport
import
com.karumi.dexter.PermissionToken
import
com.karumi.dexter.listener.PermissionRequest
import
com.karumi.dexter.listener.multi.MultiplePermissionsListener
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xutil.app.AppUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
android.content.Intent
import
android.media.audiofx.BassBoost
import
android.net.Uri
import
android.os.Handler
import
android.provider.Settings
import
com.hjq.toast.ToastUtils
import
java.lang.Exception
import
android.util.DisplayMetrics
import
android.util.Log
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.ShareUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.plugin.PluginContract
import
com.tencent.bugly.beta.Beta
import
com.tencent.bugly.beta.UpgradeInfo
import
com.xuexiang.xutil.net.NetworkUtils
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.withContext
import
org.json.JSONObject
import
java.util.*
/**
...
...
@@ -69,7 +53,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
LoginUtils
.
login
(
it1
)
{
LoginUtils
.
token
?.
let
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
"userToken"
,
it
)
.
quickCallJs
(
"userToken"
,
it
)
}
}
}
...
...
@@ -96,8 +80,8 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
}
else
{
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
HTML_HOST_PRIVACY
+
url
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
HTML_HOST_PRIVACY
+
url
)
}
...
...
@@ -123,7 +107,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
LoginUtils
.
login
(
it1
)
{
LoginUtils
.
token
?.
let
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
it
)
.
quickCallJs
(
callback
,
it
)
}
}
}
...
...
@@ -135,7 +119,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun
getToken
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
LoginUtils
.
token
)
.
quickCallJs
(
callback
,
LoginUtils
.
token
)
}
/**
...
...
@@ -147,16 +131,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
{
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"0"
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionName
()
)
.
quickCallJs
(
callback
,
"0"
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionName
()
)
}
}
...
...
@@ -167,10 +151,10 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
fun
getAccelerateState
(
callback
:
String
)
{
if
(
BaseService
.
State
.
Connected
==
AcceleratorUtils
.
state
)
{
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"1"
)
.
quickCallJs
(
callback
,
"1"
)
}
else
{
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"0"
)
.
quickCallJs
(
callback
,
"0"
)
}
}
...
...
@@ -210,7 +194,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun
getSmartAccStatus
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
SettingSPUtils
.
isSmartAccOpen
.
toString
())
.
quickCallJs
(
callback
,
SettingSPUtils
.
isSmartAccOpen
.
toString
())
}
/**
...
...
@@ -230,7 +214,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
xPageFragment
.
context
?.
let
{
val
hasPermission
:
Boolean
=
PermissionUtils
.
isGranted
(
key
)
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
key
,
hasPermission
.
toString
())
.
quickCallJs
(
callback
,
key
,
hasPermission
.
toString
())
}
}
...
...
@@ -247,20 +231,20 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
permissionsGranted
?.
forEach
{
if
(
it
.
equals
(
key
))
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
key
,
"true"
)
.
quickCallJs
(
callback
,
key
,
"true"
)
}
}
}
override
fun
onDenied
(
permissionsDeniedForever
:
MutableList
<
String
>?,
permissionsDenied
:
MutableList
<
String
>?
permissionsDeniedForever
:
MutableList
<
String
>?,
permissionsDenied
:
MutableList
<
String
>?
)
{
permissionsDenied
?.
forEach
{
if
(
it
.
equals
(
key
))
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
key
,
"false"
)
.
quickCallJs
(
callback
,
key
,
"false"
)
}
}
permissionsDeniedForever
?.
forEach
{
...
...
@@ -283,7 +267,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
xPageFragment
.
context
?.
let
{
val
packageInstall
=
SysUtils
.
isPackageInstall
(
it
,
packageName
)
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
packageName
,
packageInstall
.
toString
())
.
quickCallJs
(
callback
,
packageName
,
packageInstall
.
toString
())
}
}
...
...
@@ -309,11 +293,11 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun
getVersion
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionCode
().
toString
()
)
.
quickCallJs
(
callback
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionCode
().
toString
()
)
}
/****************
...
...
@@ -332,12 +316,12 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun
getSystemVersion
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
android
.
os
.
Build
.
VERSION
.
RELEASE
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
(),
android
.
os
.
Build
.
VERSION
.
SDK_INT
.
toString
()
)
.
quickCallJs
(
callback
,
android
.
os
.
Build
.
VERSION
.
RELEASE
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
(),
android
.
os
.
Build
.
VERSION
.
SDK_INT
.
toString
()
)
}
/**
...
...
@@ -346,7 +330,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun
getDpi
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
())
.
quickCallJs
(
callback
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
())
}
@JavascriptInterface
...
...
@@ -357,7 +341,15 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
fun
dataReport
(
event
:
String
,
data
:
String
)
{
DataReoortUtils
.
report
(
event
,
data
)
DataRePortUtils
.
report
(
event
,
data
)
}
@JavascriptInterface
fun
share
()
{
xPageFragment
.
activity
?.
let
{
ShareUtils
().
share
(
it
)
}
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/AcceleratorUtils.kt
View file @
a5e8f6c8
...
...
@@ -3,19 +3,16 @@ package com.ccwangluo.accelerator.utils
import
android.annotation.SuppressLint
import
android.content.Context
import
android.os.RemoteException
import
android.util.Log
import
androidx.activity.result.ActivityResultLauncher
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.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.acl.Acl
import
com.github.shadowsocks.aidl.IShadowsocksService
import
com.github.shadowsocks.aidl.IShadowsocksServiceCallback
import
com.github.shadowsocks.aidl.ShadowsocksConnection
import
com.github.shadowsocks.bg.AuthManager
...
...
@@ -23,18 +20,11 @@ import com.github.shadowsocks.bg.AuthManager.ACC_TIME
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.http.LineConfig
import
com.github.shadowsocks.preference.DataStore
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xutil.common.StringUtils
import
com.xuexiang.xutil.net.NetworkUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
kotlinx.coroutines.*
import
timber.log.Timber
import
java.util.concurrent.Executors
import
java.util.concurrent.TimeUnit
/**
...
...
@@ -216,7 +206,7 @@ object AcceleratorUtils {
AcceleratorUtils
.
state
=
state
stateListener
(
state
,
getAccTime
(),
null
)
if
(
state
==
BaseService
.
State
.
Stopped
&&
!
msg
.
isNullOrBlank
())
{
DataRe
o
ortUtils
.
report
(
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
3
.
toString
()))
DataRe
P
ortUtils
.
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 @
a5e8f6c8
...
...
@@ -3,12 +3,11 @@ package com.ccwangluo.accelerator.utils
import
android.content.Context
import
android.content.Intent
import
android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import
android.util.Log
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.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.github.shadowsocks.Core
...
...
@@ -16,8 +15,6 @@ import com.github.shadowsocks.bg.AuthManager
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.core.PageOption
import
com.xuexiang.xutil.app.AppUtils
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.GlobalScope
import
kotlinx.coroutines.launch
...
...
@@ -112,6 +109,7 @@ object LoginUtils {
if
(
b
)
{
val
map
=
mutableMapOf
<
String
,
String
>()
map
.
put
(
"token"
,
s
)
SysUtils
.
getDeviceUUID
()
?.
let
{
map
.
put
(
"did"
,
it
)
}
GlobalScope
.
launch
(
Dispatchers
.
IO
)
{
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/flash/login"
,
map
)
res
?.
let
{
...
...
@@ -121,7 +119,7 @@ object LoginUtils {
withContext
(
Dispatchers
.
Main
)
{
ToastUtils
.
show
(
"登录成功"
)
OneKeyLoginManager
.
getInstance
().
finishAuthActivity
()
DataRe
o
ortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_all"
))
DataRe
P
ortUtils
.
report
(
"role_entry"
,
mutableMapOf
(
"login"
to
"login_all"
))
callBack
(
true
)
}
}
else
{
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
View file @
a5e8f6c8
...
...
@@ -11,13 +11,11 @@ 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.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.chuanglan.shanyan_sdk.tool.ShanYanUIConfig
import
com.github.shadowsocks.http.HttpConfig
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.core.PageOption
import
org.json.JSONObject
...
...
@@ -57,7 +55,7 @@ object PhoneUtils {
if
(
code
!=
1000
)
{
callback
(
false
,
""
)
}
else
{
DataRe
o
ortUtils
.
report
(
"st_login_one_show"
)
DataRe
P
ortUtils
.
report
(
"st_login_one_show"
)
}
Log
.
i
(
TAG
,
"openLoginAuth: $result"
)
}
...
...
@@ -65,10 +63,10 @@ object PhoneUtils {
if
(
code
==
1000
)
{
val
json
=
JSONObject
(
result
)
DataRe
o
ortUtils
.
report
(
"st_login_one_result"
,
mapOf
(
"result"
to
1
))
DataRe
P
ortUtils
.
report
(
"st_login_one_result"
,
mapOf
(
"result"
to
1
))
callback
(
true
,
json
.
getString
(
"token"
))
}
else
{
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_login_one_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
result
)
)
...
...
@@ -149,7 +147,7 @@ object PhoneUtils {
val
intent
=
Intent
(
context
,
PhoneLoginActivity
::
class
.
java
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
context
.
startActivity
(
intent
)
DataRe
o
ortUtils
.
report
(
"st_login_other_clk"
)
DataRe
P
ortUtils
.
report
(
"st_login_other_clk"
)
}
.
setPrivacyState
(
false
)
.
setCheckedImgPath
(
mCheckedImg
)
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/ShareUtils.kt
0 → 100644
View file @
a5e8f6c8
package
com.ccwangluo.accelerator.utils
import
android.R.attr.thumb
import
android.app.Activity
import
android.content.Context
import
android.view.View
import
android.view.ViewGroup
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.utils.dataReport.DataRePortUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.umeng.socialize.ShareAction
import
com.umeng.socialize.bean.SHARE_MEDIA
import
com.umeng.socialize.media.UMWeb
import
com.xuexiang.xui.widget.dialog.bottomsheet.BottomSheet
class
ShareUtils
{
var
mdialog
:
BottomSheet
?
=
null
fun
share
(
activity
:
Activity
)
{
mdialog
=
BottomSheet
(
activity
)
val
contentView
:
View
=
buildViews
(
activity
)
mdialog
?.
setContentView
(
contentView
,
ViewGroup
.
LayoutParams
(
ViewGroup
.
LayoutParams
.
MATCH_PARENT
,
ViewGroup
.
LayoutParams
.
WRAP_CONTENT
))
mdialog
?.
show
()
}
fun
buildViews
(
activity
:
Activity
):
View
{
val
inflate
=
View
.
inflate
(
activity
,
R
.
layout
.
bottom_sheet_share
,
null
)
inflate
.
findViewById
<
View
>(
R
.
id
.
share_wechat
).
setOnClickListener
{
DataRePortUtils
.
report
(
"st_share_wechat_clk"
)
shareWeb
(
activity
,
SHARE_MEDIA
.
WEIXIN
)
}
inflate
.
findViewById
<
View
>(
R
.
id
.
share_pyq
).
setOnClickListener
{
DataRePortUtils
.
report
(
"st_share_wetfriends_clk"
)
shareWeb
(
activity
,
SHARE_MEDIA
.
WEIXIN_CIRCLE
)
}
inflate
.
findViewById
<
View
>(
R
.
id
.
share_qq
).
setOnClickListener
{
DataRePortUtils
.
report
(
"st_share_qq_clk"
)
shareWeb
(
activity
,
SHARE_MEDIA
.
QQ
)
}
inflate
.
findViewById
<
View
>(
R
.
id
.
share_qqzore
).
setOnClickListener
{
DataRePortUtils
.
report
(
"st_share_qqspace_clk"
)
shareWeb
(
activity
,
SHARE_MEDIA
.
QZONE
)
}
inflate
.
findViewById
<
View
>(
R
.
id
.
share_close
).
setOnClickListener
{
mdialog
?.
dismiss
()
}
return
inflate
}
fun
shareWeb
(
activity
:
Activity
,
type
:
SHARE_MEDIA
)
{
mdialog
?.
dismiss
()
val
web
:
UMWeb
=
UMWeb
(
HttpConfig
.
SHARE_URL
)
web
.
title
=
"TT手游加速器-韩服专线 畅玩你的快乐"
//标题
// web.setThumb(thumb) //缩略图
web
.
description
=
"韩服专线一键加速,告别手机网络卡顿、延迟、加速慢等问题,韩服游戏加速就用专业的TT加速器!"
//描述
ShareAction
(
activity
)
.
setPlatform
(
type
)
.
withMedia
(
web
)
.
share
()
}
}
\ No newline at end of file
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/BaseData.kt
View file @
a5e8f6c8
...
...
@@ -9,7 +9,7 @@ import java.time.LocalDateTime
data class
BaseData
(
var
channel
:
Int
=
0
,
var
client_ip
:
String
=
NetworkUtils
.
getIPAddress
(
true
)
,
var
client_ip
:
String
=
"127.0.0.1"
,
var
did
:
String
?
=
SysUtils
.
getDeviceUUID
(),
var
ds
:
String
=
LocalDateTime
.
now
().
toString
(),
var
event
:
String
=
""
,
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/DataRe
o
ortUtils.kt
→
app/src/main/java/com/ccwangluo/accelerator/utils/dataReport/DataRe
P
ortUtils.kt
View file @
a5e8f6c8
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
DataRe
o
ortUtils
{
object
DataRe
P
ortUtils
{
val
list
=
mutableSetOf
<
BaseData
>()
val
gson
=
Gson
()
fun
report
(
eventName
:
String
,
param
:
Map
<
String
,
out
Any
>)
{
fun
report
(
eventName
:
String
,
param
:
Map
<
String
,
Any
>)
{
report
(
eventName
,
gson
.
toJson
(
param
).
toString
())
}
...
...
app/src/main/res/layout/bottom_sheet_share.xml
0 → 100644
View file @
a5e8f6c8
<?xml version="1.0" encoding="utf-8"?>
<com.xuexiang.xui.widget.layout.XUILinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:orientation=
"vertical"
app:xui_borderColor=
"@color/white"
app:xui_outerNormalColor=
"@color/white"
app:xui_hideRadiusSide=
"bottom"
app:xui_radius=
"10dp"
>
<LinearLayout
android:layout_width=
"match_parent"
android:layout_height=
"123dp"
android:orientation=
"horizontal"
>
<LinearLayout
android:id=
"@+id/share_wechat"
android:layout_width=
"0dp"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_weight=
"1"
android:layout_height=
"match_parent"
>
<ImageView
android:layout_width=
"44dp"
android:layout_height=
"43.85dp"
android:background=
"@mipmap/ic_wechat"
/>
<TextView
android:layout_marginTop=
"8.15dp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"微信"
android:textColor=
"#FF000000"
android:textSize=
"13sp"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/share_pyq"
android:layout_width=
"0dp"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_weight=
"1"
android:layout_height=
"match_parent"
>
<ImageView
android:layout_width=
"44dp"
android:layout_height=
"43.85dp"
android:background=
"@mipmap/ic_pyq"
/>
<TextView
android:layout_marginTop=
"8.15dp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"朋友圈"
android:textColor=
"#FF000000"
android:textSize=
"13sp"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/share_qq"
android:layout_width=
"0dp"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_weight=
"1"
android:layout_height=
"match_parent"
>
<ImageView
android:layout_width=
"44dp"
android:layout_height=
"43.85dp"
android:background=
"@mipmap/ic_qq"
/>
<TextView
android:layout_marginTop=
"8.15dp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"QQ"
android:textColor=
"#FF000000"
android:textSize=
"13sp"
/>
</LinearLayout>
<LinearLayout
android:id=
"@+id/share_qqzore"
android:layout_width=
"0dp"
android:orientation=
"vertical"
android:gravity=
"center"
android:layout_weight=
"1"
android:layout_height=
"match_parent"
>
<ImageView
android:layout_width=
"44dp"
android:layout_height=
"43.85dp"
android:background=
"@mipmap/ic_qqkj"
/>
<TextView
android:layout_marginTop=
"8.15dp"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:text=
"QQ空间"
android:textColor=
"#FF000000"
android:textSize=
"13sp"
/>
</LinearLayout>
</LinearLayout>
<View
android:layout_width=
"match_parent"
android:layout_height=
"0.5dp"
android:background=
"#FFE3E3E3"
/>
<FrameLayout
android:id=
"@+id/share_close"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
>
<TextView
android:layout_marginTop=
"16dp"
android:layout_marginBottom=
"16dp"
android:layout_gravity=
"center"
android:layout_width=
"32dp"
android:layout_height=
"22.5dp"
android:text=
"关闭"
android:textColor=
"#FF2A2A2A"
android:textSize=
"16sp"
/>
</FrameLayout>
</com.xuexiang.xui.widget.layout.XUILinearLayout>
\ No newline at end of file
app/src/main/res/layout/dialog_premission.xml
0 → 100644
View file @
a5e8f6c8
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
android:layout_width=
"302dp"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:orientation=
"vertical"
android:paddingLeft=
"20dp"
android:paddingRight=
"20dp"
>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center_horizontal"
android:layout_marginTop=
"22dp"
android:text=
"权限说明"
android:textColor=
"#FF000000"
android:textSize=
"16sp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"21.5dp"
android:text=
"1.设备信息"
android:textColor=
"#FF4A4A4A"
android:textSize=
"14sp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"7dp"
android:text=
"用于生成您的账号信息,把您完成安全信息确认和数据统计"
android:textColor=
"#FF9A9A9A"
android:textSize=
"12sp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"12dp"
android:text=
"2.存储空间权限"
android:textColor=
"#FF4A4A4A"
android:textSize=
"14sp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"7dp"
android:text=
"用于下载、安装游戏,上传个人头像、参与UGC内容的发布、评论等需要"
android:textColor=
"#FF9A9A9A"
android:textSize=
"12sp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"12dp"
android:text=
"3.定位权限"
android:textColor=
"#FF4A4A4A"
android:textSize=
"14sp"
/>
<TextView
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_marginTop=
"7dp"
android:text=
"用于获取最优的服务器加速线路,使其达到最佳的加速效果"
android:textColor=
"#FF9A9A9A"
android:textSize=
"12sp"
/>
<View
android:layout_width=
"match_parent"
android:layout_height=
"0.5dp"
android:layout_marginTop=
"20dp"
android:background=
"#FFF0F0F0"
/>
<TextView
android:id=
"@+id/premission_know"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"center"
android:layout_marginTop=
"15dp"
android:layout_marginBottom=
"20dp"
android:text=
"我知道了"
android:textColor=
"#FF3CA4FD"
android:textSize=
"15sp"
/>
</LinearLayout>
\ No newline at end of file
app/src/main/res/mipmap-xxxhdpi/ic_pyq.png
0 → 100644
View file @
a5e8f6c8
12.7 KB
app/src/main/res/mipmap-xxxhdpi/ic_qq.png
0 → 100644
View file @
a5e8f6c8
9.56 KB
app/src/main/res/mipmap-xxxhdpi/ic_qqkj.png
0 → 100644
View file @
a5e8f6c8
10.1 KB
app/src/main/res/mipmap-xxxhdpi/ic_wechat.png
0 → 100644
View file @
a5e8f6c8
11 KB
core/src/main/java/com/github/shadowsocks/http/HttpConfig.kt
View file @
a5e8f6c8
...
...
@@ -5,7 +5,7 @@ object HttpConfig {
//app后端
//val baseUrl = "http://10.16.1.98:9002"
val
baseUrl
=
"https://test-cc-tt-api.orangenet.org.cn"
//测试
//
val baseUrl = "https://cc-tt-front.srccwl.com" //生产
//
val baseUrl = "https://cc-tt-front.srccwl.com" //生产
/**
...
...
@@ -13,7 +13,7 @@ object HttpConfig {
*/
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 = "https://cc-tt-front.srccwl.com/#" //生产
//
val UI_MAIN_URL = "https://cc-tt-front.srccwl.com/#" //生产
//隐私协议地址
...
...
@@ -40,4 +40,6 @@ object HttpConfig {
val
UI_SPEED_URL
=
"/speed"
val
MEMBER_CENTER
=
"/memberCenter"
//分享落地页
val
SHARE_URL
=
"http://ttspeed.saiqinkj.com/index_pc.html"
}
\ No newline at end of file
repositories.gradle.kts
View file @
a5e8f6c8
...
...
@@ -9,6 +9,7 @@ repositories {
}
maven
{
url
=
uri
(
"https://jitpack.io"
)
}
maven
{
url
=
uri
(
"https://repo1.maven.org/maven2/"
)
}
maven
{
url
=
uri
(
"https://dl.bintray.com/thelasterstar/maven/"
)
}
google
()
jcenter
()
mavenCentral
()
...
...
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