Browse Source

1:”干货集中营“的API可以调通,是我的方法写错了,现在可以用了,但是还是有bug.

guiying712 8 years ago
parent
commit
b4dfe022ab

+ 11 - 7
app/src/main/java/com/guiying/androidmodulepattern/MyApplication.java

@@ -16,19 +16,23 @@ import com.orhanobut.logger.Logger;
 @Modules({"app", "girls", "news"})
 public class MyApplication extends BaseApplication {
 
-    String GAN_HUO_API = "http://gank.io/";
 
     @Override
     public void onCreate() {
         super.onCreate();
+        login();
+    }
+
+    /**
+     * 在这里模拟登陆,然后拿到sessionId或者Token
+     * 这样就能够在组件请求接口了
+     */
+    private void login() {
         HttpClient client = new HttpClient.Builder()
-                .baseUrl(GAN_HUO_API)
-                .url("api/data")
-                .params("type", "福利")
-                .params("count", String.valueOf(20))
-                .params("page", String.valueOf(1))
+                .baseUrl("http://gank.io/api/data/")
+                .url("福利/10/1")
                 .build();
-        client.post(new OnResultListener<String>() {
+        client.get(new OnResultListener<String>() {
 
             @Override
             public void onSuccess(String result) {

+ 3 - 3
common/src/main/AndroidManifest.xml

@@ -30,9 +30,9 @@
     <uses-feature android:name="android.hardware.camera.autofocus" />
 
     <application>
-        <!--<meta-data-->
-        <!--android:name="com.common.loader.OkHttpGlideModule"-->
-        <!--android:value="GlideModule" />-->
+        <meta-data
+            android:name="com.guiying.common.glide.OkHttpGlideModule"
+            android:value="GlideModule" />
 
     </application>
 

+ 16 - 1
common/src/main/java/com/guiying/common/glide/OkHttpGlideModule.java

@@ -4,6 +4,10 @@ import android.content.Context;
 
 import com.bumptech.glide.Glide;
 import com.bumptech.glide.GlideBuilder;
+import com.bumptech.glide.load.DecodeFormat;
+import com.bumptech.glide.load.engine.bitmap_recycle.LruBitmapPool;
+import com.bumptech.glide.load.engine.cache.LruResourceCache;
+import com.bumptech.glide.load.engine.cache.MemorySizeCalculator;
 import com.bumptech.glide.module.GlideModule;
 
 /**
@@ -18,9 +22,20 @@ import com.bumptech.glide.module.GlideModule;
  * </p>
  */
 public class OkHttpGlideModule implements GlideModule {
+
     @Override
     public void applyOptions(Context context, GlideBuilder builder) {
-        // Do nothing.
+        builder.setDecodeFormat(DecodeFormat.PREFER_ARGB_8888);
+
+        MemorySizeCalculator calculator = new MemorySizeCalculator(context);
+        int defaultMemoryCacheSize = calculator.getMemoryCacheSize();
+        int defaultBitmapPoolSize = calculator.getBitmapPoolSize();
+
+        int customMemoryCacheSize = (int) (1.2 * defaultMemoryCacheSize);
+        int customBitmapPoolSize = (int) (1.2 * defaultBitmapPoolSize);
+
+        builder.setMemoryCache(new LruResourceCache(customMemoryCacheSize));
+        builder.setBitmapPool(new LruBitmapPool(customBitmapPoolSize));
     }
 
     @Override

+ 0 - 1
common/src/main/java/com/guiying/common/http/ApiService.java

@@ -24,7 +24,6 @@ import retrofit2.http.Url;
  */
 public interface ApiService {
 
-
     @GET
     Call<ResponseBody> executeGet(@Url String url);
 

+ 0 - 1
common/src/main/java/com/guiying/common/http/HttpClient.java

@@ -106,7 +106,6 @@ public class HttpClient {
         }
     }
 
-
     public void post(final OnResultListener onResultListener) {
         Builder builder = mBuilder;
         mCall = retrofit.create(ApiService.class)

+ 4 - 1
girls/src/main/java/com/guiying/girls/Constants.java

@@ -5,6 +5,9 @@ package com.guiying.girls;
  */
 public interface Constants {
 
-    String GAN_HUO_API = "http://gank.io/";
+    /**
+     * http://gank.io/api/data/福利/10/1
+     */
+    String GAN_HUO_API = "http://gank.io/api/data/";
 
 }

+ 1 - 2
girls/src/main/java/com/guiying/girls/data/GirlsDataSource.java

@@ -11,7 +11,6 @@ public interface GirlsDataSource {
         void onDataNotAvailable();
     }
 
-    void getGirls(int page, int size, LoadGirlsCallback callback);
+    void getGirls(int size, int page, LoadGirlsCallback callback);
 
-    void getGirl(LoadGirlsCallback callback);
 }

+ 6 - 11
girls/src/main/java/com/guiying/girls/data/source/RemoteGirlsDataSource.java

@@ -7,19 +7,19 @@ import com.guiying.girls.Constants;
 import com.guiying.girls.data.GirlsDataSource;
 import com.guiying.girls.data.parser.GirlsParser;
 
+import static com.guiying.common.http.HttpClient.OBJECT;
+
 
 public class RemoteGirlsDataSource implements GirlsDataSource {
 
     @Override
-    public void getGirls(int page, int size, final LoadGirlsCallback callback) {
+    public void getGirls(int size, int page, final LoadGirlsCallback callback) {
         HttpClient client = new HttpClient.Builder()
                 .baseUrl(Constants.GAN_HUO_API)
-                .url("api/data")
-                .params("type", "福利")
-                .params("count", String.valueOf(page))
-                .params("page", String.valueOf(size))
+                .url("福利/" + size + "/" + page)
+                .bodyType(OBJECT, GirlsParser.class)
                 .build();
-        client.post(new OnResultListener<GirlsParser>() {
+        client.get(new OnResultListener<GirlsParser>() {
 
             @Override
             public void onSuccess(GirlsParser result) {
@@ -38,9 +38,4 @@ public class RemoteGirlsDataSource implements GirlsDataSource {
         });
     }
 
-    @Override
-    public void getGirl(final LoadGirlsCallback callback) {
-        getGirls(1, 1, callback);
-    }
-
 }

+ 1 - 2
girls/src/main/java/com/guiying/girls/main/GirlsAdapter.java

@@ -6,7 +6,6 @@ import android.view.ViewGroup;
 import android.widget.ImageView;
 
 import com.bumptech.glide.Glide;
-import com.bumptech.glide.load.engine.DiskCacheStrategy;
 import com.guiying.girls.R;
 import com.guiying.girls.data.bean.Girls;
 import com.jude.easyrecyclerview.adapter.BaseViewHolder;
@@ -52,7 +51,7 @@ public class GirlsAdapter extends RecyclerArrayAdapter<Girls> {
             super.setData(data);
             Glide.with(getContext())
                     .load(data.getUrl())
-                    .diskCacheStrategy(DiskCacheStrategy.SOURCE)
+                    .skipMemoryCache(true)
                     .into(image);
         }
     }

+ 4 - 3
girls/src/main/java/com/guiying/girls/main/GirlsPresenter.java

@@ -18,12 +18,13 @@ public class GirlsPresenter implements GirlsContract.Presenter {
 
     public GirlsPresenter(GirlsContract.View view) {
         mView = view;
+        mView.setPresenter(this);
         mDataSource = new RemoteGirlsDataSource();
     }
 
     @Override
-    public void getGirls(int page, int size, final boolean isRefresh) {
-        mDataSource.getGirls(page, size, new GirlsDataSource.LoadGirlsCallback() {
+    public void getGirls(int size, int page, final boolean isRefresh) {
+        mDataSource.getGirls(size, page, new GirlsDataSource.LoadGirlsCallback() {
             @Override
             public void onGirlsLoaded(GirlsParser girlsParser) {
                 if (isRefresh) {
@@ -45,6 +46,6 @@ public class GirlsPresenter implements GirlsContract.Presenter {
 
     @Override
     public void start() {
-        getGirls(1, 20, true);
+        getGirls(20, 1, true);
     }
 }

+ 2 - 2
girls/src/main/java/com/guiying/girls/main/GirlsView.java

@@ -137,13 +137,13 @@ public class GirlsView extends FrameLayout implements GirlsContract.View, SwipeR
     public void onLoadMore() {
         if (mData.size() % 20 == 0) {
             page++;
-            mPresenter.getGirls(page, size, false);
+            mPresenter.getGirls(size, page, false);
         }
     }
 
     @Override
     public void onRefresh() {
-        mPresenter.getGirls(1, size, true);
+        mPresenter.getGirls(size, page, true);
         page = 1;
     }
 }

+ 32 - 0
girls/src/main/java/debug/GirlsApplication.java

@@ -1,6 +1,9 @@
 package debug;
 
 import com.guiying.common.base.BaseApplication;
+import com.guiying.common.http.HttpClient;
+import com.guiying.common.http.OnResultListener;
+import com.orhanobut.logger.Logger;
 
 /**
  * <p>类说明</p>
@@ -14,5 +17,34 @@ public class GirlsApplication extends BaseApplication {
     @Override
     public void onCreate() {
         super.onCreate();
+        login();
+    }
+
+    /**
+     * 在这里模拟登陆,然后拿到sessionId或者Token
+     * 这样就能够在组件请求接口了
+     */
+    private void login() {
+        HttpClient client = new HttpClient.Builder()
+                .baseUrl("http://gank.io/api/data/")
+                .url("福利/10/1")
+                .build();
+        client.get(new OnResultListener<String>() {
+
+            @Override
+            public void onSuccess(String result) {
+                Logger.e(result);
+            }
+
+            @Override
+            public void onError(int code, String message) {
+                Logger.e(message);
+            }
+
+            @Override
+            public void onFailure(String message) {
+                Logger.e(message);
+            }
+        });
     }
 }

+ 1 - 1
gradle.properties

@@ -22,4 +22,4 @@ localBuildToolsVersion=25.0.1
 localGradlePluginVersion=2.2.3
 
 # 每次更改“isModule”的值后,需要点击 "Sync Project" 按钮
-isModule=false
+isModule=true

+ 8 - 26
news/src/main/java/debug/NewsApplication.java

@@ -1,9 +1,6 @@
 package debug;
 
 import com.guiying.common.base.BaseApplication;
-import com.guiying.common.http.HttpClient;
-import com.guiying.common.http.OnResultListener;
-import com.orhanobut.logger.Logger;
 
 /**
  * <p>类说明</p>
@@ -14,34 +11,19 @@ import com.orhanobut.logger.Logger;
  */
 public class NewsApplication extends BaseApplication {
 
-    String GAN_HUO_API = "http://gank.io/";
-
     @Override
     public void onCreate() {
         super.onCreate();
-        HttpClient client = new HttpClient.Builder()
-                .baseUrl(GAN_HUO_API)
-                .url("api/data")
-                .params("type", "福利")
-                .params("count", String.valueOf(20))
-                .params("page", String.valueOf(1))
-                .build();
-        client.post(new OnResultListener<String>() {
+        login();
+    }
 
-            @Override
-            public void onSuccess(String result) {
-                Logger.e(result);
-            }
 
-            @Override
-            public void onError(int code, String message) {
-                Logger.e(message);
-            }
+    /**
+     * 在这里模拟登陆,然后拿到sessionId或者Token
+     * 这样就能够在组件请求接口了
+     */
+    private void login() {
 
-            @Override
-            public void onFailure(String message) {
-                Logger.e(message);
-            }
-        });
     }
+
 }