package com.continuesvoicerecognition;

import android.Manifest;
import android.app.Activity;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.v4.app.ActivityCompat;
import android.support.v4.content.ContextCompat;
import android.widget.Toast;


/**
 * Created by root on 19/10/15.
 */
public class PermissionHandler {


    public final static int RECORD_AUDIO=1;


    public static void askForPermission(int which,final Activity activity)
    {
        if(Build.VERSION.SDK_INT<23)
        {
            return;
        }
        else //We are running on Android M
        {
            switch(which)
            {
                case RECORD_AUDIO:
                    if(ContextCompat.checkSelfPermission(activity, Manifest.permission.READ_CONTACTS)== PackageManager.PERMISSION_GRANTED && ContextCompat.checkSelfPermission(activity, Manifest.permission.GET_ACCOUNTS)== PackageManager.PERMISSION_GRANTED  )
                        return;
                    else
                    {
                        if(ActivityCompat.shouldShowRequestPermissionRationale(activity, Manifest.permission.RECORD_AUDIO))
                        {
                            Toast.makeText(activity,activity.getString(R.string.record_audio_is_required),Toast.LENGTH_LONG).show();
                        }
                        else
                        {
                            ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.RECORD_AUDIO}, RECORD_AUDIO);
                        }
                    }
                    break;
            }
        }
    }

    public static boolean checkPermission(Activity activity,int which)
    {
        if(Build.VERSION.SDK_INT<23)
        {
            return true;
        }
        else {
            switch (which) {
                case RECORD_AUDIO:
                    return ContextCompat.checkSelfPermission(activity, Manifest.permission.RECORD_AUDIO)== PackageManager.PERMISSION_GRANTED;
            }
        }
        return false;
    }

}