Loading src/com/android/packageinstaller/wear/WearPackageInstallerService.java +13 −6 Original line number Diff line number Diff line Loading @@ -337,7 +337,8 @@ public class WearPackageInstallerService extends Service { // Finally install the package. pm.installPackage(Uri.fromFile(tempFile), new PackageInstallObserver(this, lock, startId), installFlags, packageName); new PackageInstallObserver(this, lock, startId, packageName), installFlags, packageName); messageSent = true; Log.i(TAG, "Sent installation request for " + packageName); } catch (FileNotFoundException e) { Loading Loading @@ -575,20 +576,26 @@ public class WearPackageInstallerService extends Service { private Context mContext; private PowerManager.WakeLock mWakeLock; private int mStartId; private String mApplicationPackageName; private PackageInstallObserver(Context context, PowerManager.WakeLock wakeLock, int startId) { int startId, String applicationPackageName) { mContext = context; mWakeLock = wakeLock; mStartId = startId; mApplicationPackageName = applicationPackageName; } public void packageInstalled(String packageName, int returnCode) { if (returnCode >= 0) { Log.i(TAG, "Package " + packageName + " was installed."); } else { Log.e(TAG, "Package install failed " + packageName + ", returnCode " + returnCode); // If installation failed, bail out and remove the ShowPermsStore entry if (returnCode < 0) { Log.e(TAG, "Package install failed " + mApplicationPackageName + ", returnCode " + returnCode); WearPackageUtil.removeFromPermStore(mContext, mApplicationPackageName); return; } Log.i(TAG, "Package " + packageName + " was installed."); // Delete tempFile from the file system. File tempFile = WearPackageUtil.getTemporaryFile(mContext, packageName); if (tempFile != null) { Loading src/com/android/packageinstaller/wear/WearPackageUtil.java +18 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,9 @@ package com.android.packageinstaller.wear; import android.annotation.Nullable; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageParser; import android.os.ParcelFileDescriptor; import android.system.ErrnoException; Loading @@ -42,6 +42,12 @@ public class WearPackageUtil { private static final String COMPRESSION_LZMA = "lzma"; private static final String COMPRESSION_XZ = "xz"; private static final String SHOW_PERMS_SERVICE_PKG_NAME = "com.google.android.wearable.app"; private static final String SHOW_PERMS_SERVICE_CLASS_NAME = "com.google.android.clockwork.packagemanager.ShowPermsService"; private static final String EXTRA_PACKAGE_NAME = "com.google.android.clockwork.EXTRA_PACKAGE_NAME"; public static File getTemporaryFile(Context context, String packageName) { try { File newFileDir = new File(context.getFilesDir(), "tmp"); Loading Loading @@ -147,4 +153,15 @@ public class WearPackageUtil { } return false; } public static void removeFromPermStore(Context context, String wearablePackageName) { Intent newIntent = new Intent() .setComponent(new ComponentName( SHOW_PERMS_SERVICE_PKG_NAME, SHOW_PERMS_SERVICE_CLASS_NAME)) .setAction(Intent.ACTION_UNINSTALL_PACKAGE); newIntent.putExtra(EXTRA_PACKAGE_NAME, wearablePackageName); Log.i(TAG, "Sending removeFromPermStore to ShowPermsService " + newIntent + " for " + wearablePackageName); context.startService(newIntent); } } Loading
src/com/android/packageinstaller/wear/WearPackageInstallerService.java +13 −6 Original line number Diff line number Diff line Loading @@ -337,7 +337,8 @@ public class WearPackageInstallerService extends Service { // Finally install the package. pm.installPackage(Uri.fromFile(tempFile), new PackageInstallObserver(this, lock, startId), installFlags, packageName); new PackageInstallObserver(this, lock, startId, packageName), installFlags, packageName); messageSent = true; Log.i(TAG, "Sent installation request for " + packageName); } catch (FileNotFoundException e) { Loading Loading @@ -575,20 +576,26 @@ public class WearPackageInstallerService extends Service { private Context mContext; private PowerManager.WakeLock mWakeLock; private int mStartId; private String mApplicationPackageName; private PackageInstallObserver(Context context, PowerManager.WakeLock wakeLock, int startId) { int startId, String applicationPackageName) { mContext = context; mWakeLock = wakeLock; mStartId = startId; mApplicationPackageName = applicationPackageName; } public void packageInstalled(String packageName, int returnCode) { if (returnCode >= 0) { Log.i(TAG, "Package " + packageName + " was installed."); } else { Log.e(TAG, "Package install failed " + packageName + ", returnCode " + returnCode); // If installation failed, bail out and remove the ShowPermsStore entry if (returnCode < 0) { Log.e(TAG, "Package install failed " + mApplicationPackageName + ", returnCode " + returnCode); WearPackageUtil.removeFromPermStore(mContext, mApplicationPackageName); return; } Log.i(TAG, "Package " + packageName + " was installed."); // Delete tempFile from the file system. File tempFile = WearPackageUtil.getTemporaryFile(mContext, packageName); if (tempFile != null) { Loading
src/com/android/packageinstaller/wear/WearPackageUtil.java +18 −1 Original line number Diff line number Diff line Loading @@ -17,9 +17,9 @@ package com.android.packageinstaller.wear; import android.annotation.Nullable; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.PackageParser; import android.os.ParcelFileDescriptor; import android.system.ErrnoException; Loading @@ -42,6 +42,12 @@ public class WearPackageUtil { private static final String COMPRESSION_LZMA = "lzma"; private static final String COMPRESSION_XZ = "xz"; private static final String SHOW_PERMS_SERVICE_PKG_NAME = "com.google.android.wearable.app"; private static final String SHOW_PERMS_SERVICE_CLASS_NAME = "com.google.android.clockwork.packagemanager.ShowPermsService"; private static final String EXTRA_PACKAGE_NAME = "com.google.android.clockwork.EXTRA_PACKAGE_NAME"; public static File getTemporaryFile(Context context, String packageName) { try { File newFileDir = new File(context.getFilesDir(), "tmp"); Loading Loading @@ -147,4 +153,15 @@ public class WearPackageUtil { } return false; } public static void removeFromPermStore(Context context, String wearablePackageName) { Intent newIntent = new Intent() .setComponent(new ComponentName( SHOW_PERMS_SERVICE_PKG_NAME, SHOW_PERMS_SERVICE_CLASS_NAME)) .setAction(Intent.ACTION_UNINSTALL_PACKAGE); newIntent.putExtra(EXTRA_PACKAGE_NAME, wearablePackageName); Log.i(TAG, "Sending removeFromPermStore to ShowPermsService " + newIntent + " for " + wearablePackageName); context.startService(newIntent); } }