Commit f303bd97 authored by sheteng's avatar sheteng

资讯4 fix bugs

parent 38b204e0
......@@ -30,6 +30,11 @@
<package android:name="com.google.android.gsf" />
<package android:name="com.google.android.gms" />
<package android:name="com.android.vending" />
<package android:name="com.tencent.mobileqq" />
<package android:name="com.tencent.mm" />
<package android:name="com.goplaycn.googleinstall" />
<package android:name="io.kkzs" />
</queries>
<application
......
package com.ccwangluo.accelerator.model
data class News(
val aavatar: String?,
val aAvatar: String?,
val aCreatedDate: String?,
val aNickname: String?,
val aUserId: Int?,
val abbrContent: String?,
val acreatedDate: String?,
val anickname: String?,
val auserId: String?,
val avatar: String?,
val createdDate: String?,
val greatNum: Int?,
val id: Int,
val imgs: String?,
var isGreat: Boolean?,
var isGreat: Boolean,
val nickname: String?,
val pageViews: Int?,
val qavatar: String?,
val qcreatedDate: String?,
val qnickname: String?,
val quserId: String?,
val qAvatar: String?,
val qCreatedDate: String?,
val qNickname: String?,
val qUserId: Int?,
val star: String?,
val title: String?,
val type: Int?,
val videoUrl: String?,
val videoImg : String?
val type: Int,
val userId: Int?,
val videoImg: String?,
val videoUrl: String?
)
\ No newline at end of file
......@@ -31,6 +31,7 @@ import com.xuexiang.xpage.base.XPageActivity
import com.xuexiang.xpage.core.PageOption
import android.hardware.SensorManager
import android.hardware.SensorEventListener
import android.os.Handler
import com.ccwangluo.accelerator.utils.SysUtils
import com.xuexiang.xutil.net.NetworkUtils
import com.xuexiang.xutil.system.PermissionUtils
......@@ -61,7 +62,8 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
Manifest.permission.READ_PHONE_STATE,
Manifest.permission.WRITE_EXTERNAL_STORAGE,
Manifest.permission.READ_EXTERNAL_STORAGE,
Manifest.permission.ACCESS_FINE_LOCATION
Manifest.permission.ACCESS_FINE_LOCATION,
Manifest.permission.CAMERA
)
.withListener(object : MultiplePermissionsListener {
override fun onPermissionsChecked(p0: MultiplePermissionsReport?) {
......@@ -105,6 +107,7 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
AcceleratorUtils.initConnect(this, connect)
mSensorManager = getSystemService(SENSOR_SERVICE) as SensorManager
mSensorEventListener = JCVideoPlayer.JCAutoFullscreenListener()
}
private fun initPhoneUtils() {
......@@ -126,7 +129,9 @@ class MainActivity() : XPageActivity(), TencentLocationListener {
mSensor,
SensorManager.SENSOR_DELAY_NORMAL
)
Handler().postDelayed({
AcceleratorUtils.checkVpn()
}, 1000)
}
override fun onPause() {
......
......@@ -28,7 +28,7 @@ class MemberDialog(
btn.setOnClickListener {
dismiss<MemberDialog>()
val params = Bundle()
params.putString(CommonWebViewFragment.WEBVIEW_URL_KEY, HttpConfig.MEMBER_CENTER)
params.putString(CommonWebViewFragment.WEBVIEW_URL_KEY,HttpConfig.UI_MAIN_URL + HttpConfig.MEMBER_CENTER)
fragment.openPage(CommonWebViewFragment::class.java, params)
}
}
......
......@@ -47,7 +47,6 @@ class AccelertorFragment : XPageFragment() {
return binding.root
}
var isStartAcc = false
override fun initViews() {
accelertorViewModel.netState.observe(this, {
......@@ -101,10 +100,6 @@ class AccelertorFragment : XPageFragment() {
state = it
freshData(it)
}
if (isStartAcc && state == BaseService.State.Stopped) {
isStartAcc = false
ToastUtils.show("加速失败")
}
if (SettingSPUtils.isSmartAccOpen) {
binding.smartAccOpen.setText("已开启")
binding.smartAccOpen.setTextColor(resources.getColor(R.color.open_acc_enable))
......@@ -138,7 +133,11 @@ class AccelertorFragment : XPageFragment() {
binding.progressArea.visibility = View.GONE
binding.btnQuick.isEnabled = true
binding.progressViewCircleSmall.progress = 0F
isStartAcc = true
binding.progressViewCircleSmall.postDelayed({
if(state != BaseService.State.Connected){
ToastUtils.show("加速失败")
}
},3000)
AcceleratorUtils.startAccelerator(this@AccelertorFragment)
}
})
......@@ -286,7 +285,6 @@ class AccelertorFragment : XPageFragment() {
fun freshData(state: BaseService.State) {
if (state == BaseService.State.Connected) {
isStartAcc = false
binding.gamePicIn1.startAnimation(getDefaultAnim())
binding.accStateTx.visibility = View.VISIBLE
binding.btnQuick.setBackgroundResource(R.mipmap.quick_stop)
......@@ -298,7 +296,7 @@ class AccelertorFragment : XPageFragment() {
CommonDialog(it).setTitle("防止加速掉线")
.setContent("为了防止加速进程被手机系统中断,影响游戏加速,请确保完成相关设置")
.setBtnLeft("取消", {}).setBtnRight("去设置", {
openToWebview(HttpConfig.UI_SETTING_URL)
openToWebview(HttpConfig.UI_SPEED_URL + "?id=1")
}).show<CommonDialog>()
SettingSPUtils.isFirstAccSuccess = false
}
......
......@@ -23,14 +23,18 @@ import com.ccwangluo.accelerator.ui.news.NewsCollectionAdapter
import com.ccwangluo.accelerator.ui.web.CommonWebViewFragment
import com.ccwangluo.accelerator.utils.AcceleratorUtils
import com.ccwangluo.accelerator.utils.LoginUtils
import com.ccwangluo.accelerator.utils.SysUtils
import com.ccwangluo.cc_quickly.utils.XToastUtils
import com.github.shadowsocks.http.HttpConfig
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.tabs.TabLayoutMediator
import com.hjq.toast.ToastUtils
import com.just.agentweb.download.DownloadTask
import com.xuexiang.xpage.base.XPageFragment
import com.xuexiang.xpage.utils.TitleBar
import com.xuexiang.xui.widget.toast.XToast
import com.xuexiang.xutil.XUtil
import com.xuexiang.xutil.app.AppUtils
class NewsFragment : XPageFragment() {
private var _binding: FragmentNewsBinding? = null
......@@ -97,7 +101,7 @@ class NewsFragment : XPageFragment() {
if (itemData.type == 1) {
itemData.url?.let {
openToWebview(it)
context?.let { it1 -> SysUtils.joinQQGroup(it1) }
}
}
......@@ -106,6 +110,15 @@ class NewsFragment : XPageFragment() {
openToWebview(it)
}
}
if (itemData.type == 3) {
itemData.url?.let {
context?.let { it1 ->
SysUtils.downloadFile(it1, it)
ToastUtils.show("开始下载")
}
}
}
}
}.create()
......
......@@ -5,6 +5,7 @@ import android.view.View
import androidx.core.widget.addTextChangedListener
import androidx.lifecycle.ViewModelProvider
import com.ccwangluo.accelerator.databinding.FragmentLoginPhoneBinding
import com.ccwangluo.accelerator.utils.AcceleratorUtils
import com.ccwangluo.accelerator.utils.LoginUtils
import com.hjq.toast.ToastUtils
import com.xuexiang.xpage.annotation.Page
......@@ -13,7 +14,7 @@ import com.xuexiang.xutil.common.StringUtils
import java.util.regex.Pattern
@Page(name = "phone_login")
class PhoneLoginActivity:XPageActivity() {
class PhoneLoginActivity : XPageActivity() {
private lateinit var loginViewModel: LoginViewModel
private lateinit var binding: FragmentLoginPhoneBinding
private var mCountTime = 60
......@@ -59,7 +60,7 @@ class PhoneLoginActivity:XPageActivity() {
loginViewModel.sendCodeState.observe(this, {
if (it) {
LoginUtils.startTimer()
LoginUtils.startTimer(binding.phoneEt.text.toString())
} else {
binding.authCodeBtn.visibility = View.VISIBLE
binding.authCodeWait.visibility = View.GONE
......@@ -69,6 +70,7 @@ class PhoneLoginActivity:XPageActivity() {
loginViewModel.loginState.observe(this, {
if (it) {
LoginUtils.stopTimer()
finish()
}
})
......@@ -84,6 +86,8 @@ class PhoneLoginActivity:XPageActivity() {
})
loginViewModel.timerNumber.postValue(-1)
binding.phoneEt.setText(LoginUtils._phone)
}
......@@ -160,7 +164,7 @@ class PhoneLoginActivity:XPageActivity() {
mCountTime = 60
binding.authCodeBtn.visibility = View.VISIBLE
binding.authCodeWait.visibility = View.GONE
if (i == -1){
if (i == -1) {
binding.authCodeBtn.setText("获取验证码")
} else {
binding.authCodeBtn.setText("重新获取验证码")
......
//package com.ccwangluo.accelerator.ui.login
//
//import android.content.Context
//import android.os.Handler
//import android.os.Looper
//import android.view.LayoutInflater
//import android.view.View
//import android.view.ViewGroup
//import android.view.inputmethod.InputMethodManager
//import androidx.core.widget.addTextChangedListener
//import androidx.fragment.app.Fragment
//import androidx.lifecycle.ViewModelProvider
//import com.ccwangluo.accelerator.databinding.FragmentLoginPhoneBinding
////import com.ccwangluo.accelerator.databinding.FragmentLoginPhoneBinding
//import com.ccwangluo.accelerator.utils.LoginUtils
//import com.hjq.toast.ToastUtils
//import com.xuexiang.xpage.annotation.Page
//import com.xuexiang.xpage.base.XPageFragment
//import com.xuexiang.xpage.utils.TitleBar
//import com.xuexiang.xutil.common.StringUtils
//import java.util.regex.Pattern
//
//import java.util.*
//import android.widget.EditText
//
//
//
//
//
///**
// * A simple [Fragment] subclass.
// * Use the [PhoneLoginFragment.newInstance] factory method to
// * create an instance of this fragment.
// */
//@Page(name = "login")
//class PhoneLoginFragment : XPageFragment() {
//
// override fun initTitleBar(): TitleBar? {
// return null
// }
//
// override fun hideCurrentPageSoftInput() {
//
// }
//
// private var mCountTime = 60
// private lateinit var loginViewModel: LoginViewModel
//
//
// private lateinit var binding: FragmentLoginPhoneBinding
//
// override fun inflateView(inflater: LayoutInflater?, container: ViewGroup?): View {
// binding = FragmentLoginPhoneBinding.inflate(inflater!!, container, false)
// loginViewModel = ViewModelProvider(requireActivity()).get(LoginViewModel::class.java)
// return binding.root
// }
// fun showKeyboard(editText: EditText?) {
// if (editText != null) {
// //设置可获得焦点
// editText.isFocusable = true
// editText.isFocusableInTouchMode = true
// //请求获得焦点
// editText.requestFocus()
// //调用系统输入法
// val inputManager: InputMethodManager =
// editText.context.getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager
// inputManager.showSoftInput(editText, InputMethodManager.SHOW_IMPLICIT)
// }
// }
//
// override fun initViews() {
// binding.phoneEt.addTextChangedListener {
// val phone = it.toString().trim()
// val authCdoe = binding.authCodeEt.text.toString()
// if (phone.length > 0) {
// binding.authCodeBtn.isEnabled = true
// } else {
// binding.authCodeBtn.isEnabled = false
// }
// if (isPhone(phone) && authCdoe.length > 0) {
// binding.login.isEnabled = true
// } else {
// binding.login.isEnabled = false
// }
// }
//
// binding.authCodeEt.addTextChangedListener {
// val authCdoe = it.toString().trim()
// val phone = binding.phoneEt.text.toString()
// if (isPhone(phone) && authCdoe.length > 0) {
// binding.login.isEnabled = true
// } else {
// binding.login.isEnabled = false
// }
// if (isPhone(phone) && authCdoe.length == 6 && binding.cbProtocol.isChecked) {
// loginViewModel.login(phone, authCdoe)
// }
// }
//
// loginViewModel.sendCodeState.observe(this, {
// if (it) {
// LoginUtils.startTimer()
// } else {
// binding.authCodeBtn.visibility = View.VISIBLE
// binding.authCodeWait.visibility = View.GONE
// binding.authCodeBtn.isEnabled = true
// }
// })
//
// loginViewModel.loginState.observe(this, {
// if (it) {
// popToBack()
// }
// })
// loginViewModel.timerNumber.observe(this, {
// if (it > 0) {
// binding.authCodeBtn.visibility = View.GONE
// binding.authCodeWait.visibility = View.VISIBLE
// binding.authCodeBtn.isEnabled = false
// binding.authCodeWait.setText("${it}秒后重新获得验证码")
// } else {
// resetCounter()
// }
// })
//
//
// }
//
// override fun onHiddenChanged(hidden: Boolean) {
//
// }
//
// override fun initListeners() {
// binding.privacyAggreement.setOnClickListener({
//
// })
//
// binding.userAggreement.setOnClickListener {
//
// }
//
// binding.phoneClear.setOnClickListener {
// binding.phoneEt.setText("")
// }
//
// binding.authCodeBtn.setOnClickListener {
// val phone = binding.phoneEt.text.toString()
// if (StringUtils.isEmpty(phone) || !isPhone(phone)) {
// ToastUtils.show("输入正确的手机号")
// return@setOnClickListener
// }
// binding.authCodeBtn.isEnabled = false
// loginViewModel.getAuthCode(phone)
// }
//
// binding.btnBack.setOnClickListener {
// popToBack()
// }
//
// binding.login.setOnClickListener {
// //检查验证码,手机号格式
// val phone = binding.phoneEt.text.toString()
// val authCdoe = binding.authCodeEt.text.toString()
//
// if (StringUtils.isEmpty(phone) || !isPhone(phone)) {
// ToastUtils.show("输入正确的手机号")
// return@setOnClickListener
// }
// if (StringUtils.isEmpty(authCdoe) || authCdoe.length < 6) {
// ToastUtils.show("请输入验证码")
// return@setOnClickListener
// }
// //检查ck
// if (!binding.cbProtocol.isChecked) {
// ToastUtils.show("先勾选协议哦")
// return@setOnClickListener
// }
//
// loginViewModel.login(phone, authCdoe)
// }
// }
//
// fun isPhone(phone: String): Boolean {
// // 开头的"1"代表第一位为数字1,"[3-9]"代表第二位可以为3、4、5、6、7、8、9其中之一,"\\d{9}"代表后面是9位数字
// val regex = "1[3-9]\\d{9}"
// return Pattern.matches(regex, phone)
// }
//
// override fun onResume() {
// super.onResume()
// LoginUtils.registerTimerCallBack {
// loginViewModel.timerNumber.postValue(it)
// }
// showKeyboard(binding.phoneEt)
// showKeyboard(binding.authCodeEt)
// }
//
// override fun onPause() {
// super.onPause()
// LoginUtils.unRegisterTimerCallBack()
// }
//
// //重置按钮状态
// fun resetCounter() {
// mCountTime = 60
// binding.authCodeBtn.visibility = View.VISIBLE
// binding.authCodeWait.visibility = View.GONE
// binding.authCodeBtn.setText("重新获取验证码")
// binding.authCodeBtn.isEnabled = true
// }
//}
\ No newline at end of file
......@@ -60,10 +60,19 @@ class NewsObjectFragment : XPageFragment() {
.setLayoutId(R.layout.item_dynamic)
.addBindView { itemView, itemData ->
val avatar = itemView.findViewById<ImageView>(R.id.avatar)
Glide.with(this@NewsObjectFragment).load(itemData.avatar).into(avatar)
itemView.findViewById<TextView>(R.id.nickname).setText(itemData.nickname)
Glide.with(this@NewsObjectFragment)
.load(if (itemData.type == 4) itemData.qAvatar else itemData.avatar)
.into(avatar)
itemView.findViewById<TextView>(R.id.nickname)
.setText(if (itemData.type == 4) itemData.qNickname else itemData.nickname)
itemView.findViewById<TextView>(R.id.createdDate)
.setText(itemData.createdDate?.substring(0, 10))
.setText(
(if (itemData.type == 4) itemData.qCreatedDate else itemData.createdDate)?.substring(
0,
10
)
)
itemData.title?.let {
itemView.findViewById<TextView>(R.id.title).visibility = View.VISIBLE
itemView.findViewById<TextView>(R.id.title).setText(it)
......@@ -134,7 +143,7 @@ class NewsObjectFragment : XPageFragment() {
itemView.setOnClickListener {
val params = Bundle()
params.putString(
CommonWebViewFragment.WEBVIEW_URL_KEY,HttpConfig.UI_MAIN_URL +
CommonWebViewFragment.WEBVIEW_URL_KEY, HttpConfig.UI_MAIN_URL +
"/gameDetail?gameId=${gameId}&id=${itemData.id}"
)
openPage(CommonWebViewFragment::class.java, params)
......
......@@ -17,8 +17,8 @@ class NewsObjectModel : ViewModel() {
val type = when (position) {
"1" -> 1
"2" -> 2
"3" -> 4
"4" -> 5
"3" -> 5
"4" -> 4
else -> ""
}
viewModelScope.launch(Dispatchers.IO) {
......
......@@ -21,6 +21,7 @@ import com.hjq.toast.ToastUtils
import java.lang.Exception
import android.util.DisplayMetrics
import com.ccwangluo.accelerator.utils.SysUtils
import com.xuexiang.xutil.net.NetworkUtils
import java.util.*
......@@ -64,7 +65,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
//打开系统设置
@JavascriptInterface
fun openSysSetting() {
PermissionUtils.openAppSettings()
NetworkUtils.openWirelessSettings()
}
@JavascriptInterface
......@@ -171,7 +172,7 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
xPageFragment.context?.let {
val packageInstall = SysUtils.isPackageInstall(it, packageName)
agentWeb.getJsAccessEntrace()
.quickCallJs(callback, packageName,packageInstall.toString())
.quickCallJs(callback, packageName, packageInstall.toString())
}
}
......@@ -210,32 +211,20 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
* 调用 joinQQGroup(09Gg-vMtnaIfgr-slk1pOkjVIFmjI79U)
*/
@JavascriptInterface
fun joinQQGroup(url: String) {
val intent = Intent()
intent.data =
Uri.parse(url)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
xPageFragment.startActivity(intent)
} catch (e: Exception) {
// 未安装手Q或安装的版本不支持
ToastUtils.show("未安装手Q或安装的版本不支持")
fun joinQQGroup() {
xPageFragment.context?.let {
SysUtils.joinQQGroup(it)
}
}
/**
* 获取android版本号
*/
@JavascriptInterface
fun getSystemVersion(callback: String) {
agentWeb.getJsAccessEntrace()
.quickCallJs(
callback,
android.os.Build.VERSION.RELEASE,
SysUtils.getDpi(xPageFragment).toString()
SysUtils.getDpi(xPageFragment).toString(),android.os.Build.VERSION.SDK_INT.toString()
)
}
......
......@@ -22,6 +22,7 @@ import com.github.shadowsocks.bg.BaseService
import com.github.shadowsocks.database.Profile
import com.github.shadowsocks.database.ProfileManager
import com.github.shadowsocks.http.LineConfig
import com.github.shadowsocks.preference.DataStore
import com.hjq.toast.ToastUtils
import com.tencent.mmkv.MMKV
import com.xuexiang.xpage.base.XPageFragment
......@@ -52,8 +53,6 @@ object AcceleratorUtils {
//游戏
var game: GameInfo? = null
var isOpenSetting = true
//加速前延迟
var pre_net = -1
......@@ -95,18 +94,17 @@ object AcceleratorUtils {
game?.let {
val split = it.boosterServer.split(":")
var net = NetState(-1, -1, -1, "100")
if (state != BaseService.State.Connected) {
net.delay = NetUtils.tcpPing(split[0], split[1].toInt()).toInt()
pre_net = net.delay
acc_net = -1
} else {
net.delay = NetUtils.tcpPing(split[0], split[1].toInt(), 1080).toInt()
acc_net = if (net.delay > pre_net) pre_net else net.delay
if (state == BaseService.State.Connected) {
val delay = NetUtils.tcpPing(split[0], split[1].toInt(),DataStore.portProxy).toInt()
acc_net = if (delay > pre_net) pre_net else delay
LoginUtils.getUserHasTimer {
if (!it) { //没有加速时长关闭服务
stopAccelerator()
}
}
net.delay = if (net.delay < delay) net.delay else delay
}
net.lossRate = if (net.delay == -1) "100" else "0"
net.preNetDelay = pre_net
......@@ -115,7 +113,7 @@ object AcceleratorUtils {
stateListener(state, getAccTime(), net)
}
}
delay(1000)
delay(2000)
}
}
context.lifecycleScope.launch(Dispatchers.IO) {
......@@ -127,8 +125,11 @@ object AcceleratorUtils {
}
fun checkVpn() {
if (SysUtils.isVpn(context) && state != BaseService.State.Connected && isOpenSetting) {
isOpenSetting = false
if (AuthManager.Last_ACC_TIme == 0L || System.currentTimeMillis() - AuthManager.Last_ACC_TIme > 2 * 3600 * 1000){
return
}
if (SysUtils.isVpn(context) && state != BaseService.State.Connected) {
AuthManager.Last_ACC_TIme = 0L
CommonDialog(context).setTitle("VPN被挤占")
.setContent("请确保已关闭其他加速器,并未开起任何游戏空间等类似功能")
.setBtnLeft("取消", {
......@@ -167,6 +168,7 @@ object AcceleratorUtils {
"com.YoStarJP.Arknights",
"com.riotgames.league.wildrifttw",
"com.baidu.browser.apps"
)
game?.boosterPackageName?.split(",")?.forEach {
if (!StringUtils.isEmpty(it)) {
......
package com.ccwangluo.accelerator.utils
import android.content.Context
import android.content.Intent
import androidx.lifecycle.lifecycleScope
import com.ccwangluo.accelerator.model.LoginRes
......@@ -9,7 +8,6 @@ import com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
import com.ccwangluo.accelerator.utils.http.HttpGo
import com.chuanglan.shanyan_sdk.OneKeyLoginManager
import com.github.shadowsocks.Core
import com.github.shadowsocks.bg.AuthManager
import com.hjq.toast.ToastUtils
import com.tencent.mmkv.MMKV
import com.xuexiang.xpage.base.XPageFragment
......@@ -51,15 +49,10 @@ object LoginUtils {
}
fun getUserHasTimer(xPageFragment: XPageFragment, callBack: (Boolean) -> Unit) {
userProfile?.let {
val dateToStamp = TimeUtils.dateToStamp(it.vipExpireTime) + 24 * 60 * 60 * 1000
// && it.vipExpireTime > System.currentTimeMillis()
callBack(it.vip && dateToStamp > System.currentTimeMillis())
return
}
getUserProfile(xPageFragment) {
it?.let {
callBack(true)
val dateToStamp = TimeUtils.dateToStamp(it.vipExpireTime) + 24 * 60 * 60 * 1000
callBack(it.vip && dateToStamp > System.currentTimeMillis())
} ?: let {
callBack(false)
}
......@@ -82,15 +75,18 @@ object LoginUtils {
timerCallBack = {}
}
fun startTimer() {
var _phone = ""
fun startTimer(phone: String) {
_phone = phone
timeNumber = 60
timer?.cancel()
timerTask = object : TimerTask() {
override fun run() {
timeNumber--
timerCallBack(timeNumber)
if (timeNumber == 0) {
if (timeNumber <= 0) {
timer?.cancel()
_phone = ""
}
}
}
......@@ -98,6 +94,11 @@ object LoginUtils {
timer?.schedule(timerTask, 0, 1000);
}
fun stopTimer(){
_phone = ""
timer?.cancel()
}
fun login(xPageFragment: XPageFragment, callBack: (Boolean) -> Unit) {
PhoneUtils.openLoginAuth(xPageFragment) { b, s ->
if (b) {
......@@ -108,9 +109,9 @@ object LoginUtils {
res?.let {
if (it.code == 200) {
token = it.data?.token
withContext(Dispatchers.Main) {
ToastUtils.show("登录成功")
OneKeyLoginManager.getInstance().finishAuthActivity()
withContext(Dispatchers.Main) {
callBack(true)
}
} else {
......
......@@ -2,9 +2,6 @@ package com.ccwangluo.accelerator.utils
import android.content.Context
import android.content.pm.PackageManager
import android.net.ConnectivityManager
import android.net.Network
import android.net.Proxy
import android.os.Build
import android.text.TextUtils
import android.util.DisplayMetrics
......@@ -16,9 +13,11 @@ import java.io.InputStreamReader
import java.text.SimpleDateFormat
import java.util.*
import kotlin.collections.ArrayList
import android.net.NetworkCapabilities
import android.app.DownloadManager
import android.content.Intent
import android.net.*
import com.hjq.toast.ToastUtils
import java.lang.Exception
object SysUtils {
......@@ -28,7 +27,7 @@ object SysUtils {
}
fun getActiveNet(): String {
when(NetworkUtils.getNetStateType()){
when (NetworkUtils.getNetStateType()) {
NetworkUtils.NetState.NET_WIFI -> return "WIFI"
NetworkUtils.NetState.NET_5G -> return "5G"
NetworkUtils.NetState.NET_4G -> return "4G"
......@@ -73,7 +72,8 @@ object SysUtils {
* 判断设备 是否使用代理上网
* */
fun isVpn(context: Context): Boolean {
val connectivityManager = context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val connectivityManager =
context.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
val activeNetwork = connectivityManager?.getActiveNetwork()
val caps = connectivityManager.getNetworkCapabilities(activeNetwork)
caps?.hasTransport(NetworkCapabilities.TRANSPORT_VPN)?.let {
......@@ -124,7 +124,26 @@ object SysUtils {
fun getDpi(xPageFragment: XPageFragment): Float {
val dm = DisplayMetrics()
xPageFragment.activity?.windowManager?.getDefaultDisplay()?.getMetrics(dm)
return (dm.density*160)
return (dm.density * 160)
}
fun downloadFile(context: Context, url: String) {
val request = DownloadManager.Request(Uri.parse(url))
request.setDestinationInExternalPublicDir("", url.substring(url.lastIndexOf("/") + 1))
val downloadManager = context.getSystemService(Context.DOWNLOAD_SERVICE) as DownloadManager
downloadManager.enqueue(request)
}
fun joinQQGroup(context: Context) {
val key = "388Tnjzn_jkY7SNKO1ACI6PL5gbhpeYR"
val intent = Intent()
intent.data =
Uri.parse("mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26jump_from%3Dwebapi%26k%3D$key")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
context.startActivity(intent)
} catch (e: Exception) {
ToastUtils.show("没有安装qq")
}
}
}
\ No newline at end of file
......@@ -10,12 +10,13 @@
<LinearLayout
android:layout_width="match_parent"
android:paddingTop="1.5dp"
android:id="@+id/btn_back"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:layout_marginTop="41.5dp"
android:layout_marginTop="40dp"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/btn_back"
android:layout_marginLeft="20dp"
android:layout_width="10dp"
android:layout_height="17dp"
......@@ -156,8 +157,10 @@
<CheckBox
android:id="@+id/cb_protocol"
android:layout_width="14dp"
android:layout_height="14dp"
android:padding="5dp"
android:gravity="center"
android:layout_width="20dp"
android:layout_height="20dp"
style="@style/btn_checkbox"
/>
......
......@@ -3,9 +3,10 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/refresh_news"
android:paddingTop="30dp"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white">
android:background="@color/black">
<androidx.coordinatorlayout.widget.CoordinatorLayout
......@@ -24,10 +25,11 @@
android:id="@+id/collap"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:contentScrim="@color/colorPrimary"
app:contentScrim="@color/white"
app:layout_scrollFlags="snap|scroll|exitUntilCollapsed">
<LinearLayout
app:layout_collapseMode="parallax"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
......@@ -38,7 +40,7 @@
android:layout_height="wrap_content"
android:background="@mipmap/new_top"
android:gravity="center"
android:paddingTop="36dp"
android:paddingTop="6dp"
android:paddingBottom="16dp"
android:text="地下城与勇士 韩服"
android:textColor="#FFFFFFFF"
......@@ -91,6 +93,7 @@
<androidx.appcompat.widget.LinearLayoutCompat
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
......
......@@ -46,6 +46,12 @@
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:layout_marginEnd="58.5dp">
<ImageView
android:layout_width="19dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@mipmap/message" />
<com.xuexiang.xui.widget.button.roundbutton.RoundButton
android:id="@+id/icon_notice_badge"
......@@ -56,12 +62,6 @@
app:rb_backgroundColor="@color/red"
app:rb_radius="4dp" />
<ImageView
android:layout_width="19dp"
android:layout_height="20dp"
android:layout_alignParentEnd="true"
android:layout_centerVertical="true"
android:background="@mipmap/message" />
</RelativeLayout>
</RelativeLayout>
......@@ -262,8 +262,8 @@
<ImageView
android:id="@+id/btn_expend_bg"
android:layout_width="22dp"
android:layout_height="11dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal"
android:background="@mipmap/quick_arrow_up" />
......@@ -280,7 +280,7 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="433dp"
android:orientation="vertical">
<TextView
......@@ -522,7 +522,7 @@
<com.xuexiang.xui.widget.layout.XUILinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_height="201dp"
android:layout_marginLeft="10dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
......@@ -641,7 +641,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_marginBottom="24dp"
android:layout_marginBottom="15dp"
android:gravity="center_vertical"
android:orientation="horizontal">
......
......@@ -27,6 +27,7 @@ import android.content.ServiceConnection
import android.os.IBinder
import android.os.RemoteException
import com.github.shadowsocks.bg.AuthManager.ACC_TIME
import com.github.shadowsocks.bg.AuthManager.Last_ACC_TIme
import com.github.shadowsocks.bg.BaseService
import com.github.shadowsocks.bg.VpnService
import com.github.shadowsocks.utils.Action
......@@ -73,6 +74,7 @@ class ShadowsocksConnection(private var listenForDeath: Boolean = false) : Servi
ACC_TIME = System.currentTimeMillis()
} else {
ACC_TIME = 0L
Last_ACC_TIme = System.currentTimeMillis()
}
}
}
......
......@@ -77,6 +77,12 @@ object AuthManager {
MMKV.defaultMMKV().putLong("ACC_TIME", acc_time)
}
var Last_ACC_TIme:Long
get() = MMKV.defaultMMKV().decodeLong("LAST_ACC_TIME", 0L)
set(last_acc_time) {
MMKV.defaultMMKV().putLong("LAST_ACC_TIME", last_acc_time)
}
suspend fun initAuthProfile(profile: Profile) {
withContext(Dispatchers.IO) {
getLineConfig()?.let {
......@@ -111,8 +117,6 @@ object AuthManager {
proxyInstance.profile.token = it.data.token
configJson.addProperty("token", it.data.token)
configFile.writeText(configJson.toString())
} else {
Core.stopService()
}
}
}
......
......@@ -19,7 +19,6 @@ object HttpConfig {
val UI_MESSAGE_URL = "/message"
val UI_GAME_URL = "/game"
val UI_SETTING_URL = "/setting"
......
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