Search in sources :

Example 21 with ItemOperator

use of com.android.launcher3.util.LauncherBindableItemsContainer.ItemOperator in project android_packages_apps_Launcher3 by ProtonAOSP.

the class RequestPinItemTest method testPinShortcut.

@Test
public void testPinShortcut() throws Throwable {
    // Command to set the shortcut id
    Intent command = RequestPinItemActivity.getCommandIntent(RequestPinItemActivity.class, "setShortcutId").putExtra(RequestPinItemActivity.EXTRA_PARAM + "0", mShortcutId);
    runTest("pinShortcut", false, new ItemOperator() {

        @Override
        public boolean evaluate(ItemInfo info, View view) {
            return info instanceof WorkspaceItemInfo && info.itemType == Favorites.ITEM_TYPE_DEEP_SHORTCUT && ShortcutKey.fromItemInfo(info).getId().equals(mShortcutId);
        }
    }, command);
}
Also used : ItemInfo(com.android.launcher3.model.data.ItemInfo) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) RequestPinItemActivity(com.android.launcher3.testcomponent.RequestPinItemActivity) ItemOperator(com.android.launcher3.util.LauncherBindableItemsContainer.ItemOperator) View(android.view.View) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) AbstractLauncherUiTest(com.android.launcher3.ui.AbstractLauncherUiTest) LargeTest(androidx.test.filters.LargeTest) Test(org.junit.Test)

Example 22 with ItemOperator

use of com.android.launcher3.util.LauncherBindableItemsContainer.ItemOperator in project android_packages_apps_Launcher3 by ProtonAOSP.

the class LauncherBindableItemsContainer method updateRestoreItems.

/**
 * Called to update restored items as a result of
 * {@link com.android.launcher3.model.BgDataModel.Callbacks#bindRestoreItemsChange(HashSet)}}
 */
default void updateRestoreItems(final HashSet<ItemInfo> updates, ActivityContext context) {
    ItemOperator op = (info, v) -> {
        if (info instanceof WorkspaceItemInfo && v instanceof BubbleTextView && updates.contains(info)) {
            ((BubbleTextView) v).applyLoadingState(false);
        } else if (v instanceof PendingAppWidgetHostView && info instanceof LauncherAppWidgetInfo && updates.contains(info)) {
            ((PendingAppWidgetHostView) v).applyState();
        } else if (v instanceof FolderIcon && info instanceof FolderInfo) {
            ((FolderIcon) v).updatePreviewItems(updates::contains);
        }
        // process all the shortcuts
        return false;
    };
    mapOverItems(op);
    Folder folder = Folder.getOpen(context);
    if (folder != null) {
        folder.iterateOverItems(op);
    }
}
Also used : Folder(com.android.launcher3.folder.Folder) ActivityContext(com.android.launcher3.views.ActivityContext) ItemInfo(com.android.launcher3.model.data.ItemInfo) FolderIcon(com.android.launcher3.folder.FolderIcon) LauncherAppWidgetInfo(com.android.launcher3.model.data.LauncherAppWidgetInfo) PendingAppWidgetHostView(com.android.launcher3.widget.PendingAppWidgetHostView) Drawable(android.graphics.drawable.Drawable) BubbleTextView(com.android.launcher3.BubbleTextView) HashSet(java.util.HashSet) List(java.util.List) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) FolderInfo(com.android.launcher3.model.data.FolderInfo) View(android.view.View) PreloadIconDrawable(com.android.launcher3.graphics.PreloadIconDrawable) FolderIcon(com.android.launcher3.folder.FolderIcon) LauncherAppWidgetInfo(com.android.launcher3.model.data.LauncherAppWidgetInfo) PendingAppWidgetHostView(com.android.launcher3.widget.PendingAppWidgetHostView) BubbleTextView(com.android.launcher3.BubbleTextView) Folder(com.android.launcher3.folder.Folder) FolderInfo(com.android.launcher3.model.data.FolderInfo) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo)

Example 23 with ItemOperator

use of com.android.launcher3.util.LauncherBindableItemsContainer.ItemOperator in project android_packages_apps_Launcher3 by ProtonAOSP.

the class LauncherBindableItemsContainer method updateWorkspaceItems.

/**
 * Called to update workspace items as a result of
 * {@link com.android.launcher3.model.BgDataModel.Callbacks#bindWorkspaceItemsChanged(List)}
 */
default void updateWorkspaceItems(List<WorkspaceItemInfo> shortcuts, ActivityContext context) {
    final HashSet<WorkspaceItemInfo> updates = new HashSet<>(shortcuts);
    ItemOperator op = (info, v) -> {
        if (v instanceof BubbleTextView && updates.contains(info)) {
            WorkspaceItemInfo si = (WorkspaceItemInfo) info;
            BubbleTextView shortcut = (BubbleTextView) v;
            Drawable oldIcon = shortcut.getIcon();
            boolean oldPromiseState = (oldIcon instanceof PreloadIconDrawable) && ((PreloadIconDrawable) oldIcon).hasNotCompleted();
            shortcut.applyFromWorkspaceItem(si, si.isPromise() != oldPromiseState);
        } else if (info instanceof FolderInfo && v instanceof FolderIcon) {
            ((FolderIcon) v).updatePreviewItems(updates::contains);
        }
        // Iterate all items
        return false;
    };
    mapOverItems(op);
    Folder openFolder = Folder.getOpen(context);
    if (openFolder != null) {
        openFolder.iterateOverItems(op);
    }
}
Also used : Folder(com.android.launcher3.folder.Folder) ActivityContext(com.android.launcher3.views.ActivityContext) ItemInfo(com.android.launcher3.model.data.ItemInfo) FolderIcon(com.android.launcher3.folder.FolderIcon) LauncherAppWidgetInfo(com.android.launcher3.model.data.LauncherAppWidgetInfo) PendingAppWidgetHostView(com.android.launcher3.widget.PendingAppWidgetHostView) Drawable(android.graphics.drawable.Drawable) BubbleTextView(com.android.launcher3.BubbleTextView) HashSet(java.util.HashSet) List(java.util.List) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) FolderInfo(com.android.launcher3.model.data.FolderInfo) View(android.view.View) PreloadIconDrawable(com.android.launcher3.graphics.PreloadIconDrawable) FolderIcon(com.android.launcher3.folder.FolderIcon) Drawable(android.graphics.drawable.Drawable) PreloadIconDrawable(com.android.launcher3.graphics.PreloadIconDrawable) BubbleTextView(com.android.launcher3.BubbleTextView) Folder(com.android.launcher3.folder.Folder) FolderInfo(com.android.launcher3.model.data.FolderInfo) PreloadIconDrawable(com.android.launcher3.graphics.PreloadIconDrawable) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) HashSet(java.util.HashSet)

Example 24 with ItemOperator

use of com.android.launcher3.util.LauncherBindableItemsContainer.ItemOperator in project android_packages_apps_404Launcher by P-404.

the class LauncherBindableItemsContainer method updateRestoreItems.

/**
 * Called to update restored items as a result of
 * {@link com.android.launcher3.model.BgDataModel.Callbacks#bindRestoreItemsChange(HashSet)}}
 */
default void updateRestoreItems(final HashSet<ItemInfo> updates, ActivityContext context) {
    ItemOperator op = (info, v) -> {
        if (info instanceof WorkspaceItemInfo && v instanceof BubbleTextView && updates.contains(info)) {
            ((BubbleTextView) v).applyLoadingState(false);
        } else if (v instanceof PendingAppWidgetHostView && info instanceof LauncherAppWidgetInfo && updates.contains(info)) {
            ((PendingAppWidgetHostView) v).applyState();
        } else if (v instanceof FolderIcon && info instanceof FolderInfo) {
            ((FolderIcon) v).updatePreviewItems(updates::contains);
        }
        // process all the shortcuts
        return false;
    };
    mapOverItems(op);
    Folder folder = Folder.getOpen(context);
    if (folder != null) {
        folder.iterateOverItems(op);
    }
}
Also used : Folder(com.android.launcher3.folder.Folder) ActivityContext(com.android.launcher3.views.ActivityContext) ItemInfo(com.android.launcher3.model.data.ItemInfo) FolderIcon(com.android.launcher3.folder.FolderIcon) LauncherAppWidgetInfo(com.android.launcher3.model.data.LauncherAppWidgetInfo) PendingAppWidgetHostView(com.android.launcher3.widget.PendingAppWidgetHostView) Drawable(android.graphics.drawable.Drawable) BubbleTextView(com.android.launcher3.BubbleTextView) HashSet(java.util.HashSet) List(java.util.List) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) FolderInfo(com.android.launcher3.model.data.FolderInfo) View(android.view.View) PreloadIconDrawable(com.android.launcher3.graphics.PreloadIconDrawable) FolderIcon(com.android.launcher3.folder.FolderIcon) LauncherAppWidgetInfo(com.android.launcher3.model.data.LauncherAppWidgetInfo) PendingAppWidgetHostView(com.android.launcher3.widget.PendingAppWidgetHostView) BubbleTextView(com.android.launcher3.BubbleTextView) Folder(com.android.launcher3.folder.Folder) FolderInfo(com.android.launcher3.model.data.FolderInfo) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo)

Example 25 with ItemOperator

use of com.android.launcher3.util.LauncherBindableItemsContainer.ItemOperator in project android_packages_apps_404Launcher by P-404.

the class RequestPinItemTest method testPinShortcut.

@Test
public void testPinShortcut() throws Throwable {
    // Command to set the shortcut id
    Intent command = RequestPinItemActivity.getCommandIntent(RequestPinItemActivity.class, "setShortcutId").putExtra(RequestPinItemActivity.EXTRA_PARAM + "0", mShortcutId);
    runTest("pinShortcut", false, new ItemOperator() {

        @Override
        public boolean evaluate(ItemInfo info, View view) {
            return info instanceof WorkspaceItemInfo && info.itemType == Favorites.ITEM_TYPE_DEEP_SHORTCUT && ShortcutKey.fromItemInfo(info).getId().equals(mShortcutId);
        }
    }, command);
}
Also used : ItemInfo(com.android.launcher3.model.data.ItemInfo) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) Intent(android.content.Intent) PendingIntent(android.app.PendingIntent) RequestPinItemActivity(com.android.launcher3.testcomponent.RequestPinItemActivity) ItemOperator(com.android.launcher3.util.LauncherBindableItemsContainer.ItemOperator) View(android.view.View) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) AbstractLauncherUiTest(com.android.launcher3.ui.AbstractLauncherUiTest) LargeTest(androidx.test.filters.LargeTest) Test(org.junit.Test)

Aggregations

View (android.view.View)42 PendingAppWidgetHostView (com.android.launcher3.widget.PendingAppWidgetHostView)35 ItemInfo (com.android.launcher3.model.data.ItemInfo)30 WorkspaceItemInfo (com.android.launcher3.model.data.WorkspaceItemInfo)30 AppWidgetHostView (android.appwidget.AppWidgetHostView)27 DragView (com.android.launcher3.dragndrop.DragView)27 LauncherAppWidgetHostView (com.android.launcher3.widget.LauncherAppWidgetHostView)27 LauncherAppWidgetInfo (com.android.launcher3.model.data.LauncherAppWidgetInfo)24 DraggableView (com.android.launcher3.dragndrop.DraggableView)22 Bitmap (android.graphics.Bitmap)21 Drawable (android.graphics.drawable.Drawable)21 Folder (com.android.launcher3.folder.Folder)21 FolderIcon (com.android.launcher3.folder.FolderIcon)21 SuppressLint (android.annotation.SuppressLint)20 AppWidgetProviderInfo (android.appwidget.AppWidgetProviderInfo)20 Point (android.graphics.Point)20 FolderInfo (com.android.launcher3.model.data.FolderInfo)18 PreloadIconDrawable (com.android.launcher3.graphics.PreloadIconDrawable)17 HashSet (java.util.HashSet)17 List (java.util.List)15