1 package com.android.tv.util;
2 
3 import android.content.Context;
4 import android.content.pm.PackageManager;
5 import android.os.Build;
6 
7 /**
8  * Util class to handle permissions.
9  */
10 public class PermissionUtils {
11     private static Boolean sHasAccessAllEpgPermission;
12     private static Boolean sHasAccessWatchedHistoryPermission;
13     private static Boolean sHasModifyParentalControlsPermission;
14 
hasAccessAllEpg(Context context)15     public static boolean hasAccessAllEpg(Context context) {
16         if (sHasAccessAllEpgPermission == null) {
17             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
18                 sHasAccessAllEpgPermission = context.checkSelfPermission(
19                         "com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA")
20                         == PackageManager.PERMISSION_GRANTED;
21             } else {
22                 sHasAccessAllEpgPermission = context.getPackageManager().checkPermission(
23                         "com.android.providers.tv.permission.ACCESS_ALL_EPG_DATA",
24                         context.getPackageName()) == PackageManager.PERMISSION_GRANTED;
25             }
26         }
27         return sHasAccessAllEpgPermission;
28     }
29 
hasAccessWatchedHistory(Context context)30     public static boolean hasAccessWatchedHistory(Context context) {
31         if (sHasAccessWatchedHistoryPermission == null) {
32             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
33                 sHasAccessWatchedHistoryPermission = context.checkSelfPermission(
34                         "com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS")
35                         == PackageManager.PERMISSION_GRANTED;
36             } else {
37                 sHasAccessWatchedHistoryPermission = context.getPackageManager().checkPermission(
38                         "com.android.providers.tv.permission.ACCESS_WATCHED_PROGRAMS",
39                         context.getPackageName()) == PackageManager.PERMISSION_GRANTED;
40             }
41         }
42         return sHasAccessWatchedHistoryPermission;
43     }
44 
hasModifyParentalControls(Context context)45     public static boolean hasModifyParentalControls(Context context) {
46         if (sHasModifyParentalControlsPermission == null) {
47             if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
48                 sHasModifyParentalControlsPermission = context.checkSelfPermission(
49                         "android.permission.MODIFY_PARENTAL_CONTROLS")
50                         == PackageManager.PERMISSION_GRANTED;
51             } else {
52                 sHasModifyParentalControlsPermission = context.getPackageManager().checkPermission(
53                         "android.permission.MODIFY_PARENTAL_CONTROLS",
54                         context.getPackageName()) == PackageManager.PERMISSION_GRANTED;
55             }
56         }
57         return sHasModifyParentalControlsPermission;
58     }
59 
hasReadTvListings(Context context)60     public static boolean hasReadTvListings(Context context) {
61         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
62             return context.checkSelfPermission("android.permission.READ_TV_LISTINGS")
63                     == PackageManager.PERMISSION_GRANTED;
64         } else {
65             return context.getPackageManager().checkPermission(
66                     "android.permission.MODIFY_PARENTAL_CONTROLS",
67                     context.getPackageName()) == PackageManager.PERMISSION_GRANTED;
68         }
69     }
70 }
71