Skip to content

Commit 1b1b82d

Browse files
author
imkarl
committed
升级到rxjava2
1 parent 1d77d48 commit 1b1b82d

39 files changed

+656
-1043
lines changed

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## 如何使用
55

66
### 准备Retrofit
7-
```java
7+
```
88
retrofit = new Retrofit.Builder()
99
.baseUrl("https://api.github.com/")
1010
.addConverterFactory(KakaCache.gsonConverter())
@@ -13,14 +13,14 @@ retrofit = new Retrofit.Builder()
1313
```
1414

1515
### 定义接口
16-
```java
16+
```
1717
@GET("users/{user}/repos")
1818
@CACHE(value = "custom_key_listRepos", strategy = CacheAndRemoteStrategy.class)
1919
rx.Observable<ResultData<List<GithubRepoEntity>>> listReposForKaka(@Path("user") String user);
2020
```
2121

2222
### 调用接口
23-
```java
23+
```
2424
service.listReposForKaka("alafighting")
2525
.subscribeOn(Schedulers.io())
2626
.observeOn(AndroidSchedulers.mainThread())
@@ -34,7 +34,7 @@ service.listReposForKaka("alafighting")
3434
### or 太麻烦?给你`一步到位`!!
3535

3636
在原有代码的基础上,仅需一行代码搞定
37-
```java
37+
```
3838
.compose(KakaCache.transformer(KEY_CACHE, new FirstCacheStrategy()))
3939
```
4040

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
package com.im4j.kakacache.rxjava.demo;
22

3-
import com.im4j.kakacache.rxjava.CACHE;
4-
import com.im4j.kakacache.rxjava.netcache.ResultData;
5-
import com.im4j.kakacache.rxjava.netcache.strategy.CacheStrategy;
6-
73
import java.util.List;
84

5+
import io.reactivex.Observable;
96
import retrofit2.http.GET;
107
import retrofit2.http.Path;
118

@@ -15,10 +12,6 @@
1512
public interface GitHubService {
1613

1714
@GET("users/{user}/repos")
18-
rx.Observable<List<GithubRepoEntity>> listReposForNormal(@Path("user") String user);
19-
20-
@GET("users/{user}/repos")
21-
@CACHE(value = "custom_key_listRepos", strategy = CacheStrategy.CacheAndRemote)
22-
rx.Observable<ResultData<List<GithubRepoEntity>>> listReposForKaka(@Path("user") String user);
15+
Observable<List<GithubRepoEntity>> listReposForNormal(@Path("user") String user);
2316

2417
}

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

Lines changed: 16 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,16 @@
66
import android.widget.Button;
77

88
import com.im4j.kakacache.rxjava.KakaCache;
9-
import com.im4j.kakacache.rxjava.common.utils.LogUtils;
9+
import com.im4j.kakacache.rxjava.common.utils.L;
10+
import com.im4j.kakacache.rxjava.common.utils.Utils;
11+
import com.im4j.kakacache.rxjava.netcache.ResultData;
1012
import com.im4j.kakacache.rxjava.netcache.strategy.CacheStrategy;
1113

14+
import io.reactivex.android.schedulers.AndroidSchedulers;
15+
import io.reactivex.schedulers.Schedulers;
1216
import retrofit2.Retrofit;
13-
import rx.android.schedulers.AndroidSchedulers;
14-
import rx.schedulers.Schedulers;
17+
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
18+
import retrofit2.converter.gson.GsonConverterFactory;
1519

1620
/**
1721
* Demo主界面
@@ -24,20 +28,19 @@ public class MainActivity extends AppCompatActivity {
2428
private GitHubService service;
2529

2630
private Button btnTestCache;
27-
private Button btnTestRetrofit;
2831

2932
@Override
3033
protected void onCreate(@Nullable Bundle savedInstanceState) {
3134
super.onCreate(savedInstanceState);
3235
setContentView(R.layout.actiity_main);
3336

34-
LogUtils.DEBUG = false;
35-
KakaCache.init(this);
37+
L.isDebug = false;
38+
KakaCache.init(this, Utils.getUsableCacheDir(this));
3639

3740
retrofit = new Retrofit.Builder()
3841
.baseUrl("https://api.github.com/")
39-
.addConverterFactory(KakaCache.gsonConverter())
40-
.addCallAdapterFactory(KakaCache.rxCallAdapter())
42+
.addConverterFactory(GsonConverterFactory.create())
43+
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
4144
.build();
4245

4346
service = retrofit.create(GitHubService.class);
@@ -46,41 +49,23 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
4649
btnTestCache.setOnClickListener(view -> {
4750
demoForNormal();
4851
});
49-
50-
btnTestRetrofit = (Button) findViewById(R.id.btn_test_retrofit);
51-
btnTestRetrofit.setOnClickListener(view -> {
52-
demoForKaka();
53-
});
5452
}
5553

5654
/**
5755
* 案例一:不修改原有代码,增加对Cache的支持
5856
*/
5957
void demoForNormal() {
60-
service.listReposForNormal("alafighting")
58+
service.listReposForNormal("imkarl")
6159
.compose(KakaCache.transformer(KEY_CACHE, CacheStrategy.FirstCache))
6260
.subscribeOn(Schedulers.io())
6361
.observeOn(AndroidSchedulers.mainThread())
6462
.subscribe(data -> {
65-
LogUtils.log("next data=" + data);
63+
L.log("next data=" + data);
6664
}, error -> {
67-
LogUtils.log("error", error);
65+
L.log("error");
66+
L.log(error);
6867
}, () -> {
69-
LogUtils.log("completed");
70-
});
71-
}
72-
73-
/**
74-
* 案例二:通过注解,自动支持Cache
75-
*/
76-
void demoForKaka() {
77-
service.listReposForKaka("alafighting")
78-
.subscribeOn(Schedulers.io())
79-
.observeOn(AndroidSchedulers.mainThread())
80-
.subscribe(data -> {
81-
LogUtils.log("listReposForKaka => "+data);
82-
}, error -> {
83-
LogUtils.log(error);
68+
L.log("completed");
8469
});
8570
}
8671

app/src/main/res/layout/actiity_main.xml

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,6 @@
1010
android:id="@+id/btn_test_cache"
1111
android:layout_width="wrap_content"
1212
android:layout_height="wrap_content"
13-
android:text="测试普通缓存"/>
14-
15-
<Button
16-
android:id="@+id/btn_test_retrofit"
17-
android:layout_width="wrap_content"
18-
android:layout_height="wrap_content"
19-
android:textAllCaps="false"
20-
android:text="测试Retrofit缓存"/>
13+
android:text="测试缓存"/>
2114

2215
</LinearLayout>

build.gradle

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ buildscript {
55
jcenter()
66
}
77
dependencies {
8-
classpath 'com.android.tools.build:gradle:2.3.1'
9-
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
8+
classpath 'com.android.tools.build:gradle:2.3.2'
9+
classpath 'me.tatarka:gradle-retrolambda:3.6.1'
1010
}
1111
}
1212

1313
allprojects {
1414
repositories {
1515
jcenter()
16+
maven { url 'http://repo1.maven.org/maven2' }
17+
maven { url "https://jitpack.io" }
1618
}
1719
}
1820

config.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ ext {
44
build_tools_version = "25.0.2"
55
// 支持的最小版本、目标版本
66
min_sdk_version = 11
7-
target_sdk_version = 24
7+
target_sdk_version = 22
88

99
app_version_code = 1
1010
app_version_name = "1.0"

library/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,9 @@ dependencies {
3636
provided 'com.squareup.retrofit2:converter-gson:2.2.0'
3737
provided 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'
3838

39+
// storage
3940
provided 'com.esotericsoftware:kryo:4.0.0'
41+
42+
// support
43+
provided 'com.android.support:support-annotations:25.3.1'
4044
}
Binary file not shown.

library/src/androidTest/java/com/im4j/kakacache/rxjava/ApplicationTest.java

Lines changed: 0 additions & 13 deletions
This file was deleted.

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

Lines changed: 0 additions & 35 deletions
This file was deleted.

0 commit comments

Comments
 (0)