Commit 3f146744 authored by liusheng's avatar liusheng

修复加速页面收不到加速回调

parent 74e7d457
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<package android:name="com.goplaycn.googleinstall" /> <package android:name="com.goplaycn.googleinstall" />
<package android:name="io.kkzs" /> <package android:name="io.kkzs" />
<package android:name="com.eg.android.AlipayGphone" /> <package android:name="com.eg.android.AlipayGphone" />
<package android:name="com.pearlabyss.blackdesertm"/>
</queries> </queries>
<application <application
......
package com.ccwangluo.accelerator.ui.dialog package com.ccwangluo.accelerator.ui.dialog
import android.content.Context import android.content.Context
import android.graphics.Color
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.FrameLayout import android.widget.FrameLayout
import android.widget.TextView import android.widget.TextView
...@@ -58,7 +59,7 @@ class PrivacyDialog( ...@@ -58,7 +59,7 @@ class PrivacyDialog(
ViewGroup.LayoutParams.MATCH_PARENT ViewGroup.LayoutParams.MATCH_PARENT
) )
) )
.useDefaultIndicator(-1, 3) .useDefaultIndicator(Color.parseColor("#3CA4FD"), 3)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK) .setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)
.createAgentWeb() .createAgentWeb()
.ready() .ready()
......
package com.ccwangluo.accelerator.ui.home package com.ccwangluo.accelerator.ui.home
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.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
...@@ -24,6 +26,7 @@ import com.github.shadowsocks.bg.BaseService ...@@ -24,6 +26,7 @@ import com.github.shadowsocks.bg.BaseService
import com.hjq.toast.ToastUtils import com.hjq.toast.ToastUtils
import com.tencent.bugly.beta.Beta 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.utils.TitleBar import com.xuexiang.xpage.utils.TitleBar
import com.xuexiang.xui.utils.ViewUtils import com.xuexiang.xui.utils.ViewUtils
import com.xuexiang.xui.widget.progress.CircleProgressView import com.xuexiang.xui.widget.progress.CircleProgressView
...@@ -135,6 +138,7 @@ class AccelertorFragment : XPageFragment() { ...@@ -135,6 +138,7 @@ class AccelertorFragment : XPageFragment() {
binding.btnQuick.isEnabled = true binding.btnQuick.isEnabled = true
binding.progressViewCircleSmall.progress = 0F binding.progressViewCircleSmall.progress = 0F
binding.progressViewCircleSmall.postDelayed({ binding.progressViewCircleSmall.postDelayed({
Log.e("onCircleProgressFinished","====="+state.toString())
if (state != BaseService.State.Connected) { if (state != BaseService.State.Connected) {
ToastUtils.show("加速失败") ToastUtils.show("加速失败")
} }
...@@ -156,7 +160,7 @@ class AccelertorFragment : XPageFragment() { ...@@ -156,7 +160,7 @@ class AccelertorFragment : XPageFragment() {
} }
binding.gamePage.setOnClickListener { binding.gamePage.setOnClickListener {
openToWebview(HttpConfig.UI_GAME_URL + "?gameId=${AcceleratorUtils.game?.id}") openWebviewForResult(HttpConfig.UI_GAME_URL + "?gameId=${AcceleratorUtils.game?.id}")
} }
binding.smartAccOpen.setOnClickListener { binding.smartAccOpen.setOnClickListener {
...@@ -241,10 +245,7 @@ class AccelertorFragment : XPageFragment() { ...@@ -241,10 +245,7 @@ class AccelertorFragment : XPageFragment() {
binding.btnQuick.isEnabled = false binding.btnQuick.isEnabled = false
startAnim() startAnim()
} else { } else {
//MemberDialog(this@AccelertorFragment).show<MemberDialog>() MemberDialog(this@AccelertorFragment).show<MemberDialog>()
//TODO 测试
binding.btnQuick.isEnabled = false
startAnim()
} }
} }
} else { } else {
...@@ -285,17 +286,38 @@ class AccelertorFragment : XPageFragment() { ...@@ -285,17 +286,38 @@ class AccelertorFragment : XPageFragment() {
} }
} }
override fun onResume() { override fun onFragmentResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onResume() super.onFragmentResult(requestCode, resultCode, data)
AcceleratorUtils.registerStateListener { state, l, net -> if(requestCode==CLICK_START_ACC_REQUEST_CODE){
net?.let { binding.btnQuick.performClick()
accelertorViewModel.netState.postValue(net) }
}
private val CLICK_START_ACC_REQUEST_CODE:Int=100;
private fun openWebviewForResult(url: String) {
LoginUtils.token?.let {
PageOption.to(CommonWebViewFragment::class.java)
.putString(CommonWebViewFragment.WEBVIEW_URL_KEY, HttpConfig.UI_MAIN_URL + url)
.setRequestCode(CLICK_START_ACC_REQUEST_CODE)
.open(this)
} ?: let {
context?.let { it1 ->
LoginUtils.login(it1) {
if(it){
PageOption.to(CommonWebViewFragment::class.java)
.putString(
CommonWebViewFragment.WEBVIEW_URL_KEY,
HttpConfig.UI_MAIN_URL + url
)
.setRequestCode(CLICK_START_ACC_REQUEST_CODE)
.open(this)
}
}
} }
acc_timer = l
accelertorViewModel.accState.postValue(state)
} }
} }
fun freshData(state: BaseService.State) { fun freshData(state: BaseService.State) {
if (state == BaseService.State.Connected) { if (state == BaseService.State.Connected) {
startAccSuccess() startAccSuccess()
...@@ -331,9 +353,42 @@ class AccelertorFragment : XPageFragment() { ...@@ -331,9 +353,42 @@ class AccelertorFragment : XPageFragment() {
} }
} }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
AcceleratorUtils.registerVipExpireListener {
MemberDialog(this@AccelertorFragment).show<MemberDialog>()
}
}
override fun onDestroy() {
super.onDestroy()
AcceleratorUtils.unRegisterVipExpireListener()
}
override fun onStart() {
super.onStart()
AcceleratorUtils.registerStateListener { state, l, net ->
net?.let {
accelertorViewModel.netState.postValue(net)
}
acc_timer = l
accelertorViewModel.accState.postValue(state)
}
}
override fun onStop() {
super.onStop()
AcceleratorUtils.unRegisterStateListener()
}
override fun onResume() {
super.onResume()
}
override fun onPause() { override fun onPause() {
super.onPause() super.onPause()
AcceleratorUtils.unRegisterStateListener()
} }
fun startAnim() { fun startAnim() {
......
package com.ccwangluo.accelerator.ui.home package com.ccwangluo.accelerator.ui.home
import android.graphics.Color
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
...@@ -62,7 +63,7 @@ class MineFragment : XPageFragment() { ...@@ -62,7 +63,7 @@ class MineFragment : XPageFragment() {
ViewGroup.LayoutParams.MATCH_PARENT ViewGroup.LayoutParams.MATCH_PARENT
) )
) )
.useDefaultIndicator(-1, 3) .useDefaultIndicator(Color.parseColor("#3CA4FD"), 3)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK) .setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)
.createAgentWeb() .createAgentWeb()
.ready() .ready()
......
...@@ -18,14 +18,20 @@ import com.xuexiang.xutil.system.PermissionUtils ...@@ -18,14 +18,20 @@ import com.xuexiang.xutil.system.PermissionUtils
import android.content.Intent import android.content.Intent
import android.media.audiofx.BassBoost import android.media.audiofx.BassBoost
import android.net.Uri import android.net.Uri
import android.os.Handler
import android.provider.Settings import android.provider.Settings
import com.hjq.toast.ToastUtils import com.hjq.toast.ToastUtils
import java.lang.Exception import java.lang.Exception
import android.util.DisplayMetrics import android.util.DisplayMetrics
import com.ccwangluo.accelerator.utils.AcceleratorUtils
import com.ccwangluo.accelerator.utils.SysUtils import com.ccwangluo.accelerator.utils.SysUtils
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.tencent.bugly.beta.UpgradeInfo
import com.xuexiang.xutil.net.NetworkUtils import com.xuexiang.xutil.net.NetworkUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.json.JSONObject import org.json.JSONObject
import java.util.* import java.util.*
...@@ -135,6 +141,33 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb) ...@@ -135,6 +141,33 @@ class AndroidInterface(val xPageFragment: XPageFragment, val agentWeb: AgentWeb)
} }
} }
/**
* 当前加速状态 1 加速中,0 未加速
*/
@JavascriptInterface
fun getAccelerateState(callback: String){
if(BaseService.State.Connected==AcceleratorUtils.state){
agentWeb.jsAccessEntrace
.quickCallJs(callback, "1")
}else{
agentWeb.jsAccessEntrace
.quickCallJs(callback, "0")
}
}
private val handler:Handler =Handler()
/**
* 点击游戏主页下面的加速按钮调用
*/
@JavascriptInterface
fun clickAccelerateBtn(){
handler.post {
xPageFragment.setFragmentResult(500, Intent())
xPageFragment.popToBack()
}
}
/** /**
* 点击更新 * 点击更新
*/ */
......
package com.ccwangluo.accelerator.ui.web package com.ccwangluo.accelerator.ui.web
import android.graphics.Color
import android.view.KeyEvent import android.view.KeyEvent
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
...@@ -59,7 +60,7 @@ class CommonWebViewFragment : XPageFragment() { ...@@ -59,7 +60,7 @@ class CommonWebViewFragment : XPageFragment() {
ViewGroup.LayoutParams.MATCH_PARENT ViewGroup.LayoutParams.MATCH_PARENT
) )
) )
.useDefaultIndicator(-1, 3) .useDefaultIndicator(Color.parseColor("#3CA4FD"), 3)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK) .setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)
.createAgentWeb() .createAgentWeb()
.ready() .ready()
......
...@@ -3,6 +3,7 @@ package com.ccwangluo.accelerator.utils ...@@ -3,6 +3,7 @@ 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
...@@ -195,6 +196,15 @@ object AcceleratorUtils { ...@@ -195,6 +196,15 @@ object AcceleratorUtils {
} }
} }
fun registerVipExpireListener(listener: () -> Unit) {
vipExpireListener = listener
}
fun unRegisterVipExpireListener() {
vipExpireListener = { ->
}
}
fun stopAccelerator() { fun stopAccelerator() {
...@@ -204,11 +214,13 @@ object AcceleratorUtils { ...@@ -204,11 +214,13 @@ object AcceleratorUtils {
private val shadowsocksConnection = object : ShadowsocksConnection.Callback { private val shadowsocksConnection = object : ShadowsocksConnection.Callback {
override fun stateChanged(state: BaseService.State, profileName: String?, msg: String?) { override fun stateChanged(state: BaseService.State, profileName: String?, msg: String?) {
AcceleratorUtils.state = state AcceleratorUtils.state = state
Log.e("stateChanged","====="+state.toString())
stateListener(state, getAccTime(), null) stateListener(state, getAccTime(), null)
if (state == BaseService.State.Stopped && !msg.isNullOrBlank()) { if (state == BaseService.State.Stopped && !msg.isNullOrBlank()) {
if("vip到期".equals(msg)){ if("vip到期".equals(msg)||(msg!=null&&msg.startsWith("vip已到期"))){
vipExpireListener()
}else{ }else{
stopAccelerator()
ToastUtils.show(msg) ToastUtils.show(msg)
} }
} }
......
...@@ -3,6 +3,7 @@ package com.ccwangluo.accelerator.utils ...@@ -3,6 +3,7 @@ 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
...@@ -10,6 +11,7 @@ import com.ccwangluo.accelerator.ui.login.PhoneLoginActivity ...@@ -10,6 +11,7 @@ import com.ccwangluo.accelerator.ui.login.PhoneLoginActivity
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
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
...@@ -134,7 +136,7 @@ object LoginUtils { ...@@ -134,7 +136,7 @@ object LoginUtils {
context, context,
PhoneLoginActivity::class.java PhoneLoginActivity::class.java
) )
// intent.addFlags(FLAG_ACTIVITY_NEW_TASK ) intent.addFlags(FLAG_ACTIVITY_NEW_TASK )
context.startActivity( context.startActivity(
intent intent
) )
...@@ -153,6 +155,10 @@ object LoginUtils { ...@@ -153,6 +155,10 @@ object LoginUtils {
get() = MMKV.defaultMMKV().decodeString(KEY_TOKEN, null) get() = MMKV.defaultMMKV().decodeString(KEY_TOKEN, null)
set(token) { set(token) {
MMKV.defaultMMKV().putString(KEY_TOKEN, token) MMKV.defaultMMKV().putString(KEY_TOKEN, token)
if (token != null) {
AuthManager.loginAuthToken=token
Log.e("LoginUtils","===loginAuthToken:"+ AuthManager.loginAuthToken)
}
} }
fun hasToken(): Boolean { fun hasToken(): Boolean {
......
...@@ -118,6 +118,7 @@ object SysUtils { ...@@ -118,6 +118,7 @@ object SysUtils {
} }
fun joinQQGroup(context: Context) { fun joinQQGroup(context: Context) {
/**
val key = "388Tnjzn_jkY7SNKO1ACI6PL5gbhpeYR" val key = "388Tnjzn_jkY7SNKO1ACI6PL5gbhpeYR"
val intent = Intent() val intent = Intent()
intent.data = intent.data =
...@@ -127,6 +128,20 @@ object SysUtils { ...@@ -127,6 +128,20 @@ object SysUtils {
context.startActivity(intent) context.startActivity(intent)
} catch (e: Exception) { } catch (e: Exception) {
ToastUtils.show("没有安装qq") ToastUtils.show("没有安装qq")
}*/
val key="5CmyFzMWyucgmmLTM7JLG_sSArmaFQxT"
val intent = Intent()
intent.data =Uri.parse("mqqopensdkapi://bizAgent/qm/qr?url=http%3A%2F%2Fqm.qq.com%2Fcgi-bin%2Fqm%2Fqr%3Ffrom%3Dapp%26p%3Dandroid%26jump_from%3Dwebapi%26k%3D$key")
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
// 此Flag可根据具体产品需要自定义,如设置,则在加群界面按返回,返回手Q主界面,不设置,按返回会返回到呼起产品界面 //intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
try {
context.startActivity(intent)
} catch (e: Exception) {
// 未安装手Q或安装的版本不支持
ToastUtils.show("没有安装qq")
} }
} }
} }
\ No newline at end of file
...@@ -108,6 +108,7 @@ object AuthManager { ...@@ -108,6 +108,7 @@ object AuthManager {
return return
} }
scheduleAtFixedRate?.cancel(false) scheduleAtFixedRate?.cancel(false)
var failedCount:Int=0
scheduleAtFixedRate = executor.scheduleAtFixedRate({ scheduleAtFixedRate = executor.scheduleAtFixedRate({
val context = val context =
if (Build.VERSION.SDK_INT < 24 || Core.user.isUserUnlocked) Core.app else Core.deviceStorage if (Build.VERSION.SDK_INT < 24 || Core.user.isUserUnlocked) Core.app else Core.deviceStorage
...@@ -123,13 +124,20 @@ object AuthManager { ...@@ -123,13 +124,20 @@ object AuthManager {
) )
Timber.d("refreshTokenResult: $refreshTokenResult") Timber.d("refreshTokenResult: $refreshTokenResult")
if (refreshTokenResult.isSuccessful()) { if (refreshTokenResult.isSuccessful()) {
failedCount=0
proxyInstance.profile.token = refreshTokenResult.unwrapData().token proxyInstance.profile.token = refreshTokenResult.unwrapData().token
configJson.addProperty("token", proxyInstance.profile.token) configJson.addProperty("token", proxyInstance.profile.token)
configFile.writeText(configJson.toString()) configFile.writeText(configJson.toString())
} else if (refreshTokenResult.code == 1001) { } else if (refreshTokenResult.code == 1001) {
failedCount=0
throw AuthException(refreshTokenResult.error!!) throw AuthException(refreshTokenResult.error!!)
} else { } else {
// TODO: error handling failedCount++;
//连续失败超过3次抛异常
if(failedCount>=3){
failedCount=0
throw AuthException("网络异常")
}
} }
} }
} }
...@@ -137,6 +145,8 @@ object AuthManager { ...@@ -137,6 +145,8 @@ object AuthManager {
}, 1, 1, TimeUnit.MINUTES) }, 1, 1, TimeUnit.MINUTES)
} }
var loginAuthToken:String = "1"
val jsonType get() = "application/json; charset=utf-8".toMediaTypeOrNull() val jsonType get() = "application/json; charset=utf-8".toMediaTypeOrNull()
inline fun <reified T> postSync( inline fun <reified T> postSync(
...@@ -150,12 +160,16 @@ object AuthManager { ...@@ -150,12 +160,16 @@ object AuthManager {
authToken?.let { authToken?.let {
request.addHeader("Authorization", it) request.addHeader("Authorization", it)
} }
Log.e("postSync","===authToken:"+authToken)
Log.e("postSync","===loginAuthToken:"+loginAuthToken)
val call = okHttpClient.newCall(request.build()) val call = okHttpClient.newCall(request.build())
val resultType = object : TypeToken<ApiResult<T>>() {}.type val resultType = object : TypeToken<ApiResult<T>>() {}.type
try { try {
call.execute().use { response -> call.execute().use { response ->
val string = response.body?.string() val string = response.body?.string()
println(string) println(string)
Log.e("postSync","===url:"+HttpConfig.baseUrl + url)
Log.e("postSync","===result:"+string)
return gson.fromJson(string, resultType) return gson.fromJson(string, resultType)
} }
} catch (e: IOException) { } catch (e: IOException) {
......
...@@ -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.0.217:8080/#" //val UI_MAIN_URL = "http://10.3.0.217:8080/#"
// val UI_MAIN_URL = "https://cc-tt-front.srccwl.com/#" //生产 //val UI_MAIN_URL = "https://cc-tt-front.srccwl.com/#" //生产
//隐私协议地址 //隐私协议地址
......
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