Loading packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +5 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading Loading @@ -360,7 +362,8 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt configurationController, statusBarWindowController, statusBarWindowViewControllerBuild, notifLog); notifLog, dozeParameters); mNavigationBarController = navigationBarController; } Loading packages/SystemUI/src/com/android/systemui/Dependency.java +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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() { Loading Loading @@ -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 Loading packages/SystemUI/src/com/android/systemui/DependencyProvider.java +64 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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 Loading Loading @@ -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(); } } packages/SystemUI/src/com/android/systemui/ImageWallpaper.java +14 −5 Original line number Diff line number Diff line Loading @@ -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. */ Loading @@ -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(); Loading @@ -61,7 +70,7 @@ public class ImageWallpaper extends WallpaperService { @Override public Engine onCreateEngine() { return new GLEngine(this); return new GLEngine(this, mDozeParameters); } @Override Loading Loading @@ -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. Loading Loading @@ -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="); Loading packages/SystemUI/src/com/android/systemui/ServiceBinder.java +6 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +5 −2 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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, Loading Loading @@ -360,7 +362,8 @@ public class CarStatusBar extends StatusBar implements CarBatteryController.Batt configurationController, statusBarWindowController, statusBarWindowViewControllerBuild, notifLog); notifLog, dozeParameters); mNavigationBarController = navigationBarController; } Loading
packages/SystemUI/src/com/android/systemui/Dependency.java +6 −0 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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; Loading Loading @@ -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() { Loading Loading @@ -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 Loading
packages/SystemUI/src/com/android/systemui/DependencyProvider.java +64 −0 Original line number Diff line number Diff line Loading @@ -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; Loading @@ -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; Loading @@ -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 Loading Loading @@ -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(); } }
packages/SystemUI/src/com/android/systemui/ImageWallpaper.java +14 −5 Original line number Diff line number Diff line Loading @@ -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. */ Loading @@ -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(); Loading @@ -61,7 +70,7 @@ public class ImageWallpaper extends WallpaperService { @Override public Engine onCreateEngine() { return new GLEngine(this); return new GLEngine(this, mDozeParameters); } @Override Loading Loading @@ -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. Loading Loading @@ -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="); Loading
packages/SystemUI/src/com/android/systemui/ServiceBinder.java +6 −0 Original line number Diff line number Diff line Loading @@ -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