From 14b15539a8fbbce1145197993e0c062400174ef1 Mon Sep 17 00:00:00 2001
From: zuoxiao <lf_zuo@163.com>
Date: 星期四, 26 六月 2025 16:51:12 +0800
Subject: [PATCH] docs(baselibrary): 更新 NativeNfcReadHelper 类文档
---
generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt | 67 +++++++++++++++++++--------------
1 files changed, 38 insertions(+), 29 deletions(-)
diff --git a/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt b/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt
index 8837b74..4e4827c 100644
--- a/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt
+++ b/generallibrary/src/main/java/com/dayu/general/net/ApiManager.kt
@@ -1,14 +1,10 @@
-package com.dayu.qiheonlinelibrary.net
+package com.dayu.general.net
import android.content.Context
import android.util.Log
+import com.dayu.baselibrary.business.BusinessProvider
import com.dayu.baselibrary.net.subscribers.ProgressSubscriber
import com.dayu.baselibrary.net.subscribers.SubscriberListener
-import com.dayu.general.net.ApiService
-import com.dayu.general.net.BaseResponse
-import com.dayu.general.net.MyJsonParser
-import com.dayu.general.net.NetConstans
-import com.dayu.general.net.RetrofitClient
import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
import io.reactivex.rxjava3.functions.Function
import io.reactivex.rxjava3.schedulers.Schedulers
@@ -27,18 +23,10 @@
@Volatile
private var apiManager: ApiManager? = null
- fun init() {
- if (apiManager == null) {
- synchronized(ApiManager::class) {
- if (apiManager == null) {
- apiManager = ApiManager()
- }
- }
- }
- }
-
fun getInstance(): ApiManager {
- return apiManager ?: throw IllegalStateException("ApiManager not initialized")
+ return apiManager ?: synchronized(this) {
+ apiManager ?: ApiManager().also { apiManager = it }
+ }
}
}
@@ -132,14 +120,14 @@
val mySubscriber = ProgressSubscriber<BaseResponse<T>>(context, hideLoading, listener);
observable
- ?.subscribeOn(Schedulers.io())
- ?.map(mapResponse(tClass))
- ?.unsubscribeOn(Schedulers.newThread())
- ?.observeOn(AndroidSchedulers.mainThread())
- ?.subscribe(mySubscriber)
+ .subscribeOn(Schedulers.io())
+ .map(mapResponse(context, tClass))
+ .unsubscribeOn(Schedulers.newThread())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(mySubscriber)
}
- private fun <T> mapResponse(tClass: Class<T>): Function<Any, BaseResponse<T>> {
+ private fun <T> mapResponse(context: Context, tClass: Class<T>): Function<Any, BaseResponse<T>> {
return Function { rawResponse ->
when (rawResponse) {
is BaseResponse<*> -> {
@@ -149,12 +137,13 @@
val response = BaseResponse<T>().apply {
code = temp.code
msg = temp.msg ?: ""
+ success = temp.success
}
// 澶勭悊token澶辨晥鐨勬儏鍐�
if (temp.code == NetConstans.TOKEN_INVALID) {
// 鍙互鍦ㄨ繖閲屾坊鍔犻噸瀹氬悜鍒扮櫥褰曢〉闈㈢殑閫昏緫
- // redirectToLogin()
+ BusinessProvider.getBusinessProvider().startLoginNavigotor.navigateToLogin(context)
return@Function response
}
@@ -170,13 +159,33 @@
}
is List<*> -> {
try {
- @Suppress("UNCHECKED_CAST")
- response.content = MyJsonParser.getListByJson(
- MyJsonParser.getJsonbyList(content),
- tClass
- ) as T
+ // 鐩存帴澶勭悊List绫诲瀷鐨刢ontent锛屼笉闇�瑕侀噸鏂拌В鏋�
+ when {
+ // 濡傛灉鐩爣绫诲瀷鏄疞ist鐨勫瓙绫伙紙濡侾aymentMethodListResponse锛夛紝鐩存帴杞崲
+ List::class.java.isAssignableFrom(tClass) -> {
+ @Suppress("UNCHECKED_CAST")
+ response.content = content as T
+ }
+ // 濡傛灉content鏄疢ap鍒楄〃锛屽皾璇曡浆鎹负鐩爣瀵硅薄鍒楄〃
+ content.isNotEmpty() && content[0] is Map<*, *> -> {
+ val jsonData = MyJsonParser.getJsonbyList(content)
+ @Suppress("UNCHECKED_CAST")
+ response.content = MyJsonParser.getListByJson(jsonData, tClass) as T
+ }
+ else -> {
+ @Suppress("UNCHECKED_CAST")
+ response.content = content as T
+ }
+ }
} catch (e: Exception) {
Log.e(TAG, "Error parsing list content", e)
+ // 濡傛灉瑙f瀽澶辫触锛屽皾璇曠洿鎺ヨ浆鎹�
+ try {
+ @Suppress("UNCHECKED_CAST")
+ response.content = content as T
+ } catch (e2: Exception) {
+ Log.e(TAG, "Failed to cast content directly", e2)
+ }
}
}
is Int, is String, is Boolean -> {
--
Gitblit v1.8.0