Loading packages/CarSystemUI/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ android_app { "androidx.lifecycle_lifecycle-extensions", "SystemUI-tags", "SystemUI-proto", "dagger2-2.19", "//external/kotlinc:kotlin-annotations", ], libs: [ Loading packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java +5 −41 Original line number Diff line number Diff line Loading @@ -20,12 +20,8 @@ import android.content.Context; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.car.CarNotificationEntryManager; import com.android.systemui.car.CarNotificationInterruptionStateProvider; import com.android.systemui.statusbar.car.CarFacetButtonController; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.volume.CarVolumeDialogComponent; import com.android.systemui.volume.VolumeDialogComponent; Loading @@ -33,8 +29,6 @@ import com.android.systemui.volume.VolumeDialogComponent; import javax.inject.Singleton; import dagger.Component; import dagger.Module; import dagger.Provides; /** * Class factory to provide car specific SystemUI components. Loading @@ -44,11 +38,14 @@ public class CarSystemUIFactory extends SystemUIFactory { private CarDependencyComponent mCarDependencyComponent; @Override protected void init(Context context) { super.init(context); protected SystemUIRootComponent buildSystemUIRootComponent(Context context) { mCarDependencyComponent = DaggerCarSystemUIFactory_CarDependencyComponent.builder() .contextHolder(new ContextHolder(context)) .build(); return DaggerCarSystemUIRootComponent.builder() .dependencyProvider(new com.android.systemui.DependencyProvider()) .contextHolder(new ContextHolder(context)) .build(); } public CarDependencyComponent getCarDependencyComponent() { Loading @@ -64,42 +61,9 @@ public class CarSystemUIFactory extends SystemUIFactory { return new CarVolumeDialogComponent(systemUi, context); } @Override public NotificationInterruptionStateProvider provideNotificationInterruptionStateProvider( Context context) { return new CarNotificationInterruptionStateProvider(context); } @Override public boolean provideAllowNotificationLongPress() { return false; } @Module protected static class ContextHolder { private Context mContext; public ContextHolder(Context context) { mContext = context; } @Provides public Context provideContext() { return mContext; } } @Singleton @Component(modules = ContextHolder.class) public interface CarDependencyComponent { CarFacetButtonController getCarFacetButtonController(); } /** * Use {@link CarNotificationEntryManager}, which does nothing when adding a notification. */ @Singleton public NotificationEntryManager provideNotificationEntryManager(Context context) { return new CarNotificationEntryManager(context); } } packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java 0 → 100644 +97 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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; import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME; import android.content.Context; import com.android.systemui.car.CarNotificationEntryManager; import com.android.systemui.car.CarNotificationInterruptionStateProvider; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.power.EnhancedEstimates; import com.android.systemui.power.EnhancedEstimatesImpl; import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.collection.NotificationData; import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; import javax.inject.Named; import javax.inject.Singleton; import dagger.Binds; import dagger.Module; import dagger.Provides; @Module abstract class CarSystemUIModule { @Binds abstract NotificationInterruptionStateProvider bindNotificationInterruptionStateProvider( CarNotificationInterruptionStateProvider notificationInterruptionStateProvider); @Singleton @Provides @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) static boolean provideAllowNotificationLongPress() { return false; } /** * Use {@link CarNotificationEntryManager}, which does nothing when adding a notification. */ @Binds abstract NotificationEntryManager bindNotificationEntryManager( CarNotificationEntryManager notificationEntryManager); @Singleton @Provides @Named(LEAK_REPORT_EMAIL_NAME) static String provideLeakReportEmail() { return "buganizer-system+181579@google.com"; } @Binds abstract EnhancedEstimates bindEnhancedEstimates(EnhancedEstimatesImpl enhancedEstimates); @Binds abstract NotificationLockscreenUserManager bindNotificationLockscreenUserManager( NotificationLockscreenUserManagerImpl notificationLockscreenUserManager); @Binds abstract DockManager bindDockManager(DockManagerImpl dockManager); @Binds abstract NotificationData.KeyguardEnvironment bindKeyguardEnvironment( KeyguardEnvironmentImpl keyguardEnvironment); @Singleton @Provides static ShadeController provideShadeController(Context context) { return SysUiServiceProvider.getComponent(context, StatusBar.class); } @Binds abstract SystemUIRootComponent bindSystemUIRootComponent( CarSystemUIRootComponent systemUIRootComponent); } packages/CarSystemUI/src/com/android/systemui/CarSystemUIRootComponent.java 0 → 100644 +35 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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; import javax.inject.Singleton; import dagger.Component; @Singleton @Component( modules = { DependencyProvider.class, DependencyBinder.class, ServiceBinder.class, SystemUIFactory.ContextHolder.class, SystemUIModule.class, CarSystemUIModule.class }) interface CarSystemUIRootComponent extends SystemUIRootComponent { } packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -21,13 +21,19 @@ import android.service.notification.StatusBarNotification; import com.android.systemui.statusbar.notification.NotificationEntryManager; import javax.inject.Inject; import javax.inject.Singleton; /** * Car specific notification entry manager that does nothing when adding a notification. * * <p> This is because system UI notifications are disabled and we have a different implementation. * Please see {@link com.android.car.notification}. */ @Singleton public class CarNotificationEntryManager extends NotificationEntryManager { @Inject public CarNotificationEntryManager(Context context) { super(context); } Loading Loading
packages/CarSystemUI/Android.bp +2 −0 Original line number Diff line number Diff line Loading @@ -47,6 +47,8 @@ android_app { "androidx.lifecycle_lifecycle-extensions", "SystemUI-tags", "SystemUI-proto", "dagger2-2.19", "//external/kotlinc:kotlin-annotations", ], libs: [ Loading
packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java +5 −41 Original line number Diff line number Diff line Loading @@ -20,12 +20,8 @@ import android.content.Context; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.car.CarNotificationEntryManager; import com.android.systemui.car.CarNotificationInterruptionStateProvider; import com.android.systemui.statusbar.car.CarFacetButtonController; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.volume.CarVolumeDialogComponent; import com.android.systemui.volume.VolumeDialogComponent; Loading @@ -33,8 +29,6 @@ import com.android.systemui.volume.VolumeDialogComponent; import javax.inject.Singleton; import dagger.Component; import dagger.Module; import dagger.Provides; /** * Class factory to provide car specific SystemUI components. Loading @@ -44,11 +38,14 @@ public class CarSystemUIFactory extends SystemUIFactory { private CarDependencyComponent mCarDependencyComponent; @Override protected void init(Context context) { super.init(context); protected SystemUIRootComponent buildSystemUIRootComponent(Context context) { mCarDependencyComponent = DaggerCarSystemUIFactory_CarDependencyComponent.builder() .contextHolder(new ContextHolder(context)) .build(); return DaggerCarSystemUIRootComponent.builder() .dependencyProvider(new com.android.systemui.DependencyProvider()) .contextHolder(new ContextHolder(context)) .build(); } public CarDependencyComponent getCarDependencyComponent() { Loading @@ -64,42 +61,9 @@ public class CarSystemUIFactory extends SystemUIFactory { return new CarVolumeDialogComponent(systemUi, context); } @Override public NotificationInterruptionStateProvider provideNotificationInterruptionStateProvider( Context context) { return new CarNotificationInterruptionStateProvider(context); } @Override public boolean provideAllowNotificationLongPress() { return false; } @Module protected static class ContextHolder { private Context mContext; public ContextHolder(Context context) { mContext = context; } @Provides public Context provideContext() { return mContext; } } @Singleton @Component(modules = ContextHolder.class) public interface CarDependencyComponent { CarFacetButtonController getCarFacetButtonController(); } /** * Use {@link CarNotificationEntryManager}, which does nothing when adding a notification. */ @Singleton public NotificationEntryManager provideNotificationEntryManager(Context context) { return new CarNotificationEntryManager(context); } }
packages/CarSystemUI/src/com/android/systemui/CarSystemUIModule.java 0 → 100644 +97 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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; import static com.android.systemui.Dependency.ALLOW_NOTIFICATION_LONG_PRESS_NAME; import static com.android.systemui.Dependency.LEAK_REPORT_EMAIL_NAME; import android.content.Context; import com.android.systemui.car.CarNotificationEntryManager; import com.android.systemui.car.CarNotificationInterruptionStateProvider; import com.android.systemui.dock.DockManager; import com.android.systemui.dock.DockManagerImpl; import com.android.systemui.power.EnhancedEstimates; import com.android.systemui.power.EnhancedEstimatesImpl; import com.android.systemui.statusbar.NotificationLockscreenUserManager; import com.android.systemui.statusbar.NotificationLockscreenUserManagerImpl; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.notification.NotificationInterruptionStateProvider; import com.android.systemui.statusbar.notification.collection.NotificationData; import com.android.systemui.statusbar.phone.KeyguardEnvironmentImpl; import com.android.systemui.statusbar.phone.ShadeController; import com.android.systemui.statusbar.phone.StatusBar; import javax.inject.Named; import javax.inject.Singleton; import dagger.Binds; import dagger.Module; import dagger.Provides; @Module abstract class CarSystemUIModule { @Binds abstract NotificationInterruptionStateProvider bindNotificationInterruptionStateProvider( CarNotificationInterruptionStateProvider notificationInterruptionStateProvider); @Singleton @Provides @Named(ALLOW_NOTIFICATION_LONG_PRESS_NAME) static boolean provideAllowNotificationLongPress() { return false; } /** * Use {@link CarNotificationEntryManager}, which does nothing when adding a notification. */ @Binds abstract NotificationEntryManager bindNotificationEntryManager( CarNotificationEntryManager notificationEntryManager); @Singleton @Provides @Named(LEAK_REPORT_EMAIL_NAME) static String provideLeakReportEmail() { return "buganizer-system+181579@google.com"; } @Binds abstract EnhancedEstimates bindEnhancedEstimates(EnhancedEstimatesImpl enhancedEstimates); @Binds abstract NotificationLockscreenUserManager bindNotificationLockscreenUserManager( NotificationLockscreenUserManagerImpl notificationLockscreenUserManager); @Binds abstract DockManager bindDockManager(DockManagerImpl dockManager); @Binds abstract NotificationData.KeyguardEnvironment bindKeyguardEnvironment( KeyguardEnvironmentImpl keyguardEnvironment); @Singleton @Provides static ShadeController provideShadeController(Context context) { return SysUiServiceProvider.getComponent(context, StatusBar.class); } @Binds abstract SystemUIRootComponent bindSystemUIRootComponent( CarSystemUIRootComponent systemUIRootComponent); }
packages/CarSystemUI/src/com/android/systemui/CarSystemUIRootComponent.java 0 → 100644 +35 −0 Original line number Diff line number Diff line /* * Copyright (C) 2019 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; import javax.inject.Singleton; import dagger.Component; @Singleton @Component( modules = { DependencyProvider.class, DependencyBinder.class, ServiceBinder.class, SystemUIFactory.ContextHolder.class, SystemUIModule.class, CarSystemUIModule.class }) interface CarSystemUIRootComponent extends SystemUIRootComponent { }
packages/CarSystemUI/src/com/android/systemui/car/CarNotificationEntryManager.java +6 −0 Original line number Diff line number Diff line Loading @@ -21,13 +21,19 @@ import android.service.notification.StatusBarNotification; import com.android.systemui.statusbar.notification.NotificationEntryManager; import javax.inject.Inject; import javax.inject.Singleton; /** * Car specific notification entry manager that does nothing when adding a notification. * * <p> This is because system UI notifications are disabled and we have a different implementation. * Please see {@link com.android.car.notification}. */ @Singleton public class CarNotificationEntryManager extends NotificationEntryManager { @Inject public CarNotificationEntryManager(Context context) { super(context); } Loading