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

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

Merge "Use Provider for EdgeBackGestureHandler"

parents 50bda645 58de065b
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -140,6 +140,7 @@ import java.util.function.Consumer;

import javax.inject.Inject;
import javax.inject.Named;
import javax.inject.Provider;

import dagger.Lazy;

@@ -198,6 +199,12 @@ public class Dependency {
     */
    public static final String ALLOW_NOTIFICATION_LONG_PRESS_NAME = "allow_notif_longpress";

    /**
     * A provider of {@link EdgeBackGestureHandler}.
     */
    public static final String EDGE_BACK_GESTURE_HANDLER_PROVIDER_NAME =
            "edge_back_gesture_handler_provider";

    /**
     * Key for getting a background Looper for background work.
     */
@@ -233,6 +240,12 @@ public class Dependency {
     */
    public static final DependencyKey<String> LEAK_REPORT_EMAIL =
            new DependencyKey<>(LEAK_REPORT_EMAIL_NAME);
    /**
     * Key for retrieving an Provider<EdgeBackGestureHandler>.
     */
    public static final DependencyKey<Provider<EdgeBackGestureHandler>>
            EDGE_BACK_GESTURE_HANDLER_PROVIDER =
            new DependencyKey<>(EDGE_BACK_GESTURE_HANDLER_PROVIDER_NAME);

    private final ArrayMap<Object, Object> mDependencies = new ArrayMap<>();
    private final ArrayMap<Object, LazyDependencyCreator> mProviders = new ArrayMap<>();
@@ -358,7 +371,7 @@ public class Dependency {
    @Inject Lazy<TelephonyListenerManager> mTelephonyListenerManager;
    @Inject Lazy<SystemStatusAnimationScheduler> mSystemStatusAnimationSchedulerLazy;
    @Inject Lazy<PrivacyDotViewController> mPrivacyDotViewControllerLazy;
    @Inject Lazy<EdgeBackGestureHandler> mEdgeBackGestureHandler;
    @Inject Provider<EdgeBackGestureHandler> mEdgeBackGestureHandlerProvider;
    @Inject Lazy<UiEventLogger> mUiEventLogger;
    @Inject Lazy<InternetDialogFactory> mInternetDialogFactory;
    @Inject Lazy<FeatureFlags> mFeatureFlagsLazy;
@@ -573,8 +586,8 @@ public class Dependency {
        mProviders.put(SystemStatusAnimationScheduler.class,
                mSystemStatusAnimationSchedulerLazy::get);
        mProviders.put(PrivacyDotViewController.class, mPrivacyDotViewControllerLazy::get);
        mProviders.put(EdgeBackGestureHandler.class, mEdgeBackGestureHandler::get);
        mProviders.put(InternetDialogFactory.class, mInternetDialogFactory::get);
        mProviders.put(EDGE_BACK_GESTURE_HANDLER_PROVIDER, () -> mEdgeBackGestureHandlerProvider);
        mProviders.put(UiEventLogger.class, mUiEventLogger::get);
        mProviders.put(FeatureFlags.class, mFeatureFlagsLazy::get);

+2 −1
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@ package com.android.systemui.navigationbar;

import static android.view.WindowManagerPolicyConstants.NAV_BAR_MODE_GESTURAL;

import static com.android.systemui.Dependency.EDGE_BACK_GESTURE_HANDLER_PROVIDER;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_HOME_DISABLED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_NOTIFICATION_PANEL_EXPANDED;
import static com.android.systemui.shared.system.QuickStepContract.SYSUI_STATE_OVERVIEW_DISABLED;
@@ -352,7 +353,7 @@ public class NavigationBarView extends FrameLayout implements

        mNavColorSampleMargin = getResources()
                        .getDimensionPixelSize(R.dimen.navigation_handle_sample_horizontal_margin);
        mEdgeBackGestureHandler = Dependency.get(EdgeBackGestureHandler.class);
        mEdgeBackGestureHandler = Dependency.get(EDGE_BACK_GESTURE_HANDLER_PROVIDER).get();
        mEdgeBackGestureHandler.setStateChangeCallback(this::updateStates);
        mRegionSamplingHelper = new RegionSamplingHelper(this,
                new RegionSamplingHelper.SamplingCallback() {
+0 −2
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ import com.android.internal.policy.GestureNavigationSettingsObserver;
import com.android.systemui.R;
import com.android.systemui.SystemUIFactory;
import com.android.systemui.broadcast.BroadcastDispatcher;
import com.android.systemui.dagger.SysUISingleton;
import com.android.systemui.dagger.qualifiers.Main;
import com.android.systemui.model.SysUiState;
import com.android.systemui.navigationbar.NavigationBarView;
@@ -92,7 +91,6 @@ import javax.inject.Inject;
/**
 * Utility class to handle edge swipes for back gesture
 */
@SysUISingleton
public class EdgeBackGestureHandler extends CurrentUserTracker
        implements PluginListener<NavigationEdgeBackPlugin>, ProtoTraceable<SystemUiTraceProto> {

+5 −1
Original line number Diff line number Diff line
@@ -16,8 +16,11 @@

package com.android.systemui.navigationbar;

import static com.android.systemui.Dependency.EDGE_BACK_GESTURE_HANDLER_PROVIDER;

import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.mock;

import android.graphics.PixelFormat;
import android.hardware.display.DisplayManager;
@@ -68,7 +71,8 @@ public class NavigationBarButtonTest extends SysuiTestCase {
        mDependency.injectMockDependency(OverviewProxyService.class);
        mDependency.injectMockDependency(KeyguardStateController.class);
        mDependency.injectMockDependency(NavigationBarController.class);
        mDependency.injectMockDependency(EdgeBackGestureHandler.class);
        mDependency.injectTestDependency(EDGE_BACK_GESTURE_HANDLER_PROVIDER,
                () -> mock(EdgeBackGestureHandler.class));
        mNavBar = new NavigationBarView(context, null);
    }

+3 −1
Original line number Diff line number Diff line
@@ -24,6 +24,7 @@ import static android.view.Display.DEFAULT_DISPLAY;
import static android.view.DisplayAdjustments.DEFAULT_DISPLAY_ADJUSTMENTS;

import static com.android.internal.config.sysui.SystemUiDeviceConfigFlags.HOME_BUTTON_LONG_PRESS_DURATION_MS;
import static com.android.systemui.Dependency.EDGE_BACK_GESTURE_HANDLER_PROVIDER;
import static com.android.systemui.navigationbar.NavigationBar.NavBarActionEvent.NAVBAR_ASSIST_LONGPRESS;

import static org.junit.Assert.assertEquals;
@@ -135,7 +136,8 @@ public class NavigationBarTest extends SysuiTestCase {
        mDependency.injectMockDependency(StatusBarStateController.class);
        mDependency.injectMockDependency(NavigationBarController.class);
        mOverviewProxyService = mDependency.injectMockDependency(OverviewProxyService.class);
        mDependency.injectMockDependency(EdgeBackGestureHandler.class);
        mDependency.injectTestDependency(EDGE_BACK_GESTURE_HANDLER_PROVIDER,
                () -> mock(EdgeBackGestureHandler.class));
        TestableLooper.get(this).runWithLooper(() -> {
            mNavigationBar = createNavBar(mContext);
            mExternalDisplayNavigationBar = createNavBar(mSysuiTestableContextExternal);
Loading