mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-03-06 02:46:57 +00:00
Removing support for adding legacy shortcuts.
All existing legacy shortcuts will be migrated one-time to deep shortcuts This shortcuts are pinned under the Launcher package, with custom badging Bug: 275875209 Test: Updated unit tests Flag: N/A Change-Id: I7da001f724776ad8d6c807517b7e4e259de626c2
This commit is contained in:
@@ -15,18 +15,10 @@
|
||||
*/
|
||||
package com.android.launcher3.model;
|
||||
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.os.Process;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.launcher3.LauncherSettings;
|
||||
import com.android.launcher3.Utilities;
|
||||
import com.android.launcher3.icons.BitmapInfo;
|
||||
import com.android.launcher3.icons.LauncherIcons;
|
||||
import com.android.launcher3.model.data.ItemInfo;
|
||||
import com.android.launcher3.model.data.WorkspaceItemInfo;
|
||||
import com.android.launcher3.testing.shared.TestProtocol;
|
||||
import com.android.launcher3.util.IntArray;
|
||||
import com.android.launcher3.util.IntSet;
|
||||
@@ -99,60 +91,4 @@ public class ModelUtils {
|
||||
IntStream.range(0, len).filter(i -> !seen.contains(i)).forEach(result::add);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates a workspace item info for the legacy shortcut intent
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
public static WorkspaceItemInfo fromLegacyShortcutIntent(Context context, Intent data) {
|
||||
if (!isValidExtraType(data, Intent.EXTRA_SHORTCUT_INTENT, Intent.class)
|
||||
|| !(isValidExtraType(data, Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
|
||||
Intent.ShortcutIconResource.class))
|
||||
|| !(isValidExtraType(data, Intent.EXTRA_SHORTCUT_ICON, Bitmap.class))) {
|
||||
|
||||
Log.e(TAG, "Invalid install shortcut intent");
|
||||
return null;
|
||||
}
|
||||
|
||||
Intent launchIntent = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_INTENT);
|
||||
String label = data.getStringExtra(Intent.EXTRA_SHORTCUT_NAME);
|
||||
if (launchIntent == null || label == null) {
|
||||
Log.e(TAG, "Invalid install shortcut intent");
|
||||
return null;
|
||||
}
|
||||
|
||||
final WorkspaceItemInfo info = new WorkspaceItemInfo();
|
||||
info.user = Process.myUserHandle();
|
||||
|
||||
BitmapInfo iconInfo = null;
|
||||
try (LauncherIcons li = LauncherIcons.obtain(context)) {
|
||||
Bitmap bitmap = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON);
|
||||
if (bitmap != null) {
|
||||
iconInfo = li.createIconBitmap(bitmap);
|
||||
} else {
|
||||
info.iconResource = data.getParcelableExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE);
|
||||
if (info.iconResource != null) {
|
||||
iconInfo = li.createIconBitmap(info.iconResource);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (iconInfo == null) {
|
||||
Log.e(TAG, "Invalid icon by the app");
|
||||
return null;
|
||||
}
|
||||
info.bitmap = iconInfo;
|
||||
info.contentDescription = info.title = Utilities.trim(label);
|
||||
info.intent = launchIntent;
|
||||
return info;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return true if the extra is either null or is of type {@param type}
|
||||
*/
|
||||
private static boolean isValidExtraType(Intent intent, String key, Class type) {
|
||||
Object extra = intent.getParcelableExtra(key);
|
||||
return extra == null || type.isInstance(extra);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user