945bb34b5e
There is a case when one handed mode triggered(Activated), all apps
drawer is very easy to trigger while user swipe up around NavBar
region to exit one handed mode. Since System Gesture monitor regsion
is small on screen bottom, swipe-up gesture usually cross over NavBar
monitor region and invoke launcher touch controller intercept touch
event and introduce unexpectedly trigger all apps drawer.
Adding onOneHandedModeStateChanged(boolean activated) for controller
be able to adjust the touch slop by multiplier, we can set a larger
multiplier when the visible window size translate become smaller
and make swipe gesture not too sensitive.
Test: manual swipe up to swich "home <-> all apps" and monitor
minDisplacement of SingleAxisSwipeDetector
Test: Trigger one handed mode and swipe up to exit one handed mode
check the minDisplacement of SingleAxisSwipeDetector
Bug: 186235522
Change-Id: I9729cd408d85b2b22582bf800e28d1471fc06980
42 lines
1.2 KiB
Java
42 lines
1.2 KiB
Java
/*
|
|
* 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.view.MotionEvent;
|
|
|
|
import java.io.PrintWriter;
|
|
|
|
public interface TouchController {
|
|
|
|
/**
|
|
* Called when the draglayer receives touch event.
|
|
*/
|
|
boolean onControllerTouchEvent(MotionEvent ev);
|
|
|
|
/**
|
|
* Called when the draglayer receives a intercept touch event.
|
|
*/
|
|
boolean onControllerInterceptTouchEvent(MotionEvent ev);
|
|
|
|
/**
|
|
* Called when one handed mode state changed
|
|
*/
|
|
default void onOneHandedModeStateChanged(boolean activated) { }
|
|
|
|
default void dump(String prefix, PrintWriter writer) { }
|
|
}
|