Skip to content

Commit

Permalink
version 1.0.7
Browse files Browse the repository at this point in the history
  • Loading branch information
raphaelbussa committed Jan 16, 2017
1 parent a25d8eb commit 0ee4c27
Show file tree
Hide file tree
Showing 12 changed files with 119 additions and 115 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ repositories {
```
```Gradle
dependencies {
compile 'rebus:permission-utils:1.0.6'
compile 'rebus:permission-utils:1.0.7'
}
```
### How to use
Expand All @@ -36,7 +36,7 @@ Now you can ask permission :D
PermissionManager.with(MainActivity.this)
.permission(PermissionEnum.WRITE_EXTERNAL_STORAGE)
.askagain(true)
.askagainCallback(new AskagainCallback() {
.askAgainCallback(new AskAgainCallback() {
@Override
public void showRequestPermission(UserResponse response) {
showDialog(response);
Expand Down
12 changes: 8 additions & 4 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,21 @@ buildscript {

ext {
var = [
version: "1.0.6",
supportLib: "25.0.0"
compileSdk: 25,
buildTools: "25.0.2",
minSdk : 9,
targetSdk : 25,
version : "1.0.7",
supportLib: "25.1.0"
]
}

repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.2'
classpath 'com.novoda:bintray-release:0.3.4'
classpath 'com.android.tools.build:gradle:2.2.3'
classpath 'com.novoda:bintray-release:0.4.0'
}
}

Expand Down
12 changes: 6 additions & 6 deletions library/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@ apply plugin: 'com.android.library'
apply plugin: 'com.novoda.bintray-release'

android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
compileSdkVersion var.compileSdk
buildToolsVersion var.buildTools

defaultConfig {
minSdkVersion 9
targetSdkVersion 25
minSdkVersion var.minSdk
targetSdkVersion var.targetSdk
versionCode 1
versionName "${var.version}"
}
Expand All @@ -47,14 +47,14 @@ android {
}

dependencies {
compile "com.android.support:appcompat-v7:${var.supportLib}"
compile "com.android.support:support-v4:${var.supportLib}"
}

publish {
userOrg = 'raphaelbussa'
groupId = 'rebus'
artifactId = 'permission-utils'
publishVersion = "${var.version}"
desc = 'Check marshmellow permission easily'
desc = 'Check marshmallow permission easily'
website = 'https://github.com/rebus007/PermissionUtils'
}
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,12 @@
/**
* Created by raphaelbussa on 22/06/16.
*/
public interface AskagainCallback {
public interface AskAgainCallback {

void showRequestPermission(UserResponse response);

interface UserResponse {
void result(boolean askagain);
void result(boolean askAgain);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@
/**
* Created by raphaelbussa on 22/06/16.
*/
@SuppressWarnings("SpellCheckingInspection")
@SuppressLint("InlinedApi")
public enum PermissionEnum {

Expand Down Expand Up @@ -67,7 +68,9 @@ public enum PermissionEnum {
GROUP_PHONE(Manifest.permission_group.PHONE),
GROUP_SENSORS(Manifest.permission_group.SENSORS),
GROUP_SMS(Manifest.permission_group.SMS),
GROUP_STORAGE(Manifest.permission_group.STORAGE);
GROUP_STORAGE(Manifest.permission_group.STORAGE),

NULL("");

private final String permission;

Expand All @@ -81,7 +84,7 @@ public static PermissionEnum fromManifestPermission(@NonNull String value) {
return permissionEnum;
}
}
return null;
return NULL;
}

@Override
Expand Down

This file was deleted.

50 changes: 38 additions & 12 deletions library/src/main/java/rebus/permissionutils/PermissionManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ public class PermissionManager {

private FullCallback fullCallback;
private SimpleCallback simpleCallback;
private AskagainCallback askagainCallback;
private AskAgainCallback askAgainCallback;
private SmartCallback smartCallback;

private boolean askagain = false;
private boolean askAgain = false;

private ArrayList<PermissionEnum> permissions;
private ArrayList<PermissionEnum> permissionsGranted;
Expand Down Expand Up @@ -87,10 +87,10 @@ public static void handleResult(int requestCode, @NonNull String[] permissions,
instance.permissionToAsk.add(PermissionEnum.fromManifestPermission(permissions[i]));
}
}
if (instance.permissionToAsk.size() != 0 && instance.askagain) {
instance.askagain = false;
if (instance.askagainCallback != null && instance.permissionsDeniedForever.size() != instance.permissionsDenied.size()) {
instance.askagainCallback.showRequestPermission(new AskagainCallback.UserResponse() {
if (instance.permissionToAsk.size() != 0 && instance.askAgain) {
instance.askAgain = false;
if (instance.askAgainCallback != null && instance.permissionsDeniedForever.size() != instance.permissionsDenied.size()) {
instance.askAgainCallback.showRequestPermission(new AskAgainCallback.UserResponse() {
@Override
public void result(boolean askagain) {
if (askagain) {
Expand Down Expand Up @@ -144,45 +144,68 @@ public PermissionManager permission(PermissionEnum... permissions) {
}

/**
* @param askagain ask again when permission not granted
* @param askAgain ask again when permission not granted
* @return current instance
*/
public PermissionManager askagain(boolean askagain) {
this.askagain = askagain;
public PermissionManager askAgain(boolean askAgain) {
this.askAgain = askAgain;
return this;
}

/**
* @param fullCallback set fullCallback for the request
* @return current instance
*/
public PermissionManager callback(FullCallback fullCallback) {
this.simpleCallback = null;
this.smartCallback = null;
this.fullCallback = fullCallback;
return this;
}

/**
* @param simpleCallback set simpleCallback for the request
* @return current instance
*/
public PermissionManager callback(SimpleCallback simpleCallback) {
this.fullCallback = null;
this.smartCallback = null;
this.simpleCallback = simpleCallback;
return this;
}

/**
* @param smartCallback set smartCallback for the request
* @return current instance
*/
public PermissionManager callback(SmartCallback smartCallback) {
this.fullCallback = null;
this.simpleCallback = null;
this.smartCallback = smartCallback;
return this;
}

public PermissionManager askagainCallback(AskagainCallback askagainCallback) {
this.askagainCallback = askagainCallback;
/**
* @param askAgainCallback set askAgainCallback for the request
* @return current instance
*/
public PermissionManager askAgainCallback(AskAgainCallback askAgainCallback) {
this.askAgainCallback = askAgainCallback;
return this;
}

/**
* @param key set a custom request code
* @return current instance
*/
public PermissionManager key(int key) {
this.key = key;
return this;
}

/**
* just start all permission manager
*/
public void ask() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
initArray();
Expand All @@ -200,7 +223,7 @@ public void ask() {
}

/**
* @return permission that you realy need to ask
* @return permission that you really need to ask
*/
@NonNull
private String[] permissionToAsk() {
Expand All @@ -225,6 +248,9 @@ private void initArray() {
this.permissionToAsk = new ArrayList<>();
}

/**
* check if one of three types of callback are not null and pass data
*/
private void showResult() {
if (simpleCallback != null)
simpleCallback.result(permissionToAsk.size() == 0 || permissionToAsk.size() == permissionsGranted.size());
Expand Down
33 changes: 23 additions & 10 deletions library/src/main/java/rebus/permissionutils/PermissionUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,20 @@
*/
public class PermissionUtils {

/**
* @param context current context
* @param permission permission to check
* @return if permission is granted return true
*/
public static boolean isGranted(Context context, PermissionEnum permission) {
return Build.VERSION.SDK_INT < Build.VERSION_CODES.M || ContextCompat.checkSelfPermission(context, permission.toString()) == PackageManager.PERMISSION_GRANTED;
}

/**
* @param context current context
* @param permission all permission you need to check
* @return if one of permission is not granted return false
*/
public static boolean isGranted(Context context, PermissionEnum... permission) {
for (PermissionEnum permissionEnum : permission) {
if (!isGranted(context, permissionEnum)) {
Expand All @@ -49,20 +59,23 @@ public static boolean isGranted(Context context, PermissionEnum... permission) {
return true;
}

/**
* @param packageName package name of your app
* @return an intent to start for open settings app
*/
public static Intent openApplicationSettings(String packageName) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + packageName));
return intent;
}
return new Intent();
Intent intent = new Intent(android.provider.Settings.ACTION_APPLICATION_DETAILS_SETTINGS);
intent.setData(Uri.parse("package:" + packageName));
return intent;
}

/**
* @param context current context
* @param packageName package name of your app
*/
public static void openApplicationSettings(Context context, String packageName) {
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.GINGERBREAD) {
Intent intent = openApplicationSettings(packageName);
context.startActivity(intent);
}
Intent intent = openApplicationSettings(packageName);
context.startActivity(intent);
}

}
8 changes: 4 additions & 4 deletions sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,13 @@
apply plugin: 'com.android.application'

android {
compileSdkVersion 25
buildToolsVersion "25.0.0"
compileSdkVersion var.compileSdk
buildToolsVersion var.buildTools

defaultConfig {
applicationId "rebus.permissionutils.sample"
minSdkVersion 9
targetSdkVersion 25
minSdkVersion var.minSdk
targetSdkVersion var.targetSdk
versionCode 1
versionName "${var.version}"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,6 @@
import android.support.v7.app.AppCompatActivity;
import android.view.MenuItem;

/**
* Created by raphaelbussa on 16/11/16.
*/

public class FragmentActivity extends AppCompatActivity {

private final static String SECOND_FRAGMENT = "SECOND_FRAGMENT";
Expand Down
Loading

0 comments on commit 0ee4c27

Please sign in to comment.