From 8b8e06d78b6d67dc6bdc23b3f9a16652e835dedc Mon Sep 17 00:00:00 2001 From: Jason Chang Date: Fri, 29 Oct 2021 18:51:43 +0800 Subject: [PATCH] (4/n) Remove whole One-handed mode overlay mechanism and fix quick setting tiles flashes problem when toggle on/off on one-handed mode tile 1) Remove whole One-handed mode overlay mechanism. 2) Fix other quick setting tiles flashes problem when toggle on/off on one-handed mode tile. Bug: 201743873 Bug: 202132480 Test: manually test One-handed mode gestures for removing overlay mechanism. Test: manually test One-handed mode quick settings tile actions. Test: atest WMShellUnitTests Change-Id: Id0fafe06570d4cb73f655acaf6cfde0ef7098597 --- .../shell/onehanded/OneHandedController.java | 59 ------------------- packages/overlays/Android.mk | 1 - .../OneHandedModeGesturalOverlay/Android.bp | 30 ---------- .../AndroidManifest.xml | 28 --------- .../res/values/dimens.xml | 22 ------- .../res/values/strings.xml | 22 ------- 6 files changed, 162 deletions(-) delete mode 100644 packages/overlays/OneHandedModeGesturalOverlay/Android.bp delete mode 100644 packages/overlays/OneHandedModeGesturalOverlay/AndroidManifest.xml delete mode 100644 packages/overlays/OneHandedModeGesturalOverlay/res/values/dimens.xml delete mode 100644 packages/overlays/OneHandedModeGesturalOverlay/res/values/strings.xml diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java index 38079aff9a6fa..4d7b96fd30c0d 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/onehanded/OneHandedController.java @@ -16,7 +16,6 @@ package com.android.wm.shell.onehanded; -import static android.os.UserHandle.USER_CURRENT; import static android.os.UserHandle.myUserId; import static android.view.Display.DEFAULT_DISPLAY; @@ -30,12 +29,10 @@ import android.annotation.BinderThread; import android.content.ComponentName; import android.content.Context; import android.content.om.IOverlayManager; -import android.content.om.OverlayInfo; import android.content.res.Configuration; import android.database.ContentObserver; import android.graphics.Rect; import android.os.Handler; -import android.os.RemoteException; import android.os.ServiceManager; import android.os.SystemProperties; import android.provider.Settings; @@ -71,9 +68,6 @@ public class OneHandedController implements RemoteCallable, private static final String ONE_HANDED_MODE_OFFSET_PERCENTAGE = "persist.debug.one_handed_offset_percentage"; - private static final String ONE_HANDED_MODE_GESTURAL_OVERLAY = - "com.android.internal.systemui.onehanded.gestural"; - private static final int OVERLAY_ENABLED_DELAY_MS = 250; private static final int DISPLAY_AREA_READY_RETRY_MS = 10; static final String SUPPORT_ONE_HANDED_MODE = "ro.support_one_handed_mode"; @@ -289,7 +283,6 @@ public class OneHandedController implements RemoteCallable, setupCallback(); registerSettingObservers(mUserId); setupTimeoutListener(); - setupGesturalOverlay(); updateSettings(); mAccessibilityManager = AccessibilityManager.getInstance(context); @@ -524,11 +517,6 @@ public class OneHandedController implements RemoteCallable, : OneHandedUiEventLogger.EVENT_ONE_HANDED_SETTINGS_ENABLED_OFF); setOneHandedEnabled(enabled); - - // Also checks swipe to notification settings since they all need gesture overlay. - setEnabledGesturalOverlay( - enabled || mOneHandedSettingsUtil.getSettingsSwipeToNotificationEnabled( - mContext.getContentResolver(), mUserId), true /* DelayExecute */); } @VisibleForTesting @@ -609,40 +597,6 @@ public class OneHandedController implements RemoteCallable, } } - private void setupGesturalOverlay() { - if (!mOneHandedSettingsUtil.getSettingsOneHandedModeEnabled( - mContext.getContentResolver(), mUserId)) { - return; - } - - OverlayInfo info = null; - try { - mOverlayManager.setHighestPriority(ONE_HANDED_MODE_GESTURAL_OVERLAY, USER_CURRENT); - info = mOverlayManager.getOverlayInfo(ONE_HANDED_MODE_GESTURAL_OVERLAY, USER_CURRENT); - } catch (RemoteException e) { /* Do nothing */ } - - if (info != null && !info.isEnabled()) { - // Enable the default gestural one handed overlay. - setEnabledGesturalOverlay(true /* enabled */, false /* delayExecute */); - } - } - - @VisibleForTesting - private void setEnabledGesturalOverlay(boolean enabled, boolean delayExecute) { - if (mState.isTransitioning() || delayExecute) { - // Enabled overlay package may affect the current animation(e.g:Settings switch), - // so we delay 250ms to enabled overlay after switch animation finish, only delay once. - mMainExecutor.executeDelayed(() -> setEnabledGesturalOverlay(enabled, false), - OVERLAY_ENABLED_DELAY_MS); - return; - } - try { - mOverlayManager.setEnabled(ONE_HANDED_MODE_GESTURAL_OVERLAY, enabled, USER_CURRENT); - } catch (RemoteException e) { - throw e.rethrowFromSystemServer(); - } - } - @VisibleForTesting void setLockedDisabled(boolean locked, boolean enabled) { final boolean isFeatureEnabled = mIsOneHandedEnabled || mIsSwipeToNotificationEnabled; @@ -719,19 +673,6 @@ public class OneHandedController implements RemoteCallable, } mOneHandedSettingsUtil.dump(pw, innerPrefix, mContext.getContentResolver(), mUserId); - - if (mOverlayManager != null) { - OverlayInfo info = null; - try { - info = mOverlayManager.getOverlayInfo(ONE_HANDED_MODE_GESTURAL_OVERLAY, - USER_CURRENT); - } catch (RemoteException e) { /* Do nothing */ } - - if (info != null && !info.isEnabled()) { - pw.print(innerPrefix + "OverlayInfo="); - pw.println(info); - } - } } /** diff --git a/packages/overlays/Android.mk b/packages/overlays/Android.mk index 928892c60e47a..69641e69a9f2d 100644 --- a/packages/overlays/Android.mk +++ b/packages/overlays/Android.mk @@ -31,7 +31,6 @@ LOCAL_REQUIRED_MODULES := \ NavigationBarModeGesturalOverlayNarrowBack \ NavigationBarModeGesturalOverlayWideBack \ NavigationBarModeGesturalOverlayExtraWideBack \ - OneHandedModeGesturalOverlay \ preinstalled-packages-platform-overlays.xml include $(BUILD_PHONY_PACKAGE) diff --git a/packages/overlays/OneHandedModeGesturalOverlay/Android.bp b/packages/overlays/OneHandedModeGesturalOverlay/Android.bp deleted file mode 100644 index 468069dd83340..0000000000000 --- a/packages/overlays/OneHandedModeGesturalOverlay/Android.bp +++ /dev/null @@ -1,30 +0,0 @@ -// -// Copyright 2020, 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 { - // See: http://go/android-license-faq - // A large-scale-change added 'default_applicable_licenses' to import - // all of the 'license_kinds' from "frameworks_base_license" - // to get the below license kinds: - // SPDX-license-identifier-Apache-2.0 - default_applicable_licenses: ["frameworks_base_license"], -} - -runtime_resource_overlay { - name: "OneHandedModeGesturalOverlay", - theme: "OneHandedModeGestural", - product_specific: true, -} diff --git a/packages/overlays/OneHandedModeGesturalOverlay/AndroidManifest.xml b/packages/overlays/OneHandedModeGesturalOverlay/AndroidManifest.xml deleted file mode 100644 index e4867df713a72..0000000000000 --- a/packages/overlays/OneHandedModeGesturalOverlay/AndroidManifest.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - diff --git a/packages/overlays/OneHandedModeGesturalOverlay/res/values/dimens.xml b/packages/overlays/OneHandedModeGesturalOverlay/res/values/dimens.xml deleted file mode 100644 index 3986119c38f25..0000000000000 --- a/packages/overlays/OneHandedModeGesturalOverlay/res/values/dimens.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - 80dp - diff --git a/packages/overlays/OneHandedModeGesturalOverlay/res/values/strings.xml b/packages/overlays/OneHandedModeGesturalOverlay/res/values/strings.xml deleted file mode 100644 index 9e8c7795ba8b3..0000000000000 --- a/packages/overlays/OneHandedModeGesturalOverlay/res/values/strings.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - One Handed Mode -