Loading src/com/android/launcher3/InstallShortcutReceiver.java +21 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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() Loading @@ -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) Loading Loading
src/com/android/launcher3/InstallShortcutReceiver.java +21 −15 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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); } Loading Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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() Loading @@ -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) Loading