Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a84efb0d authored by Evan Severson's avatar Evan Severson
Browse files

Add mutability flags to pending intents

The package installer sessions need mutable pending intents so result
codes can be delivered. The PI for notifications don't need to be
mutable.

Test: CtsPackageInstallTestCases
Fixes: 171718970
Change-Id: I45a749fca6908c715994a3137b28700fffc80379
parent 298aecf4
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -410,7 +410,7 @@ public class InstallInstalling extends AlertActivity {
                        InstallInstalling.this,
                        mInstallId,
                        broadcastIntent,
                        PendingIntent.FLAG_UPDATE_CURRENT);
                        PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);

                session.commit(pendingIntent.getIntentSender());
                mCancelButton.setEnabled(false);
+4 −4
Original line number Diff line number Diff line
@@ -243,8 +243,8 @@ class PackageInstalledNotificationUtils {
        }

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        return PendingIntent.getActivity(mContext,
                0 /* request code */, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        return PendingIntent.getActivity(mContext, 0 /* request code */, intent,
                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
    }

    /**
@@ -260,8 +260,8 @@ class PackageInstalledNotificationUtils {
        }

        intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        return PendingIntent.getActivity(mContext,
                0 /* request code */, intent, PendingIntent.FLAG_UPDATE_CURRENT);
        return PendingIntent.getActivity(mContext, 0 /* request code */, intent,
                PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);
    }

    /**
+2 −1
Original line number Diff line number Diff line
@@ -95,7 +95,8 @@ public class UninstallUninstalling extends Activity implements
                broadcastIntent.setPackage(getPackageName());

                PendingIntent pendingIntent = PendingIntent.getBroadcast(this, mUninstallId,
                        broadcastIntent, PendingIntent.FLAG_UPDATE_CURRENT);
                        broadcastIntent, PendingIntent.FLAG_UPDATE_CURRENT
                                | PendingIntent.FLAG_MUTABLE);

                int flags = allUsers ? PackageManager.DELETE_ALL_USERS : 0;
                flags |= keepData ? PackageManager.DELETE_KEEP_DATA : 0;
+2 −1
Original line number Diff line number Diff line
@@ -269,7 +269,8 @@ public class PackageInstallerImpl {
        // Create a matching PendingIntent and use it to generate the IntentSender
        Intent broadcastIntent = new Intent(action);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, packageName.hashCode(),
                broadcastIntent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_UPDATE_CURRENT);
                broadcastIntent, PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_UPDATE_CURRENT
                        | PendingIntent.FLAG_MUTABLE);
        return pendingIntent.getIntentSender();
    }