Loading packages/CarSystemUI/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -80,4 +80,5 @@ android_app { "com.android.keyguard", ], annotation_processors: ["dagger2-compiler-2.19"], } packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java +42 −10 Original line number Diff line number Diff line Loading @@ -17,25 +17,42 @@ package com.android.systemui; import android.content.Context; import android.util.ArrayMap; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.Dependency.DependencyProvider; import com.android.systemui.car.CarNotificationEntryManager; import com.android.systemui.statusbar.car.CarFacetButtonController; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.car.hvac.HvacController; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.volume.CarVolumeDialogComponent; 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. */ public class CarSystemUIFactory extends SystemUIFactory { private CarDependencyComponent mCarDependencyComponent; @Override protected void init(Context context) { super.init(context); mCarDependencyComponent = DaggerCarSystemUIFactory_CarDependencyComponent.builder() .contextHolder(new ContextHolder(context)) .build(); } public CarDependencyComponent getCarDependencyComponent() { return mCarDependencyComponent; } public StatusBarKeyguardViewManager createStatusBarKeyguardViewManager(Context context, ViewMediatorCallback viewMediatorCallback, LockPatternUtils lockPatternUtils) { return new CarStatusBarKeyguardViewManager(context, viewMediatorCallback, lockPatternUtils); Loading @@ -46,12 +63,27 @@ public class CarSystemUIFactory extends SystemUIFactory { } @Override public void injectDependencies(ArrayMap<Object, DependencyProvider> providers, Context context) { super.injectDependencies(providers, context); providers.put(NotificationEntryManager.class, () -> new CarNotificationEntryManager(context)); providers.put(CarFacetButtonController.class, () -> new CarFacetButtonController(context)); providers.put(HvacController.class, () -> new HvacController(context)); public NotificationEntryManager provideNotificationEntryManager(Context context) { return new CarNotificationEntryManager(context); } @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(); } } packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java +5 −3 Original line number Diff line number Diff line Loading @@ -26,8 +26,9 @@ import android.widget.ImageView; import android.widget.LinearLayout; import com.android.keyguard.AlphaOptimizedImageButton; import com.android.systemui.Dependency; import com.android.systemui.CarSystemUIFactory; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; /** * CarFacetButton is a ui component designed to be used as a shortcut for an app of a defined Loading Loading @@ -76,8 +77,9 @@ public class CarFacetButton extends LinearLayout { TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CarFacetButton); setupIntents(typedArray); setupIcons(typedArray); CarFacetButtonController carFacetButtonController = Dependency.get( CarFacetButtonController.class); CarSystemUIFactory factory = SystemUIFactory.getInstance(); CarFacetButtonController carFacetButtonController = factory.getCarDependencyComponent() .getCarFacetButtonController(); carFacetButtonController.addFacetButton(this); } Loading packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java +5 −0 Original line number Diff line number Diff line Loading @@ -29,11 +29,15 @@ import java.util.HashMap; import java.util.List; import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; /** * CarFacetButtons placed on the nav bar are designed to have visual indication that the active * application on screen is associated with it. This is basically a similar concept to a radio * button group. */ @Singleton public class CarFacetButtonController { protected HashMap<String, CarFacetButton> mButtonsByCategory = new HashMap<>(); Loading @@ -42,6 +46,7 @@ public class CarFacetButtonController { protected CarFacetButton mSelectedFacetButton; protected Context mContext; @Inject public CarFacetButtonController(Context context) { mContext = context; } Loading packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +6 −2 Original line number Diff line number Diff line Loading @@ -29,9 +29,11 @@ import android.view.WindowManager; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.BatteryMeterView; import com.android.systemui.CarSystemUIFactory; import com.android.systemui.Dependency; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.classifier.FalsingLog; import com.android.systemui.classifier.FalsingManager; import com.android.systemui.fragments.FragmentHostManager; Loading Loading @@ -102,7 +104,9 @@ public class CarStatusBar extends StatusBar implements mHvacController.connectToCarService(); mCarFacetButtonController = Dependency.get(CarFacetButtonController.class); CarSystemUIFactory factory = SystemUIFactory.getInstance(); mCarFacetButtonController = factory.getCarDependencyComponent() .getCarFacetButtonController(); mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class); mDeviceIsProvisioned = mDeviceProvisionedController.isDeviceProvisioned(); if (!mDeviceIsProvisioned) { Loading Loading @@ -239,7 +243,7 @@ public class CarStatusBar extends StatusBar implements @Override protected void makeStatusBarView() { super.makeStatusBarView(); mHvacController = Dependency.get(HvacController.class); mHvacController = new HvacController(mContext); mNotificationPanelBackground = getDefaultWallpaper(); mScrimController.setScrimBehindDrawable(mNotificationPanelBackground); Loading Loading
packages/CarSystemUI/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -80,4 +80,5 @@ android_app { "com.android.keyguard", ], annotation_processors: ["dagger2-compiler-2.19"], }
packages/CarSystemUI/src/com/android/systemui/CarSystemUIFactory.java +42 −10 Original line number Diff line number Diff line Loading @@ -17,25 +17,42 @@ package com.android.systemui; import android.content.Context; import android.util.ArrayMap; import com.android.internal.widget.LockPatternUtils; import com.android.keyguard.ViewMediatorCallback; import com.android.systemui.Dependency.DependencyProvider; import com.android.systemui.car.CarNotificationEntryManager; import com.android.systemui.statusbar.car.CarFacetButtonController; import com.android.systemui.statusbar.car.CarStatusBarKeyguardViewManager; import com.android.systemui.statusbar.car.hvac.HvacController; import com.android.systemui.statusbar.notification.NotificationEntryManager; import com.android.systemui.statusbar.phone.StatusBarKeyguardViewManager; import com.android.systemui.volume.CarVolumeDialogComponent; 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. */ public class CarSystemUIFactory extends SystemUIFactory { private CarDependencyComponent mCarDependencyComponent; @Override protected void init(Context context) { super.init(context); mCarDependencyComponent = DaggerCarSystemUIFactory_CarDependencyComponent.builder() .contextHolder(new ContextHolder(context)) .build(); } public CarDependencyComponent getCarDependencyComponent() { return mCarDependencyComponent; } public StatusBarKeyguardViewManager createStatusBarKeyguardViewManager(Context context, ViewMediatorCallback viewMediatorCallback, LockPatternUtils lockPatternUtils) { return new CarStatusBarKeyguardViewManager(context, viewMediatorCallback, lockPatternUtils); Loading @@ -46,12 +63,27 @@ public class CarSystemUIFactory extends SystemUIFactory { } @Override public void injectDependencies(ArrayMap<Object, DependencyProvider> providers, Context context) { super.injectDependencies(providers, context); providers.put(NotificationEntryManager.class, () -> new CarNotificationEntryManager(context)); providers.put(CarFacetButtonController.class, () -> new CarFacetButtonController(context)); providers.put(HvacController.class, () -> new HvacController(context)); public NotificationEntryManager provideNotificationEntryManager(Context context) { return new CarNotificationEntryManager(context); } @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(); } }
packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButton.java +5 −3 Original line number Diff line number Diff line Loading @@ -26,8 +26,9 @@ import android.widget.ImageView; import android.widget.LinearLayout; import com.android.keyguard.AlphaOptimizedImageButton; import com.android.systemui.Dependency; import com.android.systemui.CarSystemUIFactory; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; /** * CarFacetButton is a ui component designed to be used as a shortcut for an app of a defined Loading Loading @@ -76,8 +77,9 @@ public class CarFacetButton extends LinearLayout { TypedArray typedArray = context.obtainStyledAttributes(attrs, R.styleable.CarFacetButton); setupIntents(typedArray); setupIcons(typedArray); CarFacetButtonController carFacetButtonController = Dependency.get( CarFacetButtonController.class); CarSystemUIFactory factory = SystemUIFactory.getInstance(); CarFacetButtonController carFacetButtonController = factory.getCarDependencyComponent() .getCarFacetButtonController(); carFacetButtonController.addFacetButton(this); } Loading
packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarFacetButtonController.java +5 −0 Original line number Diff line number Diff line Loading @@ -29,11 +29,15 @@ import java.util.HashMap; import java.util.List; import java.util.Set; import javax.inject.Inject; import javax.inject.Singleton; /** * CarFacetButtons placed on the nav bar are designed to have visual indication that the active * application on screen is associated with it. This is basically a similar concept to a radio * button group. */ @Singleton public class CarFacetButtonController { protected HashMap<String, CarFacetButton> mButtonsByCategory = new HashMap<>(); Loading @@ -42,6 +46,7 @@ public class CarFacetButtonController { protected CarFacetButton mSelectedFacetButton; protected Context mContext; @Inject public CarFacetButtonController(Context context) { mContext = context; } Loading
packages/CarSystemUI/src/com/android/systemui/statusbar/car/CarStatusBar.java +6 −2 Original line number Diff line number Diff line Loading @@ -29,9 +29,11 @@ import android.view.WindowManager; import com.android.keyguard.KeyguardUpdateMonitor; import com.android.systemui.BatteryMeterView; import com.android.systemui.CarSystemUIFactory; import com.android.systemui.Dependency; import com.android.systemui.Prefs; import com.android.systemui.R; import com.android.systemui.SystemUIFactory; import com.android.systemui.classifier.FalsingLog; import com.android.systemui.classifier.FalsingManager; import com.android.systemui.fragments.FragmentHostManager; Loading Loading @@ -102,7 +104,9 @@ public class CarStatusBar extends StatusBar implements mHvacController.connectToCarService(); mCarFacetButtonController = Dependency.get(CarFacetButtonController.class); CarSystemUIFactory factory = SystemUIFactory.getInstance(); mCarFacetButtonController = factory.getCarDependencyComponent() .getCarFacetButtonController(); mDeviceProvisionedController = Dependency.get(DeviceProvisionedController.class); mDeviceIsProvisioned = mDeviceProvisionedController.isDeviceProvisioned(); if (!mDeviceIsProvisioned) { Loading Loading @@ -239,7 +243,7 @@ public class CarStatusBar extends StatusBar implements @Override protected void makeStatusBarView() { super.makeStatusBarView(); mHvacController = Dependency.get(HvacController.class); mHvacController = new HvacController(mContext); mNotificationPanelBackground = getDefaultWallpaper(); mScrimController.setScrimBehindDrawable(mNotificationPanelBackground); Loading