diff options
Diffstat (limited to 'src/com/android/packageinstaller/PackageUtil.java')
-rw-r--r-- | src/com/android/packageinstaller/PackageUtil.java | 146 |
1 files changed, 0 insertions, 146 deletions
diff --git a/src/com/android/packageinstaller/PackageUtil.java b/src/com/android/packageinstaller/PackageUtil.java deleted file mode 100644 index 6dc782d..0000000 --- a/src/com/android/packageinstaller/PackageUtil.java +++ /dev/null @@ -1,146 +0,0 @@ -/* -** -** Copyright 2007, 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; - -import java.io.File; -import java.util.List; - -import android.app.Activity; -import android.content.Context; -import android.content.Intent; -import android.content.pm.ApplicationInfo; -import android.content.pm.PackageInfo; -import android.content.pm.PackageManager; -import android.content.pm.PackageParser; -import android.content.pm.ResolveInfo; -import android.graphics.drawable.Drawable; -import android.net.Uri; -import android.util.DisplayMetrics; -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; - -/** - * This is a utility class for defining some utility methods and constants - * used in the package installer application. - */ -public class PackageUtil { - public static final String PREFIX="com.android.packageinstaller."; - public static final String INTENT_ATTR_INSTALL_STATUS = PREFIX+"installStatus"; - public static final String INTENT_ATTR_APPLICATION_INFO=PREFIX+"applicationInfo"; - public static final String INTENT_ATTR_PERMISSIONS_LIST=PREFIX+"PermissionsList"; - //intent attribute strings related to uninstall - public static final String INTENT_ATTR_PACKAGE_NAME=PREFIX+"PackageName"; - - /* - * Utility method to get application information for a given packageURI - */ - public static ApplicationInfo getApplicationInfo(Uri packageURI) { - final String archiveFilePath = packageURI.getPath(); - PackageParser packageParser = new PackageParser(archiveFilePath); - File sourceFile = new File(archiveFilePath); - DisplayMetrics metrics = new DisplayMetrics(); - metrics.setToDefaults(); - PackageParser.Package pkg = packageParser.parsePackage(sourceFile, archiveFilePath, metrics, 0); - if (pkg == null) { - return null; - } - return pkg.applicationInfo; - } - - /* - * Utility method to get package information for a given packageURI - */ - public static PackageParser.Package getPackageInfo(Uri packageURI) { - final String archiveFilePath = packageURI.getPath(); - PackageParser packageParser = new PackageParser(archiveFilePath); - File sourceFile = new File(archiveFilePath); - DisplayMetrics metrics = new DisplayMetrics(); - metrics.setToDefaults(); - return packageParser.parsePackage(sourceFile, archiveFilePath, metrics, 0); - } - - /* - * Utility method to get application label from package manager for a given context - */ - public static CharSequence getApplicationLabel(Context context, ApplicationInfo appInfo) { - CharSequence appName = appInfo.loadLabel(context.getPackageManager()); - if(appName == null) { - appName = context.getString(R.string.unknown); - } - return appName; - } - - /* - * Utility method to getApplicationIcon from package manager for a given context - */ - public static Drawable getApplicationIcon(Context context, ApplicationInfo appInfo) { - return appInfo.loadIcon(context.getPackageManager()); - } - - /* - * Utility method to display application snippet. make sure to setContentView on context - * before invoking this method - */ - public static View initAppSnippet(Activity context, ApplicationInfo appInfo, int snippetId) { - View appSnippet = context.findViewById(snippetId); - ((ImageView)appSnippet.findViewById(R.id.app_icon)).setImageDrawable( - getApplicationIcon(context, appInfo)); - ((TextView)appSnippet.findViewById(R.id.app_name)).setText( - getApplicationLabel(context, appInfo)); - return appSnippet; - } - - public static boolean isPackageAlreadyInstalled(Activity context, String pkgName) { - List<PackageInfo> installedList = context.getPackageManager().getInstalledPackages( - PackageManager.GET_UNINSTALLED_PACKAGES); - int installedListSize = installedList.size(); - for(int i = 0; i < installedListSize; i++) { - PackageInfo tmp = installedList.get(i); - if(pkgName.equalsIgnoreCase(tmp.packageName)) { - return true; - } - - } - return false; - } - - /** - * Returns an intent that can be used to launch the main activity in the given package. - * - * @param ctx - * @param packageName - * @return an intent launching the main activity in the given package - */ - public static Intent getLaunchIntentForPackage(Context ctx, String packageName) { - Intent intent = new Intent(Intent.ACTION_MAIN); - intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); - PackageManager manager = ctx.getPackageManager(); - Intent intentToResolve = new Intent(Intent.ACTION_MAIN, null); - intentToResolve.addCategory(Intent.CATEGORY_LAUNCHER); - final List<ResolveInfo> apps = - manager.queryIntentActivities(intentToResolve, 0); - // TODO in future add a new tag to application for launchable main activity - for (ResolveInfo app : apps) { - if (app.activityInfo.packageName.equals(packageName)) { - intent.setClassName(packageName, app.activityInfo.name); - return intent; - } - } - return null; - } -} |