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

Commit e2217253 authored by Tony Wickham's avatar Tony Wickham
Browse files

Disable pinch gesture when accessibility is enabled.

Bug: 27676309
Change-Id: Iba0f04693c494f258ef21d740ee933f9c32a7674
parent b4c4dceb
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -84,6 +84,7 @@ import android.view.ViewGroup;
import android.view.ViewTreeObserver;
import android.view.WindowManager;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import android.view.animation.OvershootInterpolator;
import android.view.inputmethod.InputMethodManager;
import android.widget.Advanceable;
@@ -138,7 +139,8 @@ import java.util.Locale;
 */
public class Launcher extends Activity
        implements View.OnClickListener, OnLongClickListener, LauncherModel.Callbacks,
                   View.OnTouchListener, PageSwitchListener, LauncherProviderChangeListener {
                   View.OnTouchListener, PageSwitchListener, LauncherProviderChangeListener,
                   AccessibilityManager.AccessibilityStateChangeListener {
    public static final String TAG = "Launcher";
    static final boolean LOGD = false;

@@ -452,6 +454,9 @@ public class Launcher extends Activity
        mExtractedColors = new ExtractedColors();
        loadExtractedColorsAndColorItems();

        ((AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE))
                .addAccessibilityStateChangeListener(this);

        lockAllApps();

        mSavedState = savedInstanceState;
@@ -2011,6 +2016,9 @@ public class Launcher extends Activity

        TextKeyListener.getInstance().release();

        ((AccessibilityManager) getSystemService(ACCESSIBILITY_SERVICE))
                .removeAccessibilityStateChangeListener(this);

        unregisterReceiver(mCloseSystemDialogsReceiver);

        LauncherAnimUtils.onDestroyActivity();
@@ -2794,6 +2802,11 @@ public class Launcher extends Activity
        return mHapticFeedbackTouchListener;
    }

    @Override
    public void onAccessibilityStateChanged(boolean enabled) {
        mDragLayer.onAccessibilityStateChanged(enabled);
    }

    public void onDragStarted(View view) {
        if (isOnCustomContent()) {
            // Custom content screen doesn't participate in drag and drop. If on custom
+9 −4
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@ import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.util.Log;
import android.view.DragEvent;
import android.view.KeyEvent;
import android.view.MotionEvent;
@@ -43,7 +44,6 @@ import android.widget.TextView;

import com.android.launcher3.AppWidgetResizeFrame;
import com.android.launcher3.CellLayout;
import com.android.launcher3.Hotseat;
import com.android.launcher3.InsettableFrameLayout;
import com.android.launcher3.ItemInfo;
import com.android.launcher3.Launcher;
@@ -142,9 +142,9 @@ public class DragLayer extends InsettableFrameLayout {
        mLauncher = launcher;
        mDragController = controller;

        if (!FeatureFlags.LAUNCHER3_DISABLE_PINCH_TO_OVERVIEW) {
            mPinchListener = new PinchToOverviewListener(mLauncher);
        }
        boolean isAccessibilityEnabled = ((AccessibilityManager) mLauncher.getSystemService(
                Context.ACCESSIBILITY_SERVICE)).isEnabled();
        onAccessibilityStateChanged(isAccessibilityEnabled);
    }

    @Override
@@ -152,6 +152,11 @@ public class DragLayer extends InsettableFrameLayout {
        return mDragController.dispatchKeyEvent(event) || super.dispatchKeyEvent(event);
    }

    public void onAccessibilityStateChanged(boolean isAccessibilityEnabled) {
        mPinchListener = FeatureFlags.LAUNCHER3_DISABLE_PINCH_TO_OVERVIEW || isAccessibilityEnabled
                ? null : new PinchToOverviewListener(mLauncher);
    }

    public void showOverlayView(View overlayView) {
        LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
        mOverlayView = overlayView;