Search in sources :

Example 76 with LayoutParams

use of com.android.launcher3.InsettableFrameLayout.LayoutParams in project android_packages_apps_404Launcher by P-404.

the class FloatingSurfaceView method updateIconLocation.

private void updateIconLocation() {
    if (mContract == null) {
        return;
    }
    View icon = mLauncher.getFirstMatchForAppClose(-1, mContract.componentName.getPackageName(), mContract.user);
    boolean iconChanged = mIcon != icon;
    if (iconChanged) {
        setCurrentIconVisible(true);
        mIcon = icon;
        setCurrentIconVisible(false);
    }
    if (icon != null && icon.isAttachedToWindow()) {
        getLocationBoundsForView(mLauncher, icon, false, mTmpPosition, mIconBounds);
        if (!mTmpPosition.equals(mIconPosition)) {
            mIconPosition.set(mTmpPosition);
            sendIconInfo();
            LayoutParams lp = (LayoutParams) mSurfaceView.getLayoutParams();
            lp.width = Math.round(mIconPosition.width());
            lp.height = Math.round(mIconPosition.height());
            lp.leftMargin = Math.round(mIconPosition.left);
            lp.topMargin = Math.round(mIconPosition.top);
        }
    }
    if (mIcon != null && iconChanged && !mIconBounds.isEmpty()) {
        // Record the icon display
        setCurrentIconVisible(true);
        Canvas c = mPicture.beginRecording(mIconBounds.width(), mIconBounds.height());
        c.translate(-mIconBounds.left, -mIconBounds.top);
        mIcon.draw(c);
        mPicture.endRecording();
        setCurrentIconVisible(false);
        drawOnSurface();
    }
}
Also used : Canvas(android.graphics.Canvas) SurfaceView(android.view.SurfaceView) FloatingIconView.getLocationBoundsForView(com.android.launcher3.views.FloatingIconView.getLocationBoundsForView) View(android.view.View) AbstractFloatingView(com.android.launcher3.AbstractFloatingView)

Example 77 with LayoutParams

use of com.android.launcher3.InsettableFrameLayout.LayoutParams in project android_packages_apps_404Launcher by P-404.

the class PredictionRowView method applyPredictionApps.

private void applyPredictionApps() {
    if (getChildCount() != mNumPredictedAppsPerRow) {
        while (getChildCount() > mNumPredictedAppsPerRow) {
            removeViewAt(0);
        }
        LayoutInflater inflater = mLauncher.getAppsView().getLayoutInflater();
        while (getChildCount() < mNumPredictedAppsPerRow) {
            BubbleTextView icon = (BubbleTextView) inflater.inflate(R.layout.all_apps_icon, this, false);
            icon.setOnClickListener(ItemClickHandler.INSTANCE);
            icon.setOnLongClickListener(ItemLongClickListener.INSTANCE_ALL_APPS);
            icon.setLongPressTimeoutFactor(1f);
            icon.setOnFocusChangeListener(mFocusHelper);
            LayoutParams lp = (LayoutParams) icon.getLayoutParams();
            // Ensure the all apps icon height matches the workspace icons in portrait mode.
            lp.height = mLauncher.getDeviceProfile().allAppsCellHeightPx;
            lp.width = 0;
            lp.weight = 1;
            addView(icon);
        }
    }
    int predictionCount = mPredictedApps.size();
    for (int i = 0; i < getChildCount(); i++) {
        BubbleTextView icon = (BubbleTextView) getChildAt(i);
        icon.reset();
        if (predictionCount > i) {
            icon.setVisibility(View.VISIBLE);
            icon.applyFromWorkspaceItem(mPredictedApps.get(i));
        } else {
            icon.setVisibility(predictionCount == 0 ? GONE : INVISIBLE);
        }
    }
    boolean predictionsEnabled = predictionCount > 0;
    if (predictionsEnabled != mPredictionsEnabled) {
        mPredictionsEnabled = predictionsEnabled;
        mLauncher.reapplyUi(false);
        updateVisibility();
    }
    mParent.onHeightUpdated();
}
Also used : LayoutInflater(android.view.LayoutInflater) BubbleTextView(com.android.launcher3.BubbleTextView)

Example 78 with LayoutParams

use of com.android.launcher3.InsettableFrameLayout.LayoutParams in project android_packages_apps_404Launcher by P-404.

the class TaskbarView method updateHotseatItems.

/**
 * Inflates/binds the Hotseat views to show in the Taskbar given their ItemInfos.
 */
protected void updateHotseatItems(ItemInfo[] hotseatItemInfos) {
    int nextViewIndex = 0;
    int numViewsAnimated = 0;
    for (int i = 0; i < hotseatItemInfos.length; i++) {
        ItemInfo hotseatItemInfo = hotseatItemInfos[i];
        if (hotseatItemInfo == null) {
            continue;
        }
        // Replace any Hotseat views with the appropriate type if it's not already that type.
        final int expectedLayoutResId;
        boolean isFolder = false;
        if (hotseatItemInfo.isPredictedItem()) {
            expectedLayoutResId = R.layout.taskbar_predicted_app_icon;
        } else if (hotseatItemInfo instanceof FolderInfo) {
            expectedLayoutResId = R.layout.folder_icon;
            isFolder = true;
        } else {
            expectedLayoutResId = R.layout.taskbar_app_icon;
        }
        View hotseatView = null;
        while (nextViewIndex < getChildCount()) {
            hotseatView = getChildAt(nextViewIndex);
            // see if the view can be reused
            if ((hotseatView.getSourceLayoutResId() != expectedLayoutResId) || (isFolder && (hotseatView.getTag() != hotseatItemInfo))) {
                // Unlike for BubbleTextView, we can't reapply a new FolderInfo after inflation,
                // so if the info changes we need to reinflate. This should only happen if a new
                // folder is dragged to the position that another folder previously existed.
                removeAndRecycle(hotseatView);
                hotseatView = null;
            } else {
                // View found
                break;
            }
        }
        if (hotseatView == null) {
            if (isFolder) {
                FolderInfo folderInfo = (FolderInfo) hotseatItemInfo;
                FolderIcon folderIcon = FolderIcon.inflateFolderAndIcon(expectedLayoutResId, mActivityContext, this, folderInfo);
                folderIcon.setTextVisible(false);
                hotseatView = folderIcon;
            } else {
                hotseatView = inflate(expectedLayoutResId);
            }
            LayoutParams lp = new LayoutParams(mIconTouchSize, mIconTouchSize);
            hotseatView.setPadding(mItemPadding, mItemPadding, mItemPadding, mItemPadding);
            addView(hotseatView, nextViewIndex, lp);
        }
        // Apply the Hotseat ItemInfos, or hide the view if there is none for a given index.
        if (hotseatView instanceof BubbleTextView && hotseatItemInfo instanceof WorkspaceItemInfo) {
            BubbleTextView btv = (BubbleTextView) hotseatView;
            WorkspaceItemInfo workspaceInfo = (WorkspaceItemInfo) hotseatItemInfo;
            boolean animate = btv.shouldAnimateIconChange((WorkspaceItemInfo) hotseatItemInfo);
            btv.applyFromWorkspaceItem(workspaceInfo, animate, numViewsAnimated);
            if (animate) {
                numViewsAnimated++;
            }
        }
        setClickAndLongClickListenersForIcon(hotseatView);
        nextViewIndex++;
    }
    // Remove remaining views
    while (nextViewIndex < getChildCount()) {
        removeAndRecycle(getChildAt(nextViewIndex));
    }
}
Also used : ItemInfo(com.android.launcher3.model.data.ItemInfo) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo) FolderIcon(com.android.launcher3.folder.FolderIcon) BubbleTextView(com.android.launcher3.BubbleTextView) FolderInfo(com.android.launcher3.model.data.FolderInfo) BubbleTextView(com.android.launcher3.BubbleTextView) View(android.view.View) WorkspaceItemInfo(com.android.launcher3.model.data.WorkspaceItemInfo)

Example 79 with LayoutParams

use of com.android.launcher3.InsettableFrameLayout.LayoutParams in project android_packages_apps_Launcher3 by crdroidandroid.

the class Folder method getHeightFromBottom.

/**
 * Returns the height of the current folder's bottom edge from the bottom of the screen.
 */
private int getHeightFromBottom() {
    BaseDragLayer.LayoutParams layoutParams = (BaseDragLayer.LayoutParams) getLayoutParams();
    int folderBottomPx = layoutParams.y + layoutParams.height;
    int windowBottomPx = mActivityContext.getDeviceProfile().heightPx;
    return windowBottomPx - folderBottomPx;
}
Also used : BaseDragLayer(com.android.launcher3.views.BaseDragLayer) SuppressLint(android.annotation.SuppressLint)

Example 80 with LayoutParams

use of com.android.launcher3.InsettableFrameLayout.LayoutParams in project android_packages_apps_Launcher3 by crdroidandroid.

the class DragView method crossFadeContent.

public void crossFadeContent(Drawable crossFadeDrawable, int duration) {
    if (mContent.getParent() == null) {
        // If the content is already removed, ignore
        return;
    }
    View newContent = getViewFromDrawable(getContext(), crossFadeDrawable);
    newContent.measure(makeMeasureSpec(mWidth, EXACTLY), makeMeasureSpec(mHeight, EXACTLY));
    newContent.layout(0, 0, mWidth, mHeight);
    addViewInLayout(newContent, 0, new LayoutParams(mWidth, mHeight));
    AnimatorSet anim = new AnimatorSet();
    anim.play(ObjectAnimator.ofFloat(newContent, VIEW_ALPHA, 0, 1));
    anim.play(ObjectAnimator.ofFloat(mContent, VIEW_ALPHA, 0));
    anim.setDuration(duration).setInterpolator(Interpolators.DEACCEL_1_5);
    anim.start();
}
Also used : AnimatorSet(android.animation.AnimatorSet) ImageView(android.widget.ImageView) View(android.view.View) LauncherAppWidgetHostView(com.android.launcher3.widget.LauncherAppWidgetHostView)

Aggregations

View (android.view.View)79 SuppressLint (android.annotation.SuppressLint)61 Paint (android.graphics.Paint)59 Point (android.graphics.Point)58 LauncherAppWidgetHostView (com.android.launcher3.widget.LauncherAppWidgetHostView)49 DraggableView (com.android.launcher3.dragndrop.DraggableView)40 CellAndSpan (com.android.launcher3.util.CellAndSpan)35 Rect (android.graphics.Rect)23 BubbleTextView (com.android.launcher3.BubbleTextView)21 ItemInfo (com.android.launcher3.model.data.ItemInfo)17 Animator (android.animation.Animator)16 AnimatorListenerAdapter (android.animation.AnimatorListenerAdapter)16 ObjectAnimator (android.animation.ObjectAnimator)15 AbstractFloatingView (com.android.launcher3.AbstractFloatingView)15 FrameLayout (android.widget.FrameLayout)13 DeviceProfile (com.android.launcher3.DeviceProfile)13 PagedOrientationHandler (com.android.launcher3.touch.PagedOrientationHandler)10 ValueAnimator (android.animation.ValueAnimator)9 AnimatorUpdateListener (android.animation.ValueAnimator.AnimatorUpdateListener)8 TimeInterpolator (android.animation.TimeInterpolator)7