Search in sources :

Example 91 with Background

use of com.android.launcher3.tapl.Background in project android_packages_apps_Launcher3 by crdroidandroid.

the class ViewInflationDuringSwipeUp method executeSwipeUpTestWithWidget.

private void executeSwipeUpTestWithWidget(IntConsumer widgetIdCreationCallback, IntConsumer updateBeforeSwipeUp, String finalWidgetText) {
    try {
        // Clear all existing data
        LauncherSettings.Settings.call(mResolver, LauncherSettings.Settings.METHOD_CREATE_EMPTY_DB);
        LauncherSettings.Settings.call(mResolver, LauncherSettings.Settings.METHOD_CLEAR_EMPTY_DB_FLAG);
        LauncherAppWidgetProviderInfo info = TestViewHelpers.findWidgetProvider(this, false);
        // Make sure the widget is big enough to show a list of items
        info.minSpanX = 2;
        info.minSpanY = 2;
        info.spanX = 2;
        info.spanY = 2;
        LauncherAppWidgetInfo item = createWidgetInfo(info, getTargetContext(), true);
        addItemToScreen(item);
        assertTrue("Widget is not present", mLauncher.pressHome().tryGetWidget(info.label, DEFAULT_UI_TIMEOUT) != null);
        int widgetId = item.appWidgetId;
        // Verify widget id
        widgetIdCreationCallback.accept(widgetId);
        // Go to overview once so that all views are initialized and cached
        startAppFast(resolveSystemApp(Intent.CATEGORY_APP_CALCULATOR));
        mLauncher.getBackground().switchToOverview().dismissAllTasks();
        // Track view creations
        mInitTracker.startTracking();
        startTestActivity(2);
        Background background = mLauncher.getBackground();
        // Update widget
        updateBeforeSwipeUp.accept(widgetId);
        background.switchToOverview();
        assertEquals("Views inflated during swipe up", 0, mInitTracker.viewInitCount);
        // Widget is updated when going home
        mInitTracker.disableLog();
        mLauncher.pressHome();
        verifyWidget(finalWidgetText);
        assertNotEquals(1, mInitTracker.viewInitCount);
    } finally {
        mConfigMap.clear();
    }
}
Also used : LauncherAppWidgetProviderInfo(com.android.launcher3.widget.LauncherAppWidgetProviderInfo) Background(com.android.launcher3.tapl.Background) LauncherAppWidgetInfo(com.android.launcher3.model.data.LauncherAppWidgetInfo)

Example 92 with Background

use of com.android.launcher3.tapl.Background in project android_packages_apps_Launcher3 by crdroidandroid.

the class Workspace method createUserFolderIfNecessary.

boolean createUserFolderIfNecessary(View newView, int container, CellLayout target, int[] targetCell, float distance, boolean external, DragObject d) {
    if (distance > mMaxDistanceForFolderCreation)
        return false;
    View v = target.getChildAt(targetCell[0], targetCell[1]);
    boolean hasntMoved = false;
    if (mDragInfo != null) {
        CellLayout cellParent = getParentCellLayoutForView(mDragInfo.cell);
        hasntMoved = (mDragInfo.cellX == targetCell[0] && mDragInfo.cellY == targetCell[1]) && (cellParent == target);
    }
    if (v == null || hasntMoved || !mCreateUserFolderOnDrop)
        return false;
    mCreateUserFolderOnDrop = false;
    final int screenId = getIdForScreen(target);
    boolean aboveShortcut = (v.getTag() instanceof WorkspaceItemInfo);
    boolean willBecomeShortcut = (newView.getTag() instanceof WorkspaceItemInfo);
    if (aboveShortcut && willBecomeShortcut) {
        WorkspaceItemInfo sourceInfo = (WorkspaceItemInfo) newView.getTag();
        WorkspaceItemInfo destInfo = (WorkspaceItemInfo) v.getTag();
        // if the drag started here, we need to remove it from the workspace
        if (!external) {
            getParentCellLayoutForView(mDragInfo.cell).removeView(mDragInfo.cell);
        }
        Rect folderLocation = new Rect();
        float scale = mLauncher.getDragLayer().getDescendantRectRelativeToSelf(v, folderLocation);
        target.removeView(v);
        mStatsLogManager.logger().withItemInfo(destInfo).withInstanceId(d.logInstanceId).log(LauncherEvent.LAUNCHER_ITEM_DROP_FOLDER_CREATED);
        FolderIcon fi = mLauncher.addFolder(target, container, screenId, targetCell[0], targetCell[1]);
        destInfo.cellX = -1;
        destInfo.cellY = -1;
        sourceInfo.cellX = -1;
        sourceInfo.cellY = -1;
        // If the dragView is null, we can't animate
        boolean animate = d != null;
        if (animate) {
            // In order to keep everything continuous, we hand off the currently rendered
            // folder background to the newly created icon. This preserves animation state.
            fi.setFolderBackground(mFolderCreateBg);
            mFolderCreateBg = new PreviewBackground();
            fi.performCreateAnimation(destInfo, v, sourceInfo, d, folderLocation, scale);
        } else {
            fi.prepareCreateAnimation(v);
            fi.addItem(destInfo);
            fi.addItem(sourceInfo);
        }
        return true;
    }
    return false;
}
Also used : Rect(android.graphics.Rect) PreviewBackground(com.android.launcher3.folder.PreviewBackground) FolderIcon(com.android.launcher3.folder.FolderIcon) DraggableView(com.android.launcher3.dragndrop.DraggableView) LauncherAppWidgetHostView(com.android.launcher3.widget.LauncherAppWidgetHostView) AppWidgetHostView(android.appwidget.AppWidgetHostView) View(android.view.View) PendingAppWidgetHostView(com.android.launcher3.widget.PendingAppWidgetHostView) DragView(com.android.launcher3.dragndrop.DragView) SuppressLint(android.annotation.SuppressLint) Point(android.graphics.Point) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo)

Example 93 with Background

use of com.android.launcher3.tapl.Background in project android_packages_apps_Launcher3 by crdroidandroid.

the class FloatingWidgetView method getFloatingWidgetView.

/**
 * Configures and returns a an instance of {@link FloatingWidgetView} matching the appearance of
 * {@param originalView}.
 *
 * @param widgetBackgroundPosition a {@link RectF} that will be updated with the widget's
 *                                 background bounds
 * @param windowSize               the size of the window when launched
 * @param windowCornerRadius       the corner radius of the window
 */
public static FloatingWidgetView getFloatingWidgetView(Launcher launcher, LauncherAppWidgetHostView originalView, RectF widgetBackgroundPosition, Size windowSize, float windowCornerRadius, boolean appTargetsAreTranslucent, int fallbackBackgroundColor) {
    final DragLayer dragLayer = launcher.getDragLayer();
    ViewGroup parent = (ViewGroup) dragLayer.getParent();
    FloatingWidgetView floatingView = launcher.getViewCache().getView(R.layout.floating_widget_view, launcher, parent);
    floatingView.recycle();
    floatingView.init(dragLayer, originalView, widgetBackgroundPosition, windowSize, windowCornerRadius, appTargetsAreTranslucent, fallbackBackgroundColor);
    parent.addView(floatingView);
    return floatingView;
}
Also used : DragLayer(com.android.launcher3.dragndrop.DragLayer) ViewGroup(android.view.ViewGroup)

Example 94 with Background

use of com.android.launcher3.tapl.Background in project android_packages_apps_Launcher3 by crdroidandroid.

the class FloatingIconView method getFloatingIconView.

/**
 * Creates a floating icon view for {@param originalView}.
 * @param originalView The view to copy
 * @param hideOriginal If true, it will hide {@param originalView} while this view is visible.
 *                     Else, we will not draw anything in this view.
 * @param positionOut Rect that will hold the size and position of v.
 * @param isOpening True if this view replaces the icon for app open animation.
 */
public static FloatingIconView getFloatingIconView(Launcher launcher, View originalView, boolean hideOriginal, RectF positionOut, boolean isOpening) {
    final DragLayer dragLayer = launcher.getDragLayer();
    ViewGroup parent = (ViewGroup) dragLayer.getParent();
    FloatingIconView view = launcher.getViewCache().getView(R.layout.floating_icon_view, launcher, parent);
    view.recycle();
    // Get the drawable on the background thread
    boolean shouldLoadIcon = originalView.getTag() instanceof ItemInfo && hideOriginal;
    if (shouldLoadIcon) {
        if (sIconLoadResult != null && sIconLoadResult.itemInfo == originalView.getTag()) {
            view.mIconLoadResult = sIconLoadResult;
        } else {
            view.mIconLoadResult = fetchIcon(launcher, originalView, (ItemInfo) originalView.getTag(), isOpening);
        }
    }
    sIconLoadResult = null;
    view.mIsVerticalBarLayout = launcher.getDeviceProfile().isVerticalBarLayout();
    view.mIsOpening = isOpening;
    view.mOriginalIcon = originalView;
    view.mPositionOut = positionOut;
    // Match the position of the original view.
    view.matchPositionOf(launcher, originalView, isOpening, positionOut);
    // We need to add it to the overlay, but keep it invisible until animation starts..
    view.setVisibility(INVISIBLE);
    parent.addView(view);
    dragLayer.addView(view.mListenerView);
    view.mListenerView.setListener(view::fastFinish);
    view.mEndRunnable = () -> {
        view.mEndRunnable = null;
        if (hideOriginal) {
            if (isOpening) {
                setIconAndDotVisible(originalView, true);
                view.finish(dragLayer);
            } else {
                originalView.setVisibility(VISIBLE);
                if (originalView instanceof IconLabelDotView) {
                    setIconAndDotVisible(originalView, true);
                }
                view.finish(dragLayer);
            }
        } else {
            view.finish(dragLayer);
        }
    };
    // the icon is not left in a hidden state.
    if (shouldLoadIcon) {
        view.checkIconResult(originalView);
    }
    return view;
}
Also used : DragLayer(com.android.launcher3.dragndrop.DragLayer) ItemInfo(com.android.launcher3.model.data.ItemInfo) ViewGroup(android.view.ViewGroup)

Example 95 with Background

use of com.android.launcher3.tapl.Background in project Neo-Launcher by NeoApplications.

the class WorkspaceStateTransitionAnimation method setScrim.

public void setScrim(PropertySetter propertySetter, LauncherState state) {
    WorkspaceAndHotseatScrim scrim = mLauncher.getDragLayer().getScrim();
    propertySetter.setFloat(scrim, SCRIM_PROGRESS, state.getWorkspaceScrimAlpha(mLauncher), LINEAR);
    propertySetter.setFloat(scrim, SYSUI_PROGRESS, state.hasSysUiScrim ? 1 : 0, LINEAR);
    OmegaBackgroundView background = OmegaLauncher.getLauncher(mLauncher).getBackground();
    propertySetter.setFloat(background.getBlurAlphas().getProperty(ALPHA_INDEX_STATE), InvertedMultiValueAlpha.VALUE, state.getWorkspaceBlurAlpha(mLauncher), LINEAR);
}
Also used : OmegaBackgroundView(com.saggitt.omega.views.OmegaBackgroundView) WorkspaceAndHotseatScrim(com.android.launcher3.graphics.WorkspaceAndHotseatScrim)

Aggregations

View (android.view.View)48 Point (android.graphics.Point)39 Rect (android.graphics.Rect)39 ItemInfo (com.android.launcher3.model.data.ItemInfo)29 WorkspaceItemInfo (com.android.launcher3.model.data.WorkspaceItemInfo)29 ObjectAnimator (android.animation.ObjectAnimator)28 Background (com.android.launcher3.tapl.Background)28 DragView (com.android.launcher3.dragndrop.DragView)26 DragLayer (com.android.launcher3.dragndrop.DragLayer)25 Animator (android.animation.Animator)24 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)24 LauncherAppWidgetHostView (com.android.launcher3.widget.LauncherAppWidgetHostView)24 Drawable (android.graphics.drawable.Drawable)23 ArrayList (java.util.ArrayList)23 ViewGroup (android.view.ViewGroup)22 ColorDrawable (android.graphics.drawable.ColorDrawable)21 Handler (android.os.Handler)21 FolderIcon (com.android.launcher3.folder.FolderIcon)21 DeepShortcutView (com.android.launcher3.shortcuts.DeepShortcutView)21 Bitmap (android.graphics.Bitmap)20