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 {
...
@@ -28,6 +28,7 @@ android {
manifestPlaceholders
.
put
(
"XG_ACCESS_ID"
,
"1580009634"
)
manifestPlaceholders
.
put
(
"XG_ACCESS_ID"
,
"1580009634"
)
manifestPlaceholders
.
put
(
"XG_ACCESS_KEY"
,
"AIJKAIYR3WPS"
)
manifestPlaceholders
.
put
(
"XG_ACCESS_KEY"
,
"AIJKAIYR3WPS"
)
manifestPlaceholders
.
put
(
"qqappid"
,
"101994779"
)
}
}
buildTypes
{
buildTypes
{
...
@@ -41,14 +42,13 @@ android {
...
@@ -41,14 +42,13 @@ android {
isMinifyEnabled
=
false
isMinifyEnabled
=
false
}
}
}
}
buildFeatures
.
viewBinding
=
true
}
}
setupApp
()
setupApp
()
android
.
defaultConfig
.
applicationId
=
"com.ccwangluo.accelerator"
android
.
defaultConfig
.
applicationId
=
"com.ccwangluo.accelerator"
android
.
buildFeatures
.
viewBinding
=
true
android
.
buildTypes
.
named
(
"release"
)
dependencies
{
dependencies
{
implementation
(
fileTree
(
mapOf
(
"dir"
to
"libs"
,
"include"
to
listOf
(
"*.jar"
,
"*.aar"
))))
implementation
(
fileTree
(
mapOf
(
"dir"
to
"libs"
,
"include"
to
listOf
(
"*.jar"
,
"*.aar"
))))
implementation
(
"androidx.appcompat:appcompat:1.3.1"
)
implementation
(
"androidx.appcompat:appcompat:1.3.1"
)
...
@@ -102,7 +102,7 @@ dependencies {
...
@@ -102,7 +102,7 @@ dependencies {
implementation
(
"com.umeng.umsdk:share-wx:7.1.7"
)
//微信完整版)
implementation
(
"com.umeng.umsdk:share-wx:7.1.7"
)
//微信完整版)
implementation
(
"com.tencent.mm.opensdk:wechat-sdk-android-without-mta:6.7.9"
)
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,必选)
// implementation("com.squareup.okhttp3:okhttp:3.14.9")//QQ官方sdk 3.53及之后版本需要集成okhttp3.x,必选)
//gps
//gps
...
...
app/proguard-rules.pro
View file @
a5e8f6c8
...
@@ -176,3 +176,99 @@
...
@@ -176,3 +176,99 @@
-
keep
class
com
.
tencent
.
tpns
.
baseapi
.
**
{
*
;}
-
keep
class
com
.
tencent
.
tpns
.
baseapi
.
**
{
*
;}
-
keep
class
com
.
tencent
.
tpns
.
mqttchannel
.
**
{
*
;}
-
keep
class
com
.
tencent
.
tpns
.
mqttchannel
.
**
{
*
;}
-
keep
class
com
.
tencent
.
tpns
.
dataacquisition
.
**
{
*
;}
-
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 @@
...
@@ -23,12 +23,12 @@
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_ADMIN"
/>
<!-- 支持A-GPS辅助定位 -->
<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.ACCESS_LOCATION_EXTRA_COMMANDS"
/>
<!-- 用于 log 日志 -->
<uses-permission
android:name=
"android.permission.REQUEST_INSTALL_PACKAGES"
/>
<!-- 配置可查询包名, 配置测试游戏必须添加 添加 -->
<!-- 配置可查询包名, 配置测试游戏必须添加 添加 -->
<queries>
<queries>
<package
android:name=
"com.tencent.mm"
/>
<package
android:name=
"com.tencent.mm"
/>
<package
android:name=
"com.tencent.mobileqq"
/>
<package
android:name=
"com.tencent.mobileqq"
/>
<package
android:name=
"com.qzone"
/>
<package
android:name=
"com.baidu.browser.apps"
/>
<package
android:name=
"com.baidu.browser.apps"
/>
<package
android:name=
"com.ldsanguo.shark"
/>
<package
android:name=
"com.ldsanguo.shark"
/>
<package
android:name=
"com.ldsanguomj.shark"
/>
<package
android:name=
"com.ldsanguomj.shark"
/>
...
@@ -36,7 +36,6 @@
...
@@ -36,7 +36,6 @@
<package
android:name=
"com.google.android.gsf"
/>
<package
android:name=
"com.google.android.gsf"
/>
<package
android:name=
"com.google.android.gms"
/>
<package
android:name=
"com.google.android.gms"
/>
<package
android:name=
"com.android.vending"
/>
<package
android:name=
"com.android.vending"
/>
<package
android:name=
"com.tencent.mobileqq"
/>
<package
android:name=
"com.tencent.mm"
/>
<package
android:name=
"com.tencent.mm"
/>
<package
android:name=
"com.goplaycn.googleinstall"
/>
<package
android:name=
"com.goplaycn.googleinstall"
/>
<package
android:name=
"io.kkzs"
/>
<package
android:name=
"io.kkzs"
/>
...
@@ -102,15 +101,15 @@
...
@@ -102,15 +101,15 @@
android:name=
".wxapi.WXEntryActivity"
android:name=
".wxapi.WXEntryActivity"
android:configChanges=
"keyboardHidden|orientation|screenSize"
android:configChanges=
"keyboardHidden|orientation|screenSize"
android:exported=
"true"
android:exported=
"true"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- <provider -->
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- android:name="android.support.v4.content.FileProvider" -->
<provider
android:name=
"androidx.core.content.FileProvider"
<!-- android:authorities="com.ccwangluo.accelerator.fileprovider" -->
android:authorities=
"com.ccwangluo.accelerator.fileprovider"
<!-- android:exported="false" -->
android:exported=
"false"
<!-- android:grantUriPermissions="true"> --
>
android:grantUriPermissions=
"true"
>
<!-- <meta-data -->
<meta-data
<!-- android:name="android.support.FILE_PROVIDER_PATHS" -->
android:name=
"android.support.FILE_PROVIDER_PATHS"
<!-- android:resource="@xml/filepaths"/> --
>
android:resource=
"@xml/filepaths"
/
>
<!-- </provider> --
>
</provider
>
<activity
<activity
android:name=
"com.tencent.tauth.AuthActivity"
android:name=
"com.tencent.tauth.AuthActivity"
android:launchMode=
"singleTask"
android:launchMode=
"singleTask"
...
@@ -120,24 +119,24 @@
...
@@ -120,24 +119,24 @@
<category
android:name=
"android.intent.category.DEFAULT"
/>
<category
android:name=
"android.intent.category.DEFAULT"
/>
<category
android:name=
"android.intent.category.BROWSABLE"
/>
<category
android:name=
"android.intent.category.BROWSABLE"
/>
<data
android:scheme=
"101994779"
/>
<data
android:scheme=
"1212121"
/>
</intent-filter>
</intent-filter>
</activity>
</activity>
<activity
<activity
android:name=
"com.tencent.connect.common.AssistActivity"
android:name=
"com.tencent.connect.common.AssistActivity"
android:configChanges=
"orientation|keyboardHidden"
android:configChanges=
"orientation|keyboardHidden"
android:screenOrientation=
"behind"
android:screenOrientation=
"behind"
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- <provider -->
android:theme=
"@android:style/Theme.Translucent.NoTitleBar"
/>
<!-- android:authorities="${applicationId}.fileprovider" -->
<!-- <provider-->
<!-- android:name="android.support.v4.content.FileProvider" -->
<!-- android:authorities="com.ccwangluo.accelerator.fileprovider"-->
<!-- android:exported="false" -->
<!-- android:name="androidx.core.content.FileProvider"-->
<!-- android:grantUriPermissions="true" -->
<!-- android:exported="false"-->
<!-- > -->
<!-- android:grantUriPermissions="true"-->
<!-- <meta-data -->
<!-- >-->
<!-- android:name="android.support.FILE_PROVIDER_PATHS" -->
<!-- <meta-data-->
<!-- android:resource="@xml/filepaths"/> -->
<!-- android:name="android.support.FILE_PROVIDER_PATHS"-->
<!-- </provider> -->
<!-- android:resource="@xml/filepaths"/>-->
<!-- </provider>-->
<activity
<activity
android:name=
"com.chuanglan.shanyan_sdk.view.CmccLoginActivity"
android:name=
"com.chuanglan.shanyan_sdk.view.CmccLoginActivity"
android:configChanges=
"keyboardHidden|orientation|screenSize"
android:configChanges=
"keyboardHidden|orientation|screenSize"
...
...
app/src/main/java/com/ccwangluo/accelerator/App.kt
View file @
a5e8f6c8
package
com.ccwangluo.accelerator
package
com.ccwangluo.accelerator
import
android.app.Application
import
android.app.Application
import
android.content.Context
import
android.content.res.Configuration
import
android.content.res.Configuration
import
android.os.Environment
import
android.os.Environment
import
androidx.multidex.MultiDex
import
androidx.multidex.MultiDex
import
com.ccwangluo.accelerator.ui.MainActivity
import
com.ccwangluo.accelerator.ui.MainActivity
import
com.ccwangluo.accelerator.utils.PhoneUtils
import
com.ccwangluo.accelerator.utils.PhoneUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.tencent.bugly.Bugly
import
com.tencent.bugly.Bugly
import
com.tencent.bugly.BuglyStrategy
import
com.tencent.bugly.BuglyStrategy
import
com.tencent.bugly.beta.Beta
import
com.tencent.bugly.beta.Beta
import
com.tencent.android.tpush.XGPushConfig
import
com.tencent.android.tpush.XGPushConfig
import
com.tencent.map.geolocation.TencentLocationManager
import
com.tencent.mmkv.MMKV
import
com.tencent.mmkv.MMKV
import
com.umeng.commonsdk.UMConfigure
import
com.umeng.socialize.PlatformConfig
import
com.xuexiang.xpage.PageConfig
import
com.xuexiang.xpage.PageConfig
import
com.xuexiang.xpage.base.XPageActivity
import
com.xuexiang.xpage.base.XPageActivity
import
com.xuexiang.xutil.XUtil
import
com.xuexiang.xutil.XUtil
...
@@ -39,6 +37,16 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
...
@@ -39,6 +37,16 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
MMKV
.
initialize
(
this
)
MMKV
.
initialize
(
this
)
XGPushConfig
.
enableDebug
(
this
,
true
);
XGPushConfig
.
enableDebug
(
this
,
true
);
XUtil
.
init
(
this
)
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
()
{
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
...
@@ -10,7 +10,7 @@ import com.ccwangluo.accelerator.ui.home.AccelertorViewModel
import
com.ccwangluo.accelerator.ui.home.MineFragment
import
com.ccwangluo.accelerator.ui.home.MineFragment
import
com.ccwangluo.accelerator.ui.home.NewsFragment
import
com.ccwangluo.accelerator.ui.home.NewsFragment
import
com.ccwangluo.accelerator.utils.LoginUtils
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.google.android.material.bottomnavigation.BottomNavigationView
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
...
@@ -101,8 +101,8 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
...
@@ -101,8 +101,8 @@ class BottomNavigationFragment : XPageFragment(), ViewPager.OnPageChangeListener
if
(
index
!=
-
1
)
{
if
(
index
!=
-
1
)
{
binding
.
viewPager
.
setCurrentItem
(
index
,
true
)
binding
.
viewPager
.
setCurrentItem
(
index
,
true
)
when
(
index
){
when
(
index
){
0
->
DataRe
o
ortUtils
.
report
(
"st_speed_tab_clk"
)
0
->
DataRe
P
ortUtils
.
report
(
"st_speed_tab_clk"
)
1
->
DataRe
o
ortUtils
.
report
(
"st_msg_tab_clk"
)
1
->
DataRe
P
ortUtils
.
report
(
"st_msg_tab_clk"
)
}
}
return
true
return
true
}
}
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/MainActivity.kt
View file @
a5e8f6c8
...
@@ -33,25 +33,18 @@ import android.hardware.SensorManager
...
@@ -33,25 +33,18 @@ import android.hardware.SensorManager
import
android.hardware.SensorEventListener
import
android.hardware.SensorEventListener
import
android.os.Handler
import
android.os.Handler
import
android.util.Log
import
android.util.Log
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.ui.dialog.PermissionDialog
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRePortUtils
import
com.xuexiang.xutil.net.NetworkUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
import
fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
import
java.security.Permission
import
com.tencent.android.tpush.XGIOperateCallback
import
com.tencent.android.tpush.XGIOperateCallback
import
com.tencent.android.tpush.XGPushManager
import
com.tencent.android.tpush.XGPushManager
class
MainActivity
()
:
XPageActivity
(),
TencentLocationListener
{
class
MainActivity
()
:
XPageActivity
(),
TencentLocationListener
{
private
val
connect
=
registerForActivityResult
(
StartService
())
{
private
val
connect
=
registerForActivityResult
(
StartService
())
{
if
(
it
)
{
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权限失败"
)
ToastUtils
.
show
(
"开启vpn权限失败"
)
}
}
}
}
...
@@ -64,68 +57,76 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -64,68 +57,76 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
super
.
onCreate
(
savedInstanceState
)
super
.
onCreate
(
savedInstanceState
)
accelertorViewModel
=
accelertorViewModel
=
ViewModelProvider
(
this
).
get
(
AccelertorViewModel
::
class
.
java
)
ViewModelProvider
(
this
).
get
(
AccelertorViewModel
::
class
.
java
)
// app 启动
// app 启动
if
(
SettingSPUtils
.
lastAPPOpenReportTime
==
0L
||
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
()
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
)
PageOption
.
to
(
SplashFragment
::
class
.
java
).
open
(
this
)
Tencent
.
setIsPermissionGranted
(
true
)
Tencent
.
setIsPermissionGranted
(
true
)
//隐私协议
//隐私协议
if
(!
SettingSPUtils
.
isAgreePrivacy
)
{
if
(!
SettingSPUtils
.
isAgreePrivacy
)
{
PrivacyDialog
(
this
,
HttpConfig
.
HTML_HOST_PRIVACY
+
"index.html"
)
{
PrivacyDialog
(
this
,
HttpConfig
.
HTML_HOST_PRIVACY
+
"index.html"
)
{
if
(
it
)
{
if
(
it
)
{
SettingSPUtils
.
isAgreePrivacy
=
true
SettingSPUtils
.
isAgreePrivacy
=
true
DataReoortUtils
.
report
(
"st_agrmt_ok"
)
DataRePortUtils
.
report
(
"st_agrmt_ok"
)
PermissionDialog
(
this
)
{
getPermission
()
}.
show
<
PermissionDialog
>()
}
else
{
}
else
{
finish
()
finish
()
}
}
}.
show
<
PrivacyDialog
>()
}.
show
<
PrivacyDialog
>()
}
else
{
getPermission
()
}
}
AcceleratorUtils
.
initConnect
(
this
,
connect
)
AcceleratorUtils
.
initConnect
(
this
,
connect
)
mSensorManager
=
getSystemService
(
SENSOR_SERVICE
)
as
SensorManager
mSensorManager
=
getSystemService
(
SENSOR_SERVICE
)
as
SensorManager
mSensorEventListener
=
JCVideoPlayer
.
JCAutoFullscreenListener
()
mSensorEventListener
=
JCVideoPlayer
.
JCAutoFullscreenListener
()
DataReoortUtils
.
report
(
"st_app_open"
)
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
()
{
private
fun
initPhoneUtils
()
{
...
@@ -135,7 +136,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -135,7 +136,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
override
fun
onSuccess
(
data
:
Any
,
flag
:
Int
)
{
override
fun
onSuccess
(
data
:
Any
,
flag
:
Int
)
{
//token在设备卸载重装的时候有可能会变
//token在设备卸载重装的时候有可能会变
Log
.
d
(
"TPush"
,
"注册成功,设备token为:$data"
)
Log
.
d
(
"TPush"
,
"注册成功,设备token为:$data"
)
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
)
{
override
fun
onFail
(
data
:
Any
,
errCode
:
Int
,
msg
:
String
)
{
...
@@ -155,13 +156,15 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -155,13 +156,15 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
super
.
onResume
()
super
.
onResume
()
val
mSensor
=
mSensorManager
?.
getDefaultSensor
(
Sensor
.
TYPE_ACCELEROMETER
);
val
mSensor
=
mSensorManager
?.
getDefaultSensor
(
Sensor
.
TYPE_ACCELEROMETER
);
mSensorManager
?.
registerListener
(
mSensorManager
?.
registerListener
(
mSensorEventListener
,
mSensorEventListener
,
mSensor
,
mSensor
,
SensorManager
.
SENSOR_DELAY_NORMAL
SensorManager
.
SENSOR_DELAY_NORMAL
)
)
Handler
().
postDelayed
({
Handler
().
postDelayed
({
AcceleratorUtils
.
checkVpn
()
AcceleratorUtils
.
checkVpn
()
},
1000
)
},
1000
)
//QQ官方sdk授权
Tencent
.
setIsPermissionGranted
(
true
);
}
}
override
fun
onPause
()
{
override
fun
onPause
()
{
...
@@ -186,9 +189,9 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
...
@@ -186,9 +189,9 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
}
}
override
fun
onActivityResult
(
override
fun
onActivityResult
(
requestCode
:
Int
,
requestCode
:
Int
,
resultCode
:
Int
,
resultCode
:
Int
,
data
:
Intent
?
data
:
Intent
?
)
{
)
{
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
super
.
onActivityResult
(
requestCode
,
resultCode
,
data
)
UMShareAPI
.
get
(
this
).
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
...
@@ -3,8 +3,6 @@ package com.ccwangluo.accelerator.ui.home
import
android.content.Intent
import
android.content.Intent
import
android.graphics.drawable.AnimationDrawable
import
android.graphics.drawable.AnimationDrawable
import
android.os.Bundle
import
android.os.Bundle
import
android.support.v4.media.session.PlaybackStateCompat
import
android.util.Log
import
android.view.LayoutInflater
import
android.view.LayoutInflater
import
android.view.View
import
android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
...
@@ -19,20 +17,20 @@ import com.ccwangluo.accelerator.ui.dialog.MemberDialog
...
@@ -19,20 +17,20 @@ import com.ccwangluo.accelerator.ui.dialog.MemberDialog
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.ShareUtils
import
com.ccwangluo.accelerator.utils.SysUtils
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.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.http.HttpConfig
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.tencent.bugly.beta.Beta
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.core.PageOption
import
com.xuexiang.xpage.core.PageOption
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xui.utils.ViewUtils
import
com.xuexiang.xui.widget.progress.CircleProgressView
import
com.xuexiang.xui.widget.progress.CircleProgressView
import
com.xuexiang.xutil.app.AppUtils
import
com.xuexiang.xutil.app.AppUtils
class
AccelertorFragment
:
XPageFragment
()
{
class
AccelertorFragment
:
XPageFragment
()
{
private
lateinit
var
binding
:
FragmentQuickBinding
private
lateinit
var
binding
:
FragmentQuickBinding
private
lateinit
var
accelertorViewModel
:
AccelertorViewModel
private
lateinit
var
accelertorViewModel
:
AccelertorViewModel
...
@@ -151,17 +149,16 @@ class AccelertorFragment : XPageFragment() {
...
@@ -151,17 +149,16 @@ class AccelertorFragment : XPageFragment() {
override
fun
initListeners
()
{
override
fun
initListeners
()
{
binding
.
iconNotice
.
setOnClickListener
{
binding
.
iconNotice
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_speed_sysmsg_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_sysmsg_clk"
)
openToWebview
(
HttpConfig
.
UI_MESSAGE_URL
)
openToWebview
(
HttpConfig
.
UI_MESSAGE_URL
)
}
}
binding
.
accShare
.
setOnClickListener
{
binding
.
accShare
.
setOnClickListener
{
DataReoortUtils
.
report
(
"st_share_clk"
)
DataRePortUtils
.
report
(
"st_share_clk"
)
// TODO: 2022/3/14 share
activity
?.
let
{
it1
->
ShareUtils
().
share
(
it1
)
}
}
}
binding
.
gamePage
.
setOnClickListener
{
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}"
)
openWebviewForResult
(
HttpConfig
.
UI_GAME_URL
+
"?gameId=${AcceleratorUtils.game?.id}"
)
}
}
...
@@ -178,16 +175,16 @@ class AccelertorFragment : XPageFragment() {
...
@@ -178,16 +175,16 @@ class AccelertorFragment : XPageFragment() {
}
}
binding
.
preventAccLost
.
setOnClickListener
{
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"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
}
}
binding
.
preventAccInvalid
.
setOnClickListener
{
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"
)
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=2"
)
}
}
binding
.
btnExpend
.
setOnClickListener
{
binding
.
btnExpend
.
setOnClickListener
{
DataRe
o
ortUtils
.
report
(
"st_speed_msg_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_msg_clk"
)
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
if
(
binding
.
expandableLayout1
.
isExpanded
)
{
binding
.
expandableLayout1
.
toggle
()
binding
.
expandableLayout1
.
toggle
()
binding
.
expandableLayout2
.
expand
()
binding
.
expandableLayout2
.
expand
()
...
@@ -205,17 +202,17 @@ class AccelertorFragment : XPageFragment() {
...
@@ -205,17 +202,17 @@ class AccelertorFragment : XPageFragment() {
CommonDialog
(
it
).
setTitle
(
"加速停止确认"
)
CommonDialog
(
it
).
setTitle
(
"加速停止确认"
)
.
setContent
(
"停止加速可能会导致游戏断线,是否确认停止?"
)
.
setContent
(
"停止加速可能会导致游戏断线,是否确认停止?"
)
.
setBtnLeft
(
"取消"
,
{
.
setBtnLeft
(
"取消"
,
{
DataRe
o
ortUtils
.
report
(
"st_speed_stop_pop_cancel_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_stop_pop_cancel_clk"
)
}).
setBtnRight
(
"停止加速"
,
{
}).
setBtnRight
(
"停止加速"
,
{
DataRe
o
ortUtils
.
report
(
"st_speed_stop_pop_ok_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_stop_pop_ok_clk"
)
AcceleratorUtils
.
stopAccelerator
()
AcceleratorUtils
.
stopAccelerator
()
}).
show
<
CommonDialog
>()
}).
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
return
@setOnClickListener
}
else
{
}
else
{
DataRe
o
ortUtils
.
report
(
"st_speed_start_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_start_clk"
)
}
}
}
}
if
(!
LoginUtils
.
hasToken
())
{
if
(!
LoginUtils
.
hasToken
())
{
...
@@ -224,7 +221,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -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
return
@setOnClickListener
}
}
...
@@ -234,7 +231,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -234,7 +231,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
},
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
return
@setOnClickListener
}
}
AcceleratorUtils
.
getGameList
(
this
)
{
AcceleratorUtils
.
getGameList
(
this
)
{
...
@@ -247,7 +244,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -247,7 +244,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToastTx
.
postDelayed
({
binding
.
quickTopToast
.
visibility
=
View
.
GONE
binding
.
quickTopToast
.
visibility
=
View
.
GONE
},
2000
)
},
2000
)
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_speed_result"
,
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
"1"
)
mapOf
(
"result"
to
0
,
"cause"
to
"1"
)
)
)
...
@@ -260,7 +257,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -260,7 +257,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
btnQuick
.
isEnabled
=
false
binding
.
btnQuick
.
isEnabled
=
false
startAnim
()
startAnim
()
}
else
{
}
else
{
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_speed_result"
,
"st_speed_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
3
)
mapOf
(
"result"
to
0
,
"cause"
to
3
)
)
)
...
@@ -268,7 +265,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -268,7 +265,7 @@ class AccelertorFragment : XPageFragment() {
}
}
}
}
}
else
{
}
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
(
"获取游戏配置异常"
)
ToastUtils
.
show
(
"获取游戏配置异常"
)
}
}
}
}
...
@@ -279,7 +276,7 @@ class AccelertorFragment : XPageFragment() {
...
@@ -279,7 +276,7 @@ class AccelertorFragment : XPageFragment() {
binding
.
gameStart
.
setOnClickListener
{
binding
.
gameStart
.
setOnClickListener
{
if
(!
binding
.
expandableLayout1
.
isExpanded
)
{
if
(!
binding
.
expandableLayout1
.
isExpanded
)
{
AcceleratorUtils
.
game
?.
let
{
AcceleratorUtils
.
game
?.
let
{
DataRe
o
ortUtils
.
report
(
"st_speed_game_start_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_game_start_clk"
)
try
{
try
{
AppUtils
.
launchApp
(
it
.
packageName
)
AppUtils
.
launchApp
(
it
.
packageName
)
}
catch
(
e
:
Exception
)
{
}
catch
(
e
:
Exception
)
{
...
@@ -353,13 +350,13 @@ class AccelertorFragment : XPageFragment() {
...
@@ -353,13 +350,13 @@ class AccelertorFragment : XPageFragment() {
CommonDialog
(
it
).
setTitle
(
"防止加速掉线"
)
CommonDialog
(
it
).
setTitle
(
"防止加速掉线"
)
.
setContent
(
"为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置"
)
.
setContent
(
"为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置"
)
.
setBtnLeft
(
"取消"
,
{
.
setBtnLeft
(
"取消"
,
{
DataRe
o
ortUtils
.
report
(
"st_speed_course_pop_cancel_clk"
)
DataRe
P
ortUtils
.
report
(
"st_speed_course_pop_cancel_clk"
)
}).
setBtnRight
(
"去设置"
,
{
}).
setBtnRight
(
"去设置"
,
{
openToWebview
(
HttpConfig
.
UI_SPEED_URL
+
"?id=1"
)
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
>()
}).
show
<
CommonDialog
>()
SettingSPUtils
.
isFirstAccSuccess
=
false
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() {
...
@@ -428,7 +425,7 @@ class AccelertorFragment : XPageFragment() {
fun
startAccSuccess
()
{
fun
startAccSuccess
()
{
if
(
binding
.
gameStart
.
visibility
==
View
.
GONE
)
{
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
.
gamePicIn1
.
startAnimation
(
getDefaultAnim
())
binding
.
accStateTx
.
visibility
=
View
.
VISIBLE
binding
.
accStateTx
.
visibility
=
View
.
VISIBLE
binding
.
btnQuick
.
setBackgroundResource
(
R
.
mipmap
.
quick_stop
)
binding
.
btnQuick
.
setBackgroundResource
(
R
.
mipmap
.
quick_stop
)
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/home/NewsFragment.kt
View file @
a5e8f6c8
...
@@ -6,7 +6,6 @@ import android.view.View
...
@@ -6,7 +6,6 @@ import android.view.View
import
android.view.ViewGroup
import
android.view.ViewGroup
import
android.widget.ImageView
import
android.widget.ImageView
import
android.widget.TextView
import
android.widget.TextView
import
android.widget.Toast
import
androidx.lifecycle.Observer
import
androidx.lifecycle.Observer
import
androidx.lifecycle.ViewModelProvider
import
androidx.lifecycle.ViewModelProvider
import
androidx.recyclerview.widget.LinearLayoutManager
import
androidx.recyclerview.widget.LinearLayoutManager
...
@@ -15,29 +14,19 @@ import com.bumptech.glide.Glide
...
@@ -15,29 +14,19 @@ import com.bumptech.glide.Glide
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.adapter.KotlinDataAdapter
import
com.ccwangluo.accelerator.adapter.KotlinDataAdapter
import
com.ccwangluo.accelerator.databinding.FragmentNewsBinding
import
com.ccwangluo.accelerator.databinding.FragmentNewsBinding
import
com.ccwangluo.accelerator.model.News
import
com.ccwangluo.accelerator.model.Plugin
import
com.ccwangluo.accelerator.model.Plugin
import
com.ccwangluo.accelerator.ui.MainActivity
import
com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter
import
com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRePortUtils
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.appbar.AppBarLayout
import
com.google.android.material.tabs.TabLayout
import
com.google.android.material.tabs.TabLayout
import
com.google.android.material.tabs.TabLayoutMediator
import
com.google.android.material.tabs.TabLayoutMediator
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.just.agentweb.download.DownloadTask
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xpage.utils.TitleBar
import
com.xuexiang.xui.widget.tabbar.TabSegment
import
com.xuexiang.xui.widget.toast.XToast
import
com.xuexiang.xutil.XUtil
import
com.xuexiang.xutil.app.AppUtils
class
NewsFragment
:
XPageFragment
()
{
class
NewsFragment
:
XPageFragment
()
{
private
var
_binding
:
FragmentNewsBinding
?
=
null
private
var
_binding
:
FragmentNewsBinding
?
=
null
...
@@ -88,45 +77,45 @@ class NewsFragment : XPageFragment() {
...
@@ -88,45 +77,45 @@ class NewsFragment : XPageFragment() {
val
layoutManager
=
LinearLayoutManager
(
context
,
RecyclerView
.
HORIZONTAL
,
false
)
val
layoutManager
=
LinearLayoutManager
(
context
,
RecyclerView
.
HORIZONTAL
,
false
)
binding
.
gameNewsList
?.
setLayoutManager
(
layoutManager
)
binding
.
gameNewsList
?.
setLayoutManager
(
layoutManager
)
binding
.
gameNewsList
.
adapter
=
KotlinDataAdapter
.
Builder
<
Plugin
>()
binding
.
gameNewsList
.
adapter
=
KotlinDataAdapter
.
Builder
<
Plugin
>()
.
setData
(
dataList
)
.
setData
(
dataList
)
.
setLayoutId
(
R
.
layout
.
item_news_game
)
.
setLayoutId
(
R
.
layout
.
item_news_game
)
.
addBindView
{
itemView
,
itemData
->
.
addBindView
{
itemView
,
itemData
->
context
?.
let
{
context
?.
let
{
Glide
.
with
(
it
).
load
(
itemData
.
icon
)
Glide
.
with
(
it
).
load
(
itemData
.
icon
)
.
into
(
itemView
.
findViewById
<
ImageView
>(
R
.
id
.
plugin_img
))
.
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
}
}
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
)
{
if
(
itemData
.
type
==
1
)
{
itemData
.
url
?.
let
{
itemData
.
url
?.
let
{
DataReoortUtils
.
report
(
"st_qq_clk"
,
mapOf
(
"scene"
to
3
))
DataRePortUtils
.
report
(
"st_qq_clk"
,
mapOf
(
"scene"
to
3
))
context
?.
let
{
it1
->
SysUtils
.
joinQQGroup
(
it1
)
}
context
?.
let
{
it1
->
SysUtils
.
joinQQGroup
(
it1
)
}
}
}
}
}
if
(
itemData
.
type
==
2
)
{
if
(
itemData
.
type
==
2
)
{
itemData
.
url
?.
let
{
itemData
.
url
?.
let
{
DataReoortUtils
.
report
(
"st_google_clk"
,
mapOf
(
"scene"
to
3
))
DataRePortUtils
.
report
(
"st_google_clk"
,
mapOf
(
"scene"
to
3
))
openToWebview
(
it
)
openToWebview
(
it
)
}
}
}
}
if
(
itemData
.
type
==
3
)
{
if
(
itemData
.
type
==
3
)
{
itemData
.
url
?.
let
{
itemData
.
url
?.
let
{
context
?.
let
{
it1
->
context
?.
let
{
it1
->
SysUtils
.
downloadFile
(
it1
,
it
)
SysUtils
.
downloadFile
(
it1
,
it
)
ToastUtils
.
show
(
"开始下载"
)
ToastUtils
.
show
(
"开始下载"
)
}
}
}
}
}
}
}
}
}.
create
()
}.
create
()
newsViewModel
.
pluginList
.
observe
(
this
,
{
newsViewModel
.
pluginList
.
observe
(
this
,
{
dataList
.
clear
()
dataList
.
clear
()
dataList
.
addAll
(
it
)
dataList
.
addAll
(
it
)
...
@@ -141,9 +130,8 @@ class NewsFragment : XPageFragment() {
...
@@ -141,9 +130,8 @@ class NewsFragment : XPageFragment() {
binding
.
tabLayout
.
addOnTabSelectedListener
(
object
:
TabLayout
.
OnTabSelectedListener
{
binding
.
tabLayout
.
addOnTabSelectedListener
(
object
:
TabLayout
.
OnTabSelectedListener
{
override
fun
onTabSelected
(
tab
:
TabLayout
.
Tab
?)
{
override
fun
onTabSelected
(
tab
:
TabLayout
.
Tab
?)
{
tab
?.
let
{
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
?)
{
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
...
@@ -5,12 +5,12 @@ import androidx.lifecycle.ViewModel
import
androidx.lifecycle.viewModelScope
import
androidx.lifecycle.viewModelScope
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataReoortUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRePortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.Dispatchers
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.withContext
class
LoginViewModel
:
ViewModel
()
{
class
LoginViewModel
:
ViewModel
()
{
...
@@ -23,11 +23,12 @@ class LoginViewModel : ViewModel() {
...
@@ -23,11 +23,12 @@ class LoginViewModel : ViewModel() {
val
map
=
mutableMapOf
<
String
,
String
>()
val
map
=
mutableMapOf
<
String
,
String
>()
map
.
put
(
"phone"
,
phone
)
map
.
put
(
"phone"
,
phone
)
map
.
put
(
"verifyCode"
,
authCdoe
)
map
.
put
(
"verifyCode"
,
authCdoe
)
SysUtils
.
getDeviceUUID
()
?.
let
{
map
.
put
(
"did"
,
it
)
}
viewModelScope
.
launch
(
Dispatchers
.
IO
)
{
viewModelScope
.
launch
(
Dispatchers
.
IO
)
{
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/verifyCode/login"
,
map
)
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/verifyCode/login"
,
map
)
res
?.
let
{
res
?.
let
{
if
(
it
.
code
==
200
)
{
if
(
it
.
code
==
200
)
{
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
.
token
=
it
.
data
?.
token
LoginUtils
.
uid
=
it
.
data
?.
phone
LoginUtils
.
uid
=
it
.
data
?.
phone
loginState
.
postValue
(
true
)
loginState
.
postValue
(
true
)
...
@@ -36,7 +37,7 @@ class LoginViewModel : ViewModel() {
...
@@ -36,7 +37,7 @@ class LoginViewModel : ViewModel() {
it
.
error
?.
let
{
it1
->
it
.
error
?.
let
{
it1
->
map
.
put
(
"cause"
,
it1
)
map
.
put
(
"cause"
,
it1
)
}
}
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_login_vercode_result"
,
map
"st_login_vercode_result"
,
map
)
)
ToastUtils
.
show
(
it
.
error
)
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
...
@@ -8,15 +8,12 @@ import androidx.lifecycle.ViewModelProvider
import
com.ccwangluo.accelerator.databinding.FragmentLoginPhoneBinding
import
com.ccwangluo.accelerator.databinding.FragmentLoginPhoneBinding
import
com.ccwangluo.accelerator.ui.web.BlankActivity
import
com.ccwangluo.accelerator.ui.web.BlankActivity
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import
com.ccwangluo.accelerator.utils.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.LoginUtils
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.github.shadowsocks.http.HttpConfig
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.annotation.Page
import
com.xuexiang.xpage.base.XPageActivity
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
com.xuexiang.xutil.common.StringUtils
import
java.util.regex.Pattern
import
java.util.regex.Pattern
...
@@ -33,7 +30,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -33,7 +30,7 @@ class PhoneLoginActivity : XPageActivity() {
setContentView
(
binding
.
root
)
setContentView
(
binding
.
root
)
initViews
()
initViews
()
initListeners
()
initListeners
()
DataRe
o
ortUtils
.
report
(
"st_login_vercode_show"
)
DataRe
P
ortUtils
.
report
(
"st_login_vercode_show"
)
}
}
fun
initViews
()
{
fun
initViews
()
{
...
@@ -54,12 +51,12 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -54,12 +51,12 @@ class PhoneLoginActivity : XPageActivity() {
}
}
binding
.
phoneEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
binding
.
phoneEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
if
(
hasFocus
)
{
if
(
hasFocus
)
{
DataRe
o
ortUtils
.
report
(
"st_login_ph_input"
)
DataRe
P
ortUtils
.
report
(
"st_login_ph_input"
)
}
}
}
}
binding
.
authCodeEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
binding
.
authCodeEt
.
setOnFocusChangeListener
{
v
,
hasFocus
->
if
(
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() {
...
@@ -89,7 +86,7 @@ class PhoneLoginActivity : XPageActivity() {
loginViewModel
.
loginState
.
observe
(
this
,
{
loginViewModel
.
loginState
.
observe
(
this
,
{
if
(
it
)
{
if
(
it
)
{
LoginUtils
.
stopTimer
()
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
()
finish
()
}
}
})
})
...
@@ -128,7 +125,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -128,7 +125,7 @@ class PhoneLoginActivity : XPageActivity() {
}
}
binding
.
authCodeBtn
.
setOnClickListener
{
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
()
val
phone
=
binding
.
phoneEt
.
text
.
toString
()
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
isPhone
(
phone
))
{
if
(
StringUtils
.
isEmpty
(
phone
)
||
!
isPhone
(
phone
))
{
ToastUtils
.
show
(
"输入正确的手机号"
)
ToastUtils
.
show
(
"输入正确的手机号"
)
...
@@ -143,7 +140,7 @@ class PhoneLoginActivity : XPageActivity() {
...
@@ -143,7 +140,7 @@ class PhoneLoginActivity : XPageActivity() {
}
}
binding
.
login
.
setOnClickListener
{
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
phone
=
binding
.
phoneEt
.
text
.
toString
()
val
authCdoe
=
binding
.
authCodeEt
.
text
.
toString
()
val
authCdoe
=
binding
.
authCodeEt
.
text
.
toString
()
...
...
app/src/main/java/com/ccwangluo/accelerator/ui/web/AndroidInterface.kt
View file @
a5e8f6c8
...
@@ -7,35 +7,19 @@ import com.github.shadowsocks.http.HttpConfig
...
@@ -7,35 +7,19 @@ import com.github.shadowsocks.http.HttpConfig
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.ccwangluo.cc_quickly.utils.XToastUtils
import
com.just.agentweb.core.AgentWeb
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.xpage.base.XPageFragment
import
com.xuexiang.xutil.app.AppUtils
import
com.xuexiang.xutil.app.AppUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
android.content.Intent
import
android.content.Intent
import
android.media.audiofx.BassBoost
import
android.net.Uri
import
android.net.Uri
import
android.os.Handler
import
android.os.Handler
import
android.provider.Settings
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.AcceleratorUtils
import
com.ccwangluo.accelerator.utils.ShareUtils
import
com.ccwangluo.accelerator.utils.SysUtils
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.bg.BaseService
import
com.github.shadowsocks.plugin.PluginContract
import
com.tencent.bugly.beta.Beta
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)
...
@@ -69,7 +53,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
LoginUtils
.
login
(
it1
)
{
LoginUtils
.
login
(
it1
)
{
LoginUtils
.
token
?.
let
{
LoginUtils
.
token
?.
let
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
"userToken"
,
it
)
.
quickCallJs
(
"userToken"
,
it
)
}
}
}
}
}
}
...
@@ -96,8 +80,8 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -96,8 +80,8 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
url
)
}
else
{
}
else
{
params
.
putString
(
params
.
putString
(
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
CommonWebViewFragment
.
WEBVIEW_URL_KEY
,
HttpConfig
.
HTML_HOST_PRIVACY
+
url
HttpConfig
.
HTML_HOST_PRIVACY
+
url
)
)
}
}
...
@@ -123,7 +107,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -123,7 +107,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
LoginUtils
.
login
(
it1
)
{
LoginUtils
.
login
(
it1
)
{
LoginUtils
.
token
?.
let
{
LoginUtils
.
token
?.
let
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
it
)
.
quickCallJs
(
callback
,
it
)
}
}
}
}
}
}
...
@@ -135,7 +119,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -135,7 +119,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
getToken
(
callback
:
String
)
{
fun
getToken
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
LoginUtils
.
token
)
.
quickCallJs
(
callback
,
LoginUtils
.
token
)
}
}
/**
/**
...
@@ -147,16 +131,16 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -147,16 +131,16 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
//是否有更新:1有 0没有
//是否有更新:1有 0没有
//最新安装包的版本名称
//最新安装包的版本名称
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"1"
,
AppUtils
.
getAppVersionName
(),
it
.
versionName
)
.
quickCallJs
(
callback
,
"1"
,
AppUtils
.
getAppVersionName
(),
it
.
versionName
)
}
?:
let
{
}
?:
let
{
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
.
quickCallJs
(
callback
,
callback
,
"0"
,
"0"
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionName
()
AppUtils
.
getAppVersionName
()
)
)
}
}
}
}
...
@@ -167,10 +151,10 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -167,10 +151,10 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
fun
getAccelerateState
(
callback
:
String
)
{
fun
getAccelerateState
(
callback
:
String
)
{
if
(
BaseService
.
State
.
Connected
==
AcceleratorUtils
.
state
)
{
if
(
BaseService
.
State
.
Connected
==
AcceleratorUtils
.
state
)
{
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"1"
)
.
quickCallJs
(
callback
,
"1"
)
}
else
{
}
else
{
agentWeb
.
jsAccessEntrace
agentWeb
.
jsAccessEntrace
.
quickCallJs
(
callback
,
"0"
)
.
quickCallJs
(
callback
,
"0"
)
}
}
}
}
...
@@ -210,7 +194,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -210,7 +194,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
getSmartAccStatus
(
callback
:
String
)
{
fun
getSmartAccStatus
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
SettingSPUtils
.
isSmartAccOpen
.
toString
())
.
quickCallJs
(
callback
,
SettingSPUtils
.
isSmartAccOpen
.
toString
())
}
}
/**
/**
...
@@ -230,7 +214,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -230,7 +214,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
xPageFragment
.
context
?.
let
{
xPageFragment
.
context
?.
let
{
val
hasPermission
:
Boolean
=
PermissionUtils
.
isGranted
(
key
)
val
hasPermission
:
Boolean
=
PermissionUtils
.
isGranted
(
key
)
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
key
,
hasPermission
.
toString
())
.
quickCallJs
(
callback
,
key
,
hasPermission
.
toString
())
}
}
}
}
...
@@ -247,20 +231,20 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -247,20 +231,20 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
permissionsGranted
?.
forEach
{
permissionsGranted
?.
forEach
{
if
(
it
.
equals
(
key
))
{
if
(
it
.
equals
(
key
))
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
key
,
"true"
)
.
quickCallJs
(
callback
,
key
,
"true"
)
}
}
}
}
}
}
override
fun
onDenied
(
override
fun
onDenied
(
permissionsDeniedForever
:
MutableList
<
String
>?,
permissionsDeniedForever
:
MutableList
<
String
>?,
permissionsDenied
:
MutableList
<
String
>?
permissionsDenied
:
MutableList
<
String
>?
)
{
)
{
permissionsDenied
?.
forEach
{
permissionsDenied
?.
forEach
{
if
(
it
.
equals
(
key
))
{
if
(
it
.
equals
(
key
))
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
key
,
"false"
)
.
quickCallJs
(
callback
,
key
,
"false"
)
}
}
}
}
permissionsDeniedForever
?.
forEach
{
permissionsDeniedForever
?.
forEach
{
...
@@ -283,7 +267,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -283,7 +267,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
xPageFragment
.
context
?.
let
{
xPageFragment
.
context
?.
let
{
val
packageInstall
=
SysUtils
.
isPackageInstall
(
it
,
packageName
)
val
packageInstall
=
SysUtils
.
isPackageInstall
(
it
,
packageName
)
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
packageName
,
packageInstall
.
toString
())
.
quickCallJs
(
callback
,
packageName
,
packageInstall
.
toString
())
}
}
}
}
...
@@ -309,11 +293,11 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -309,11 +293,11 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
getVersion
(
callback
:
String
)
{
fun
getVersion
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
.
quickCallJs
(
callback
,
callback
,
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionName
(),
AppUtils
.
getAppVersionCode
().
toString
()
AppUtils
.
getAppVersionCode
().
toString
()
)
)
}
}
/****************
/****************
...
@@ -332,12 +316,12 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -332,12 +316,12 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
getSystemVersion
(
callback
:
String
)
{
fun
getSystemVersion
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
.
quickCallJs
(
callback
,
callback
,
android
.
os
.
Build
.
VERSION
.
RELEASE
,
android
.
os
.
Build
.
VERSION
.
RELEASE
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
(),
SysUtils
.
getDpi
(
xPageFragment
).
toString
(),
android
.
os
.
Build
.
VERSION
.
SDK_INT
.
toString
()
android
.
os
.
Build
.
VERSION
.
SDK_INT
.
toString
()
)
)
}
}
/**
/**
...
@@ -346,7 +330,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -346,7 +330,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
getDpi
(
callback
:
String
)
{
fun
getDpi
(
callback
:
String
)
{
agentWeb
.
getJsAccessEntrace
()
agentWeb
.
getJsAccessEntrace
()
.
quickCallJs
(
callback
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
())
.
quickCallJs
(
callback
,
SysUtils
.
getDpi
(
xPageFragment
).
toString
())
}
}
@JavascriptInterface
@JavascriptInterface
...
@@ -357,7 +341,15 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
...
@@ -357,7 +341,15 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
@JavascriptInterface
@JavascriptInterface
fun
dataReport
(
event
:
String
,
data
:
String
)
{
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
...
@@ -3,19 +3,16 @@ package com.ccwangluo.accelerator.utils
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.content.Context
import
android.content.Context
import
android.os.RemoteException
import
android.os.RemoteException
import
android.util.Log
import
androidx.activity.result.ActivityResultLauncher
import
androidx.activity.result.ActivityResultLauncher
import
androidx.appcompat.app.AppCompatActivity
import
androidx.appcompat.app.AppCompatActivity
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.ccwangluo.accelerator.model.*
import
com.ccwangluo.accelerator.model.*
import
com.ccwangluo.accelerator.ui.dialog.CommonDialog
import
com.ccwangluo.accelerator.ui.dialog.CommonDialog
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.cc_quickly.utils.SettingSPUtils
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.acl.Acl
import
com.github.shadowsocks.acl.Acl
import
com.github.shadowsocks.aidl.IShadowsocksService
import
com.github.shadowsocks.aidl.IShadowsocksService
import
com.github.shadowsocks.aidl.IShadowsocksServiceCallback
import
com.github.shadowsocks.aidl.ShadowsocksConnection
import
com.github.shadowsocks.aidl.ShadowsocksConnection
import
com.github.shadowsocks.bg.AuthManager
import
com.github.shadowsocks.bg.AuthManager
...
@@ -23,18 +20,11 @@ import com.github.shadowsocks.bg.AuthManager.ACC_TIME
...
@@ -23,18 +20,11 @@ import com.github.shadowsocks.bg.AuthManager.ACC_TIME
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.bg.BaseService
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.Profile
import
com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.database.ProfileManager
import
com.github.shadowsocks.http.LineConfig
import
com.github.shadowsocks.preference.DataStore
import
com.github.shadowsocks.preference.DataStore
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xutil.common.StringUtils
import
com.xuexiang.xutil.common.StringUtils
import
com.xuexiang.xutil.net.NetworkUtils
import
com.xuexiang.xutil.system.PermissionUtils
import
kotlinx.coroutines.*
import
kotlinx.coroutines.*
import
timber.log.Timber
import
java.util.concurrent.Executors
import
java.util.concurrent.TimeUnit
/**
/**
...
@@ -216,7 +206,7 @@ object AcceleratorUtils {
...
@@ -216,7 +206,7 @@ object AcceleratorUtils {
AcceleratorUtils
.
state
=
state
AcceleratorUtils
.
state
=
state
stateListener
(
state
,
getAccTime
(),
null
)
stateListener
(
state
,
getAccTime
(),
null
)
if
(
state
==
BaseService
.
State
.
Stopped
&&
!
msg
.
isNullOrBlank
())
{
if
(
state
==
BaseService
.
State
.
Stopped
&&
!
msg
.
isNullOrBlank
())
{
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已到期"
))){
if
(
"vip到期"
.
equals
(
msg
)||(
msg
!=
null
&&
msg
.
startsWith
(
"vip已到期"
))){
vipExpireListener
()
vipExpireListener
()
}
else
{
}
else
{
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/LoginUtils.kt
View file @
a5e8f6c8
...
@@ -3,12 +3,11 @@ package com.ccwangluo.accelerator.utils
...
@@ -3,12 +3,11 @@ package com.ccwangluo.accelerator.utils
import
android.content.Context
import
android.content.Context
import
android.content.Intent
import
android.content.Intent
import
android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import
android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import
android.util.Log
import
androidx.lifecycle.lifecycleScope
import
androidx.lifecycle.lifecycleScope
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.LoginRes
import
com.ccwangluo.accelerator.model.UserProfile
import
com.ccwangluo.accelerator.model.UserProfile
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.github.shadowsocks.Core
import
com.github.shadowsocks.Core
...
@@ -16,8 +15,6 @@ import com.github.shadowsocks.bg.AuthManager
...
@@ -16,8 +15,6 @@ import com.github.shadowsocks.bg.AuthManager
import
com.hjq.toast.ToastUtils
import
com.hjq.toast.ToastUtils
import
com.tencent.mmkv.MMKV
import
com.tencent.mmkv.MMKV
import
com.xuexiang.xpage.base.XPageFragment
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.Dispatchers
import
kotlinx.coroutines.GlobalScope
import
kotlinx.coroutines.GlobalScope
import
kotlinx.coroutines.launch
import
kotlinx.coroutines.launch
...
@@ -112,6 +109,7 @@ object LoginUtils {
...
@@ -112,6 +109,7 @@ object LoginUtils {
if
(
b
)
{
if
(
b
)
{
val
map
=
mutableMapOf
<
String
,
String
>()
val
map
=
mutableMapOf
<
String
,
String
>()
map
.
put
(
"token"
,
s
)
map
.
put
(
"token"
,
s
)
SysUtils
.
getDeviceUUID
()
?.
let
{
map
.
put
(
"did"
,
it
)
}
GlobalScope
.
launch
(
Dispatchers
.
IO
)
{
GlobalScope
.
launch
(
Dispatchers
.
IO
)
{
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/flash/login"
,
map
)
val
res
=
HttpGo
.
postSync
<
LoginRes
>(
"/api/user/flash/login"
,
map
)
res
?.
let
{
res
?.
let
{
...
@@ -121,7 +119,7 @@ object LoginUtils {
...
@@ -121,7 +119,7 @@ object LoginUtils {
withContext
(
Dispatchers
.
Main
)
{
withContext
(
Dispatchers
.
Main
)
{
ToastUtils
.
show
(
"登录成功"
)
ToastUtils
.
show
(
"登录成功"
)
OneKeyLoginManager
.
getInstance
().
finishAuthActivity
()
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
)
callBack
(
true
)
}
}
}
else
{
}
else
{
...
...
app/src/main/java/com/ccwangluo/accelerator/utils/PhoneUtils.kt
View file @
a5e8f6c8
...
@@ -11,13 +11,11 @@ import android.widget.RelativeLayout
...
@@ -11,13 +11,11 @@ import android.widget.RelativeLayout
import
android.widget.TextView
import
android.widget.TextView
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.R
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
o
ortUtils
import
com.ccwangluo.accelerator.utils.dataReport.DataRe
P
ortUtils
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.chuanglan.shanyan_sdk.OneKeyLoginManager
import
com.chuanglan.shanyan_sdk.tool.ShanYanUIConfig
import
com.chuanglan.shanyan_sdk.tool.ShanYanUIConfig
import
com.github.shadowsocks.http.HttpConfig
import
com.github.shadowsocks.http.HttpConfig
import
com.xuexiang.xpage.base.XPageFragment
import
com.xuexiang.xpage.core.PageOption
import
org.json.JSONObject
import
org.json.JSONObject
...
@@ -57,7 +55,7 @@ object PhoneUtils {
...
@@ -57,7 +55,7 @@ object PhoneUtils {
if
(
code
!=
1000
)
{
if
(
code
!=
1000
)
{
callback
(
false
,
""
)
callback
(
false
,
""
)
}
else
{
}
else
{
DataRe
o
ortUtils
.
report
(
"st_login_one_show"
)
DataRe
P
ortUtils
.
report
(
"st_login_one_show"
)
}
}
Log
.
i
(
TAG
,
"openLoginAuth: $result"
)
Log
.
i
(
TAG
,
"openLoginAuth: $result"
)
}
}
...
@@ -65,10 +63,10 @@ object PhoneUtils {
...
@@ -65,10 +63,10 @@ object PhoneUtils {
if
(
code
==
1000
)
{
if
(
code
==
1000
)
{
val
json
=
JSONObject
(
result
)
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"
))
callback
(
true
,
json
.
getString
(
"token"
))
}
else
{
}
else
{
DataRe
o
ortUtils
.
report
(
DataRe
P
ortUtils
.
report
(
"st_login_one_result"
,
"st_login_one_result"
,
mapOf
(
"result"
to
0
,
"cause"
to
result
)
mapOf
(
"result"
to
0
,
"cause"
to
result
)
)
)
...
@@ -149,7 +147,7 @@ object PhoneUtils {
...
@@ -149,7 +147,7 @@ object PhoneUtils {
val
intent
=
Intent
(
context
,
PhoneLoginActivity
::
class
.
java
)
val
intent
=
Intent
(
context
,
PhoneLoginActivity
::
class
.
java
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
intent
.
addFlags
(
Intent
.
FLAG_ACTIVITY_NEW_TASK
)
context
.
startActivity
(
intent
)
context
.
startActivity
(
intent
)
DataRe
o
ortUtils
.
report
(
"st_login_other_clk"
)
DataRe
P
ortUtils
.
report
(
"st_login_other_clk"
)
}
}
.
setPrivacyState
(
false
)
.
setPrivacyState
(
false
)
.
setCheckedImgPath
(
mCheckedImg
)
.
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
...
@@ -9,7 +9,7 @@ import java.time.LocalDateTime
data class
BaseData
(
data class
BaseData
(
var
channel
:
Int
=
0
,
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
did
:
String
?
=
SysUtils
.
getDeviceUUID
(),
var
ds
:
String
=
LocalDateTime
.
now
().
toString
(),
var
ds
:
String
=
LocalDateTime
.
now
().
toString
(),
var
event
:
String
=
""
,
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
package
com.ccwangluo.accelerator.utils.dataReport
import
com.ccwangluo.accelerator.utils.LoginUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.SysUtils
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.ccwangluo.accelerator.utils.http.HttpGo
import
com.google.gson.Gson
import
com.google.gson.Gson
import
com.google.gson.JsonParser
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
list
=
mutableSetOf
<
BaseData
>()
val
gson
=
Gson
()
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
())
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 {
...
@@ -5,7 +5,7 @@ object HttpConfig {
//app后端
//app后端
//val baseUrl = "http://10.16.1.98:9002"
//val baseUrl = "http://10.16.1.98:9002"
val
baseUrl
=
"https://test-cc-tt-api.orangenet.org.cn"
//测试
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 {
...
@@ -13,7 +13,7 @@ object HttpConfig {
*/
*/
val
UI_MAIN_URL
=
"https://test-cc-tt-front.orangenet.org.cn/#"
//测试
val
UI_MAIN_URL
=
"https://test-cc-tt-front.orangenet.org.cn/#"
//测试
// val UI_MAIN_URL = "http://10.3.64.200:8080/#"
// val UI_MAIN_URL = "http://10.3.64.200:8080/#"
//
val UI_MAIN_URL = "https://cc-tt-front.srccwl.com/#" //生产
//
val UI_MAIN_URL = "https://cc-tt-front.srccwl.com/#" //生产
//隐私协议地址
//隐私协议地址
...
@@ -40,4 +40,6 @@ object HttpConfig {
...
@@ -40,4 +40,6 @@ object HttpConfig {
val
UI_SPEED_URL
=
"/speed"
val
UI_SPEED_URL
=
"/speed"
val
MEMBER_CENTER
=
"/memberCenter"
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 {
...
@@ -9,6 +9,7 @@ repositories {
}
}
maven
{
url
=
uri
(
"https://jitpack.io"
)
}
maven
{
url
=
uri
(
"https://jitpack.io"
)
}
maven
{
url
=
uri
(
"https://repo1.maven.org/maven2/"
)
}
maven
{
url
=
uri
(
"https://repo1.maven.org/maven2/"
)
}
maven
{
url
=
uri
(
"https://dl.bintray.com/thelasterstar/maven/"
)
}
google
()
google
()
jcenter
()
jcenter
()
mavenCentral
()
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