Skip to content

Commit

Permalink
升级到rxjava2
Browse files Browse the repository at this point in the history
  • Loading branch information
imkarl committed Jun 2, 2017
1 parent 1d77d48 commit 1b1b82d
Show file tree
Hide file tree
Showing 39 changed files with 656 additions and 1,043 deletions.
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
## 如何使用

### 准备Retrofit
```java
```
retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(KakaCache.gsonConverter())
Expand All @@ -13,14 +13,14 @@ retrofit = new Retrofit.Builder()
```

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

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

在原有代码的基础上,仅需一行代码搞定
```java
```
.compose(KakaCache.transformer(KEY_CACHE, new FirstCacheStrategy()))
```

Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,8 @@
package com.im4j.kakacache.rxjava.demo;

import com.im4j.kakacache.rxjava.CACHE;
import com.im4j.kakacache.rxjava.netcache.ResultData;
import com.im4j.kakacache.rxjava.netcache.strategy.CacheStrategy;

import java.util.List;

import io.reactivex.Observable;
import retrofit2.http.GET;
import retrofit2.http.Path;

Expand All @@ -15,10 +12,6 @@
public interface GitHubService {

@GET("users/{user}/repos")
rx.Observable<List<GithubRepoEntity>> listReposForNormal(@Path("user") String user);

@GET("users/{user}/repos")
@CACHE(value = "custom_key_listRepos", strategy = CacheStrategy.CacheAndRemote)
rx.Observable<ResultData<List<GithubRepoEntity>>> listReposForKaka(@Path("user") String user);
Observable<List<GithubRepoEntity>> listReposForNormal(@Path("user") String user);

}
47 changes: 16 additions & 31 deletions app/src/main/java/com/im4j/kakacache/rxjava/demo/MainActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,16 @@
import android.widget.Button;

import com.im4j.kakacache.rxjava.KakaCache;
import com.im4j.kakacache.rxjava.common.utils.LogUtils;
import com.im4j.kakacache.rxjava.common.utils.L;
import com.im4j.kakacache.rxjava.common.utils.Utils;
import com.im4j.kakacache.rxjava.netcache.ResultData;
import com.im4j.kakacache.rxjava.netcache.strategy.CacheStrategy;

import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
import retrofit2.Retrofit;
import rx.android.schedulers.AndroidSchedulers;
import rx.schedulers.Schedulers;
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
import retrofit2.converter.gson.GsonConverterFactory;

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

private Button btnTestCache;
private Button btnTestRetrofit;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.actiity_main);

LogUtils.DEBUG = false;
KakaCache.init(this);
L.isDebug = false;
KakaCache.init(this, Utils.getUsableCacheDir(this));

retrofit = new Retrofit.Builder()
.baseUrl("https://api.github.com/")
.addConverterFactory(KakaCache.gsonConverter())
.addCallAdapterFactory(KakaCache.rxCallAdapter())
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build();

service = retrofit.create(GitHubService.class);
Expand All @@ -46,41 +49,23 @@ protected void onCreate(@Nullable Bundle savedInstanceState) {
btnTestCache.setOnClickListener(view -> {
demoForNormal();
});

btnTestRetrofit = (Button) findViewById(R.id.btn_test_retrofit);
btnTestRetrofit.setOnClickListener(view -> {
demoForKaka();
});
}

/**
* 案例一:不修改原有代码,增加对Cache的支持
*/
void demoForNormal() {
service.listReposForNormal("alafighting")
service.listReposForNormal("imkarl")
.compose(KakaCache.transformer(KEY_CACHE, CacheStrategy.FirstCache))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> {
LogUtils.log("next data=" + data);
L.log("next data=" + data);
}, error -> {
LogUtils.log("error", error);
L.log("error");
L.log(error);
}, () -> {
LogUtils.log("completed");
});
}

/**
* 案例二:通过注解,自动支持Cache
*/
void demoForKaka() {
service.listReposForKaka("alafighting")
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(data -> {
LogUtils.log("listReposForKaka => "+data);
}, error -> {
LogUtils.log(error);
L.log("completed");
});
}

Expand Down
9 changes: 1 addition & 8 deletions app/src/main/res/layout/actiity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,6 @@
android:id="@+id/btn_test_cache"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="测试普通缓存"/>

<Button
android:id="@+id/btn_test_retrofit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAllCaps="false"
android:text="测试Retrofit缓存"/>
android:text="测试缓存"/>

</LinearLayout>
6 changes: 4 additions & 2 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@ buildscript {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
classpath 'me.tatarka:gradle-retrolambda:3.2.5'
classpath 'com.android.tools.build:gradle:2.3.2'
classpath 'me.tatarka:gradle-retrolambda:3.6.1'
}
}

allprojects {
repositories {
jcenter()
maven { url 'http://repo1.maven.org/maven2' }
maven { url "https://jitpack.io" }
}
}

Expand Down
2 changes: 1 addition & 1 deletion config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ ext {
build_tools_version = "25.0.2"
// 支持的最小版本、目标版本
min_sdk_version = 11
target_sdk_version = 24
target_sdk_version = 22

app_version_code = 1
app_version_name = "1.0"
Expand Down
4 changes: 4 additions & 0 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -36,5 +36,9 @@ dependencies {
provided 'com.squareup.retrofit2:converter-gson:2.2.0'
provided 'com.squareup.retrofit2:adapter-rxjava2:2.2.0'

// storage
provided 'com.esotericsoftware:kryo:4.0.0'

// support
provided 'com.android.support:support-annotations:25.3.1'
}
Binary file not shown.

This file was deleted.

35 changes: 0 additions & 35 deletions library/src/main/java/com/im4j/kakacache/rxjava/CACHE.java

This file was deleted.

Loading

0 comments on commit 1b1b82d

Please sign in to comment.