Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
MVPArms
提交
208f6889
M
MVPArms
项目概览
门心叼龙
/
MVPArms
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
MVPArms
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
208f6889
编写于
5月 04, 2017
作者:
J
jessyan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Upgrade to Rxjava2 and release to v2.0.0
上级
6d0f0a9d
变更
21
隐藏空白更改
内联
并排
Showing
21 changed file
with
116 addition
and
89 deletion
+116
-89
.travis.yml
.travis.yml
+2
-2
MVPArms.md
MVPArms.md
+1
-1
README.md
README.md
+1
-1
app/src/main/java/me/jessyan/mvparms/demo/app/utils/RxUtils.java
.../main/java/me/jessyan/mvparms/demo/app/utils/RxUtils.java
+21
-18
app/src/main/java/me/jessyan/mvparms/demo/mvp/contract/UserContract.java
...va/me/jessyan/mvparms/demo/mvp/contract/UserContract.java
+3
-3
app/src/main/java/me/jessyan/mvparms/demo/mvp/model/UserModel.java
...ain/java/me/jessyan/mvparms/demo/mvp/model/UserModel.java
+9
-7
app/src/main/java/me/jessyan/mvparms/demo/mvp/model/api/cache/CommonCache.java
...jessyan/mvparms/demo/mvp/model/api/cache/CommonCache.java
+6
-6
app/src/main/java/me/jessyan/mvparms/demo/mvp/model/api/service/UserService.java
...ssyan/mvparms/demo/mvp/model/api/service/UserService.java
+1
-1
app/src/main/java/me/jessyan/mvparms/demo/mvp/presenter/UserPresenter.java
.../me/jessyan/mvparms/demo/mvp/presenter/UserPresenter.java
+3
-3
app/src/main/java/me/jessyan/mvparms/demo/mvp/ui/activity/UserActivity.java
...me/jessyan/mvparms/demo/mvp/ui/activity/UserActivity.java
+3
-3
app/src/main/java/me/jessyan/mvparms/demo/mvp/ui/holder/UserItemHolder.java
...me/jessyan/mvparms/demo/mvp/ui/holder/UserItemHolder.java
+2
-3
arms/build.gradle
arms/build.gradle
+8
-8
arms/src/main/java/com/jess/arms/base/BaseActivity.java
arms/src/main/java/com/jess/arms/base/BaseActivity.java
+1
-1
arms/src/main/java/com/jess/arms/base/BaseFragment.java
arms/src/main/java/com/jess/arms/base/BaseFragment.java
+1
-1
arms/src/main/java/com/jess/arms/base/BaseService.java
arms/src/main/java/com/jess/arms/base/BaseService.java
+15
-4
arms/src/main/java/com/jess/arms/di/module/ClientModule.java
arms/src/main/java/com/jess/arms/di/module/ClientModule.java
+3
-3
arms/src/main/java/com/jess/arms/integration/RepositoryManager.java
...ain/java/com/jess/arms/integration/RepositoryManager.java
+1
-1
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
+12
-12
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
+1
-1
arms/src/main/java/com/jess/arms/widget/imageloader/glide/GlideImageLoaderStrategy.java
...ms/widget/imageloader/glide/GlideImageLoaderStrategy.java
+6
-5
config.gradle
config.gradle
+16
-5
未找到文件。
.travis.yml
浏览文件 @
208f6889
...
...
@@ -23,6 +23,6 @@ android:
script
:
-
./gradlew clean
#
- ./gradlew install
#
- ./gradlew bintrayUpload
-
./gradlew install
-
./gradlew bintrayUpload
-
./gradlew assembleDebug
\ No newline at end of file
MVPArms.md
浏览文件 @
208f6889
# MVPArms
[
![Bintray
](
https://img.shields.io/badge/bintray-v
1.6.3-brightgreen.svg
)
](https://bintray.com/jessyancoding/maven/MVPArms/1.6.3
/link)
[
![Bintray
](
https://img.shields.io/badge/bintray-v
2.0.0-brightgreen.svg
)
](https://bintray.com/jessyancoding/maven/MVPArms/2.0.0
/link)
[
![Build Status
](
https://travis-ci.org/JessYanCoding/MVPArms.svg?branch=master
)
](https://travis-ci.org/JessYanCoding/MVPArms)
[
![API
](
https://img.shields.io/badge/API-15%2B-blue.svg?style=flat-square
)
](https://developer.android.com/about/versions/android-4.0.3.html)
[
![License
](
http://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square
)
](http://www.apache.org/licenses/LICENSE-2.0)
...
...
README.md
浏览文件 @
208f6889
# MVPArms
[
![Bintray
](
https://img.shields.io/badge/bintray-v
1.6.3-brightgreen.svg
)
](https://bintray.com/jessyancoding/maven/MVPArms/1.6.3
/link)
[
![Bintray
](
https://img.shields.io/badge/bintray-v
2.0.0-brightgreen.svg
)
](https://bintray.com/jessyancoding/maven/MVPArms/2.0.0
/link)
[
![Build Status
](
https://travis-ci.org/JessYanCoding/MVPArms.svg?branch=master
)
](https://travis-ci.org/JessYanCoding/MVPArms)
[
![API
](
https://img.shields.io/badge/API-15%2B-blue.svg?style=flat-square
)
](https://developer.android.com/about/versions/android-4.0.3.html)
[
![License
](
http://img.shields.io/badge/License-Apache%202.0-blue.svg?style=flat-square
)
](http://www.apache.org/licenses/LICENSE-2.0)
...
...
app/src/main/java/me/jessyan/mvparms/demo/app/utils/RxUtils.java
浏览文件 @
208f6889
package
me.jessyan.mvparms.demo.app.utils
;
import
com.jess.arms.mvp.IView
;
import
com.trello.rxlifecycle.LifecycleTransformer
;
import
com.trello.rxlifecycle.components.support.RxAppCompatActivity
;
import
com.trello.rxlifecycle.components.support.RxFragment
;
import
rx.Observable
;
import
rx.android.schedulers.AndroidSchedulers
;
import
rx.functions.Action0
;
import
rx.schedulers.Schedulers
;
import
com.trello.rxlifecycle2.LifecycleTransformer
;
import
com.trello.rxlifecycle2.components.support.RxAppCompatActivity
;
import
com.trello.rxlifecycle2.components.support.RxFragment
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableTransformer
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.disposables.Disposable
;
import
io.reactivex.functions.Action
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.schedulers.Schedulers
;
/**
* Created by jess on 11/10/2016 16:39
...
...
@@ -17,31 +21,30 @@ import rx.schedulers.Schedulers;
public
class
RxUtils
{
public
static
<
T
>
Observable
.
Transformer
<
T
,
T
>
applySchedulers
(
final
IView
view
)
{
return
new
Observable
.
Transformer
<
T
,
T
>()
{
public
static
<
T
>
ObservableTransformer
<
T
,
T
>
applySchedulers
(
final
IView
view
)
{
return
new
ObservableTransformer
<
T
,
T
>()
{
@Override
public
Observable
<
T
>
call
(
Observable
<
T
>
observable
)
{
public
Observable
<
T
>
apply
(
Observable
<
T
>
observable
)
{
return
observable
.
subscribeOn
(
Schedulers
.
io
())
.
doOnSubscribe
(
new
Action0
()
{
.
doOnSubscribe
(
new
Consumer
<
Disposable
>
()
{
@Override
public
void
call
()
{
//显示进度条
view
.
showLoading
();
public
void
accept
(
@NonNull
Disposable
disposable
)
throws
Exception
{
view
.
showLoading
();
//显示进度条
}
})
.
subscribeOn
(
AndroidSchedulers
.
mainThread
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
doAfterTerminate
(
new
Action
0
()
{
.
doAfterTerminate
(
new
Action
()
{
@Override
public
void
call
()
{
public
void
run
()
{
view
.
hideLoading
();
//隐藏进度条
}
}).
compose
(
RxUtils
.
<
T
>
bindToLifecycle
(
view
));
}).
compose
(
RxUtils
.
bindToLifecycle
(
view
));
}
};
}
public
static
<
T
>
LifecycleTransformer
<
T
>
bindToLifecycle
(
IView
view
)
{
if
(
view
instanceof
RxAppCompatActivity
)
{
return
((
RxAppCompatActivity
)
view
).
bindToLifecycle
();
...
...
app/src/main/java/me/jessyan/mvparms/demo/mvp/contract/UserContract.java
浏览文件 @
208f6889
package
me.jessyan.mvparms.demo.mvp.contract
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.mvp.IView
;
import
com.jess.arms.mvp.IModel
;
import
com.tbruyelle.rxpermissions.RxPermissions
;
import
com.jess.arms.mvp.IView
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
java.util.List
;
import
io.reactivex.Observable
;
import
me.jessyan.mvparms.demo.mvp.model.entity.User
;
import
rx.Observable
;
/**
* Created by jess on 9/4/16 10:47
...
...
app/src/main/java/me/jessyan/mvparms/demo/mvp/model/UserModel.java
浏览文件 @
208f6889
...
...
@@ -8,15 +8,17 @@ import java.util.List;
import
javax.inject.Inject
;
import
io.rx_cache.DynamicKey
;
import
io.rx_cache.EvictDynamicKey
;
import
io.rx_cache.Reply
;
import
io.reactivex.Observable
;
import
io.reactivex.ObservableSource
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.functions.Function
;
import
io.rx_cache2.DynamicKey
;
import
io.rx_cache2.EvictDynamicKey
;
import
io.rx_cache2.Reply
;
import
me.jessyan.mvparms.demo.mvp.contract.UserContract
;
import
me.jessyan.mvparms.demo.mvp.model.api.cache.CommonCache
;
import
me.jessyan.mvparms.demo.mvp.model.api.service.UserService
;
import
me.jessyan.mvparms.demo.mvp.model.entity.User
;
import
rx.Observable
;
import
rx.functions.Func1
;
/**
* Created by jess on 9/4/16 10:56
...
...
@@ -40,9 +42,9 @@ public class UserModel extends BaseModel implements UserContract.Model {
.
getUsers
(
users
,
new
DynamicKey
(
lastIdQueried
)
,
new
EvictDynamicKey
(
update
))
.
flatMap
(
new
Func
1
<
Reply
<
List
<
User
>>,
Observabl
e
<
List
<
User
>>>()
{
.
flatMap
(
new
Func
tion
<
Reply
<
List
<
User
>>,
ObservableSourc
e
<
List
<
User
>>>()
{
@Override
public
Observable
<
List
<
User
>>
call
(
Reply
<
List
<
User
>>
listReply
)
{
public
Observable
Source
<
List
<
User
>>
apply
(
@NonNull
Reply
<
List
<
User
>>
listReply
)
throws
Exception
{
return
Observable
.
just
(
listReply
.
getData
());
}
});
...
...
app/src/main/java/me/jessyan/mvparms/demo/mvp/model/api/cache/CommonCache.java
浏览文件 @
208f6889
...
...
@@ -3,12 +3,12 @@ package me.jessyan.mvparms.demo.mvp.model.api.cache;
import
java.util.List
;
import
java.util.concurrent.TimeUnit
;
import
io.rx_cache.DynamicKey
;
import
io.rx_cache.EvictProvider
;
import
io.rx_cache.LifeCache
;
import
io.rx_cache.Reply
;
import
io.reactivex.Observable
;
import
io.rx_cache2.DynamicKey
;
import
io.rx_cache2.EvictProvider
;
import
io.rx_cache2.LifeCache
;
import
io.rx_cache2.Reply
;
import
me.jessyan.mvparms.demo.mvp.model.entity.User
;
import
rx.Observable
;
/**
* Created by jess on 8/30/16 13:53
...
...
@@ -19,6 +19,6 @@ public interface CommonCache {
@LifeCache
(
duration
=
2
,
timeUnit
=
TimeUnit
.
MINUTES
)
Observable
<
Reply
<
List
<
User
>>>
getUsers
(
Observable
<
List
<
User
>>
oU
sers
,
DynamicKey
idLastUserQueried
,
EvictProvider
evictProvider
);
Observable
<
Reply
<
List
<
User
>>>
getUsers
(
Observable
<
List
<
User
>>
u
sers
,
DynamicKey
idLastUserQueried
,
EvictProvider
evictProvider
);
}
app/src/main/java/me/jessyan/mvparms/demo/mvp/model/api/service/UserService.java
浏览文件 @
208f6889
...
...
@@ -2,11 +2,11 @@ package me.jessyan.mvparms.demo.mvp.model.api.service;
import
java.util.List
;
import
io.reactivex.Observable
;
import
me.jessyan.mvparms.demo.mvp.model.entity.User
;
import
retrofit2.http.GET
;
import
retrofit2.http.Headers
;
import
retrofit2.http.Query
;
import
rx.Observable
;
/**
* 存放关于用户的一些api
...
...
app/src/main/java/me/jessyan/mvparms/demo/mvp/presenter/UserPresenter.java
浏览文件 @
208f6889
...
...
@@ -13,6 +13,8 @@ import java.util.List;
import
javax.inject.Inject
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
io.reactivex.schedulers.Schedulers
;
import
me.jessyan.mvparms.demo.app.utils.RxUtils
;
import
me.jessyan.mvparms.demo.mvp.contract.UserContract
;
import
me.jessyan.mvparms.demo.mvp.model.entity.User
;
...
...
@@ -20,8 +22,6 @@ import me.jessyan.mvparms.demo.mvp.ui.adapter.UserAdapter;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
me.jessyan.rxerrorhandler.handler.RetryWithDelay
;
import
rx.android.schedulers.AndroidSchedulers
;
import
rx.schedulers.Schedulers
;
/**
* Created by jess on 9/4/16 10:59
...
...
@@ -71,7 +71,7 @@ public class UserPresenter extends BasePresenter<UserContract.Model, UserContrac
mModel
.
getUsers
(
lastUserId
,
isEvictCache
)
.
subscribeOn
(
Schedulers
.
io
())
.
retryWhen
(
new
RetryWithDelay
(
3
,
2
))
//遇到错误时重试,第一个参数为重试几次,第二个参数为重试的间隔
.
doOnSubscribe
(
()
->
{
.
doOnSubscribe
(
disposable
->
{
if
(
pullToRefresh
)
mRootView
.
showLoading
();
//显示上拉刷新的进度条
else
...
...
app/src/main/java/me/jessyan/mvparms/demo/mvp/ui/activity/UserActivity.java
浏览文件 @
208f6889
...
...
@@ -11,16 +11,16 @@ import com.jess.arms.base.DefaultAdapter;
import
com.jess.arms.di.component.AppComponent
;
import
com.jess.arms.utils.UiUtils
;
import
com.paginate.Paginate
;
import
com.tbruyelle.rxpermissions.RxPermissions
;
import
com.tbruyelle.rxpermissions
2
.RxPermissions
;
import
butterknife.BindView
;
import
io.reactivex.Observable
;
import
io.reactivex.android.schedulers.AndroidSchedulers
;
import
me.jessyan.mvparms.demo.R
;
import
me.jessyan.mvparms.demo.di.component.DaggerUserComponent
;
import
me.jessyan.mvparms.demo.di.module.UserModule
;
import
me.jessyan.mvparms.demo.mvp.contract.UserContract
;
import
me.jessyan.mvparms.demo.mvp.presenter.UserPresenter
;
import
rx.Observable
;
import
rx.android.schedulers.AndroidSchedulers
;
import
timber.log.Timber
;
...
...
app/src/main/java/me/jessyan/mvparms/demo/mvp/ui/holder/UserItemHolder.java
浏览文件 @
208f6889
...
...
@@ -5,7 +5,6 @@ import android.view.View;
import
android.widget.ImageView
;
import
android.widget.TextView
;
import
com.jakewharton.rxbinding.widget.RxTextView
;
import
com.jess.arms.base.App
;
import
com.jess.arms.base.BaseHolder
;
import
com.jess.arms.di.component.AppComponent
;
...
...
@@ -13,9 +12,9 @@ import com.jess.arms.widget.imageloader.ImageLoader;
import
com.jess.arms.widget.imageloader.glide.GlideImageConfig
;
import
butterknife.BindView
;
import
io.reactivex.Observable
;
import
me.jessyan.mvparms.demo.R
;
import
me.jessyan.mvparms.demo.mvp.model.entity.User
;
import
rx.Observable
;
/**
* Created by jess on 9/4/16 12:56
...
...
@@ -42,7 +41,7 @@ public class UserItemHolder extends BaseHolder<User> {
@Override
public
void
setData
(
User
data
,
int
position
)
{
Observable
.
just
(
data
.
getLogin
())
.
subscribe
(
RxTextView
.
text
(
mName
));
.
subscribe
(
s
->
mName
.
setText
(
s
));
mImageLoader
.
loadImage
(
mAppComponent
.
appManager
().
getCurrentActivity
()
==
null
?
mAppComponent
.
Application
()
:
mAppComponent
.
appManager
().
getCurrentActivity
(),
...
...
arms/build.gradle
浏览文件 @
208f6889
...
...
@@ -65,29 +65,29 @@ dependencies {
//rx
compile
rootProject
.
ext
.
dependencies
[
"rxjava"
]
compile
(
rootProject
.
ext
.
dependencies
[
"rxandroid"
]){
compile
rootProject
.
ext
.
dependencies
[
"rxjava
2
"
]
compile
(
rootProject
.
ext
.
dependencies
[
"rxandroid
2
"
]){
exclude
module:
'rxjava'
}
compile
(
rootProject
.
ext
.
dependencies
[
"rxcache"
]){
compile
(
rootProject
.
ext
.
dependencies
[
"rxcache
2
"
]){
exclude
module:
'rxjava'
exclude
module:
'dagger'
}
compile
(
rootProject
.
ext
.
dependencies
[
"rxcache-jolyglot-gson"
]){
exclude
module:
'gson'
}
compile
(
rootProject
.
ext
.
dependencies
[
"rxlifecycle"
]){
compile
(
rootProject
.
ext
.
dependencies
[
"rxlifecycle
2
"
]){
exclude
module:
'rxjava'
}
compile
(
rootProject
.
ext
.
dependencies
[
"rxlifecycle-components"
]){
compile
(
rootProject
.
ext
.
dependencies
[
"rxlifecycle
2
-components"
]){
exclude
module:
'support-v4'
exclude
module:
'appcompat-v7'
exclude
module:
'support-annotations'
exclude
module:
'rxjava'
exclude
module:
'rxandroid'
}
compile
rootProject
.
ext
.
dependencies
[
"rxpermissions"
]
compile
(
rootProject
.
ext
.
dependencies
[
'rxerrorhandler'
]){
compile
rootProject
.
ext
.
dependencies
[
"rxpermissions
2
"
]
compile
(
rootProject
.
ext
.
dependencies
[
'rxerrorhandler
2
'
]){
exclude
module:
'rxjava'
}
...
...
@@ -99,7 +99,7 @@ dependencies {
compile
(
rootProject
.
ext
.
dependencies
[
"retrofit-converter-gson"
]){
exclude
module:
'gson'
}
compile
(
rootProject
.
ext
.
dependencies
[
"retrofit-adapter-rxjava"
]){
compile
(
rootProject
.
ext
.
dependencies
[
"retrofit-adapter-rxjava
2
"
]){
exclude
module:
'rxjava'
}
compile
rootProject
.
ext
.
dependencies
[
"okhttp3"
]
...
...
arms/src/main/java/com/jess/arms/base/BaseActivity.java
浏览文件 @
208f6889
...
...
@@ -6,7 +6,7 @@ import android.view.View;
import
com.jess.arms.base.delegate.IActivity
;
import
com.jess.arms.mvp.IPresenter
;
import
com.trello.rxlifecycle.components.support.RxAppCompatActivity
;
import
com.trello.rxlifecycle
2
.components.support.RxAppCompatActivity
;
import
com.zhy.autolayout.AutoFrameLayout
;
import
com.zhy.autolayout.AutoLinearLayout
;
import
com.zhy.autolayout.AutoRelativeLayout
;
...
...
arms/src/main/java/com/jess/arms/base/BaseFragment.java
浏览文件 @
208f6889
...
...
@@ -8,7 +8,7 @@ import android.view.ViewGroup;
import
com.jess.arms.base.delegate.IFragment
;
import
com.jess.arms.mvp.IPresenter
;
import
com.trello.rxlifecycle.components.support.RxFragment
;
import
com.trello.rxlifecycle
2
.components.support.RxFragment
;
import
javax.inject.Inject
;
...
...
arms/src/main/java/com/jess/arms/base/BaseService.java
浏览文件 @
208f6889
...
...
@@ -7,13 +7,15 @@ import android.support.annotation.Nullable;
import
org.simple.eventbus.EventBus
;
import
rx.Subscription
;
import
io.reactivex.disposables.CompositeDisposable
;
import
io.reactivex.disposables.Disposable
;
/**
* Created by jess on 16/5/6.
*/
public
abstract
class
BaseService
extends
Service
{
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
protected
CompositeDisposable
mCompositeDisposable
;
@Nullable
@Override
...
...
@@ -32,11 +34,20 @@ public abstract class BaseService extends Service {
public
void
onDestroy
()
{
super
.
onDestroy
();
EventBus
.
getDefault
().
unregister
(
this
);
unDispose
();
//解除订阅
this
.
mCompositeDisposable
=
null
;
}
public
void
unSubscribe
(
Subscription
subscription
)
{
if
(
subscription
!=
null
&&
!
subscription
.
isUnsubscribed
())
{
subscription
.
unsubscribe
();
//保证service结束时取消所有正在执行的订阅
protected
void
addDispose
(
Disposable
disposable
)
{
if
(
mCompositeDisposable
==
null
)
{
mCompositeDisposable
=
new
CompositeDisposable
();
}
mCompositeDisposable
.
add
(
disposable
);
//将所有subscription放入,集中处理
}
protected
void
unDispose
()
{
if
(
mCompositeDisposable
!=
null
)
{
mCompositeDisposable
.
clear
();
//保证activity结束时取消所有正在执行的订阅
}
}
...
...
arms/src/main/java/com/jess/arms/di/module/ClientModule.java
浏览文件 @
208f6889
...
...
@@ -16,7 +16,7 @@ import javax.inject.Singleton;
import
dagger.Module
;
import
dagger.Provides
;
import
io.rx_cache.internal.RxCache
;
import
io.rx_cache
2
.internal.RxCache
;
import
io.victoralbertos.jolyglot.GsonSpeaker
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.listener.ResponseErroListener
;
...
...
@@ -24,7 +24,7 @@ import okhttp3.HttpUrl;
import
okhttp3.Interceptor
;
import
okhttp3.OkHttpClient
;
import
retrofit2.Retrofit
;
import
retrofit2.adapter.rxjava
.RxJava
CallAdapterFactory
;
import
retrofit2.adapter.rxjava
2.RxJava2
CallAdapterFactory
;
import
retrofit2.converter.gson.GsonConverterFactory
;
/**
...
...
@@ -50,7 +50,7 @@ public class ClientModule {
builder
.
baseUrl
(
httpUrl
)
//域名
.
client
(
client
)
//设置okhttp
.
addCallAdapterFactory
(
RxJavaCallAdapterFactory
.
create
())
//使用rxjava
.
addCallAdapterFactory
(
RxJava
2
CallAdapterFactory
.
create
())
//使用rxjava
.
addConverterFactory
(
GsonConverterFactory
.
create
());
//使用Gson
configuration
.
configRetrofit
(
application
,
builder
);
return
builder
.
build
();
...
...
arms/src/main/java/com/jess/arms/integration/RepositoryManager.java
浏览文件 @
208f6889
...
...
@@ -10,7 +10,7 @@ import java.util.Map;
import
javax.inject.Inject
;
import
javax.inject.Singleton
;
import
io.rx_cache.internal.RxCache
;
import
io.rx_cache
2
.internal.RxCache
;
import
retrofit2.Retrofit
;
/**
...
...
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
浏览文件 @
208f6889
...
...
@@ -2,15 +2,15 @@ package com.jess.arms.mvp;
import
org.simple.eventbus.EventBus
;
import
rx.Subscription
;
import
rx.subscriptions.CompositeSubscription
;
import
io.reactivex.disposables.CompositeDisposable
;
import
io.reactivex.disposables.Disposable
;
/**
* Created by jess on 16/4/28.
*/
public
class
BasePresenter
<
M
extends
IModel
,
V
extends
IView
>
implements
IPresenter
{
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
protected
Composite
Subscription
mCompositeSubscription
;
protected
Composite
Disposable
mCompositeDisposable
;
protected
M
mModel
;
protected
V
mRootView
;
...
...
@@ -42,12 +42,12 @@ public class BasePresenter<M extends IModel, V extends IView> implements IPresen
public
void
onDestroy
()
{
if
(
useEventBus
())
//如果要使用eventbus请将此方法返回true
EventBus
.
getDefault
().
unregister
(
this
);
//解除注册eventbus
un
Subscrib
e
();
//解除订阅
un
Dispos
e
();
//解除订阅
if
(
mModel
!=
null
)
mModel
.
onDestroy
();
this
.
mModel
=
null
;
this
.
mRootView
=
null
;
this
.
mComposite
Subscription
=
null
;
this
.
mComposite
Disposable
=
null
;
}
/**
...
...
@@ -60,16 +60,16 @@ public class BasePresenter<M extends IModel, V extends IView> implements IPresen
}
protected
void
add
Subscribe
(
Subscription
subscription
)
{
if
(
mComposite
Subscription
==
null
)
{
mComposite
Subscription
=
new
CompositeSubscription
();
protected
void
add
Dispose
(
Disposable
disposable
)
{
if
(
mComposite
Disposable
==
null
)
{
mComposite
Disposable
=
new
CompositeDisposable
();
}
mComposite
Subscription
.
add
(
subscription
);
//将所有subscription
放入,集中处理
mComposite
Disposable
.
add
(
disposable
);
//将所有disposable
放入,集中处理
}
protected
void
un
Subscrib
e
()
{
if
(
mComposite
Subscription
!=
null
)
{
mComposite
Subscription
.
unsubscribe
();
//保证activity结束时取消所有正在执行的订阅
protected
void
un
Dispos
e
()
{
if
(
mComposite
Disposable
!=
null
)
{
mComposite
Disposable
.
clear
();
//保证activity结束时取消所有正在执行的订阅
}
}
...
...
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
浏览文件 @
208f6889
...
...
@@ -3,7 +3,7 @@ package com.jess.arms.utils;
import
android.Manifest
;
import
com.jess.arms.mvp.IView
;
import
com.tbruyelle.rxpermissions.RxPermissions
;
import
com.tbruyelle.rxpermissions
2
.RxPermissions
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
...
...
arms/src/main/java/com/jess/arms/widget/imageloader/glide/GlideImageLoaderStrategy.java
浏览文件 @
208f6889
...
...
@@ -11,9 +11,10 @@ import com.bumptech.glide.load.engine.DiskCacheStrategy;
import
com.bumptech.glide.request.target.Target
;
import
com.jess.arms.widget.imageloader.BaseImageLoaderStrategy
;
import
rx.Observable
;
import
rx.functions.Action1
;
import
rx.schedulers.Schedulers
;
import
io.reactivex.Observable
;
import
io.reactivex.annotations.NonNull
;
import
io.reactivex.functions.Consumer
;
import
io.reactivex.schedulers.Schedulers
;
/**
* Created by jess on 8/5/16 16:28
...
...
@@ -87,9 +88,9 @@ public class GlideImageLoaderStrategy implements BaseImageLoaderStrategy<GlideIm
if
(
config
.
isClearDiskCache
())
{
//清除本地缓存
Observable
.
just
(
0
)
.
observeOn
(
Schedulers
.
io
())
.
subscribe
(
new
Action1
<
Integer
>()
{
.
subscribe
(
new
Consumer
<
Integer
>()
{
@Override
public
void
call
(
Integer
integer
)
{
public
void
accept
(
@NonNull
Integer
integer
)
throws
Exception
{
Glide
.
get
(
ctx
).
clearDiskCache
();
}
});
...
...
config.gradle
浏览文件 @
208f6889
...
...
@@ -5,8 +5,8 @@ ext {
buildToolsVersion
:
"25.0.2"
,
minSdkVersion
:
15
,
targetSdkVersion
:
25
,
versionCode
:
63
,
versionName
:
"
1.6.3
"
,
versionCode
:
100
,
versionName
:
"
2.0.0
"
,
]
version
=
[
...
...
@@ -15,6 +15,7 @@ ext {
dagger2SdkVersion
:
"2.10"
,
butterknifeSdkVersion
:
"8.5.1"
,
rxlifecycleSdkVersion
:
"1.0"
,
rxlifecycle2SdkVersion
:
"2.0.1"
,
espressoSdkVersion
:
"2.2.2"
,
canarySdkVersion
:
"1.5"
]
...
...
@@ -32,9 +33,10 @@ ext {
"retrofit"
:
"com.squareup.retrofit2:retrofit:${version["
retrofitSdkVersion
"]}"
,
"retrofit-converter-gson"
:
"com.squareup.retrofit2:converter-gson:${version["
retrofitSdkVersion
"]}"
,
"retrofit-adapter-rxjava"
:
"com.squareup.retrofit2:adapter-rxjava:${version["
retrofitSdkVersion
"]}"
,
"okhttp3"
:
"com.squareup.okhttp3:okhttp:3.6.0"
,
"retrofit-adapter-rxjava2"
:
"com.squareup.retrofit2:adapter-rxjava2:${version["
retrofitSdkVersion
"]}"
,
"okhttp3"
:
"com.squareup.okhttp3:okhttp:3.7.0"
,
"okhttp-urlconnection"
:
"com.squareup.okhttp:okhttp-urlconnection:2.0.0"
,
"glide"
:
"com.github.bumptech.glide:glide:3.
7
.0"
,
"glide"
:
"com.github.bumptech.glide:glide:3.
8
.0"
,
"picasso"
:
"com.squareup.picasso:picasso:2.5.2"
,
//view
...
...
@@ -47,7 +49,7 @@ ext {
"nineoldandroids"
:
"com.nineoldandroids:library:2.4.0"
,
"paginate"
:
"com.github.markomilos:paginate:0.5.1"
,
//rx
//rx
1
"rxandroid"
:
"io.reactivex:rxandroid:1.2.1"
,
"rxjava"
:
"io.reactivex:rxjava:1.2.9"
,
"rxlifecycle"
:
"com.trello:rxlifecycle:${version["
rxlifecycleSdkVersion
"]}"
,
...
...
@@ -58,6 +60,15 @@ ext {
"rxpermissions"
:
"com.tbruyelle.rxpermissions:rxpermissions:0.9.3@aar"
,
"rxerrorhandler"
:
"me.jessyan:rxerrorhandler:1.0.1"
,
//rx2
"rxandroid2"
:
"io.reactivex.rxjava2:rxandroid:2.0.1"
,
"rxjava2"
:
"io.reactivex.rxjava2:rxjava:2.1.0"
,
"rxlifecycle2"
:
"com.trello.rxlifecycle2:rxlifecycle:${version["
rxlifecycle2SdkVersion
"]}"
,
"rxlifecycle2-components"
:
"com.trello.rxlifecycle2:rxlifecycle-components:${version["
rxlifecycle2SdkVersion
"]}"
,
"rxcache2"
:
"com.github.VictorAlbertos.RxCache:runtime:1.8.0-2.x"
,
"rxpermissions2"
:
"com.tbruyelle.rxpermissions2:rxpermissions:0.9.4@aar"
,
"rxerrorhandler2"
:
"me.jessyan:rxerrorhandler:2.0"
,
//tools
"dagger2"
:
"com.google.dagger:dagger:${version["
dagger2SdkVersion
"]}"
,
"dagger2-compiler"
:
"com.google.dagger:dagger-compiler:${version["
dagger2SdkVersion
"]}"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录