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

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

Merge "Make DozeParameters, DozeFactory, DozeService, and ImageWallpaper injectable."

parents c87079ff 2aff6c39
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -113,6 +113,7 @@ import com.android.systemui.statusbar.notification.logging.NotificationLogger;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.CollapsedStatusBarFragment;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.HeadsUpManagerPhone;
import com.android.systemui.statusbar.phone.KeyguardBypassController;
import com.android.systemui.statusbar.phone.LightBarController;
@@ -304,7 +305,8 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
            ConfigurationController configurationController,
            StatusBarWindowController statusBarWindowController,
            StatusBarWindowViewController.Builder statusBarWindowViewControllerBuild,
            NotifLog notifLog) {
            NotifLog notifLog,
            DozeParameters dozeParameters) {
        super(
                context,
                lightBarController,
@@ -360,7 +362,8 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt
                configurationController,
                statusBarWindowController,
                statusBarWindowViewControllerBuild,
                notifLog);
                notifLog,
                dozeParameters);
        mNavigationBarController = navigationBarController;
    }

+6 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ package com.android.systemui;
import android.annotation.Nullable;
import android.app.AlarmManager;
import android.app.INotificationManager;
import android.app.IWallpaperManager;
import android.content.res.Configuration;
import android.hardware.SensorPrivacyManager;
import android.hardware.display.NightDisplayListener;
@@ -77,6 +78,7 @@ import com.android.systemui.statusbar.notification.row.ChannelEditorDialogContro
import com.android.systemui.statusbar.notification.row.NotificationBlockingHelperManager;
import com.android.systemui.statusbar.notification.row.NotificationGutsManager;
import com.android.systemui.statusbar.phone.AutoHideController;
import com.android.systemui.statusbar.phone.DozeParameters;
import com.android.systemui.statusbar.phone.KeyguardDismissUtil;
import com.android.systemui.statusbar.phone.LightBarController;
import com.android.systemui.statusbar.phone.LockscreenGestureLogger;
@@ -318,6 +320,8 @@ public class Dependency {
    @Inject Lazy<SysUiState> mSysUiStateFlagsContainer;
    @Inject Lazy<AlarmManager> mAlarmManager;
    @Inject Lazy<KeyguardSecurityModel> mKeyguardSecurityModel;
    @Inject Lazy<DozeParameters> mDozeParameters;
    @Inject Lazy<IWallpaperManager> mWallpaperManager;

    @Inject
    public Dependency() {
@@ -504,6 +508,8 @@ public class Dependency {
        mProviders.put(SysUiState.class, mSysUiStateFlagsContainer::get);
        mProviders.put(AlarmManager.class, mAlarmManager::get);
        mProviders.put(KeyguardSecurityModel.class, mKeyguardSecurityModel::get);
        mProviders.put(DozeParameters.class, mDozeParameters::get);
        mProviders.put(IWallpaperManager.class, mWallpaperManager::get);

        // TODO(b/118592525): to support multi-display , we start to add something which is
        //                    per-display, while others may be global. I think it's time to add
+64 −0
Original line number Diff line number Diff line
@@ -22,26 +22,36 @@ import static com.android.systemui.Dependency.MAIN_HANDLER_NAME;
import static com.android.systemui.Dependency.MAIN_LOOPER_NAME;
import static com.android.systemui.Dependency.TIME_TICK_HANDLER_NAME;

import static java.lang.annotation.RetentionPolicy.RUNTIME;

import android.annotation.Nullable;
import android.app.ActivityManager;
import android.app.AlarmManager;
import android.app.IActivityManager;
import android.app.INotificationManager;
import android.app.IWallpaperManager;
import android.content.Context;
import android.content.res.Resources;
import android.hardware.SensorPrivacyManager;
import android.hardware.display.AmbientDisplayConfiguration;
import android.hardware.display.NightDisplayListener;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.Looper;
import android.os.PowerManager;
import android.os.Process;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.util.DisplayMetrics;
import android.view.IWindowManager;
import android.view.WindowManager;
import android.view.WindowManagerGlobal;

import com.android.internal.logging.MetricsLogger;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.widget.LockPatternUtils;
import com.android.settingslib.bluetooth.LocalBluetoothManager;
import com.android.systemui.doze.AlwaysOnDisplayPolicy;
import com.android.systemui.plugins.PluginInitializerImpl;
import com.android.systemui.shared.plugins.PluginManager;
import com.android.systemui.shared.plugins.PluginManagerImpl;
@@ -59,7 +69,11 @@ import com.android.systemui.statusbar.policy.DeviceProvisionedControllerImpl;
import com.android.systemui.statusbar.policy.NetworkController;
import com.android.systemui.util.leak.LeakDetector;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;

import javax.inject.Named;
import javax.inject.Qualifier;
import javax.inject.Singleton;

import dagger.Module;
@@ -71,6 +85,12 @@ import dagger.Provides;
 */
@Module
public class DependencyProvider {
    @Qualifier
    @Documented
    @Retention(RUNTIME)
    public @interface MainResources {
        // TODO: use attribute to get other, non-main resources?
    }

    @Singleton
    @Provides
@@ -249,4 +269,48 @@ public class DependencyProvider {
    public LockPatternUtils provideLockPatternUtils(Context context) {
        return new LockPatternUtils(context);
    }

    /** */
    @Provides
    public AmbientDisplayConfiguration provideAmbientDispalyConfiguration(Context context) {
        return new AmbientDisplayConfiguration(context);
    }

    /** */
    @Provides
    public AlwaysOnDisplayPolicy provideAlwaysOnDisplayPolicy(Context context) {
        return new AlwaysOnDisplayPolicy(context);
    }

    /** */
    @Provides
    public PowerManager providePowerManager(Context context) {
        return context.getSystemService(PowerManager.class);
    }

    /** */
    @Provides
    @MainResources
    public Resources provideResources(Context context) {
        return context.getResources();
    }

    /** */
    @Provides
    public IWallpaperManager provideWallPaperManager() {
        return IWallpaperManager.Stub.asInterface(
                ServiceManager.getService(Context.WALLPAPER_SERVICE));
    }

    /** */
    @Provides
    public WindowManager providesWindowManager(Context context) {
        return context.getSystemService(WindowManager.class);
    }

    /** */
    @Provides
    public IActivityManager providesIActivityManager() {
        return ActivityManager.getService();
    }
}
+14 −5
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ import com.android.systemui.statusbar.phone.DozeParameters;
import java.io.FileDescriptor;
import java.io.PrintWriter;

import javax.inject.Inject;

/**
 * Default built-in wallpaper that simply shows a static image.
 */
@@ -50,8 +52,15 @@ public class ImageWallpaper extends WallpaperService {
    private static final int INTERVAL_WAIT_FOR_RENDERING = 100;
    private static final int PATIENCE_WAIT_FOR_RENDERING = 10;
    private static final boolean DEBUG = true;
    private final DozeParameters mDozeParameters;
    private HandlerThread mWorker;

    @Inject
    public ImageWallpaper(DozeParameters dozeParameters) {
        super();
        mDozeParameters = dozeParameters;
    }

    @Override
    public void onCreate() {
        super.onCreate();
@@ -61,7 +70,7 @@ public class ImageWallpaper extends WallpaperService {

    @Override
    public Engine onCreateEngine() {
        return new GLEngine(this);
        return new GLEngine(this, mDozeParameters);
    }

    @Override
@@ -89,9 +98,9 @@ public class ImageWallpaper extends WallpaperService {
        // This variable can only be accessed in synchronized block.
        private boolean mWaitingForRendering;

        GLEngine(Context context) {
        GLEngine(Context context, DozeParameters dozeParameters) {
            mNeedTransition = ActivityManager.isHighEndGfx()
                    && !DozeParameters.getInstance(context).getDisplayNeedsBlanking();
                    && !dozeParameters.getDisplayNeedsBlanking();

            // We will preserve EGL context when we are in lock screen or aod
            // to avoid janking in following transition, we need to release when back to home.
@@ -339,9 +348,9 @@ public class ImageWallpaper extends WallpaperService {
            boolean isHighEndGfx = ActivityManager.isHighEndGfx();
            out.print(prefix); out.print("isHighEndGfx="); out.println(isHighEndGfx);

            DozeParameters dozeParameters = DozeParameters.getInstance(getApplicationContext());
            out.print(prefix); out.print("displayNeedsBlanking=");
            out.println(dozeParameters != null ? dozeParameters.getDisplayNeedsBlanking() : "null");
            out.println(
                    mDozeParameters != null ? mDozeParameters.getDisplayNeedsBlanking() : "null");

            out.print(prefix); out.print("mNeedTransition="); out.println(mNeedTransition);
            out.print(prefix); out.print("StatusBarState=");
+6 −0
Original line number Diff line number Diff line
@@ -37,6 +37,12 @@ public abstract class ServiceBinder {
    @ClassKey(DozeService.class)
    public abstract Service bindDozeService(DozeService service);

    /** */
    @Binds
    @IntoMap
    @ClassKey(ImageWallpaper.class)
    public abstract Service bindImageWallpaper(ImageWallpaper service);

    /** */
    @Binds
    @IntoMap
Loading