PermissionAcceptor

Additional

Language
Java
Version
N/A
Created
Mar 9, 2016
Updated
Mar 10, 2016 (Retired)
Owner
Harsh Patel (hp-harsh)
Contributor
Harsh Patel (hp-harsh)
1
Activity
Badge
Generate
Download
Source code
APK file

Promotion

PermissionAcceptor-master

PermissionAcceptor allows to handle runtime permission in Marshmallow(Android 6.0)

Runtime permission is necessary from Marshmallow. It is also very good for users but for developer, it is quite monotonous. Sometime it is repetitive task for developer.

This simple and fast library carries all the boring task.

How to use

Here is some simple step to follow

1. Request Permission

Library includes all required permission. Just make permission request with adding "Permission", "PermissionCode" and few other parameters.

For example,

new PermissionRequest(MainActivity.this,
                Permission.PERMISSION_CAMERA,
                PermissionCode.CODE_PERMISSION_CAMERA,
                R.string.permission_camera_rationale,
                R.string.permission_camera_denied,
                R.string.permission_enable_message, this)
                .checkPermission();

2. Add onRequestPermissionsResult() method for Callback

onRequestPermissionsResult() is necessary to get Callback of permission result

You should add like,

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case PermissionCode.CODE_PERMISSION_CAMERA:
                // Check granted permission for camera
                new PermissionRequest(MainActivity.this,
                        Permission.PERMISSION_CAMERA,
                        PermissionCode.CODE_PERMISSION_CAMERA,
                        R.string.permission_camera_rationale,
                        R.string.permission_camera_denied,
                        R.string.permission_enable_message, this)
                        .onRequestPermissionsResult(MainActivity.this, requestCode, grantResults);
                break;
            case PermissionCode.CODE_PERMISSION_FINE_LOCATION:
                // Check granted permission for location
                new PermissionRequest(MainActivity.this,
                        Permission.PERMISSION_FINE_LOCATION,
                        PermissionCode.CODE_PERMISSION_FINE_LOCATION, R.string.permission_location_rationale,
                        R.string.permission_location_denied,
                        R.string.permission_enable_message, this)
                        .onRequestPermissionsResult(MainActivity.this, requestCode, grantResults);
                break;
        }
    }

3. Getting Response from Permission

If permission is granted by user, you will be notify in OnGranted().

For example,

@Override
    public void onGranted(PermissionResponse permissionResponse) {
        switch (permissionResponse.type) {
            case PermissionCode.CODE_PERMISSION_CAMERA:
                // Camera permission granted, set your logic here
                Toast.makeText(MainActivity.this, getResources().getString(R.string.permission_camera_granted), Toast.LENGTH_SHORT).show();
                break;
            case PermissionCode.CODE_PERMISSION_FINE_LOCATION:
                // Location permission granted, set your logic here
                Toast.makeText(MainActivity.this, getResources().getString(R.string.permission_location_granted), Toast.LENGTH_SHORT).show();
                break;
        }
    }

Working with Fragment

PermissionAcceptor is also working with Fragment. You can use this with android.app.Fragment and android.support.v4.app.Fragment.

To work with Fragment just simply follow all above steps and also add few lines of code in your Fragment parent activity.

@Override
    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        Fragment fragment = getSupportFragmentManager().findFragmentById(R.id.body_container);
        if (fragment != null) {
            // return onRequestPermissionsResult() method in respected fragment
            fragment.onRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

Download

To integrate it into your project, add library to your project and include following in your project build.gradle file

dependencies {
    compile project(':library')
}

Licence

Copyright 2016 Harsh Patel

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.