Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
MVPArms
提交
358b8341
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,发现更多精彩内容 >>
提交
358b8341
编写于
10月 17, 2017
作者:
J
jessyan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add shouldShowRequestPermissionRationale to PermissionUtil
上级
99172f57
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
59 addition
and
27 deletion
+59
-27
app/src/main/java/me/jessyan/mvparms/demo/mvp/presenter/UserPresenter.java
.../me/jessyan/mvparms/demo/mvp/presenter/UserPresenter.java
+6
-1
arms/src/main/java/com/jess/arms/di/module/ClientModule.java
arms/src/main/java/com/jess/arms/di/module/ClientModule.java
+2
-2
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
+51
-24
未找到文件。
app/src/main/java/me/jessyan/mvparms/demo/mvp/presenter/UserPresenter.java
浏览文件 @
358b8341
...
...
@@ -78,9 +78,14 @@ public class UserPresenter extends BasePresenter<UserContract.Model, UserContrac
}
@Override
public
void
onRequestPermissionFailure
()
{
public
void
onRequestPermissionFailure
(
List
<
String
>
permissions
)
{
mRootView
.
showMessage
(
"Request permissions failure"
);
}
@Override
public
void
onRequestPermissionFailureWithAskNeverAgain
(
List
<
String
>
permissions
)
{
mRootView
.
showMessage
(
"Need to go to the settings"
);
}
},
mRootView
.
getRxPermissions
(),
mErrorHandler
);
...
...
arms/src/main/java/com/jess/arms/di/module/ClientModule.java
浏览文件 @
358b8341
...
...
@@ -82,8 +82,8 @@ public class ClientModule {
configuration
.
configRetrofit
(
application
,
builder
);
builder
.
addCallAdapterFactory
(
RxJava2CallAdapterFactory
.
create
())
//使用
r
xjava
.
addConverterFactory
(
GsonConverterFactory
.
create
(
gson
));
//使用Gson
.
addCallAdapterFactory
(
RxJava2CallAdapterFactory
.
create
())
//使用
R
xjava
.
addConverterFactory
(
GsonConverterFactory
.
create
(
gson
));
//使用
Gson
return
builder
.
build
();
}
...
...
arms/src/main/java/com/jess/arms/utils/PermissionUtil.java
浏览文件 @
358b8341
/**
* Copyright 2017 JessYan
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
* Copyright 2017 JessYan
* <p>
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
* <p>
*
http://www.apache.org/licenses/LICENSE-2.0
* <p>
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
com.jess.arms.utils
;
import
android.Manifest
;
import
com.tbruyelle.rxpermissions2.Permission
;
import
com.tbruyelle.rxpermissions2.RxPermissions
;
import
java.util.ArrayList
;
import
java.util.Arrays
;
import
java.util.List
;
import
io.reactivex.annotations.NonNull
;
import
me.jessyan.rxerrorhandler.core.RxErrorHandler
;
import
me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber
;
import
timber.log.Timber
;
...
...
@@ -45,9 +48,24 @@ public class PermissionUtil {
}
public
interface
RequestPermission
{
/**
* 权限请求成功
*/
void
onRequestPermissionSuccess
();
void
onRequestPermissionFailure
();
/**
* 用户拒绝了权限请求, 权限请求失败, 但还可以继续请求该权限
*
* @param permissions 请求失败的权限名
*/
void
onRequestPermissionFailure
(
List
<
String
>
permissions
);
/**
* 用户拒绝了权限请求并且用户选择了以后不再询问, 权限请求失败, 这时将不能继续请求该权限, 需要提示用户进入设置页面打开该权限
*
* @param permissions
*/
void
onRequestPermissionFailureWithAskNeverAgain
(
List
<
String
>
permissions
);
}
...
...
@@ -65,17 +83,26 @@ public class PermissionUtil {
requestPermission
.
onRequestPermissionSuccess
();
}
else
{
//没有申请过,则开始申请
rxPermissions
.
request
(
needRequest
.
toArray
(
new
String
[
needRequest
.
size
()]))
.
subscribe
(
new
ErrorHandleSubscriber
<
Boolean
>(
errorHandler
)
{
.
requestEach
(
needRequest
.
toArray
(
new
String
[
needRequest
.
size
()]))
.
buffer
(
permissions
.
length
)
.
subscribe
(
new
ErrorHandleSubscriber
<
List
<
Permission
>>(
errorHandler
)
{
@Override
public
void
onNext
(
Boolean
granted
)
{
if
(
granted
)
{
Timber
.
tag
(
TAG
).
d
(
"Request permissions success"
);
requestPermission
.
onRequestPermissionSuccess
();
}
else
{
Timber
.
tag
(
TAG
).
d
(
"Request permissions failure"
);
requestPermission
.
onRequestPermissionFailure
();
public
void
onNext
(
@NonNull
List
<
Permission
>
permissions
)
{
for
(
Permission
p
:
permissions
)
{
if
(!
p
.
granted
)
{
if
(
p
.
shouldShowRequestPermissionRationale
)
{
Timber
.
tag
(
TAG
).
d
(
"Request permissions failure"
);
requestPermission
.
onRequestPermissionFailure
(
Arrays
.
asList
(
p
.
name
));
return
;
}
else
{
Timber
.
tag
(
TAG
).
d
(
"Request permissions failure with ask never again"
);
requestPermission
.
onRequestPermissionFailureWithAskNeverAgain
(
Arrays
.
asList
(
p
.
name
));
return
;
}
}
}
Timber
.
tag
(
TAG
).
d
(
"Request permissions success"
);
requestPermission
.
onRequestPermissionSuccess
();
}
});
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录