1*90c8c64dSAndroid Build Coastguard Worker /*
2*90c8c64dSAndroid Build Coastguard Worker * Copyright 2015 The Android Open Source Project
3*90c8c64dSAndroid Build Coastguard Worker *
4*90c8c64dSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*90c8c64dSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*90c8c64dSAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*90c8c64dSAndroid Build Coastguard Worker *
8*90c8c64dSAndroid Build Coastguard Worker *     http://www.apache.org/licenses/LICENSE-2.0
9*90c8c64dSAndroid Build Coastguard Worker *
10*90c8c64dSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*90c8c64dSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*90c8c64dSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*90c8c64dSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*90c8c64dSAndroid Build Coastguard Worker * limitations under the License.
15*90c8c64dSAndroid Build Coastguard Worker */
16*90c8c64dSAndroid Build Coastguard Worker 
17*90c8c64dSAndroid Build Coastguard Worker package com.example.android.system.runtimepermissions;
18*90c8c64dSAndroid Build Coastguard Worker 
19*90c8c64dSAndroid Build Coastguard Worker import android.app.Activity;
20*90c8c64dSAndroid Build Coastguard Worker import android.content.pm.PackageManager;
21*90c8c64dSAndroid Build Coastguard Worker 
22*90c8c64dSAndroid Build Coastguard Worker /**
23*90c8c64dSAndroid Build Coastguard Worker  * Utility class that wraps access to the runtime permissions API in M and provides basic helper
24*90c8c64dSAndroid Build Coastguard Worker  * methods.
25*90c8c64dSAndroid Build Coastguard Worker  */
26*90c8c64dSAndroid Build Coastguard Worker public abstract class PermissionUtil {
27*90c8c64dSAndroid Build Coastguard Worker 
28*90c8c64dSAndroid Build Coastguard Worker     /**
29*90c8c64dSAndroid Build Coastguard Worker      * Check that all given permissions have been granted by verifying that each entry in the
30*90c8c64dSAndroid Build Coastguard Worker      * given array is of the value {@link PackageManager#PERMISSION_GRANTED}.
31*90c8c64dSAndroid Build Coastguard Worker      *
32*90c8c64dSAndroid Build Coastguard Worker      * @see Activity#onRequestPermissionsResult(int, String[], int[])
33*90c8c64dSAndroid Build Coastguard Worker      */
verifyPermissions(int[] grantResults)34*90c8c64dSAndroid Build Coastguard Worker     public static boolean verifyPermissions(int[] grantResults) {
35*90c8c64dSAndroid Build Coastguard Worker         // At least one result must be checked.
36*90c8c64dSAndroid Build Coastguard Worker         if(grantResults.length < 1){
37*90c8c64dSAndroid Build Coastguard Worker             return false;
38*90c8c64dSAndroid Build Coastguard Worker         }
39*90c8c64dSAndroid Build Coastguard Worker 
40*90c8c64dSAndroid Build Coastguard Worker         // Verify that each required permission has been granted, otherwise return false.
41*90c8c64dSAndroid Build Coastguard Worker         for (int result : grantResults) {
42*90c8c64dSAndroid Build Coastguard Worker             if (result != PackageManager.PERMISSION_GRANTED) {
43*90c8c64dSAndroid Build Coastguard Worker                 return false;
44*90c8c64dSAndroid Build Coastguard Worker             }
45*90c8c64dSAndroid Build Coastguard Worker         }
46*90c8c64dSAndroid Build Coastguard Worker         return true;
47*90c8c64dSAndroid Build Coastguard Worker     }
48*90c8c64dSAndroid Build Coastguard Worker 
49*90c8c64dSAndroid Build Coastguard Worker }
50