From 0635d28fe9c8cfe59eda6b077abf9abf665147e0 Mon Sep 17 00:00:00 2001
From: 18034727885 <973609879@qq.com>
Date: 星期五, 04 九月 2026 13:41:26 +0800
Subject: [PATCH] 适配Android16 升级版本号
---
app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaWebView.kt | 2
rxnetty/build.gradle | 7 +
app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaListener.kt | 2
xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/StringKt.kt | 14 +++
app/src/main/java/com/igo/user/ui/crosscity/ChooseLineActivity.kt | 19 ++--
app/src/main/java/com/igo/user/ui/login/ForgetActivity.kt | 7 -
app/src/main/java/com/igo/user/ui/login/LoginActivity.kt | 3
app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisual.kt | 4
xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/BaseActivity.kt | 9 ++
app/src/main/java/com/igo/user/ui/mine/ModifyPhoneActivity.kt | 5 -
app/src/main/java/com/igo/user/utils/recaptcha/MainActivityViewModel.kt | 2
xldutils-kotlin/src/main/java/cn/sinata/xldutils/view/TitleBar.kt | 2
umeng_sdk/build.gradle | 4
app/src/main/java/com/igo/user/ui/trip/MapTripFragment.kt | 4
rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java | 7 +
app/src/main/java/com/igo/user/ui/trip/TripActivity.kt | 36 +++++---
app/src/main/java/com/igo/user/ui/trip/OrderDetailActivity.kt | 14 +-
app/src/main/java/com/igo/user/ui/login/BindPhoneActivity.kt | 7 -
app/build.gradle | 17 ++--
app/src/main/java/com/igo/user/ui/mine/VerifyPhoneForUpdatePwdActivity.kt | 2
app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualException.kt | 2
xldutils-kotlin/build.gradle | 4
app/src/main/java/com/igo/user/ui/trip/OrderDetailWithMapActivity.kt | 3
app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaJavascriptChannel.kt | 2
app/src/main/java/com/igo/user/ui/crosscity/CrossCityFragment.kt | 8 --
app/src/main/java/com/igo/user/ui/logistics/LogisticsFragment.kt | 2
download/build.gradle | 4
xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/Extends.kt | 9 +-
xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/UtilKt.kt | 2
app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualFragment.kt | 8 +-
xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/SelectPhotoDialog.kt | 4
31 files changed, 110 insertions(+), 105 deletions(-)
diff --git a/app/build.gradle b/app/build.gradle
index a38a5aa..67c33f2 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -4,8 +4,8 @@
apply plugin: 'com.google.android.libraries.mapsplatform.secrets-gradle-plugin'
android {
- compileSdkVersion 35
- buildToolsVersion "33.0.3"
+ compileSdkVersion 36
+ buildToolsVersion "36.0.0"
namespace "com.igo.user"
//签名
signingConfigs {
@@ -20,9 +20,9 @@
defaultConfig {
applicationId "com.gopost.user"
minSdkVersion 23
- targetSdkVersion 35
- versionCode 27
- versionName "1.27"
+ targetSdkVersion 36
+ versionCode 28
+ versionName "1.28"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
@@ -146,7 +146,6 @@
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
- api "androidx.appcompat:appcompat:$support_version"
implementation 'androidx.core:core-ktx:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation("androidx.lifecycle:lifecycle-viewmodel-ktx:2.6.1")
@@ -158,7 +157,7 @@
// androidTestImplementation 'androidx.test.ext:junit:1.1.1'
// androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation project(path: ':xldutils-kotlin')
- implementation 'com.google.android.material:material:1.3.0-alpha01'
+ implementation 'com.google.android.material:material:1.10.0'
implementation project(path: ':rxnetty')
// implementation project(path: ':umeng_sdk')
implementation 'com.youth.banner:banner:2.0.11'
@@ -169,7 +168,7 @@
implementation 'cn.bingoogolapple:bga-qrcode-zxing:1.3.7'//二维码
implementation 'com.haibin:calendarview:3.6.9'//日历
implementation project(path: ':download')
- implementation 'com.google.android.libraries.places:places:2.7.0'
+ implementation 'com.google.android.libraries.places:places:3.0.0'
implementation 'com.facebook.android:facebook-share:12.2.0' //脸书分享
implementation 'com.facebook.android:facebook-login:12.2.0' //脸书登录
implementation 'com.twitter.sdk.android:twitter:3.1.1'
@@ -179,7 +178,7 @@
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs_nio:2.0.3'
//谷歌地图和乘客端sdk
- implementation 'com.google.android.gms:play-services-maps:18.1.0'
+ implementation 'com.google.android.gms:play-services-maps:20.0.0'
implementation 'com.google.android.libraries.mapsplatform.transportation:transportation-consumer:3.0.0'
diff --git a/app/src/main/java/com/igo/user/ui/crosscity/ChooseLineActivity.kt b/app/src/main/java/com/igo/user/ui/crosscity/ChooseLineActivity.kt
index 16761bd..bc2ad06 100644
--- a/app/src/main/java/com/igo/user/ui/crosscity/ChooseLineActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/crosscity/ChooseLineActivity.kt
@@ -5,6 +5,8 @@
import android.content.Context
import android.content.Intent
import android.content.IntentFilter
+import android.os.Build
+import androidx.localbroadcastmanager.content.LocalBroadcastManager
import androidx.recyclerview.widget.LinearLayoutManager
import cn.sinata.xldutils.view.SwipeRefreshRecyclerLayout
import com.igo.user.R
@@ -29,7 +31,11 @@
private val isScan by lazy { //是否扫码下单
intent.getBooleanExtra("isScan",false)
}
- private var receiver: BroadcastReceiver? = null
+ private var receiver: BroadcastReceiver = object :BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ finish()
+ }
+ }
override fun initClick() {
adapter.setOnItemClickListener { view, position ->
@@ -51,17 +57,12 @@
lvLine.setLayoutManager(LinearLayoutManager(this))
lvLine.setMode(SwipeRefreshRecyclerLayout.Mode.None)
lvLine.setAdapter(adapter)
- receiver = object :BroadcastReceiver() {
- override fun onReceive(context: Context?, intent: Intent?) {
- finish()
- }
- }
- registerReceiver(receiver, IntentFilter("crossOrderSuccess"))
+
+ LocalBroadcastManager.getInstance(this).registerReceiver(receiver, IntentFilter("crossOrderSuccess"))
}
override fun onDestroy() {
+ LocalBroadcastManager.getInstance(this).unregisterReceiver(receiver)
super.onDestroy()
- if (receiver!=null)
- unregisterReceiver(receiver)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/igo/user/ui/crosscity/CrossCityFragment.kt b/app/src/main/java/com/igo/user/ui/crosscity/CrossCityFragment.kt
index 80f962d..e6327e0 100644
--- a/app/src/main/java/com/igo/user/ui/crosscity/CrossCityFragment.kt
+++ b/app/src/main/java/com/igo/user/ui/crosscity/CrossCityFragment.kt
@@ -11,16 +11,8 @@
private var endId:Int? = null //到达站点
private var startCity = ""
private var endCity = ""
- private var receiver:BroadcastReceiver? = null
override fun onFirstVisibleToUser() {
- }
-
-
- override fun onDestroy() {
- super.onDestroy()
- if (receiver!=null)
- activity?.unregisterReceiver(receiver)
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/igo/user/ui/login/BindPhoneActivity.kt b/app/src/main/java/com/igo/user/ui/login/BindPhoneActivity.kt
index 53eecfe..fca37dd 100644
--- a/app/src/main/java/com/igo/user/ui/login/BindPhoneActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/login/BindPhoneActivity.kt
@@ -15,19 +15,14 @@
import cn.sinata.xldutils.utils.optInt
import cn.sinata.xldutils.utils.optString
import cn.sinata.xldutils.utils.showAllowingStateLoss
-import com.google.recaptcha.sample.RecaptchaVisual
-import com.google.recaptcha.sample.RecaptchaVisualException
+import com.igo.user.utils.recaptcha.RecaptchaVisualException
import com.igo.user.R
-import com.igo.user.dialog.ImageCodeDialog
import com.igo.user.dialog.SingleWheelDialog
import com.igo.user.interfaces.StringCallback
import com.igo.user.network.HttpManager
import com.igo.user.network.request
import com.igo.user.ui.TransparentStatusBarActivity
-import com.igo.user.ui.login.LoginActivity.Companion.BASE_URL
-import com.igo.user.ui.login.LoginActivity.Companion.WEB_SITE_KEY
import com.igo.user.utils.Const
-import com.twitter.sdk.android.core.TwitterAuthConfig
import kotlinx.coroutines.launch
import org.jetbrains.anko.find
import org.jetbrains.anko.startActivityForResult
diff --git a/app/src/main/java/com/igo/user/ui/login/ForgetActivity.kt b/app/src/main/java/com/igo/user/ui/login/ForgetActivity.kt
index 5b1525a..09d6a5c 100644
--- a/app/src/main/java/com/igo/user/ui/login/ForgetActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/login/ForgetActivity.kt
@@ -7,20 +7,15 @@
import android.widget.EditText
import android.widget.TextView
import androidx.activity.viewModels
-import androidx.core.os.bundleOf
import androidx.lifecycle.lifecycleScope
import cn.sinata.xldutils.utils.LengthFilter
import cn.sinata.xldutils.utils.isValidPhone
import cn.sinata.xldutils.utils.myToast
-import com.google.recaptcha.sample.RecaptchaVisual
-import com.google.recaptcha.sample.RecaptchaVisualException
+import com.igo.user.utils.recaptcha.RecaptchaVisualException
import com.igo.user.R
-import com.igo.user.dialog.ImageCodeDialog
import com.igo.user.network.HttpManager
import com.igo.user.network.request
import com.igo.user.ui.TransparentStatusBarActivity
-import com.igo.user.ui.login.LoginActivity.Companion.BASE_URL
-import com.igo.user.ui.login.LoginActivity.Companion.WEB_SITE_KEY
import com.igo.user.utils.DisableSpaceInputFilter
import kotlinx.coroutines.launch
import org.jetbrains.anko.find
diff --git a/app/src/main/java/com/igo/user/ui/login/LoginActivity.kt b/app/src/main/java/com/igo/user/ui/login/LoginActivity.kt
index 377d1b5..f6c8363 100644
--- a/app/src/main/java/com/igo/user/ui/login/LoginActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/login/LoginActivity.kt
@@ -7,7 +7,6 @@
import MainActivityViewModel
import android.app.Activity
import android.content.Intent
-import android.net.Uri
import android.os.CountDownTimer
import android.util.Log
import android.view.View
@@ -42,7 +41,7 @@
import com.google.android.gms.common.ConnectionResult
import com.google.android.gms.common.GoogleApiAvailability
import com.google.android.gms.recaptcha.RecaptchaClient
-import com.google.recaptcha.sample.RecaptchaVisualException
+import com.igo.user.utils.recaptcha.RecaptchaVisualException
import com.igo.user.BuildConfig
import com.igo.user.R
import com.igo.user.dialog.SingleWheelDialog
diff --git a/app/src/main/java/com/igo/user/ui/logistics/LogisticsFragment.kt b/app/src/main/java/com/igo/user/ui/logistics/LogisticsFragment.kt
index 30706e1..dc9f7c4 100644
--- a/app/src/main/java/com/igo/user/ui/logistics/LogisticsFragment.kt
+++ b/app/src/main/java/com/igo/user/ui/logistics/LogisticsFragment.kt
@@ -301,7 +301,7 @@
)
uiSettings.isMyLocationButtonEnabled = false
setOnMyLocationChangeListener {
- Log.e(Const.Tag, "物流:lat:" + it.latitude + ",lon:" + it.longitude)
+ Log.e(Const.Tag, "当前定位:lat:" + it.latitude + ",lon:" + it.longitude)
IGoApplication.setLocation(it.latitude, it.longitude)
// IGoApplication.address = it.address
// IGoApplication.cityCode = it.extras.getString("adcode")?:""
diff --git a/app/src/main/java/com/igo/user/ui/mine/ModifyPhoneActivity.kt b/app/src/main/java/com/igo/user/ui/mine/ModifyPhoneActivity.kt
index 74cbc26..887190a 100644
--- a/app/src/main/java/com/igo/user/ui/mine/ModifyPhoneActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/mine/ModifyPhoneActivity.kt
@@ -12,8 +12,7 @@
import cn.sinata.xldutils.utils.isValidPhone
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.utils.showAllowingStateLoss
-import com.google.recaptcha.sample.RecaptchaVisual
-import com.google.recaptcha.sample.RecaptchaVisualException
+import com.igo.user.utils.recaptcha.RecaptchaVisualException
import com.igo.user.IGoApplication.Companion.phone
import com.igo.user.R
import com.igo.user.dialog.SingleWheelDialog
@@ -23,8 +22,6 @@
import com.igo.user.network.request
import com.igo.user.ui.TransparentStatusBarActivity
import com.igo.user.ui.login.AreaCodeActivity
-import com.igo.user.ui.login.LoginActivity.Companion.BASE_URL
-import com.igo.user.ui.login.LoginActivity.Companion.WEB_SITE_KEY
import kotlinx.coroutines.launch
import org.jetbrains.anko.find
import org.jetbrains.anko.sdk27.coroutines.onClick
diff --git a/app/src/main/java/com/igo/user/ui/mine/VerifyPhoneForUpdatePwdActivity.kt b/app/src/main/java/com/igo/user/ui/mine/VerifyPhoneForUpdatePwdActivity.kt
index 2a3b0f4..2174296 100644
--- a/app/src/main/java/com/igo/user/ui/mine/VerifyPhoneForUpdatePwdActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/mine/VerifyPhoneForUpdatePwdActivity.kt
@@ -9,7 +9,7 @@
import cn.sinata.xldutils.utils.hidePhone
import cn.sinata.xldutils.utils.myToast
import cn.sinata.xldutils.utils.optInt
-import com.google.recaptcha.sample.RecaptchaVisualException
+import com.igo.user.utils.recaptcha.RecaptchaVisualException
import com.igo.user.IGoApplication
import com.igo.user.R
import com.igo.user.extension.extIsEmptyOrNull
diff --git a/app/src/main/java/com/igo/user/ui/trip/MapTripFragment.kt b/app/src/main/java/com/igo/user/ui/trip/MapTripFragment.kt
index f45e106..3af0891 100644
--- a/app/src/main/java/com/igo/user/ui/trip/MapTripFragment.kt
+++ b/app/src/main/java/com/igo/user/ui/trip/MapTripFragment.kt
@@ -479,7 +479,7 @@
isMyLocationEnabled = true
uiSettings.isMyLocationButtonEnabled = false
setOnMyLocationChangeListener {
- Log.e(Const.Tag, "出租车:lat:" + it.latitude + ",lon:" + it.longitude)
+ Log.e(Const.Tag, "当前定位:lat:" + it.latitude + ",lon:" + it.longitude)
IGoApplication.setLocation(it.latitude, it.longitude)
// IGoApplication.address = it.address
// IGoApplication.cityCode = it.extras.getString("adcode")?:""
@@ -663,7 +663,7 @@
hadLoopRefresh = true
viewLifecycleOwner.lifecycleScope.launch {
while (true) {
- delay(5000)
+ delay(10_000)
getDriverNum { _, data ->
val i = data?.optInt("number") ?: 0
val t = getString(R.string.当前附近有n辆车可用, i)
diff --git a/app/src/main/java/com/igo/user/ui/trip/OrderDetailActivity.kt b/app/src/main/java/com/igo/user/ui/trip/OrderDetailActivity.kt
index 2219372..0253a71 100644
--- a/app/src/main/java/com/igo/user/ui/trip/OrderDetailActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/trip/OrderDetailActivity.kt
@@ -29,6 +29,8 @@
import cn.sinata.xldutils.utils.optDouble
import cn.sinata.xldutils.utils.optInt
import cn.sinata.xldutils.utils.showAllowingStateLoss
+import cn.sinata.xldutils.utils.urlDecode
+import cn.sinata.xldutils.utils.urlEncode
import cn.sinata.xldutils.visible
import com.facebook.drawee.view.SimpleDraweeView
import com.igo.user.IGoApplication
@@ -417,6 +419,7 @@
tv_pay_offline.gone()
tv_confirm_fee.gone()
cl_driver.visible()
+ tv_action.gone()
tv_action2.gone()
when (order?.state) {
in (1..5) -> {
@@ -442,7 +445,7 @@
title = getString(R.string.支付费用)
if (order?.isFrozen != 2) {
tv_pay_offline.visible() //新增提示文字
- tv_action.visible()
+ //tv_action.visible()
}
tv_title.visible()
tv_action.text = getString(R.string.立即支付)
@@ -470,9 +473,7 @@
tv_tip.invisible()
}
tv_title.hide()
- if (order!!.orderType == TripOrderFragment.TYPE_LOGISTICS) {
- tv_action.visible()
- }
+ tv_action.visible()
tv_action.text = getString(R.string.匿名评价)
titleBar.getRightButton(0)?.visible()
if (order?.isFrozen != 2) {
@@ -524,8 +525,7 @@
val view = layoutInflater.inflate(R.layout.item_score_label, null) as CheckBox
view.text = it
view.isEnabled = false
- if (it in split)
- view.isChecked = true
+ view.isChecked = !split.none { checkItem -> checkItem.equals(it, true) }
fl_label.addView(view)
}
tv_detail.visible()
@@ -841,7 +841,7 @@
// }
override fun onStateChanged(id: Int, type: Int, state: Int) {
- if (id == this.id && type == this.type && order?.state == 6) { //当前是待司机确认费用,需要重新获取订单信息
+ if (id == this.id && type == this.type && (order?.state == 6 || order?.state == 7 || order?.state == 8)) { //当前是待司机确认费用,需要重新获取订单信息
getData()
}
}
diff --git a/app/src/main/java/com/igo/user/ui/trip/OrderDetailWithMapActivity.kt b/app/src/main/java/com/igo/user/ui/trip/OrderDetailWithMapActivity.kt
index 9d82c6d..e248f57 100644
--- a/app/src/main/java/com/igo/user/ui/trip/OrderDetailWithMapActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/trip/OrderDetailWithMapActivity.kt
@@ -204,8 +204,7 @@
val view = layoutInflater.inflate(R.layout.item_score_label, null) as CheckBox
view.text = it
view.isEnabled = false
- if (it in split)
- view.isChecked = true
+ view.isChecked = !split.none { checkItem -> checkItem.equals(it, true) }
fl_label.addView(view)
}
}
diff --git a/app/src/main/java/com/igo/user/ui/trip/TripActivity.kt b/app/src/main/java/com/igo/user/ui/trip/TripActivity.kt
index c8253ea..c7e4517 100644
--- a/app/src/main/java/com/igo/user/ui/trip/TripActivity.kt
+++ b/app/src/main/java/com/igo/user/ui/trip/TripActivity.kt
@@ -71,6 +71,7 @@
import com.igo.user.utils.google.JsonAuthTokenFactory
import com.tbruyelle.rxpermissions2.RxPermissions
import kotlinx.coroutines.Dispatchers
+import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.launch
import org.jetbrains.anko.dip
import org.jetbrains.anko.find
@@ -82,12 +83,22 @@
class TripActivity : BaseActivity(), Handler.Callback,
OrderStateChangeListener {
var aMap: ConsumerGoogleMap? = null
-
+ private val noticeCancelFlow = MutableSharedFlow<Boolean>()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_trip)
initView()
initClick()
+ lifecycleScope.launch(Dispatchers.Main) {
+ repeatOnLifecycle(Lifecycle.State.RESUMED) {
+ noticeCancelFlow.collect {
+ if (noResponseDialog.dialog?.isShowing != true) {
+ noResponseDialog.show(supportFragmentManager, "noResponse")
+ LogHelper.logRecord("显示超时无应答弹窗orderId:${id} orderType:${type}")
+ }
+ }
+ }
+ }
}
private val app by lazy {
@@ -741,17 +752,11 @@
* 超时无应答
*/
fun noResponse(id: Int) {
- if (isFinishing || isDestroyed) {
+ if (isFinishing || isDestroyed || id != this.id) {
return
}
- lifecycleScope.launch(Dispatchers.Main) {
- // 等待生命周期至少达到 RESUMED(即 onResume 之后)
- if (id == this@TripActivity.id && !noResponseDialog.isAdded) {
- repeatOnLifecycle(Lifecycle.State.RESUMED) {
- noResponseDialog.show(supportFragmentManager, "noResponse")
- LogHelper.logRecord("显示超时无应答弹窗orderId:${id} orderType:${type}")
- }
- }
+ lifecycleScope.launch {
+ noticeCancelFlow.emit(true)
}
}
@@ -1093,6 +1098,10 @@
NettyClient.getInstance().checkNettyState()
}
+ override fun finish() {
+ IGoApplication.tripId = ""
+ super.finish()
+ }
override fun onDestroy() {
handler.removeMessages(0)
@@ -1100,15 +1109,14 @@
handler.removeMessages(2)
handler.removeMessages(3)
app.removeTripStateListener(this)
- IGoApplication.tripId = ""
session?.stop()
super.onDestroy()
}
- override fun onBackPressed() {
- if (ll_progress.visibility == View.VISIBLE)
+ override fun onBackPressHandle() {
+ if (ll_progress.isVisible)
ll_progress.gone()
else
- super.onBackPressed()
+ super.onBackPressHandle()
}
}
diff --git a/app/src/main/java/com/igo/user/utils/recaptcha/MainActivityViewModel.kt b/app/src/main/java/com/igo/user/utils/recaptcha/MainActivityViewModel.kt
index 1c21ccd..21801ee 100644
--- a/app/src/main/java/com/igo/user/utils/recaptcha/MainActivityViewModel.kt
+++ b/app/src/main/java/com/igo/user/utils/recaptcha/MainActivityViewModel.kt
@@ -19,7 +19,7 @@
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.viewModelScope
-import com.google.recaptcha.sample.RecaptchaVisualException
+import com.igo.user.utils.recaptcha.RecaptchaVisualException
import kotlinx.coroutines.launch
class MainActivityViewModel(
diff --git a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaJavascriptChannel.kt b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaJavascriptChannel.kt
index b7ecb69..83d963c 100644
--- a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaJavascriptChannel.kt
+++ b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaJavascriptChannel.kt
@@ -1,4 +1,4 @@
-package com.google.recaptcha.sample
+package com.igo.user.utils.recaptcha
import android.webkit.JavascriptInterface
diff --git a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaListener.kt b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaListener.kt
index 260cdac..08b2ff4 100644
--- a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaListener.kt
+++ b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaListener.kt
@@ -1,4 +1,4 @@
-package com.google.recaptcha.sample
+package com.igo.user.utils.recaptcha
interface RecaptchaListener {
fun onLoad()
diff --git a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisual.kt b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisual.kt
index e378104..2dae242 100644
--- a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisual.kt
+++ b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisual.kt
@@ -1,4 +1,4 @@
-package com.google.recaptcha.sample
+package com.igo.user.utils.recaptcha
import androidx.fragment.app.FragmentManager
import java.util.Locale
@@ -15,7 +15,7 @@
fun runCaptcha(): Deferred<String> {
onDone = CompletableDeferred()
- val fragment = RecaptchaVisualFragment.newInstance(siteKey, baseUrl, lang)
+ val fragment = RecaptchaVisualFragment.Companion.newInstance(siteKey, baseUrl, lang)
fragment.configure(this)
fragment.show(fragmentManager, "RecaptchaVisual")
return onDone
diff --git a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualException.kt b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualException.kt
index b52c017..24d1069 100644
--- a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualException.kt
+++ b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualException.kt
@@ -1,4 +1,4 @@
-package com.google.recaptcha.sample
+package com.igo.user.utils.recaptcha
class RecaptchaVisualException : Exception {
constructor() : super()
diff --git a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualFragment.kt b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualFragment.kt
index 1dc5262..0d5a6b3 100644
--- a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualFragment.kt
+++ b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaVisualFragment.kt
@@ -1,4 +1,4 @@
-package com.google.recaptcha.sample
+package com.igo.user.utils.recaptcha
import android.annotation.SuppressLint
import android.app.Dialog
@@ -18,9 +18,9 @@
fun newInstance(siteKey: String, baseUrl: String, lang: String?): RecaptchaVisualFragment {
val f = RecaptchaVisualFragment()
val args = Bundle()
- args.putString(RecaptchaWebView.SITE_KEY, siteKey)
- args.putString(RecaptchaWebView.BASE_URL, baseUrl)
- args.putString(RecaptchaWebView.LANG, lang)
+ args.putString(RecaptchaWebView.Companion.SITE_KEY, siteKey)
+ args.putString(RecaptchaWebView.Companion.BASE_URL, baseUrl)
+ args.putString(RecaptchaWebView.Companion.LANG, lang)
f.arguments = args
return f
}
diff --git a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaWebView.kt b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaWebView.kt
index 520d671..f021872 100644
--- a/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaWebView.kt
+++ b/app/src/main/java/com/igo/user/utils/recaptcha/RecaptchaWebView.kt
@@ -1,4 +1,4 @@
-package com.google.recaptcha.sample
+package com.igo.user.utils.recaptcha
import android.content.Context
import android.os.Bundle
diff --git a/download/build.gradle b/download/build.gradle
index 34f28cb..be0f824 100644
--- a/download/build.gradle
+++ b/download/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 28
+ compileSdkVersion 36
namespace "com.sinata.download"
defaultConfig {
minSdkVersion 16
- targetSdkVersion 28
+ targetSdkVersion 36
}
buildTypes {
diff --git a/rxnetty/build.gradle b/rxnetty/build.gradle
index 42a5ab6..cb73da0 100644
--- a/rxnetty/build.gradle
+++ b/rxnetty/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 35
+ compileSdkVersion 36
namespace "cn.sinata.rxnetty"
defaultConfig {
minSdkVersion 23
- targetSdkVersion 35
+ targetSdkVersion 36
}
@@ -24,8 +24,9 @@
dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')
+ implementation 'com.google.android.material:material:1.10.0'
+ implementation 'androidx.appcompat:appcompat:1.6.1'
api 'io.reactivex:rxnetty:0.4.20'
- api 'androidx.appcompat:appcompat:1.1.0'
api 'io.netty:netty-buffer:4.1.5.Final'
api 'io.netty:netty-handler:4.1.5.Final'
api 'io.reactivex:rxandroid:1.2.1'
diff --git a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java b/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java
index c102ed6..1337c3d 100644
--- a/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java
+++ b/rxnetty/src/main/java/cn/sinata/rxnetty/netStatus/NetStateReceiver.java
@@ -13,6 +13,7 @@
import android.os.Looper;
import androidx.annotation.RequiresApi;
+import androidx.localbroadcastmanager.content.LocalBroadcastManager;
import java.util.ArrayList;
import java.util.List;
@@ -73,7 +74,7 @@
IntentFilter filter = new IntentFilter();
filter.addAction(CUSTOM_ANDROID_NET_CHANGE_ACTION);
filter.addAction(ANDROID_NET_CHANGE_ACTION);
- mAppContext.registerReceiver(getReceiver(), filter);
+ LocalBroadcastManager.getInstance(mAppContext).registerReceiver(getReceiver(), filter);
}
updateNetworkState(mAppContext);
}
@@ -110,7 +111,7 @@
}
if (mBroadcastReceiver != null) {
try {
- appContext.unregisterReceiver(mBroadcastReceiver);
+ LocalBroadcastManager.getInstance(appContext).unregisterReceiver(mBroadcastReceiver);
} catch (Exception e) {
e.printStackTrace();
}
@@ -219,7 +220,7 @@
filter.addAction(ANDROID_NET_CHANGE_ACTION);
try {
// 使用应用上下文注册广播,避免持有服务实例 由AI生成
- context.getApplicationContext().registerReceiver(getReceiver(), filter);
+ LocalBroadcastManager.getInstance(context.getApplicationContext()).registerReceiver(getReceiver(), filter);
} catch (Exception e) {
// 注册失败时输出异常,避免影响长连接服务启动 由AI生成
e.printStackTrace();
diff --git a/umeng_sdk/build.gradle b/umeng_sdk/build.gradle
index bfd9464..9bcf908 100644
--- a/umeng_sdk/build.gradle
+++ b/umeng_sdk/build.gradle
@@ -1,12 +1,12 @@
apply plugin: 'com.android.library'
android {
- compileSdkVersion 29
+ compileSdkVersion 36
namespace "com.umeng.sdk"
defaultConfig {
minSdkVersion 19
- targetSdkVersion 28
+ targetSdkVersion 36
}
buildTypes {
release {
diff --git a/xldutils-kotlin/build.gradle b/xldutils-kotlin/build.gradle
index 48ff6d7..720657e 100644
--- a/xldutils-kotlin/build.gradle
+++ b/xldutils-kotlin/build.gradle
@@ -2,12 +2,12 @@
apply plugin: 'kotlin-android'
android {
- compileSdkVersion 33
+ compileSdkVersion 36
namespace "cn.sinata.xldutils"
defaultConfig {
minSdkVersion 21
- targetSdkVersion 29
+ targetSdkVersion 36
}
buildTypes {
release {
diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/BaseActivity.kt b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/BaseActivity.kt
index 95b8df9..3254589 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/BaseActivity.kt
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/BaseActivity.kt
@@ -12,6 +12,7 @@
import android.view.Window
import android.view.inputmethod.InputMethodManager
import android.widget.EditText
+import androidx.activity.OnBackPressedCallback
import androidx.appcompat.app.AppCompatActivity
import androidx.localbroadcastmanager.content.LocalBroadcastManager
import cn.sinata.xldutils.R
@@ -67,8 +68,16 @@
closeSelfBroadcastReceiver,
IntentFilter(ACTION_CLOSE_ALL)
)
+ onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(true) {
+ override fun handleOnBackPressed() {
+ onBackPressHandle()
+ }
+ })
}
+ protected open fun onBackPressHandle() {
+ finish()
+ }
override fun onRequestPermissionsResult(
requestCode: Int,
permissions: Array<out String>,
diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/SelectPhotoDialog.kt b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/SelectPhotoDialog.kt
index 301e1d5..69b0e8d 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/SelectPhotoDialog.kt
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/activity/SelectPhotoDialog.kt
@@ -105,7 +105,7 @@
// }
//取消
find<TextView>(R.id.tv_cancel).onClick {
- onBackPressed()
+ onBackPressHandle()
}
}
@@ -137,7 +137,7 @@
val intent = Intent()
intent.putExtra(PATH, tempFile!!.absolutePath)
setResult(RESULT_OK, intent)
- onBackPressed()
+ onBackPressHandle()
overridePendingTransition(0, 0)
}
}
diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/Extends.kt b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/Extends.kt
index 3682390..dcb32b6 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/Extends.kt
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/Extends.kt
@@ -1,7 +1,6 @@
package cn.sinata.xldutils.utils
import android.content.Context
-import android.view.Gravity
import android.view.LayoutInflater
import android.widget.TextView
import android.widget.Toast
@@ -19,12 +18,12 @@
ft.commitAllowingStateLoss()
}
-fun Fragment.myToast(text: CharSequence, longTime:Boolean=false) = activity?.myToast(text,longTime)
+fun Fragment.myToast(text: CharSequence, longTime: Boolean = false) = activity?.myToast(text, longTime)
-fun Context.myToast(message: CharSequence,longTime:Boolean=false) {
+fun Context.myToast(message: CharSequence, longTime: Boolean = false) {
val toast = Toast(this)
- toast.duration = if (longTime)Toast.LENGTH_LONG else Toast.LENGTH_SHORT
- toast.setGravity(Gravity.CENTER, 0, 0)
+ toast.duration = if (longTime) Toast.LENGTH_LONG else Toast.LENGTH_SHORT
+// toast.setGravity(Gravity.CENTER, 0, 0)
val toastLayout = LayoutInflater.from(this).inflate(R.layout.layout_center_toast, null)
val txtToast: TextView = toastLayout.findViewById(R.id.txt_toast)
txtToast.text = message
diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/StringKt.kt b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/StringKt.kt
index 268e39e..3725074 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/StringKt.kt
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/StringKt.kt
@@ -42,14 +42,24 @@
* urlEncode
*/
fun String?.urlEncode(): String {
- return if (isNullOrEmpty()) "" else URLEncoder.encode(this, "utf-8")
+ return if (isNullOrEmpty()) "" else try {
+ URLEncoder.encode(this, "utf-8")
+ }catch (e: Exception){
+ e.printStackTrace()
+ this
+ }
}
/**
* urlDecode
*/
fun String?.urlDecode(): String {
- return if (isNullOrEmpty()) "" else URLDecoder.decode(this, "utf-8")
+ return if (isNullOrEmpty()) "" else try {
+ URLDecoder.decode(this, "utf-8")
+ }catch (e: Exception){
+ e.printStackTrace()
+ this
+ }
}
/**
diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/UtilKt.kt b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/UtilKt.kt
index ae93d75..51f511e 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/UtilKt.kt
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/utils/UtilKt.kt
@@ -144,7 +144,7 @@
return try {
val manager = this.packageManager
val info = manager.getPackageInfo(this.packageName, 0)
- info.versionName
+ info.versionName!!
} catch (e: Exception) {
e.printStackTrace()
"--"
diff --git a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/view/TitleBar.kt b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/view/TitleBar.kt
index 50d99ab..51d157c 100644
--- a/xldutils-kotlin/src/main/java/cn/sinata/xldutils/view/TitleBar.kt
+++ b/xldutils-kotlin/src/main/java/cn/sinata/xldutils/view/TitleBar.kt
@@ -86,7 +86,7 @@
titleView.backgroundDrawable = null
//默认左键点击关闭页面
leftView.setOnClickListener {
- (context as Activity).onBackPressed()
+ (context as Activity).finish()
}
}
--
Gitblit v1.7.1