FudiPermission Tutorial

1. Introduction

Target & How setup

The aim of this page is let know how use FudiPermission:

Please replace latestVersion annotation with the latest bintray version

| Repository | implementation | Status |
| :------: | ------ | :------: |
| jcenter() | 'com.romellfudi.permission:fudi-permission:2.0.a' | `DEPRECATED` |
| jcenter() | 'com.romellfudi.permission:kotlin-fudi-permission:2.0.a' | `DEPRECATED` |
| maven { url `https://jitpack.io` } | 'com.github.romellfudi.FudiPermission:fudi-permission:2.0.b' | `READY` |
| maven { url `https://jitpack.io` } | 'com.github.romellfudi.FudiPermission:kotlin-fudi-permission:2.0.b' | `READY` |

Dependencies

Knowledge Basic programming

2. Setting up

To start you need a code with interfaces classes or adapter patterns.

Download the Code

Click the following link to download all the code for this tutorial:

Download source code

What you'll learn

What you'll need

3. Permissions

Add annotations:

First of all, Android needs user confirmation from version 6. That means that create a sample how build a Android permission library (jar or aar file):

Before adding the permissions which you need, check needPermissions file:

CALENDAR
    READ_CALENDAR
    WRITE_CALENDAR
CAMERA
    CAMERA
CONTACTS
    READ_CONTACTS
    WRITE_CONTACTS
    GET_ACCOUNTS
LOCATION
    ACCESS_FINE_LOCATION
    ACCESS_COARSE_LOCATION
MICROPHONE
    RECORD_AUDIO
PHONE
    READ_PHONE_STATE
    CALL_PHONE
    READ_CALL_LOG
    WRITE_CALL_LOG
    ADD_VOICEMAIL
    USE_SIP
    PROCESS_OUTGOING_CALLS
SENSORS
    BODY_SENSORS
SMS
    SEND_SMS
    RECEIVE_SMS
    READ_SMS
    RECEIVE_WAP_PUSH
    RECEIVE_MMS
STORAGE
    READ_EXTERNAL_STORAGE
    WRITE_EXTERNAL_STORAGE

4. Implementation

How use

Build a callback object to catch the response for the user. If have 1 or more refuse permissions, onRefuse method activate, otherwise onFinally

// java
private PermissionService.Callback callback = new PermissionService.Callback() {
        @Override
        public void onResponse(ArrayList<String> RefusePermissions) {
            // todo
        } 
    };
// kotlin
private val callback = object : PermisionInterface {
        override fun onResponse(refusePermissions: ArrayList<String>) {
            if (refusePermissions!=null) {
                Toast.makeText(baseContext,
                        "Have to allow all permissions",
                        Toast.LENGTH_SHORT).show()
                Handler().postDelayed({ finish() }, 2000)
                }
        } 
    }

Invoke service inside at Activity/onCreate method:

// java
new PermissionService(this).request(callback);
// kotlin
PermissionService(this).request(callback)

Override onRequestPermissions method from Activity class, note if necessary use if-case sentence:

// java
@Override
public void onRequestPermissionsResult(int requestCode, 
            @NonNull String[] permissions, @NonNull int[] grantResults) {
            callback.handler(permissions, grantResults);
    }
// kotlin
override fun onRequestPermissionsResult(requestCode: Int,
        permissions: Array<String>, grantResults: IntArray) {
        PermissionService.handler(callback, grantResults, permissions)
    }

5. License

by Romell Domínguez

Copyright 2018 Romell D.Z.

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.