mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-27 23:36:47 +00:00
WidgetTray revamp work
- RecyclerView is rendering - Animation is connected - Drag and drop is now handled - UI tweaking: background, margins, more to come. - Flicker and preview not loading issue: fixed height for the horizontal scroll view. - Shortcuts are added - Widget Preview loading should support shortPress for drop - UI tweaks left: overlay of arrow when there are more items to scroll - icons are added in the section header - Sorting of widget sections and widget horizontal list - Adding all the padding constants to dimen.xml file - RecyclerView should only support one view type For items to be addressed in follow up patches OR CLs, TODO is added to the comment. b/19897708 Change-Id: Ibfc4da1696a23d20bada93db46e126706eb13cdc
This commit is contained in:
@@ -16,93 +16,17 @@
|
||||
|
||||
package com.android.launcher3;
|
||||
|
||||
import android.appwidget.AppWidgetHostView;
|
||||
import android.content.ComponentName;
|
||||
import android.content.pm.ActivityInfo;
|
||||
import android.os.Bundle;
|
||||
import android.os.Parcelable;
|
||||
|
||||
/**
|
||||
* We pass this object with a drag from the customization tray
|
||||
* Meta data that is used for deferred binding.
|
||||
* e.g., this object is used to pass information on dragable targets when they are dropped onto
|
||||
* the workspace from another container.
|
||||
*/
|
||||
class PendingAddItemInfo extends ItemInfo {
|
||||
public class PendingAddItemInfo extends ItemInfo {
|
||||
|
||||
/**
|
||||
* The component that will be created.
|
||||
*/
|
||||
ComponentName componentName;
|
||||
}
|
||||
|
||||
class PendingAddShortcutInfo extends PendingAddItemInfo {
|
||||
|
||||
ActivityInfo shortcutActivityInfo;
|
||||
|
||||
public PendingAddShortcutInfo(ActivityInfo activityInfo) {
|
||||
shortcutActivityInfo = activityInfo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Shortcut: " + shortcutActivityInfo.packageName;
|
||||
}
|
||||
}
|
||||
|
||||
class PendingAddWidgetInfo extends PendingAddItemInfo {
|
||||
int minWidth;
|
||||
int minHeight;
|
||||
int minResizeWidth;
|
||||
int minResizeHeight;
|
||||
int previewImage;
|
||||
int icon;
|
||||
LauncherAppWidgetProviderInfo info;
|
||||
AppWidgetHostView boundWidget;
|
||||
Bundle bindOptions = null;
|
||||
|
||||
public PendingAddWidgetInfo(LauncherAppWidgetProviderInfo i, Parcelable data) {
|
||||
if (i.isCustomWidget) {
|
||||
itemType = LauncherSettings.Favorites.ITEM_TYPE_CUSTOM_APPWIDGET;
|
||||
} else {
|
||||
itemType = LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET;
|
||||
}
|
||||
this.info = i;
|
||||
componentName = i.provider;
|
||||
minWidth = i.minWidth;
|
||||
minHeight = i.minHeight;
|
||||
minResizeWidth = i.minResizeWidth;
|
||||
minResizeHeight = i.minResizeHeight;
|
||||
previewImage = i.previewImage;
|
||||
icon = i.icon;
|
||||
|
||||
spanX = i.spanX;
|
||||
spanY = i.spanY;
|
||||
minSpanX = i.minSpanX;
|
||||
minSpanY = i.minSpanY;
|
||||
}
|
||||
|
||||
public boolean isCustomWidget() {
|
||||
return itemType == LauncherSettings.Favorites.ITEM_TYPE_CUSTOM_APPWIDGET;
|
||||
}
|
||||
|
||||
// Copy constructor
|
||||
public PendingAddWidgetInfo(PendingAddWidgetInfo copy) {
|
||||
minWidth = copy.minWidth;
|
||||
minHeight = copy.minHeight;
|
||||
minResizeWidth = copy.minResizeWidth;
|
||||
minResizeHeight = copy.minResizeHeight;
|
||||
previewImage = copy.previewImage;
|
||||
icon = copy.icon;
|
||||
info = copy.info;
|
||||
boundWidget = copy.boundWidget;
|
||||
componentName = copy.componentName;
|
||||
itemType = copy.itemType;
|
||||
spanX = copy.spanX;
|
||||
spanY = copy.spanY;
|
||||
minSpanX = copy.minSpanX;
|
||||
minSpanY = copy.minSpanY;
|
||||
bindOptions = copy.bindOptions == null ? null : (Bundle) copy.bindOptions.clone();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "Widget: " + componentName.toShortString();
|
||||
}
|
||||
public ComponentName componentName;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user