Commit aed7ddca authored by sheteng's avatar sheteng

市场合规

parent 7a1afc91
...@@ -16,7 +16,6 @@ ...@@ -16,7 +16,6 @@
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 访问网络. 某些位置信息需要从网络服务器获取 --> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> <!-- 访问网络. 某些位置信息需要从网络服务器获取 -->
<uses-permission android:name="android.permission.INTERNET" /> <!-- 访问WiFi状态. 需要WiFi信息用于网络定位 --> <uses-permission android:name="android.permission.INTERNET" /> <!-- 访问WiFi状态. 需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 修改WiFi状态. 发起WiFi扫描, 需要WiFi信息用于网络定位 --> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <!-- 修改WiFi状态. 发起WiFi扫描, 需要WiFi信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <!-- 访问网络状态, 检测网络的可用性. 需要网络运营商相关信息用于网络定位 -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 访问网络的变化, 需要某些信息用于网络定位 --> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <!-- 访问网络的变化, 需要某些信息用于网络定位 -->
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 访问手机当前状态, 需要device id用于网络定位 --> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> <!-- 访问手机当前状态, 需要device id用于网络定位 -->
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 访问蓝牙状态,需要蓝牙信息用于网络定位 --> <uses-permission android:name="android.permission.READ_PHONE_STATE" /> <!-- 访问蓝牙状态,需要蓝牙信息用于网络定位 -->
...@@ -56,6 +55,7 @@ ...@@ -56,6 +55,7 @@
android:networkSecurityConfig="@xml/network_security_config" android:networkSecurityConfig="@xml/network_security_config"
android:supportsRtl="true" android:supportsRtl="true"
android:theme="@style/AppTheme" android:theme="@style/AppTheme"
android:largeHeap="true"
android:usesCleartextTraffic="true"> android:usesCleartextTraffic="true">
<activity <activity
android:name=".ui.login.PhoneLoginActivity" android:name=".ui.login.PhoneLoginActivity"
......
...@@ -30,7 +30,6 @@ class App : Application(), androidx.work.Configuration.Provider by Core { ...@@ -30,7 +30,6 @@ class App : Application(), androidx.work.Configuration.Provider by Core {
.debug("PageLog") //开启调试 .debug("PageLog") //开启调试
.setContainActivityClazz(XPageActivity::class.java) //设置默认的容器Activity .setContainActivityClazz(XPageActivity::class.java) //设置默认的容器Activity
.init(this) .init(this)
PhoneUtils.initSdk(this)
// 初始化 Toast 框架 // 初始化 Toast 框架
ToastUtils.init(this) ToastUtils.init(this)
MultiDex.install(this) MultiDex.install(this)
......
...@@ -41,7 +41,7 @@ import com.xuexiang.xutil.system.PermissionUtils ...@@ -41,7 +41,7 @@ import com.xuexiang.xutil.system.PermissionUtils
import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer import fm.jiecao.jcvideoplayer_lib.JCVideoPlayer
class MainActivity() : XPageActivity(), TencentLocationListener { class MainActivity() : XPageActivity() {
private val connect = registerForActivityResult(StartService()) { private val connect = registerForActivityResult(StartService()) {
if (it) { if (it) {
...@@ -77,6 +77,8 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -77,6 +77,8 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
if (it) { if (it) {
SettingSPUtils.isAgreePrivacy = true SettingSPUtils.isAgreePrivacy = true
DataRePortUtils.report("st_agrmt_ok") DataRePortUtils.report("st_agrmt_ok")
PhoneUtils.initSdk(application)
PhoneUtils.getPhoneInfo()
PermissionDialog(this) { PermissionDialog(this) {
getPermission() getPermission()
}.show<PermissionDialog>() }.show<PermissionDialog>()
...@@ -86,6 +88,8 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -86,6 +88,8 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
}.show<PrivacyDialog>() }.show<PrivacyDialog>()
} else { } else {
PhoneUtils.initSdk(application)
PhoneUtils.getPhoneInfo()
getPermission() getPermission()
} }
...@@ -100,23 +104,11 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -100,23 +104,11 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
private fun getPermission() { private fun getPermission() {
PermissionUtils.permission( PermissionUtils.permission(
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE
Manifest.permission.ACCESS_FINE_LOCATION
).rationale({ ).rationale({
}).callback(object : PermissionUtils.FullCallback { }).callback(object : PermissionUtils.FullCallback {
override fun onGranted(permissionsGranted: MutableList<String>?) { override fun onGranted(permissionsGranted: MutableList<String>?) {
permissionsGranted?.forEach {
if (it.equals(Manifest.permission.ACCESS_FINE_LOCATION)) {
TencentLocationManager.getInstance(this@MainActivity)
.requestSingleFreshLocation(
null,
this@MainActivity,
Looper.getMainLooper()
)
}
}
} }
...@@ -131,7 +123,6 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -131,7 +123,6 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
} }
private fun initPhoneUtils() { private fun initPhoneUtils() {
PhoneUtils.getPhoneInfo()
//腾讯推送 //腾讯推送
XGPushManager.registerPush(this, object : XGIOperateCallback { XGPushManager.registerPush(this, object : XGIOperateCallback {
override fun onSuccess(data: Any, flag: Int) { override fun onSuccess(data: Any, flag: Int) {
...@@ -207,17 +198,5 @@ class MainActivity() : XPageActivity(), TencentLocationListener { ...@@ -207,17 +198,5 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
return super.onKeyDown(keyCode, event) return super.onKeyDown(keyCode, event)
} }
override fun onLocationChanged(p0: TencentLocation?, p1: Int, p2: String?) {
if (p1 == 0) {
p0?.province?.let {
AuthManager.area = it
}
}
}
override fun onStatusUpdate(p0: String?, p1: Int, p2: String?) {
println(p0)
}
} }
\ No newline at end of file
...@@ -225,6 +225,7 @@ class AcceleratorFragment : XPageFragment() { ...@@ -225,6 +225,7 @@ class AcceleratorFragment : XPageFragment() {
DataRePortUtils.report("st_speed_start_clk") DataRePortUtils.report("st_speed_start_clk")
} }
} }
context?.let { it1 -> AcceleratorUtils.openLocation(it1) }
if (!LoginUtils.hasToken()) { if (!LoginUtils.hasToken()) {
context?.let { it1 -> context?.let { it1 ->
LoginUtils.login(it1, { LoginUtils.login(it1, {
......
...@@ -105,14 +105,12 @@ class NewsFragment : XPageFragment() { ...@@ -105,14 +105,12 @@ class NewsFragment : XPageFragment() {
var newversion = it.split("/").let { it1-> var newversion = it.split("/").let { it1->
it1.get(it1.lastIndex - 1).toInt() it1.get(it1.lastIndex - 1).toInt()
} }
if (newversion > version) { if (newversion > version && version!= -1) {
itemView.findViewById<TextView>(R.id.plugin_name).setText("游戏更新") itemView.findViewById<TextView>(R.id.plugin_name).setText("游戏更新")
itemView.findViewById<TextView>(R.id.plugin_name) itemView.findViewById<TextView>(R.id.plugin_name)
.setTextColor(Color.parseColor("#329CF3")) .setTextColor(Color.parseColor("#329CF3"))
} }
} }
} }
} }
...@@ -189,6 +187,13 @@ class NewsFragment : XPageFragment() { ...@@ -189,6 +187,13 @@ class NewsFragment : XPageFragment() {
} }
override fun setUserVisibleHint(isVisibleToUser: Boolean) {
super.setUserVisibleHint(isVisibleToUser)
if(isVisibleToUser){
binding.gameNewsList.adapter?.notifyDataSetChanged()
}
}
fun openToWebview(url: String) { fun openToWebview(url: String) {
val params = Bundle() val params = Bundle()
params.putString(CommonWebViewFragment.WEBVIEW_URL_KEY, url) params.putString(CommonWebViewFragment.WEBVIEW_URL_KEY, url)
......
package com.ccwangluo.accelerator.utils package com.ccwangluo.accelerator.utils
import android.Manifest
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.os.Looper
import android.os.RemoteException import android.os.RemoteException
import androidx.activity.result.ActivityResultLauncher import androidx.activity.result.ActivityResultLauncher
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
...@@ -24,9 +26,13 @@ import com.github.shadowsocks.database.Profile ...@@ -24,9 +26,13 @@ import com.github.shadowsocks.database.Profile
import com.github.shadowsocks.database.ProfileManager import com.github.shadowsocks.database.ProfileManager
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.map.geolocation.TencentLocation
import com.tencent.map.geolocation.TencentLocationListener
import com.tencent.map.geolocation.TencentLocationManager
import com.xuexiang.xpage.base.XPageActivity import com.xuexiang.xpage.base.XPageActivity
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.system.PermissionUtils
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
...@@ -39,7 +45,7 @@ import kotlin.math.roundToInt ...@@ -39,7 +45,7 @@ import kotlin.math.roundToInt
* 加速功能工具类 * 加速功能工具类
*/ */
@SuppressLint("StaticFieldLeak") @SuppressLint("StaticFieldLeak")
object AcceleratorUtils { object AcceleratorUtils : TencentLocationListener {
private val connection = ShadowsocksConnection(true) private val connection = ShadowsocksConnection(true)
...@@ -155,6 +161,35 @@ object AcceleratorUtils { ...@@ -155,6 +161,35 @@ object AcceleratorUtils {
} }
} }
fun openLocation(context: Context){
PermissionUtils.permission(
Manifest.permission.ACCESS_FINE_LOCATION
).rationale({
}).callback(object : PermissionUtils.FullCallback {
override fun onGranted(permissionsGranted: MutableList<String>?) {
permissionsGranted?.forEach {
if (it.equals(Manifest.permission.ACCESS_FINE_LOCATION)) {
TencentLocationManager.getInstance(context)
.requestSingleFreshLocation(
null,
this@AcceleratorUtils,
Looper.getMainLooper()
)
}
}
}
override fun onDenied(
permissionsDeniedForever: MutableList<String>?,
permissionsDenied: MutableList<String>?
) {
}
}).request()
}
private fun initAuthProfile(xPageFragment: XPageFragment) { private fun initAuthProfile(xPageFragment: XPageFragment) {
xPageFragment.lifecycleScope.launch(Dispatchers.IO) { xPageFragment.lifecycleScope.launch(Dispatchers.IO) {
val profileId = 1L val profileId = 1L
...@@ -273,5 +308,15 @@ object AcceleratorUtils { ...@@ -273,5 +308,15 @@ object AcceleratorUtils {
connection.disconnect(context) connection.disconnect(context)
} }
override fun onLocationChanged(p0: TencentLocation?, p1: Int, p2: String?) {
if (p1 == 0) {
p0?.province?.let {
AuthManager.area = it
}
}
}
override fun onStatusUpdate(p0: String?, p1: Int, p2: String?) {
println(p0)
}
} }
\ No newline at end of file
package com.ccwangluo.accelerator.utils package com.ccwangluo.accelerator.utils
import android.Manifest
import android.app.DownloadManager import android.app.DownloadManager
import android.content.Context import android.content.Context
import android.content.Context.DOWNLOAD_SERVICE import android.content.Context.DOWNLOAD_SERVICE
...@@ -15,6 +16,7 @@ import android.util.DisplayMetrics ...@@ -15,6 +16,7 @@ import android.util.DisplayMetrics
import androidx.fragment.app.FragmentActivity import androidx.fragment.app.FragmentActivity
import com.ccwangluo.accelerator.ui.dialog.DownloadDialog import com.ccwangluo.accelerator.ui.dialog.DownloadDialog
import com.ccwangluo.cc_quickly.utils.SettingSPUtils import com.ccwangluo.cc_quickly.utils.SettingSPUtils
import com.ccwangluo.cc_quickly.utils.XToastUtils
import com.hjq.toast.ToastUtils import com.hjq.toast.ToastUtils
import com.mcxiaoke.packer.helper.PackerNg import com.mcxiaoke.packer.helper.PackerNg
import com.sdk.base.framework.bean.PInfo import com.sdk.base.framework.bean.PInfo
...@@ -24,6 +26,8 @@ import com.xuexiang.xpage.base.XPageFragment ...@@ -24,6 +26,8 @@ import com.xuexiang.xpage.base.XPageFragment
import com.xuexiang.xutil.app.AppUtils import com.xuexiang.xutil.app.AppUtils
import com.xuexiang.xutil.net.NetworkUtils import com.xuexiang.xutil.net.NetworkUtils
import com.xuexiang.xutil.system.DeviceUtils import com.xuexiang.xutil.system.DeviceUtils
import com.xuexiang.xutil.system.PermissionUtils
import java.security.Permission
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
...@@ -123,6 +127,7 @@ object SysUtils { ...@@ -123,6 +127,7 @@ object SysUtils {
"yingyongbao" -> 5 "yingyongbao" -> 5
"OPPO" -> 6 "OPPO" -> 6
"baiduzhushou" -> 7 "baiduzhushou" -> 7
"wufan" -> 8
else -> 0 else -> 0
} }
} }
...@@ -130,6 +135,13 @@ object SysUtils { ...@@ -130,6 +135,13 @@ object SysUtils {
fun downloadFile(activity: FragmentActivity, url: String) { fun downloadFile(activity: FragmentActivity, url: String) {
if (!PermissionUtils.isGranted(Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
ToastUtils.show("下载需要打开存储权限")
PermissionUtils.permission(Manifest.permission.WRITE_EXTERNAL_STORAGE.toString()).rationale({
PermissionUtils.openAppSettings()
}).request()
return
}
val downloadManager = activity.getSystemService(DOWNLOAD_SERVICE) as DownloadManager val downloadManager = activity.getSystemService(DOWNLOAD_SERVICE) as DownloadManager
val request = val request =
DownloadManager.Request(Uri.parse(url)) //添加下载文件的网络路径 DownloadManager.Request(Uri.parse(url)) //添加下载文件的网络路径
...@@ -154,7 +166,6 @@ object SysUtils { ...@@ -154,7 +166,6 @@ object SysUtils {
} }
fun joinQQGroup(context: Context) { fun joinQQGroup(context: Context) {
val key = "5CmyFzMWyucgmmLTM7JLG_sSArmaFQxT" val key = "5CmyFzMWyucgmmLTM7JLG_sSArmaFQxT"
...@@ -214,15 +225,14 @@ object SysUtils { ...@@ -214,15 +225,14 @@ object SysUtils {
} }
fun getInstalledApps(context: Context, packageName: String): Int {
fun getInstalledApps(context: Context,packageName: String): Int {
val packs: List<PackageInfo> = context.getPackageManager().getInstalledPackages(0) val packs: List<PackageInfo> = context.getPackageManager().getInstalledPackages(0)
for (i in packs.indices) { for (i in packs.indices) {
val p = packs[i] val p = packs[i]
if (p.versionName == null) { if (p.versionName == null) {
continue continue
} }
if (packageName.equals(p.packageName)){ if (packageName.equals(p.packageName)) {
return p.versionCode return p.versionCode
} }
} }
......
...@@ -4,4 +4,5 @@ xiaomi ...@@ -4,4 +4,5 @@ xiaomi
vivo vivo
yingyongbao yingyongbao
OPPO OPPO
baiduzhushou baiduzhushou
\ No newline at end of file wufan
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment