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

Commit 445bd91e authored by Xin Li's avatar Xin Li
Browse files

DO NOT MERGE - Merge January 2020 Security Release into master

Bug: 147314974
Change-Id: Iae684da890fa24acf78dbd2d48cf5a9feb0506df
parents 361d6da7 af619d95
Loading
Loading
Loading
Loading
+21 −15
Original line number Diff line number Diff line
@@ -39,6 +39,9 @@ import android.util.Base64;
import android.util.Log;
import android.util.Pair;

import androidx.annotation.Nullable;
import androidx.annotation.WorkerThread;

import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.compat.UserManagerCompat;
import com.android.launcher3.icons.BitmapInfo;
@@ -250,11 +253,6 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
        return info == null ? null : (WorkspaceItemInfo) info.getItemInfo().first;
    }

    public static WorkspaceItemInfo fromActivityInfo(LauncherActivityInfo info, Context context) {
        return (WorkspaceItemInfo)
                new PendingInstallShortcutInfo(info, context).getItemInfo().first;
    }

    public static void queueShortcut(ShortcutInfo info, Context context) {
        queuePendingShortcutInfo(new PendingInstallShortcutInfo(info, context), context);
    }
@@ -330,10 +328,10 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
    private static class PendingInstallShortcutInfo {

        final boolean isActivity;
        final ShortcutInfo shortcutInfo;
        final AppWidgetProviderInfo providerInfo;
        @Nullable final ShortcutInfo shortcutInfo;
        @Nullable final AppWidgetProviderInfo providerInfo;

        final Intent data;
        @Nullable final Intent data;
        final Context mContext;
        final Intent launchIntent;
        final String label;
@@ -363,7 +361,12 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
            shortcutInfo = null;
            providerInfo = null;

            data = null;
            String packageName = info.getComponentName().getPackageName();
            data = new Intent();
            data.putExtra(Intent.EXTRA_SHORTCUT_INTENT, new Intent().setComponent(
                    new ComponentName(packageName, "")).setPackage(packageName));
            data.putExtra(Intent.EXTRA_SHORTCUT_NAME, info.getLabel());

            user = info.getUser();
            mContext = context;

@@ -457,9 +460,10 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
                // This name is only used for comparisons and notifications, so fall back to activity
                // name if not supplied
                String name = ensureValidName(mContext, launchIntent, label).toString();
                Bitmap icon = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON);
                Intent.ShortcutIconResource iconResource =
                    data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE);
                Bitmap icon = data == null ? null
                        : data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON);
                Intent.ShortcutIconResource iconResource = data == null ? null
                    : data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE);

                // Only encode the parameters which are supported by the API.
                JSONStringer json = new JSONStringer()
@@ -469,10 +473,12 @@ public class InstallShortcutReceiver extends BroadcastReceiver {
                    .key(APP_SHORTCUT_TYPE_KEY).value(isActivity);
                if (icon != null) {
                    byte[] iconByteArray = GraphicsUtils.flattenBitmap(icon);
                    if (iconByteArray != null) {
                        json = json.key(ICON_KEY).value(
                                Base64.encodeToString(
                                        iconByteArray, 0, iconByteArray.length, Base64.DEFAULT));
                    }
                }
                if (iconResource != null) {
                    json = json.key(ICON_RESOURCE_NAME_KEY).value(iconResource.resourceName);
                    json = json.key(ICON_RESOURCE_PACKAGE_NAME_KEY)