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

Commit a9c8c4ad authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove pulldown search feature flag Bug: 63713013" into ub-launcher3-master

parents 4a5206e6 09d8e497
Loading
Loading
Loading
Loading
+0 −28
Original line number Diff line number Diff line
@@ -84,7 +84,6 @@ import com.android.launcher3.util.ItemInfoMatcher;
import com.android.launcher3.util.LongArrayMap;
import com.android.launcher3.util.PackageUserKey;
import com.android.launcher3.util.Thunk;
import com.android.launcher3.util.VerticalFlingDetector;
import com.android.launcher3.util.WallpaperOffsetInterpolator;
import com.android.launcher3.widget.PendingAddShortcutInfo;
import com.android.launcher3.widget.PendingAddWidgetInfo;
@@ -571,33 +570,6 @@ public class Workspace extends PagedView
        }
        // Add the first page
        CellLayout firstPage = insertNewWorkspaceScreen(Workspace.FIRST_SCREEN_ID, 0);
        if (FeatureFlags.PULLDOWN_SEARCH) {
            firstPage.setOnTouchListener(new VerticalFlingDetector(mLauncher) {
                // detect fling when touch started from empty space
                @Override
                public boolean onTouch(View v, MotionEvent ev) {
                    if (workspaceInModalState()) return false;
                    if (shouldConsumeTouch(v)) return true;
                    if (super.onTouch(v, ev)) {
                        mLauncher.startSearch("", false, null, false);
                        return true;
                    }
                    return false;
                }
            });
            firstPage.setOnInterceptTouchListener(new VerticalFlingDetector(mLauncher) {
                // detect fling when touch started from on top of the icons
                @Override
                public boolean onTouch(View v, MotionEvent ev) {
                    if (shouldConsumeTouch(v)) return true;
                    if (super.onTouch(v, ev)) {
                        mLauncher.startSearch("", false, null, false);
                        return true;
                    }
                    return false;
                }
            });
        }
        // Always add a QSB on the first screen.
        if (qsb == null) {
            // In transposed layout, we add the QSB in the Grid. As workspace does not touch the
+0 −88
Original line number Diff line number Diff line
/*
 * Copyright (C) 2016 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.android.launcher3.util;

import android.content.Context;
import android.view.MotionEvent;
import android.view.VelocityTracker;
import android.view.View;
import android.view.ViewConfiguration;

public class VerticalFlingDetector implements View.OnTouchListener {

    private static final float CUSTOM_SLOP_MULTIPLIER = 2.2f;
    private static final int SEC_IN_MILLIS = 1000;

    private VelocityTracker mVelocityTracker;
    private float mMinimumFlingVelocity;
    private float mMaximumFlingVelocity;
    private float mDownX, mDownY;
    private boolean mShouldCheckFling;
    private double mCustomTouchSlop;

    public VerticalFlingDetector(Context context) {
        ViewConfiguration vc = ViewConfiguration.get(context);
        mMinimumFlingVelocity = vc.getScaledMinimumFlingVelocity();
        mMaximumFlingVelocity = vc.getScaledMaximumFlingVelocity();
        mCustomTouchSlop = CUSTOM_SLOP_MULTIPLIER * vc.getScaledTouchSlop();
    }

    @Override
    public boolean onTouch(View v, MotionEvent ev) {
        if (mVelocityTracker == null) {
            mVelocityTracker = VelocityTracker.obtain();
        }
        mVelocityTracker.addMovement(ev);
        switch (ev.getAction()) {
            case MotionEvent.ACTION_DOWN:
                mDownX = ev.getX();
                mDownY = ev.getY();
                mShouldCheckFling = false;
                break;
            case MotionEvent.ACTION_MOVE:
                if (mShouldCheckFling) {
                    break;
                }
                if (Math.abs(ev.getY() - mDownY) > mCustomTouchSlop &&
                        Math.abs(ev.getY() - mDownY) > Math.abs(ev.getX() - mDownX)) {
                    mShouldCheckFling = true;
                }
                break;
            case MotionEvent.ACTION_UP:
                if (mShouldCheckFling) {
                    mVelocityTracker.computeCurrentVelocity(SEC_IN_MILLIS, mMaximumFlingVelocity);
                    // only when fling is detected in down direction
                    if (mVelocityTracker.getYVelocity() > mMinimumFlingVelocity) {
                        cleanUp();
                        return true;
                    }
                }
                // fall through.
            case MotionEvent.ACTION_CANCEL:
                cleanUp();
        }
        return false;
    }

    private void cleanUp() {
        if (mVelocityTracker == null) {
            return;
        }
        mVelocityTracker.recycle();
        mVelocityTracker = null;
    }
}
+0 −2
Original line number Diff line number Diff line
@@ -48,8 +48,6 @@ public final class FeatureFlags {
    public static final boolean QSB_ON_FIRST_SCREEN = true;
    // When enabled the all-apps icon is not added to the hotseat.
    public static final boolean NO_ALL_APPS_ICON = true;
    // When enabled fling down gesture on the first workspace triggers search.
    public static final boolean PULLDOWN_SEARCH = false;
    // When enabled the status bar may show dark icons based on the top of the wallpaper.
    public static final boolean LIGHT_STATUS_BAR = false;
    // When enabled icons are badged with the number of notifications associated with that app.