Commit 3f146744 authored by liusheng's avatar liusheng

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

parent 74e7d457
......@@ -41,7 +41,7 @@
<package android:name="com.goplaycn.googleinstall" />
<package android:name="io.kkzs" />
<package android:name="com.eg.android.AlipayGphone" />
<package android:name="com.pearlabyss.blackdesertm"/>
</queries>
<application
......
package com.ccwangluo.accelerator.ui.dialog
import android.content.Context
import android.graphics.Color
import android.view.ViewGroup
import android.widget.FrameLayout
import android.widget.TextView
......@@ -58,7 +59,7 @@ class PrivacyDialog(
ViewGroup.LayoutParams.MATCH_PARENT
)
)
.useDefaultIndicator(-1, 3)
.useDefaultIndicator(Color.parseColor("#3CA4FD"), 3)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)
.createAgentWeb()
.ready()
......
package com.ccwangluo.accelerator.ui.home
import android.content.Intent
import android.graphics.drawable.AnimationDrawable
import android.os.Bundle
import android.support.v4.media.session.PlaybackStateCompat
import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
......@@ -24,6 +26,7 @@ import com.github.shadowsocks.bg.BaseService
import com.hjq.toast.ToastUtils
import com.tencent.bugly.beta.Beta
import com.xuexiang.xpage.base.XPageFragment
import com.xuexiang.xpage.core.PageOption
import com.xuexiang.xpage.utils.TitleBar
import com.xuexiang.xui.utils.ViewUtils
import com.xuexiang.xui.widget.progress.CircleProgressView
......@@ -135,6 +138,7 @@ class AccelertorFragment : XPageFragment() {
binding.btnQuick.isEnabled = true
binding.progressViewCircleSmall.progress = 0F
binding.progressViewCircleSmall.postDelayed({
Log.e("onCircleProgressFinished","====="+state.toString())
if (state != BaseService.State.Connected) {
ToastUtils.show("加速失败")
}
......@@ -156,7 +160,7 @@ class AccelertorFragment : XPageFragment() {
}
binding.gamePage.setOnClickListener {
openToWebview(HttpConfig.UI_GAME_URL + "?gameId=${AcceleratorUtils.game?.id}")
openWebviewForResult(HttpConfig.UI_GAME_URL + "?gameId=${AcceleratorUtils.game?.id}")
}
binding.smartAccOpen.setOnClickListener {
......@@ -241,10 +245,7 @@ class AccelertorFragment : XPageFragment() {
binding.btnQuick.isEnabled = false
startAnim()
} else {
//MemberDialog(this@AccelertorFragment).show<MemberDialog>()
//TODO 测试
binding.btnQuick.isEnabled = false
startAnim()
MemberDialog(this@AccelertorFragment).show<MemberDialog>()
}
}
} else {
......@@ -285,16 +286,37 @@ class AccelertorFragment : XPageFragment() {
}
}
override fun onResume() {
super.onResume()
AcceleratorUtils.registerStateListener { state, l, net ->
net?.let {
accelertorViewModel.netState.postValue(net)
override fun onFragmentResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onFragmentResult(requestCode, resultCode, data)
if(requestCode==CLICK_START_ACC_REQUEST_CODE){
binding.btnQuick.performClick()
}
}
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) {
if (state == BaseService.State.Connected) {
......@@ -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() {
super.onPause()
AcceleratorUtils.unRegisterStateListener()
}
fun startAnim() {
......
package com.ccwangluo.accelerator.ui.home
import android.graphics.Color
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
......@@ -62,7 +63,7 @@ class MineFragment : XPageFragment() {
ViewGroup.LayoutParams.MATCH_PARENT
)
)
.useDefaultIndicator(-1, 3)
.useDefaultIndicator(Color.parseColor("#3CA4FD"), 3)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)
.createAgentWeb()
.ready()
......
......@@ -18,14 +18,20 @@ import com.xuexiang.xutil.system.PermissionUtils
import android.content.Intent
import android.media.audiofx.BassBoost
import android.net.Uri
import android.os.Handler
import android.provider.Settings
import com.hjq.toast.ToastUtils
import java.lang.Exception
import android.util.DisplayMetrics
import com.ccwangluo.accelerator.utils.AcceleratorUtils
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.UpgradeInfo
import com.xuexiang.xutil.net.NetworkUtils
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
import org.json.JSONObject
import java.util.*
......@@ -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
import android.graphics.Color
import android.view.KeyEvent
import android.view.LayoutInflater
import android.view.View
......@@ -59,7 +60,7 @@ class CommonWebViewFragment : XPageFragment() {
ViewGroup.LayoutParams.MATCH_PARENT
)
)
.useDefaultIndicator(-1, 3)
.useDefaultIndicator(Color.parseColor("#3CA4FD"), 3)
.setOpenOtherPageWays(DefaultWebClient.OpenOtherPageWays.ASK)
.createAgentWeb()
.ready()
......
......@@ -3,6 +3,7 @@ package com.ccwangluo.accelerator.utils
import android.annotation.SuppressLint
import android.content.Context
import android.os.RemoteException
import android.util.Log
import androidx.activity.result.ActivityResultLauncher
import androidx.appcompat.app.AppCompatActivity
import androidx.lifecycle.lifecycleScope
......@@ -195,6 +196,15 @@ object AcceleratorUtils {
}
}
fun registerVipExpireListener(listener: () -> Unit) {
vipExpireListener = listener
}
fun unRegisterVipExpireListener() {
vipExpireListener = { ->
}
}
fun stopAccelerator() {
......@@ -204,11 +214,13 @@ object AcceleratorUtils {
private val shadowsocksConnection = object : ShadowsocksConnection.Callback {
override fun stateChanged(state: BaseService.State, profileName: String?, msg: String?) {
AcceleratorUtils.state = state
Log.e("stateChanged","====="+state.toString())
stateListener(state, getAccTime(), null)
if (state == BaseService.State.Stopped && !msg.isNullOrBlank()) {
if("vip到期".equals(msg)){
if("vip到期".equals(msg)||(msg!=null&&msg.startsWith("vip已到期"))){
vipExpireListener()
}else{
stopAccelerator()
ToastUtils.show(msg)
}
}
......
......@@ -3,6 +3,7 @@ package com.ccwangluo.accelerator.utils
import android.content.Context
import android.content.Intent
import android.content.Intent.FLAG_ACTIVITY_NEW_TASK
import android.util.Log
import androidx.lifecycle.lifecycleScope
import com.ccwangluo.accelerator.model.LoginRes
import com.ccwangluo.accelerator.model.UserProfile
......@@ -10,6 +11,7 @@ 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
......@@ -134,7 +136,7 @@ object LoginUtils {
context,
PhoneLoginActivity::class.java
)
// intent.addFlags(FLAG_ACTIVITY_NEW_TASK )
intent.addFlags(FLAG_ACTIVITY_NEW_TASK )
context.startActivity(
intent
)
......@@ -153,6 +155,10 @@ object LoginUtils {
get() = MMKV.defaultMMKV().decodeString(KEY_TOKEN, null)
set(token) {
MMKV.defaultMMKV().putString(KEY_TOKEN, token)
if (token != null) {
AuthManager.loginAuthToken=token
Log.e("LoginUtils","===loginAuthToken:"+ AuthManager.loginAuthToken)
}
}
fun hasToken(): Boolean {
......
......@@ -118,6 +118,7 @@ object SysUtils {
}
fun joinQQGroup(context: Context) {
/**
val key = "388Tnjzn_jkY7SNKO1ACI6PL5gbhpeYR"
val intent = Intent()
intent.data =
......@@ -127,6 +128,20 @@ object SysUtils {
context.startActivity(intent)
} catch (e: Exception) {
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 {
return
}
scheduleAtFixedRate?.cancel(false)
var failedCount:Int=0
scheduleAtFixedRate = executor.scheduleAtFixedRate({
val context =
if (Build.VERSION.SDK_INT < 24 || Core.user.isUserUnlocked) Core.app else Core.deviceStorage
......@@ -123,13 +124,20 @@ object AuthManager {
)
Timber.d("refreshTokenResult: $refreshTokenResult")
if (refreshTokenResult.isSuccessful()) {
failedCount=0
proxyInstance.profile.token = refreshTokenResult.unwrapData().token
configJson.addProperty("token", proxyInstance.profile.token)
configFile.writeText(configJson.toString())
} else if (refreshTokenResult.code == 1001) {
failedCount=0
throw AuthException(refreshTokenResult.error!!)
} else {
// TODO: error handling
failedCount++;
//连续失败超过3次抛异常
if(failedCount>=3){
failedCount=0
throw AuthException("网络异常")
}
}
}
}
......@@ -137,6 +145,8 @@ object AuthManager {
}, 1, 1, TimeUnit.MINUTES)
}
var loginAuthToken:String = "1"
val jsonType get() = "application/json; charset=utf-8".toMediaTypeOrNull()
inline fun <reified T> postSync(
......@@ -150,12 +160,16 @@ object AuthManager {
authToken?.let {
request.addHeader("Authorization", it)
}
Log.e("postSync","===authToken:"+authToken)
Log.e("postSync","===loginAuthToken:"+loginAuthToken)
val call = okHttpClient.newCall(request.build())
val resultType = object : TypeToken<ApiResult<T>>() {}.type
try {
call.execute().use { response ->
val string = response.body?.string()
println(string)
Log.e("postSync","===url:"+HttpConfig.baseUrl + url)
Log.e("postSync","===result:"+string)
return gson.fromJson(string, resultType)
}
} catch (e: IOException) {
......
......@@ -5,7 +5,7 @@ object HttpConfig {
//app后端
//val baseUrl = "http://10.16.1.98:9002"
val baseUrl = "https://test-cc-tt-api.orangenet.org.cn" //测试
//val baseUrl = "https://cc-tt-front.srccwl.com" //生产
// val baseUrl = "https://cc-tt-front.srccwl.com" //生产
/**
......@@ -13,7 +13,7 @@ object HttpConfig {
*/
val UI_MAIN_URL = "https://test-cc-tt-front.orangenet.org.cn/#" //测试
//val UI_MAIN_URL = "http://10.3.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