Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
MVPArms
提交
564d51a3
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,体验更适合开发者的 AI 搜索 >>
提交
564d51a3
编写于
4月 13, 2017
作者:
J
jessyan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add RepositoryManager
上级
46a9efc4
变更
15
隐藏空白更改
内联
并排
Showing
15 changed file
with
145 addition
and
40 deletion
+145
-40
MVP_generator_solution
MVP_generator_solution
+1
-1
app/src/main/java/common/WEActivity.java
app/src/main/java/common/WEActivity.java
+2
-2
app/src/main/java/common/WEApplication.java
app/src/main/java/common/WEApplication.java
+3
-3
app/src/main/java/common/WEFragment.java
app/src/main/java/common/WEFragment.java
+2
-2
app/src/main/java/me/jessyan/mvparms/demo/mvp/contract/UserContract.java
...va/me/jessyan/mvparms/demo/mvp/contract/UserContract.java
+2
-2
arms/src/main/java/com/jess/arms/base/BaseActivity.java
arms/src/main/java/com/jess/arms/base/BaseActivity.java
+2
-2
arms/src/main/java/com/jess/arms/base/BaseFragment.java
arms/src/main/java/com/jess/arms/base/BaseFragment.java
+2
-2
arms/src/main/java/com/jess/arms/di/module/GlobeConfigModule.java
.../main/java/com/jess/arms/di/module/GlobeConfigModule.java
+15
-15
arms/src/main/java/com/jess/arms/integration/IRepositoryManager.java
...in/java/com/jess/arms/integration/IRepositoryManager.java
+42
-0
arms/src/main/java/com/jess/arms/integration/RepositoryManager.java
...ain/java/com/jess/arms/integration/RepositoryManager.java
+63
-0
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
+1
-1
arms/src/main/java/com/jess/arms/mvp/IPresenter.java
arms/src/main/java/com/jess/arms/mvp/IPresenter.java
+1
-1
arms/src/main/java/com/jess/arms/mvp/IView.java
arms/src/main/java/com/jess/arms/mvp/IView.java
+1
-1
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
+5
-5
arms/src/main/java/com/jess/arms/utils/RxUtils.java
arms/src/main/java/com/jess/arms/utils/RxUtils.java
+3
-3
未找到文件。
MVP_generator_solution
浏览文件 @
564d51a3
...
...
@@ -135,7 +135,7 @@ Name: Contract
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
import com.jess.arms.mvp.
Base
View;
import com.jess.arms.mvp.
I
View;
import com.jess.arms.mvp.IModel;
/**
...
...
app/src/main/java/common/WEActivity.java
浏览文件 @
564d51a3
package
common
;
import
com.jess.arms.base.BaseActivity
;
import
com.jess.arms.mvp.Presenter
;
import
com.jess.arms.mvp.
I
Presenter
;
/**
* Created by jess on 8/5/16 13:13
* contact with jess.yan.effort@gmail.com
*/
public
abstract
class
WEActivity
<
P
extends
Presenter
>
extends
BaseActivity
<
P
>
{
public
abstract
class
WEActivity
<
P
extends
I
Presenter
>
extends
BaseActivity
<
P
>
{
protected
WEApplication
mWeApplication
;
@Override
protected
void
ComponentInject
()
{
...
...
app/src/main/java/common/WEApplication.java
浏览文件 @
564d51a3
...
...
@@ -101,9 +101,9 @@ public class WEApplication extends BaseApplication {
@Override
protected
GlobeConfigModule
getGlobeConfigModule
()
{
return
GlobeConfigModule
.
bui
dl
er
()
.
bui
ld
er
()
.
baseurl
(
Api
.
APP_DOMAIN
)
.
globeHttpHandler
(
new
GlobeHttpHandler
()
{
// 这里可以提供一个全局处理
http
响应结果的处理类,
.
globeHttpHandler
(
new
GlobeHttpHandler
()
{
// 这里可以提供一个全局处理
Http请求和
响应结果的处理类,
// 这里可以比客户端提前一步拿到服务器返回的结果,可以做一些操作,比如token超时,重新获取
@Override
public
Response
onHttpResultResponse
(
String
httpResult
,
Interceptor
.
Chain
chain
,
Response
response
)
{
...
...
@@ -139,7 +139,7 @@ public class WEApplication extends BaseApplication {
return
response
;
}
// 这里可以在请求服务器之前可以拿到request,做一些操作比如给request统一添加token或者header以及
数据
加密等操作
// 这里可以在请求服务器之前可以拿到request,做一些操作比如给request统一添加token或者header以及
参数
加密等操作
@Override
public
Request
onHttpRequestBefore
(
Interceptor
.
Chain
chain
,
Request
request
)
{
/* 如果需要再请求服务器之前做一些操作,则重新返回一个做过操作的的requeat如增加header,不做操作则直接返回request参数
...
...
app/src/main/java/common/WEFragment.java
浏览文件 @
564d51a3
package
common
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.mvp.Presenter
;
import
com.jess.arms.mvp.
I
Presenter
;
import
com.squareup.leakcanary.RefWatcher
;
/**
* Created by jess on 8/5/16 14:11
* contact with jess.yan.effort@gmail.com
*/
public
abstract
class
WEFragment
<
P
extends
Presenter
>
extends
BaseFragment
<
P
>
{
public
abstract
class
WEFragment
<
P
extends
I
Presenter
>
extends
BaseFragment
<
P
>
{
protected
WEApplication
mWeApplication
;
@Override
protected
void
ComponentInject
()
{
...
...
app/src/main/java/me/jessyan/mvparms/demo/mvp/contract/UserContract.java
浏览文件 @
564d51a3
package
me.jessyan.mvparms.demo.mvp.contract
;
import
com.jess.arms.base.DefaultAdapter
;
import
com.jess.arms.mvp.
Base
View
;
import
com.jess.arms.mvp.
I
View
;
import
com.jess.arms.mvp.IModel
;
import
com.tbruyelle.rxpermissions.RxPermissions
;
...
...
@@ -16,7 +16,7 @@ import rx.Observable;
*/
public
interface
UserContract
{
//对于经常使用的关于UI的方法可以定义到BaseView中,如显示隐藏进度条,和显示文字消息
interface
View
extends
Base
View
{
interface
View
extends
I
View
{
void
setAdapter
(
DefaultAdapter
adapter
);
void
startLoadMore
();
void
endLoadMore
();
...
...
arms/src/main/java/com/jess/arms/base/BaseActivity.java
浏览文件 @
564d51a3
...
...
@@ -7,7 +7,7 @@ import android.support.annotation.Nullable;
import
android.util.AttributeSet
;
import
android.view.View
;
import
com.jess.arms.mvp.Presenter
;
import
com.jess.arms.mvp.
I
Presenter
;
import
com.trello.rxlifecycle.components.support.RxAppCompatActivity
;
import
com.zhy.autolayout.AutoFrameLayout
;
import
com.zhy.autolayout.AutoLinearLayout
;
...
...
@@ -20,7 +20,7 @@ import javax.inject.Inject;
import
butterknife.ButterKnife
;
import
butterknife.Unbinder
;
public
abstract
class
BaseActivity
<
P
extends
Presenter
>
extends
RxAppCompatActivity
{
public
abstract
class
BaseActivity
<
P
extends
I
Presenter
>
extends
RxAppCompatActivity
{
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
protected
BaseApplication
mApplication
;
private
Unbinder
mUnbinder
;
...
...
arms/src/main/java/com/jess/arms/base/BaseFragment.java
浏览文件 @
564d51a3
...
...
@@ -6,7 +6,7 @@ import android.view.LayoutInflater;
import
android.view.View
;
import
android.view.ViewGroup
;
import
com.jess.arms.mvp.Presenter
;
import
com.jess.arms.mvp.
I
Presenter
;
import
com.trello.rxlifecycle.components.support.RxFragment
;
import
org.simple.eventbus.EventBus
;
...
...
@@ -19,7 +19,7 @@ import butterknife.Unbinder;
/**
* Created by jess on 2015/12/8.
*/
public
abstract
class
BaseFragment
<
P
extends
Presenter
>
extends
RxFragment
{
public
abstract
class
BaseFragment
<
P
extends
I
Presenter
>
extends
RxFragment
{
protected
BaseActivity
mActivity
;
protected
View
mRootView
;
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
...
...
arms/src/main/java/com/jess/arms/di/module/GlobeConfigModule.java
浏览文件 @
564d51a3
...
...
@@ -36,16 +36,16 @@ public class GlobeConfigModule {
* @date 8/5/16 11:03 AM
* @description: 设置baseurl
*/
private
GlobeConfigModule
(
Bui
dler
buidl
er
)
{
this
.
mApiUrl
=
bui
dl
er
.
apiUrl
;
this
.
mHandler
=
bui
dl
er
.
handler
;
this
.
mInterceptors
=
bui
dl
er
.
interceptors
;
this
.
mErroListener
=
bui
dl
er
.
responseErroListener
;
this
.
mCacheFile
=
bui
dl
er
.
cacheFile
;
private
GlobeConfigModule
(
Bui
lder
build
er
)
{
this
.
mApiUrl
=
bui
ld
er
.
apiUrl
;
this
.
mHandler
=
bui
ld
er
.
handler
;
this
.
mInterceptors
=
bui
ld
er
.
interceptors
;
this
.
mErroListener
=
bui
ld
er
.
responseErroListener
;
this
.
mCacheFile
=
bui
ld
er
.
cacheFile
;
}
public
static
Bui
dler
buidl
er
()
{
return
new
Bui
dl
er
();
public
static
Bui
lder
build
er
()
{
return
new
Bui
ld
er
();
}
...
...
@@ -92,17 +92,17 @@ public class GlobeConfigModule {
}
public
static
final
class
Bui
dl
er
{
public
static
final
class
Bui
ld
er
{
private
HttpUrl
apiUrl
=
HttpUrl
.
parse
(
"https://api.github.com/"
);
private
GlobeHttpHandler
handler
;
private
List
<
Interceptor
>
interceptors
=
new
ArrayList
<>();
private
ResponseErroListener
responseErroListener
;
private
File
cacheFile
;
private
Bui
dl
er
()
{
private
Bui
ld
er
()
{
}
public
Bui
dl
er
baseurl
(
String
baseurl
)
{
//基础url
public
Bui
ld
er
baseurl
(
String
baseurl
)
{
//基础url
if
(
TextUtils
.
isEmpty
(
baseurl
))
{
throw
new
IllegalArgumentException
(
"baseurl can not be empty"
);
}
...
...
@@ -110,24 +110,24 @@ public class GlobeConfigModule {
return
this
;
}
public
Bui
dl
er
globeHttpHandler
(
GlobeHttpHandler
handler
)
{
//用来处理http响应结果
public
Bui
ld
er
globeHttpHandler
(
GlobeHttpHandler
handler
)
{
//用来处理http响应结果
this
.
handler
=
handler
;
return
this
;
}
public
Bui
dl
er
addInterceptor
(
Interceptor
interceptor
)
{
//动态添加任意个interceptor
public
Bui
ld
er
addInterceptor
(
Interceptor
interceptor
)
{
//动态添加任意个interceptor
this
.
interceptors
.
add
(
interceptor
);
return
this
;
}
public
Bui
dl
er
responseErroListener
(
ResponseErroListener
listener
)
{
//处理所有Rxjava的onError逻辑
public
Bui
ld
er
responseErroListener
(
ResponseErroListener
listener
)
{
//处理所有Rxjava的onError逻辑
this
.
responseErroListener
=
listener
;
return
this
;
}
public
Bui
dl
er
cacheFile
(
File
cacheFile
)
{
public
Bui
ld
er
cacheFile
(
File
cacheFile
)
{
this
.
cacheFile
=
cacheFile
;
return
this
;
}
...
...
arms/src/main/java/com/jess/arms/integration/IRepositoryManager.java
0 → 100644
浏览文件 @
564d51a3
package
com.jess.arms.integration
;
/**
* Created by jess on 17/03/2017 11:15
* Contact with jess.yan.effort@gmail.com
*/
public
interface
IRepositoryManager
{
/**
* 注入RetrofitService,在框架全局配置类中进行注入
* @param services
*/
void
injectRetrofitService
(
Class
<?>...
services
);
/**
* 注入CacheService,在框架全局配置类中进行注入
* @param services
*/
void
injectCacheService
(
Class
<?>...
services
);
/**
* 根据传入的Class获取对应的Retrift service
*
* @param service
* @param <T>
* @return
*/
<
T
>
T
obtainRetrofitService
(
Class
<
T
>
service
);
/**
* 根据传入的Class获取对应的RxCache service
*
* @param cache
* @param <T>
* @return
*/
<
T
>
T
obtainCacheService
(
Class
<
T
>
cache
);
}
arms/src/main/java/com/jess/arms/integration/RepositoryManager.java
0 → 100644
浏览文件 @
564d51a3
package
com.jess.arms.integration
;
import
com.jess.arms.utils.Preconditions
;
import
java.util.LinkedHashMap
;
import
java.util.Map
;
import
javax.inject.Inject
;
import
javax.inject.Singleton
;
import
io.rx_cache.internal.RxCache
;
import
retrofit2.Retrofit
;
/**
* 用来管理网络请求层,以及数据缓存层,以后可以添加数据库请求层
* 需要在{link ConfigModule}中先inject需要的服务
* Created by jess on 13/04/2017 09:52
* Contact with jess.yan.effort@gmail.com
*/
@Singleton
public
class
RepositoryManager
implements
IRepositoryManager
{
private
Retrofit
mRetrofit
;
private
RxCache
mRxCache
;
private
final
Map
<
String
,
Object
>
mRetrofitServiceCache
=
new
LinkedHashMap
<>();
private
final
Map
<
String
,
Object
>
mCacheServiceCache
=
new
LinkedHashMap
<>();
@Inject
public
RepositoryManager
(
Retrofit
retrofit
,
RxCache
rxCache
)
{
this
.
mRetrofit
=
retrofit
;
this
.
mRxCache
=
rxCache
;
}
@Override
public
void
injectRetrofitService
(
Class
<?>...
services
)
{
for
(
Class
<?>
service
:
services
)
{
if
(
mRetrofitServiceCache
.
containsKey
(
service
.
getName
()))
continue
;
mRetrofitServiceCache
.
put
(
service
.
getName
(),
mRetrofit
.
create
(
service
));
}
}
@Override
public
void
injectCacheService
(
Class
<?>...
services
)
{
for
(
Class
<?>
service
:
services
)
{
if
(
mCacheServiceCache
.
containsKey
(
service
.
getName
()))
continue
;
mCacheServiceCache
.
put
(
service
.
getName
(),
mRxCache
.
using
(
service
));
}
}
@Override
public
<
T
>
T
obtainRetrofitService
(
Class
<
T
>
service
)
{
Preconditions
.
checkState
(
mRetrofitServiceCache
.
containsKey
(
service
.
getName
())
,
"Unable to find %s,first call injectRetrofitService(%s) in ConfigModule"
,
service
.
getName
(),
service
.
getSimpleName
());
return
(
T
)
mRetrofitServiceCache
.
get
(
service
.
getName
());
}
@Override
public
<
T
>
T
obtainCacheService
(
Class
<
T
>
cache
)
{
Preconditions
.
checkState
(
mCacheServiceCache
.
containsKey
(
cache
.
getName
())
,
"Unable to find %s,first call injectCacheService(%s) in ConfigModule"
,
cache
.
getName
(),
cache
.
getSimpleName
());
return
(
T
)
mCacheServiceCache
.
get
(
cache
.
getName
());
}
}
arms/src/main/java/com/jess/arms/mvp/BasePresenter.java
浏览文件 @
564d51a3
...
...
@@ -8,7 +8,7 @@ import rx.subscriptions.CompositeSubscription;
/**
* Created by jess on 16/4/28.
*/
public
class
BasePresenter
<
M
extends
IModel
,
V
extends
BaseView
>
implements
Presenter
{
public
class
BasePresenter
<
M
extends
IModel
,
V
extends
IView
>
implements
I
Presenter
{
protected
final
String
TAG
=
this
.
getClass
().
getSimpleName
();
protected
CompositeSubscription
mCompositeSubscription
;
...
...
arms/src/main/java/com/jess/arms/mvp/Presenter.java
→
arms/src/main/java/com/jess/arms/mvp/
I
Presenter.java
浏览文件 @
564d51a3
...
...
@@ -3,7 +3,7 @@ package com.jess.arms.mvp;
/**
* Created by jess on 16/4/28.
*/
public
interface
Presenter
{
public
interface
I
Presenter
{
void
onStart
();
void
onDestroy
();
}
arms/src/main/java/com/jess/arms/mvp/
Base
View.java
→
arms/src/main/java/com/jess/arms/mvp/
I
View.java
浏览文件 @
564d51a3
...
...
@@ -5,7 +5,7 @@ import android.content.Intent;
/**
* Created by jess on 16/4/22.
*/
public
interface
Base
View
{
public
interface
I
View
{
/**
* 显示加载
...
...
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
浏览文件 @
564d51a3
...
...
@@ -2,7 +2,7 @@ package com.jess.arms.utils;
import
android.Manifest
;
import
com.jess.arms.mvp.
Base
View
;
import
com.jess.arms.mvp.
I
View
;
import
com.tbruyelle.rxpermissions.RxPermissions
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
...
...
@@ -27,7 +27,7 @@ public class PermissionUtil {
/**
* 请求摄像头权限
*/
public
static
void
launchCamera
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
Base
View
view
,
RxErrorHandler
errorHandler
)
{
public
static
void
launchCamera
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
I
View
view
,
RxErrorHandler
errorHandler
)
{
//先确保是否已经申请过摄像头,和写入外部存储的权限
boolean
isPermissionsGranted
=
rxPermissions
...
...
@@ -60,7 +60,7 @@ public class PermissionUtil {
/**
* 请求外部存储的权限
*/
public
static
void
externalStorage
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
Base
View
view
,
RxErrorHandler
errorHandler
)
{
public
static
void
externalStorage
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
I
View
view
,
RxErrorHandler
errorHandler
)
{
//先确保是否已经申请过摄像头,和写入外部存储的权限
boolean
isPermissionsGranted
=
rxPermissions
...
...
@@ -90,7 +90,7 @@ public class PermissionUtil {
/**
* 请求发送短信权限
*/
public
static
void
sendSms
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
Base
View
view
,
RxErrorHandler
errorHandler
)
{
public
static
void
sendSms
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
I
View
view
,
RxErrorHandler
errorHandler
)
{
//先确保是否已经申请过权限
boolean
isPermissionsGranted
=
rxPermissions
...
...
@@ -119,7 +119,7 @@ public class PermissionUtil {
/**
* 请求打电话权限
*/
public
static
void
callPhone
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
Base
View
view
,
RxErrorHandler
errorHandler
)
{
public
static
void
callPhone
(
final
RequestPermission
requestPermission
,
RxPermissions
rxPermissions
,
final
I
View
view
,
RxErrorHandler
errorHandler
)
{
//先确保是否已经申请过权限
boolean
isPermissionsGranted
=
rxPermissions
...
...
arms/src/main/java/com/jess/arms/utils/RxUtils.java
浏览文件 @
564d51a3
...
...
@@ -2,7 +2,7 @@ package com.jess.arms.utils;
import
com.jess.arms.base.BaseActivity
;
import
com.jess.arms.base.BaseFragment
;
import
com.jess.arms.mvp.
Base
View
;
import
com.jess.arms.mvp.
I
View
;
import
com.trello.rxlifecycle.LifecycleTransformer
;
import
rx.Observable
;
...
...
@@ -17,7 +17,7 @@ import rx.schedulers.Schedulers;
public
class
RxUtils
{
public
static
<
T
>
Observable
.
Transformer
<
T
,
T
>
applySchedulers
(
final
Base
View
view
)
{
public
static
<
T
>
Observable
.
Transformer
<
T
,
T
>
applySchedulers
(
final
I
View
view
)
{
return
new
Observable
.
Transformer
<
T
,
T
>()
{
@Override
public
Observable
<
T
>
call
(
Observable
<
T
>
observable
)
{
...
...
@@ -41,7 +41,7 @@ public class RxUtils {
}
public
static
<
T
>
LifecycleTransformer
<
T
>
bindToLifecycle
(
Base
View
view
)
{
public
static
<
T
>
LifecycleTransformer
<
T
>
bindToLifecycle
(
I
View
view
)
{
if
(
view
instanceof
BaseActivity
)
{
return
((
BaseActivity
)
view
).<
T
>
bindToLifecycle
();
}
else
if
(
view
instanceof
BaseFragment
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录