Skip to content

Commit 156ffe7

Browse files
author
alafighting
committed
更简洁的使用API
1 parent 1edcf2d commit 156ffe7

File tree

4 files changed

+25
-4
lines changed

4 files changed

+25
-4
lines changed

app/src/main/java/com/im4j/kakacache/rxjava/demo/MainActivity.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,11 @@
77

88
import com.im4j.kakacache.rxjava.KakaCache;
99
import com.im4j.kakacache.rxjava.common.utils.LogUtils;
10-
import com.im4j.kakacache.rxjava.netcache.retrofit.KakaRxCallAdapterFactory;
1110
import com.im4j.kakacache.rxjava.netcache.strategy.FirstCacheStrategy;
1211

1312
import retrofit2.Retrofit;
1413
import retrofit2.converter.gson.GsonConverterFactory;
14+
import rx.android.schedulers.AndroidSchedulers;
1515
import rx.schedulers.Schedulers;
1616

1717
/**
@@ -37,8 +37,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
3737

3838
retrofit = new Retrofit.Builder()
3939
.baseUrl("https://api.github.com/")
40-
.addConverterFactory(GsonConverterFactory.create(KakaCache.gson().create()))
41-
.addCallAdapterFactory(KakaRxCallAdapterFactory.create())
40+
.addConverterFactory(KakaCache.gsonConverter())
41+
.addCallAdapterFactory(KakaCache.rxCallAdapter())
4242
.build();
4343

4444
service = retrofit.create(GitHubService.class);
@@ -60,6 +60,8 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
6060
void demoForNormal() {
6161
service.listReposForNormal("alafighting")
6262
.compose(KakaCache.transformer(KEY_CACHE, new FirstCacheStrategy()))
63+
.subscribeOn(Schedulers.io())
64+
.observeOn(AndroidSchedulers.mainThread())
6365
.subscribe(data -> {
6466
LogUtils.log("next data=" + data);
6567
}, error -> {
@@ -75,6 +77,7 @@ void demoForNormal() {
7577
void demoForKaka() {
7678
service.listReposForKaka("alafighting")
7779
.subscribeOn(Schedulers.io())
80+
.observeOn(AndroidSchedulers.mainThread())
7881
.subscribe(data -> {
7982
LogUtils.log("listReposForKaka => "+data);
8083
}, error -> {

library/build.gradle

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,10 @@ dependencies {
2727
compile fileTree(dir: 'libs', include: ['*.jar'])
2828
testCompile 'junit:junit:4.12'
2929
compile 'com.android.support:appcompat-v7:24.0.0'
30+
compile 'com.google.code.gson:gson:2.7'
3031
compile 'io.reactivex:rxandroid:1.2.1'
3132
compile 'com.squareup.okhttp3:okhttp:3.3.1'
3233
compile 'com.squareup.retrofit2:retrofit:2.1.0'
3334
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
34-
compile 'com.google.code.gson:gson:2.7'
35+
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
3536
}

library/src/main/java/com/im4j/kakacache/rxjava/KakaCache.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.im4j.kakacache.rxjava.core.memory.storage.SimpleMemoryStorage;
2020
import com.im4j.kakacache.rxjava.manager.RxCacheManager;
2121
import com.im4j.kakacache.rxjava.netcache.ResultData;
22+
import com.im4j.kakacache.rxjava.netcache.retrofit.KakaRxCallAdapterFactory;
2223
import com.im4j.kakacache.rxjava.netcache.strategy.CacheStrategy;
2324
import com.litesuits.orm.LiteOrm;
2425

@@ -27,6 +28,9 @@
2728
import java.lang.reflect.Type;
2829
import java.util.Arrays;
2930

31+
import retrofit2.CallAdapter;
32+
import retrofit2.Converter;
33+
import retrofit2.converter.gson.GsonConverterFactory;
3034
import rx.Observable;
3135

3236
/**
@@ -89,6 +93,18 @@ public static GsonBuilder gson() {
8993
return builder;
9094
}
9195

96+
public static Converter.Factory gsonConverter(GsonBuilder builder) {
97+
builder.registerTypeAdapter(ResultData.class, new ResultDataAdapter());
98+
return GsonConverterFactory.create(builder.create());
99+
}
100+
public static Converter.Factory gsonConverter() {
101+
return gsonConverter(KakaCache.gson());
102+
}
103+
104+
public static CallAdapter.Factory rxCallAdapter() {
105+
return KakaRxCallAdapterFactory.create();
106+
}
107+
92108

93109
private static class CacheTransformer<T> implements Observable.Transformer<T, ResultData<T>> {
94110
private String key;

library/src/main/java/com/im4j/kakacache/rxjava/core/memory/storage/SimpleMemoryStorage.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,4 +103,5 @@ private static long countSize(Object value) {
103103
public long getTotalQuantity() {
104104
return mStorageMap.size();
105105
}
106+
106107
}

0 commit comments

Comments
 (0)