From 13b3e727a6c252887cea8aa6b0856c967f036731 Mon Sep 17 00:00:00 2001
From: zuoxiao <470321431@qq.com>
Date: 星期五, 20 九月 2024 10:55:39 +0800
Subject: [PATCH] 登录功能、地图功能、首页table

---
 app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java |  125 +++++++++++++++++++++++++++--------------
 1 files changed, 81 insertions(+), 44 deletions(-)

diff --git a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
index 58a4dd0..9bf38c8 100644
--- a/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
+++ b/app/src/main/java/com/dayu/pipirrapp/net/ApiManager.java
@@ -3,8 +3,10 @@
 import android.content.Context;
 import android.util.Log;
 
-import com.dayu.pipirrapp.bean.WeatherResponse;
+import com.dayu.pipirrapp.bean.net.CodeResult;
+import com.dayu.pipirrapp.bean.net.WeatherResponse;
 import com.dayu.pipirrapp.net.subscribers.BaseProgressSubscriber;
+import com.dayu.pipirrapp.net.subscribers.CodeListener;
 import com.dayu.pipirrapp.net.subscribers.ProgressSubscriber;
 import com.dayu.pipirrapp.net.subscribers.SubscriberListener;
 import com.dayu.pipirrapp.utils.MapJpgUtils;
@@ -72,6 +74,10 @@
         request(context, false, path, false, tClass, params, listener);
     }
 
+    public <T> void requestGet(final Context context, final String path, final Class<T> tClass, final Map<String, Object> params, final SubscriberListener listener) {
+        request(context, false, path, true, tClass, params, listener);
+    }
+
     /**
      * 鍙戦�佽姹�
      *
@@ -111,33 +117,16 @@
                             response.setCode(tem.getCode());
                             response.setMsg(tem.getMsg());
 
-                            if (tClass != null && tem.getContent() instanceof Map) {
-                                try {
-//                                    response.setData(MyJsonParser.getBeanFromMap((Map<String, Object>) tem.getData(), tClass));
-                                    String jsonData = MyJsonParser.getJsontoMap((Map) tem.getContent());
-                                    response.setContent(MyJsonParser.getBeanFromJson(jsonData, tClass));
-                                } catch (Exception e) {
-                                    e.printStackTrace();
-                                }
-                            } else if (tClass != null && tem.getContent() instanceof List) {
-                                try {
-                                    response.setContent((T) MyJsonParser.getListByJson(MyJsonParser.getJsonbyList((List) tem.getContent()), tClass));
-                                } catch (Exception e) {
-                                    e.printStackTrace();
-                                }
-                            } else if (tClass != null && tem.getContent() instanceof Integer) {
-                                response.setContent((T) tem.getContent());
-                            }
-                            if (tClass != null && tClass.getName() instanceof String && tem.getContent() instanceof String) {
-                                try {
+                            if (tClass != null) {
+                                if (tem.getContent() instanceof Map) {
+                                    response.setContent(parseMapContent(tem.getContent(), tClass));
+                                } else if (tem.getContent() instanceof List) {
+                                    response.setContent(parseListContent(tem.getContent(), tClass));
+                                } else if (tem.getContent() instanceof Integer || tem.getContent() instanceof String) {
                                     response.setContent((T) tem.getContent());
-                                } catch (Exception e) {
-                                    e.printStackTrace();
                                 }
                             }
                             return response;
-
-
                         }
 
                         return null;
@@ -149,6 +138,28 @@
 
     }
 
+
+    // 瑙f瀽 Map 绫诲瀷鐨勬暟鎹�
+    private <T> T parseMapContent(Object content, Class<T> tClass) {
+        try {
+            String jsonData = MyJsonParser.getJsontoMap((Map<String, Object>) content);
+            return MyJsonParser.getBeanFromJson(jsonData, tClass);
+        } catch (Exception e) {
+            Log.e(TAG, "Error parsing map content", e);
+            return null;
+        }
+    }
+
+    // 瑙f瀽 List 绫诲瀷鐨勬暟鎹�
+    private <T> T parseListContent(Object content, Class<T> tClass) {
+        try {
+            String jsonData = MyJsonParser.getJsonbyList((List<?>) content);
+            return (T) MyJsonParser.getListByJson(jsonData, tClass);
+        } catch (Exception e) {
+            Log.e(TAG, "Error parsing list content", e);
+            return null;
+        }
+    }
 
     /**
      * 鑾峰彇澶╂皵
@@ -169,30 +180,56 @@
     }
 
 
-    public void donwLoadTile(Context context, String urlPath) {
+    /**
+     * 鑾峰彇楠岃瘉鐮�
+     * @param params
+     * @param listener
+     * @param <T>
+     */
+    public <T> void getCode( Map<String, Object> params, CodeListener listener) {
+        Observable observable;
+        observable = apiService.getCode(params);
+        observable.subscribeOn(Schedulers.io())
+                .unsubscribeOn(Schedulers.newThread())
+                .observeOn(AndroidSchedulers.mainThread())
+                .subscribe(responseBody -> {
+                    listener.onNext((CodeResult) responseBody);
+                }, throwable -> {
+                    listener.error((Throwable) throwable);
+                });
+    }
+
+
+    /**
+     * 涓嬭浇鍦板浘鐡︾墖
+     *
+     * @param urlPath
+     */
+    public void donwLoadTile(String urlPath) {
         Observable<ResponseBody> observable;
         observable = apiService.downloadTile(urlPath);
 
 
-        compositeDisposable.add(
-                observable
-                        .subscribeOn(Schedulers.io())  // 缃戠粶璇锋眰鍦� I/O 绾跨▼涓繘琛�
-                        .observeOn(Schedulers.io())    // 鍥炶皟澶勭悊涔熷湪 I/O 绾跨▼
-                        .subscribe(
-                                responseBody -> {
-                                    boolean success = false;
-                                    if (!MapJpgUtils.getInsatance(context).isHasFiles(urlPath)) {
-                                        success = MapJpgUtils.getInsatance(context).saveTileToCache(urlPath, responseBody);
-                                    }
-                                    if (success) {
-                                        Log.d(TAG, "Download success for tile: " + urlPath);
-                                    } else {
-                                        Log.e(TAG, "Failed to save tile to disk: " + urlPath);
-                                    }
-                                },
-                                throwable -> Log.e(TAG, "Download failed for tile: " + urlPath)
-                        )
-        );
+//        compositeDisposable.add(
+        observable
+                .subscribeOn(Schedulers.io())  // 缃戠粶璇锋眰鍦� I/O 绾跨▼涓繘琛�
+                .observeOn(Schedulers.io())    // 鍥炶皟澶勭悊涔熷湪 I/O 绾跨▼
+                .subscribe(
+                        responseBody -> {
+
+                            boolean success = false;
+                            if (!MapJpgUtils.getInsatance().isHasFiles(urlPath)) {
+                                success = MapJpgUtils.getInsatance().saveTileToCache(urlPath, responseBody);
+                            }
+                            if (success) {
+                                Log.d(TAG, "Download success for tile: " + urlPath);
+                            } else {
+                                Log.e(TAG, "Failed to save tile to disk: " + urlPath);
+                            }
+                        },
+                        throwable -> Log.e(TAG, "Download failed for tile: " + urlPath)
+                );
+//        );
 
 
     }

--
Gitblit v1.8.0