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

Commit ae6a7568 authored by Kiril Mikos's avatar Kiril Mikos
Browse files

SystemUI: Fix wrong behavior of recents pie.

Call preloadRecentTasksList when user moves over
recents pie.

Change-Id: Ic62343cb6ae9c5ab8bb90bf6eca4fb2d13493cac
parent 5210e50e
Loading
Loading
Loading
Loading
+30 −1
Original line number Diff line number Diff line
@@ -34,6 +34,8 @@ import android.view.ViewConfiguration;

import com.android.internal.util.pie.PiePosition;
import com.android.systemui.R;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.NavigationButtons;

import java.util.ArrayList;
import java.util.List;
@@ -109,6 +111,8 @@ public class PieView extends View implements View.OnTouchListener {
        }

    };
    private BaseStatusBar mStatusBar;
    private boolean mRecentAppsPreloaded;

    /**
     * A {@code PieDrawable} is everything that can get displayed on the pie control.
@@ -284,6 +288,10 @@ public class PieView extends View implements View.OnTouchListener {
        mSnapPointMask = mask;
    }

    public void attachStatusBar(BaseStatusBar statusBar) {
        mStatusBar = statusBar;
    }

    private void getDimensions() {
        mPieScale = Settings.System.getFloat(mContext.getContentResolver(),
                Settings.System.PIE_SIZE, 1f);
@@ -404,7 +412,10 @@ public class PieView extends View implements View.OnTouchListener {
        if (mActive) {
            if (action == MotionEvent.ACTION_DOWN) {
                mPointerId = event.getPointerId(0);
            } else if (action == MotionEvent.ACTION_MOVE || action == MotionEvent.ACTION_UP) {
            }

            if (action == MotionEvent.ACTION_DOWN
                    || action == MotionEvent.ACTION_MOVE || action == MotionEvent.ACTION_UP) {
                mActiveSnap = null;
                for (int i = 0; i < mSnapPoints.length; i++) {
                    if (mSnapPoints[i] != null) {
@@ -441,6 +452,16 @@ public class PieView extends View implements View.OnTouchListener {
                updateActiveItem(newItem, mLongPressed);
            }

            if ((action == MotionEvent.ACTION_DOWN || action == MotionEvent.ACTION_MOVE)
                    && !mRecentAppsPreloaded && mActiveItem != null && mStatusBar != null) {
                NavigationButtons.ButtonInfo bi =
                        (NavigationButtons.ButtonInfo) mActiveItem.tag;
                if (bi == NavigationButtons.RECENT) {
                    mStatusBar.preloadRecentApps();
                    mRecentAppsPreloaded = true;
                }
            }

            if (action == MotionEvent.ACTION_UP) {
                // check if anything was active
                if (mActiveSnap != null) {
@@ -450,6 +471,9 @@ public class PieView extends View implements View.OnTouchListener {
                } else {
                    if (mActiveItem != null) {
                        mActiveItem.onClickCall(mLongPressed);
                        if (mActiveItem.tag == NavigationButtons.RECENT) {
                            mRecentAppsPreloaded = false;
                        }
                    }
                }
                PieView.this.exit();
@@ -459,6 +483,11 @@ public class PieView extends View implements View.OnTouchListener {
                PieView.this.exit();
            }
        }
        if ((action == MotionEvent.ACTION_CANCEL || action == MotionEvent.ACTION_UP)
                && mRecentAppsPreloaded && mStatusBar != null) {
            mStatusBar.cancelPreloadRecentApps();
            mRecentAppsPreloaded = false;
        }
        return true;
    }

+4 −0
Original line number Diff line number Diff line
@@ -306,6 +306,9 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi

    public void attachStatusBar(BaseStatusBar statusBar) {
        mStatusBar = statusBar;
        if (mPieContainer != null) {
            mPieContainer.attachStatusBar(statusBar);
        }
    }

    private void setupContainer() {
@@ -313,6 +316,7 @@ public class PieController implements BaseStatusBar.NavigationBarCallback, PieVi
            mPieContainer = new PieView(mContext);
            mPieContainer.setOnSnapListener(this);
            mPieContainer.setOnExitListener(this);
            mPieContainer.attachStatusBar(mStatusBar);

            if (mTelephonyManager != null) {
                mTelephonyManager.listen(mPhoneStateListener, PhoneStateListener.LISTEN_SERVICE_STATE);