[SB Refactor] Update the flags to be mobile-specific and wifi-specific.
Bug: 238425913 Test: Verify I can enable just the new wifi icon or just the new mobile icons Change-Id: I1606b4355c949a12b2e65b023338ac39dee3e3bf
This commit is contained in:
@@ -207,14 +207,30 @@ public class Flags {
|
||||
public static final ReleasedFlag STATUS_BAR_LETTERBOX_APPEARANCE =
|
||||
new ReleasedFlag(603, false);
|
||||
|
||||
// TODO(b/254512623): Tracking Bug
|
||||
/**
|
||||
* @deprecated replaced by mobile and wifi specific flags.
|
||||
*
|
||||
* TODO(b/254512623): Tracking Bug
|
||||
*/
|
||||
@Deprecated
|
||||
public static final UnreleasedFlag NEW_STATUS_BAR_PIPELINE_BACKEND =
|
||||
new UnreleasedFlag(604, false);
|
||||
|
||||
// TODO(b/254512660): Tracking Bug
|
||||
/**
|
||||
* @deprecated replaced by mobile and wifi specific flags.
|
||||
*
|
||||
* TODO(b/254512660): Tracking Bug
|
||||
*/
|
||||
@Deprecated
|
||||
public static final UnreleasedFlag NEW_STATUS_BAR_PIPELINE_FRONTEND =
|
||||
new UnreleasedFlag(605, false);
|
||||
|
||||
public static final UnreleasedFlag NEW_STATUS_BAR_MOBILE_ICONS =
|
||||
new UnreleasedFlag(606, false);
|
||||
|
||||
public static final UnreleasedFlag NEW_STATUS_BAR_WIFI_ICON =
|
||||
new UnreleasedFlag(607, false);
|
||||
|
||||
/***************************************/
|
||||
// 700 - dialer/calls
|
||||
// TODO(b/254512734): Tracking Bug
|
||||
|
||||
@@ -372,7 +372,7 @@ public interface StatusBarIconController {
|
||||
mIconSize = mContext.getResources().getDimensionPixelSize(
|
||||
com.android.internal.R.dimen.status_bar_icon_size);
|
||||
|
||||
if (statusBarPipelineFlags.isNewPipelineFrontendEnabled()) {
|
||||
if (statusBarPipelineFlags.useNewMobileIcons()) {
|
||||
// This starts the flow for the new pipeline, and will notify us of changes
|
||||
mMobileIconsViewModel = mobileUiAdapter.createMobileIconsViewModel();
|
||||
MobileIconsBinder.bind(mGroup, mMobileIconsViewModel);
|
||||
@@ -451,7 +451,7 @@ public interface StatusBarIconController {
|
||||
@VisibleForTesting
|
||||
protected StatusIconDisplayable addWifiIcon(int index, String slot, WifiIconState state) {
|
||||
final BaseStatusBarFrameLayout view;
|
||||
if (mStatusBarPipelineFlags.isNewPipelineFrontendEnabled()) {
|
||||
if (mStatusBarPipelineFlags.useNewWifiIcon()) {
|
||||
view = onCreateModernStatusBarWifiView(slot);
|
||||
// When [ModernStatusBarWifiView] is created, it will automatically apply the
|
||||
// correct view state so we don't need to call applyWifiState.
|
||||
@@ -474,9 +474,9 @@ public interface StatusBarIconController {
|
||||
String slot,
|
||||
MobileIconState state
|
||||
) {
|
||||
if (mStatusBarPipelineFlags.isNewPipelineFrontendEnabled()) {
|
||||
if (mStatusBarPipelineFlags.useNewMobileIcons()) {
|
||||
throw new IllegalStateException("Attempting to add a mobile icon while the new "
|
||||
+ "pipeline is enabled is not supported");
|
||||
+ "icons are enabled is not supported");
|
||||
}
|
||||
|
||||
// Use the `subId` field as a key to query for the correct context
|
||||
@@ -497,7 +497,7 @@ public interface StatusBarIconController {
|
||||
String slot,
|
||||
int subId
|
||||
) {
|
||||
if (!mStatusBarPipelineFlags.isNewPipelineFrontendEnabled()) {
|
||||
if (!mStatusBarPipelineFlags.useNewMobileIcons()) {
|
||||
throw new IllegalStateException("Attempting to add a mobile icon using the new"
|
||||
+ "pipeline, but the enabled flag is false.");
|
||||
}
|
||||
|
||||
@@ -224,9 +224,9 @@ public class StatusBarIconControllerImpl implements Tunable,
|
||||
*/
|
||||
@Override
|
||||
public void setMobileIcons(String slot, List<MobileIconState> iconStates) {
|
||||
if (mStatusBarPipelineFlags.isNewPipelineFrontendEnabled()) {
|
||||
if (mStatusBarPipelineFlags.useNewMobileIcons()) {
|
||||
Log.d(TAG, "ignoring old pipeline callbacks, because the new "
|
||||
+ "pipeline frontend is enabled");
|
||||
+ "icons are enabled");
|
||||
return;
|
||||
}
|
||||
Slot mobileSlot = mStatusBarIconList.getSlot(slot);
|
||||
@@ -249,9 +249,9 @@ public class StatusBarIconControllerImpl implements Tunable,
|
||||
|
||||
@Override
|
||||
public void setNewMobileIconSubIds(List<Integer> subIds) {
|
||||
if (!mStatusBarPipelineFlags.isNewPipelineFrontendEnabled()) {
|
||||
if (!mStatusBarPipelineFlags.useNewMobileIcons()) {
|
||||
Log.d(TAG, "ignoring new pipeline callback, "
|
||||
+ "since the frontend is disabled");
|
||||
+ "since the new icons are disabled");
|
||||
return;
|
||||
}
|
||||
Slot mobileSlot = mStatusBarIconList.getSlot("mobile");
|
||||
|
||||
@@ -24,29 +24,19 @@ import javax.inject.Inject
|
||||
/** All flagging methods related to the new status bar pipeline (see b/238425913). */
|
||||
@SysUISingleton
|
||||
class StatusBarPipelineFlags @Inject constructor(private val featureFlags: FeatureFlags) {
|
||||
/**
|
||||
* Returns true if we should run the new pipeline backend.
|
||||
*
|
||||
* The new pipeline backend hooks up to all our external callbacks, logs those callback inputs,
|
||||
* and logs the output state.
|
||||
*/
|
||||
fun isNewPipelineBackendEnabled(): Boolean =
|
||||
featureFlags.isEnabled(Flags.NEW_STATUS_BAR_PIPELINE_BACKEND)
|
||||
/** True if we should display the mobile icons using the new status bar data pipeline. */
|
||||
fun useNewMobileIcons(): Boolean = featureFlags.isEnabled(Flags.NEW_STATUS_BAR_MOBILE_ICONS)
|
||||
|
||||
/** True if we should display the wifi icon using the new status bar data pipeline. */
|
||||
fun useNewWifiIcon(): Boolean = featureFlags.isEnabled(Flags.NEW_STATUS_BAR_WIFI_ICON)
|
||||
|
||||
// TODO(b/238425913): Add flags to only run the mobile backend or wifi backend so we get the
|
||||
// logging without getting the UI effects.
|
||||
|
||||
/**
|
||||
* Returns true if we should run the new pipeline frontend *and* backend.
|
||||
*
|
||||
* The new pipeline frontend will use the outputted state from the new backend and will make the
|
||||
* correct changes to the UI.
|
||||
*/
|
||||
fun isNewPipelineFrontendEnabled(): Boolean =
|
||||
isNewPipelineBackendEnabled() &&
|
||||
featureFlags.isEnabled(Flags.NEW_STATUS_BAR_PIPELINE_FRONTEND)
|
||||
|
||||
/**
|
||||
* Returns true if we should apply some coloring to icons that were rendered with the new
|
||||
* Returns true if we should apply some coloring to the wifi icon that was rendered with the new
|
||||
* pipeline to help with debugging.
|
||||
*/
|
||||
// For now, just always apply the debug coloring if we've enabled frontend rendering.
|
||||
fun useNewPipelineDebugColoring(): Boolean = isNewPipelineFrontendEnabled()
|
||||
// For now, just always apply the debug coloring if we've enabled the new icon.
|
||||
fun useWifiDebugColoring(): Boolean = useNewWifiIcon()
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ abstract class LocationBasedWifiViewModel(
|
||||
/** The color that should be used to tint the icon. */
|
||||
val tint: Flow<Int> =
|
||||
flowOf(
|
||||
if (statusBarPipelineFlags.useNewPipelineDebugColoring()) {
|
||||
if (statusBarPipelineFlags.useWifiDebugColoring()) {
|
||||
debugTint
|
||||
} else {
|
||||
DEFAULT_TINT
|
||||
|
||||
Reference in New Issue
Block a user