summaryrefslogtreecommitdiffstats
path: root/src/com/android/packageinstaller/util
diff options
context:
space:
mode:
authorSvet Ganov <svetoslavganov@google.com>2016-02-27 11:12:13 -0800
committerSvet Ganov <svetoslavganov@google.com>2016-04-21 20:33:03 -0700
commitf9bf4f795615bac03d1b35a0138318473b1ef6bf (patch)
tree2acbadfd1827e64c6478e12dcd114d4948a4744c /src/com/android/packageinstaller/util
parentedbf987e33d5710ec765ef3a7e516db65057a8b7 (diff)
downloadandroid_packages_apps_PackageInstaller-f9bf4f795615bac03d1b35a0138318473b1ef6bf.tar.gz
android_packages_apps_PackageInstaller-f9bf4f795615bac03d1b35a0138318473b1ef6bf.tar.bz2
android_packages_apps_PackageInstaller-f9bf4f795615bac03d1b35a0138318473b1ef6bf.zip
Cleanup of the PackageInstaller API - PackageInstaller
The PackageInstaller app manages side-loading apps as well as permission management. It should be updatable, hence should rely on system APIs to talk to the platform. This is the first step of defining an API boundary. Change-Id: I37aea1e5cc3195b8b636af6790af45fe5a9765cd
Diffstat (limited to 'src/com/android/packageinstaller/util')
-rw-r--r--src/com/android/packageinstaller/util/Utils.java149
1 files changed, 0 insertions, 149 deletions
diff --git a/src/com/android/packageinstaller/util/Utils.java b/src/com/android/packageinstaller/util/Utils.java
deleted file mode 100644
index f0d88d32..00000000
--- a/src/com/android/packageinstaller/util/Utils.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * 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.
- */
-
-package com.android.packageinstaller.util;
-
-import android.Manifest;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.ApplicationInfo;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.res.Resources;
-import android.content.res.Resources.Theme;
-import android.graphics.drawable.Drawable;
-import android.util.ArraySet;
-import android.util.Log;
-import android.util.TypedValue;
-
-import com.android.packageinstaller.permission.model.AppPermissionGroup;
-import com.android.packageinstaller.permission.model.AppPermissions;
-import com.android.packageinstaller.permission.model.PermissionApps.PermissionApp;
-import com.android.packageinstaller.permission.utils.LocationUtils;
-
-import java.util.List;
-
-public class Utils {
-
- private static final String LOG_TAG = "Utils";
-
- public static final String OS_PKG = "android";
-
- public static final String[] MODERN_PERMISSION_GROUPS = {
- Manifest.permission_group.CALENDAR,
- Manifest.permission_group.CAMERA,
- Manifest.permission_group.CONTACTS,
- Manifest.permission_group.LOCATION,
- Manifest.permission_group.SENSORS,
- Manifest.permission_group.SMS,
- Manifest.permission_group.PHONE,
- Manifest.permission_group.MICROPHONE,
- Manifest.permission_group.STORAGE
- };
-
- private static final Intent LAUNCHER_INTENT = new Intent(Intent.ACTION_MAIN, null)
- .addCategory(Intent.CATEGORY_LAUNCHER);
-
- private Utils() {
- /* do nothing - hide constructor */
- }
-
- public static Drawable loadDrawable(PackageManager pm, String pkg, int resId) {
- try {
- return pm.getResourcesForApplication(pkg).getDrawable(resId, null);
- } catch (Resources.NotFoundException | PackageManager.NameNotFoundException e) {
- Log.d(LOG_TAG, "Couldn't get resource", e);
- return null;
- }
- }
-
- public static boolean isModernPermissionGroup(String name) {
- for (String modernGroup : MODERN_PERMISSION_GROUPS) {
- if (modernGroup.equals(name)) {
- return true;
- }
- }
- return false;
- }
-
- public static boolean shouldShowPermission(AppPermissionGroup group, String packageName) {
- // We currently will not show permissions fixed by the system.
- // which is what the system does for system components.
- if (group.isSystemFixed() && !LocationUtils.isLocationGroupAndProvider(
- group.getName(), packageName)) {
- return false;
- }
-
- final boolean isPlatformPermission = group.getDeclaringPackage().equals(OS_PKG);
- // Show legacy permissions only if the user chose that.
- if (isPlatformPermission
- && !Utils.isModernPermissionGroup(group.getName())) {
- return false;
- }
- return true;
- }
-
- public static boolean shouldShowPermission(PermissionApp app) {
- // We currently will not show permissions fixed by the system
- // which is what the system does for system components.
- if (app.isSystemFixed() && !LocationUtils.isLocationGroupAndProvider(
- app.getPermissionGroup().getName(), app.getPackageName())) {
- return false;
- }
-
- return true;
- }
-
- public static Drawable applyTint(Context context, Drawable icon, int attr) {
- Theme theme = context.getTheme();
- TypedValue typedValue = new TypedValue();
- theme.resolveAttribute(attr, typedValue, true);
- icon = icon.mutate();
- icon.setTint(context.getColor(typedValue.resourceId));
- return icon;
- }
-
- public static Drawable applyTint(Context context, int iconResId, int attr) {
- return applyTint(context, context.getDrawable(iconResId), attr);
- }
-
- public static ArraySet<String> getLauncherPackages(Context context) {
- ArraySet<String> launcherPkgs = new ArraySet<>();
- for (ResolveInfo info :
- context.getPackageManager().queryIntentActivities(LAUNCHER_INTENT, 0)) {
- launcherPkgs.add(info.activityInfo.packageName);
- }
-
- return launcherPkgs;
- }
-
- public static List<ApplicationInfo> getAllInstalledApplications(Context context) {
- return context.getPackageManager().getInstalledApplications(0);
- }
-
- public static boolean isSystem(PermissionApp app, ArraySet<String> launcherPkgs) {
- return isSystem(app.getAppInfo(), launcherPkgs);
- }
-
- public static boolean isSystem(AppPermissions app, ArraySet<String> launcherPkgs) {
- return isSystem(app.getPackageInfo().applicationInfo, launcherPkgs);
- }
-
- public static boolean isSystem(ApplicationInfo info, ArraySet<String> launcherPkgs) {
- return info.isSystemApp() && (info.flags & ApplicationInfo.FLAG_UPDATED_SYSTEM_APP) == 0
- && !launcherPkgs.contains(info.packageName);
- }
-}