Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a184511b authored by Federico Baron's avatar Federico Baron
Browse files

Add dot pagination in workspace

Here we add dot pagination (the same as the one in folders) to the workspace.

Bug: 254769710
Test: Turn on the flag SHOW_DOT_PAGINATION and check out the workspace
Change-Id: Ia1e9ec78eae661aa5e7c37b2b2f1ded38b138ce8
parent 39128081
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -44,6 +44,7 @@ import static com.android.launcher3.Utilities.postAsyncCallback;
import static com.android.launcher3.accessibility.LauncherAccessibilityDelegate.getSupportedActions;
import static com.android.launcher3.anim.Interpolators.EMPHASIZED;
import static com.android.launcher3.config.FeatureFlags.SHOW_DELIGHTFUL_PAGINATION;
import static com.android.launcher3.config.FeatureFlags.SHOW_DOT_PAGINATION;
import static com.android.launcher3.logging.StatsLogManager.EventEnum;
import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_BACKGROUND;
import static com.android.launcher3.logging.StatsLogManager.LAUNCHER_STATE_HOME;
@@ -1296,7 +1297,7 @@ public class Launcher extends StatefulActivity<LauncherState>

    @Override
    public View onCreateView(View parent, String name, Context context, AttributeSet attrs) {
        if (SHOW_DELIGHTFUL_PAGINATION.get()
        if ((SHOW_DOT_PAGINATION.get() || SHOW_DELIGHTFUL_PAGINATION.get())
                && WorkspacePageIndicator.class.getName().equals(name)) {
            return LayoutInflater.from(context).inflate(R.layout.page_indicator_dots,
                    (ViewGroup) parent, false);
+11 −2
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.launcher3.pageindicators;

import static com.android.launcher3.config.FeatureFlags.SHOW_DELIGHTFUL_PAGINATION;
import static com.android.launcher3.config.FeatureFlags.SHOW_DOT_PAGINATION;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
@@ -182,7 +183,9 @@ public class PageIndicatorDots extends View implements Insettable, PageIndicator

    @Override
    public void setScroll(int currentScroll, int totalScroll) {
        if (SHOW_DELIGHTFUL_PAGINATION.get() || SHOW_DOT_PAGINATION.get()) {
            animatePaginationToAlpha(VISIBLE_ALPHA);
        }

        if (mNumPages <= 1) {
            mCurrentScroll = 0;
@@ -193,9 +196,9 @@ public class PageIndicatorDots extends View implements Insettable, PageIndicator
            currentScroll = totalScroll - currentScroll;
        }

        mTotalScroll = totalScroll;
        if (SHOW_DELIGHTFUL_PAGINATION.get()) {
            mCurrentScroll = currentScroll;
            mTotalScroll = totalScroll;
            invalidate();

            if (mShouldAutoHide
@@ -214,9 +217,15 @@ public class PageIndicatorDots extends View implements Insettable, PageIndicator
        if (currentScroll < pageToLeftScroll + scrollThreshold) {
            // scroll is within the left page's threshold
            animateToPosition(pageToLeft);
            if (SHOW_DOT_PAGINATION.get()) {
                hideAfterDelay();
            }
        } else if (currentScroll > pageToRightScroll - scrollThreshold) {
            // scroll is far enough from left page to go to the right page
            animateToPosition(pageToLeft + 1);
            if (SHOW_DOT_PAGINATION.get()) {
                hideAfterDelay();
            }
        } else {
            // scroll is between left and right page
            animateToPosition(pageToLeft + SHIFT_PER_ANIMATION);