[Central Surfaces] Make the shade header view a singleton.
Bug: 277762009 Test: compiles Test: shade header shows up correctly Test: atest ShadeHeaderControllerTest Change-Id: I3c94c96388db279574f43f52426e72e682f3ccb9
This commit is contained in:
@@ -52,6 +52,7 @@ import com.android.systemui.shade.ShadeHeaderController.Companion.LARGE_SCREEN_H
|
||||
import com.android.systemui.shade.ShadeHeaderController.Companion.LARGE_SCREEN_HEADER_TRANSITION_ID
|
||||
import com.android.systemui.shade.ShadeHeaderController.Companion.QQS_HEADER_CONSTRAINT
|
||||
import com.android.systemui.shade.ShadeHeaderController.Companion.QS_HEADER_CONSTRAINT
|
||||
import com.android.systemui.shade.ShadeModule.Companion.SHADE_HEADER
|
||||
import com.android.systemui.shade.carrier.ShadeCarrierGroup
|
||||
import com.android.systemui.shade.carrier.ShadeCarrierGroupController
|
||||
import com.android.systemui.statusbar.phone.StatusBarContentInsetsProvider
|
||||
@@ -59,7 +60,6 @@ import com.android.systemui.statusbar.phone.StatusBarIconController
|
||||
import com.android.systemui.statusbar.phone.StatusBarLocation
|
||||
import com.android.systemui.statusbar.phone.StatusIconContainer
|
||||
import com.android.systemui.statusbar.phone.dagger.CentralSurfacesComponent.CentralSurfacesScope
|
||||
import com.android.systemui.statusbar.phone.dagger.StatusBarViewModule.SHADE_HEADER
|
||||
import com.android.systemui.statusbar.policy.Clock
|
||||
import com.android.systemui.statusbar.policy.ConfigurationController
|
||||
import com.android.systemui.statusbar.policy.NextAlarmController
|
||||
|
||||
@@ -17,6 +17,8 @@
|
||||
package com.android.systemui.shade
|
||||
|
||||
import android.view.LayoutInflater
|
||||
import android.view.ViewStub
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout
|
||||
import com.android.keyguard.LockIconView
|
||||
import com.android.systemui.CoreStartable
|
||||
import com.android.systemui.R
|
||||
@@ -31,6 +33,7 @@ import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.multibindings.ClassKey
|
||||
import dagger.multibindings.IntoMap
|
||||
import javax.inject.Named
|
||||
|
||||
/** Module for classes related to the notification shade. */
|
||||
@Module
|
||||
@@ -42,6 +45,8 @@ abstract class ShadeModule {
|
||||
abstract fun bindAuthRippleController(controller: AuthRippleController): CoreStartable
|
||||
|
||||
companion object {
|
||||
const val SHADE_HEADER = "large_screen_shade_header"
|
||||
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
// TODO(b/277762009): Do something similar to
|
||||
@@ -109,5 +114,18 @@ abstract class ShadeModule {
|
||||
): TapAgainView {
|
||||
return notificationPanelView.findViewById(R.id.shade_falsing_tap_again)
|
||||
}
|
||||
|
||||
// TODO(b/277762009): Only allow this view's controller to inject the view. See above.
|
||||
@Provides
|
||||
@SysUISingleton
|
||||
@Named(SHADE_HEADER)
|
||||
fun providesShadeHeaderView(
|
||||
notificationShadeWindowView: NotificationShadeWindowView,
|
||||
): MotionLayout {
|
||||
val stub = notificationShadeWindowView.findViewById<ViewStub>(R.id.qs_header_stub)
|
||||
val layoutId = R.layout.combined_qs_header
|
||||
stub.layoutResource = layoutId
|
||||
return stub.inflate() as MotionLayout
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,10 +16,11 @@
|
||||
|
||||
package com.android.systemui.statusbar.phone.dagger;
|
||||
|
||||
import static com.android.systemui.shade.ShadeModule.SHADE_HEADER;
|
||||
|
||||
import android.content.ContentResolver;
|
||||
import android.os.Handler;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.ViewStub;
|
||||
|
||||
import androidx.constraintlayout.motion.widget.MotionLayout;
|
||||
|
||||
@@ -90,7 +91,6 @@ import javax.inject.Provider;
|
||||
})
|
||||
public abstract class StatusBarViewModule {
|
||||
|
||||
public static final String SHADE_HEADER = "large_screen_shade_header";
|
||||
public static final String STATUS_BAR_FRAGMENT = "status_bar_fragment";
|
||||
|
||||
/** */
|
||||
@@ -136,19 +136,6 @@ public abstract class StatusBarViewModule {
|
||||
abstract ShadeViewController bindsShadeViewController(
|
||||
NotificationPanelViewController notificationPanelViewController);
|
||||
|
||||
@Provides
|
||||
@Named(SHADE_HEADER)
|
||||
@CentralSurfacesComponent.CentralSurfacesScope
|
||||
public static MotionLayout getLargeScreenShadeHeaderBarView(
|
||||
NotificationShadeWindowView notificationShadeWindowView,
|
||||
FeatureFlags featureFlags) {
|
||||
ViewStub stub = notificationShadeWindowView.findViewById(R.id.qs_header_stub);
|
||||
int layoutId = R.layout.combined_qs_header;
|
||||
stub.setLayoutResource(layoutId);
|
||||
MotionLayout v = (MotionLayout) stub.inflate();
|
||||
return v;
|
||||
}
|
||||
|
||||
/** */
|
||||
@Provides
|
||||
@CentralSurfacesComponent.CentralSurfacesScope
|
||||
|
||||
Reference in New Issue
Block a user