From 7d580d34e2bd506eda4767a535ca009c0949aa8a Mon Sep 17 00:00:00 2001 From: Dave Mankoff Date: Mon, 13 Jun 2022 17:55:34 +0000 Subject: [PATCH] Remove #createBackGestureTfClassifierProvider from SystemUIFactory Bug: 235624311 Test: atest SystemUITests Change-Id: I5a739c4d5284b95be59059c408e84ca9f928e7ef --- .../com/android/systemui/SystemUIFactory.java | 11 ------- .../dagger/FrameworkServicesModule.java | 8 +++++ .../dagger/ReferenceSystemUIModule.java | 2 ++ .../gestural/EdgeBackGestureHandler.java | 17 +++++++--- .../navigationbar/gestural/GestureModule.java | 32 +++++++++++++++++++ .../android/systemui/tv/TvSystemUIModule.java | 2 ++ 6 files changed, 56 insertions(+), 16 deletions(-) create mode 100644 packages/SystemUI/src/com/android/systemui/navigationbar/gestural/GestureModule.java diff --git a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java index 2dade21caca7e..b05582ee1ec9e 100644 --- a/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java +++ b/packages/SystemUI/src/com/android/systemui/SystemUIFactory.java @@ -18,7 +18,6 @@ package com.android.systemui; import android.app.ActivityThread; import android.content.Context; -import android.content.res.AssetManager; import android.content.res.Resources; import android.os.Handler; import android.os.HandlerThread; @@ -29,7 +28,6 @@ import com.android.systemui.dagger.DaggerGlobalRootComponent; import com.android.systemui.dagger.GlobalRootComponent; import com.android.systemui.dagger.SysUIComponent; import com.android.systemui.dagger.WMComponent; -import com.android.systemui.navigationbar.gestural.BackGestureTfClassifierProvider; import com.android.systemui.screenshot.ScreenshotNotificationSmartActionsProvider; import com.android.wm.shell.dagger.WMShellConcurrencyModule; import com.android.wm.shell.transition.ShellTransitions; @@ -251,13 +249,4 @@ public class SystemUIFactory { Context context, Executor executor, Handler uiHandler) { return new ScreenshotNotificationSmartActionsProvider(); } - - /** - * Creates an instance of BackGestureTfClassifierProvider. - * This method is overridden in vendor specific implementation of Sys UI. - */ - public BackGestureTfClassifierProvider createBackGestureTfClassifierProvider( - AssetManager am, String modelName) { - return new BackGestureTfClassifierProvider(); - } } diff --git a/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java b/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java index aeda20f165156..061a05dcfb723 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java @@ -42,6 +42,7 @@ import android.content.pm.IPackageManager; import android.content.pm.LauncherApps; import android.content.pm.PackageManager; import android.content.pm.ShortcutManager; +import android.content.res.AssetManager; import android.content.res.Resources; import android.hardware.SensorManager; import android.hardware.SensorPrivacyManager; @@ -89,6 +90,7 @@ import com.android.internal.jank.InteractionJankMonitor; import com.android.internal.statusbar.IStatusBarService; import com.android.internal.util.LatencyTracker; import com.android.systemui.Prefs; +import com.android.systemui.dagger.qualifiers.Application; import com.android.systemui.dagger.qualifiers.DisplayId; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.dagger.qualifiers.TestHarness; @@ -395,6 +397,12 @@ public class FrameworkServicesModule { return context.getResources(); } + @Provides + @Application + static AssetManager provideAssetManager(@Application Context context) { + return context.getAssets(); + } + @Provides @Singleton static RoleManager provideRoleManager(Context context) { diff --git a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java index d70491740af43..93220629dec14 100644 --- a/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/dagger/ReferenceSystemUIModule.java @@ -35,6 +35,7 @@ import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.doze.DozeHost; import com.android.systemui.media.dagger.MediaModule; +import com.android.systemui.navigationbar.gestural.GestureModule; import com.android.systemui.plugins.qs.QSFactory; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.power.EnhancedEstimates; @@ -94,6 +95,7 @@ import dagger.Provides; * SystemUI code that variants of SystemUI _must_ include to function correctly. */ @Module(includes = { + GestureModule.class, MediaModule.class, PowerModule.class, QSModule.class, diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java index d41837b7cf4d6..b31aae675978b 100644 --- a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/EdgeBackGestureHandler.java @@ -59,7 +59,6 @@ import com.android.internal.config.sysui.SystemUiDeviceConfigFlags; import com.android.internal.policy.GestureNavigationSettingsObserver; import com.android.internal.util.LatencyTracker; import com.android.systemui.R; -import com.android.systemui.SystemUIFactory; import com.android.systemui.broadcast.BroadcastDispatcher; import com.android.systemui.dagger.qualifiers.Main; import com.android.systemui.flags.FeatureFlags; @@ -93,6 +92,7 @@ import java.util.Map; import java.util.concurrent.Executor; import javax.inject.Inject; +import javax.inject.Provider; /** * Utility class to handle edge swipes for back gesture @@ -202,6 +202,8 @@ public class EdgeBackGestureHandler extends CurrentUserTracker private final Region mExcludeRegion = new Region(); private final Region mUnrestrictedExcludeRegion = new Region(); private final LatencyTracker mLatencyTracker; + private final Provider + mBackGestureTfClassifierProviderProvider; private final FeatureFlags mFeatureFlags; // The left side edge width where touch down is allowed @@ -318,6 +320,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker IWindowManager windowManagerService, FalsingManager falsingManager, LatencyTracker latencyTracker, + Provider backGestureTfClassifierProviderProvider, FeatureFlags featureFlags) { super(broadcastDispatcher); mContext = context; @@ -334,6 +337,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker mWindowManagerService = windowManagerService; mFalsingManager = falsingManager; mLatencyTracker = latencyTracker; + mBackGestureTfClassifierProviderProvider = backGestureTfClassifierProviderProvider; mFeatureFlags = featureFlags; ComponentName recentsComponentName = ComponentName.unflattenFromString( context.getString(com.android.internal.R.string.config_recentsComponentName)); @@ -611,10 +615,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker } if (newState) { - String mlModelName = DeviceConfig.getString(DeviceConfig.NAMESPACE_SYSTEMUI, - SystemUiDeviceConfigFlags.BACK_GESTURE_ML_MODEL_NAME, "backgesture"); - mBackGestureTfClassifierProvider = SystemUIFactory.getInstance() - .createBackGestureTfClassifierProvider(mContext.getAssets(), mlModelName); + mBackGestureTfClassifierProvider = mBackGestureTfClassifierProviderProvider.get(); mMLModelThreshold = DeviceConfig.getFloat(DeviceConfig.NAMESPACE_SYSTEMUI, SystemUiDeviceConfigFlags.BACK_GESTURE_ML_MODEL_THRESHOLD, 0.9f); if (mBackGestureTfClassifierProvider.isActive()) { @@ -1005,6 +1006,8 @@ public class EdgeBackGestureHandler extends CurrentUserTracker private final IWindowManager mWindowManagerService; private final FalsingManager mFalsingManager; private final LatencyTracker mLatencyTracker; + private final Provider + mBackGestureTfClassifierProviderProvider; private final FeatureFlags mFeatureFlags; @Inject @@ -1021,6 +1024,8 @@ public class EdgeBackGestureHandler extends CurrentUserTracker IWindowManager windowManagerService, FalsingManager falsingManager, LatencyTracker latencyTracker, + Provider + backGestureTfClassifierProviderProvider, FeatureFlags featureFlags) { mOverviewProxyService = overviewProxyService; mSysUiState = sysUiState; @@ -1035,6 +1040,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker mWindowManagerService = windowManagerService; mFalsingManager = falsingManager; mLatencyTracker = latencyTracker; + mBackGestureTfClassifierProviderProvider = backGestureTfClassifierProviderProvider; mFeatureFlags = featureFlags; } @@ -1055,6 +1061,7 @@ public class EdgeBackGestureHandler extends CurrentUserTracker mWindowManagerService, mFalsingManager, mLatencyTracker, + mBackGestureTfClassifierProviderProvider, mFeatureFlags); } } diff --git a/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/GestureModule.java b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/GestureModule.java new file mode 100644 index 0000000000000..f98496d437303 --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/navigationbar/gestural/GestureModule.java @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2022 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.systemui.navigationbar.gestural; + +import dagger.Module; +import dagger.Provides; + +/** + * + */ +@Module +public interface GestureModule { + /** */ + @Provides + static BackGestureTfClassifierProvider providsBackGestureTfClassifierProvider() { + return new BackGestureTfClassifierProvider(); + } +} diff --git a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java index 22c192d0f28ce..3cfb36fda3beb 100644 --- a/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java +++ b/packages/SystemUI/src/com/android/systemui/tv/TvSystemUIModule.java @@ -35,6 +35,7 @@ import com.android.systemui.demomode.DemoModeController; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.doze.DozeHost; +import com.android.systemui.navigationbar.gestural.GestureModule; import com.android.systemui.plugins.qs.QSFactory; import com.android.systemui.plugins.statusbar.StatusBarStateController; import com.android.systemui.power.EnhancedEstimates; @@ -87,6 +88,7 @@ import dagger.multibindings.IntoSet; * overridden by the System UI implementation. */ @Module(includes = { + GestureModule.class, PowerModule.class, QSModule.class, VolumeModule.class,