• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (C) 2017 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License
15  */
16 
17 package com.android.dialer.common;
18 
19 import android.content.Context;
20 import android.content.pm.PackageInfo;
21 import android.content.pm.PackageManager;
22 import android.support.annotation.NonNull;
23 
24 /** Utility class for package management. */
25 public class PackageUtils {
26 
isPackageInstalled(@onNull String packageName, @NonNull Context context)27   private static boolean isPackageInstalled(@NonNull String packageName, @NonNull Context context) {
28     Assert.isNotNull(packageName);
29     Assert.isNotNull(context);
30     try {
31       PackageInfo info = context.getPackageManager().getPackageInfo(packageName, 0);
32       if (info != null && info.packageName != null) {
33         LogUtil.d("PackageUtils.isPackageInstalled", packageName + " is found");
34         return true;
35       }
36     } catch (PackageManager.NameNotFoundException e) {
37       LogUtil.d("PackageUtils.isPackageInstalled", packageName + " is NOT found");
38     }
39     return false;
40   }
41 
42   /** Returns true if the pkg is installed and enabled/default */
isPackageEnabled(@onNull String packageName, @NonNull Context context)43   public static boolean isPackageEnabled(@NonNull String packageName, @NonNull Context context) {
44     Assert.isNotNull(packageName);
45     Assert.isNotNull(context);
46     if (isPackageInstalled(packageName, context)) {
47       if (context.getPackageManager().getApplicationEnabledSetting(packageName)
48           != PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
49         return true;
50       }
51     }
52     return false;
53   }
54 }
55