Loading packages/SystemUI/src-debug/com/android/systemui/flags/FlagsModule.kt +1 −18 Original line number Diff line number Diff line Loading @@ -18,17 +18,15 @@ package com.android.systemui.flags import android.content.Context import android.os.Handler import com.android.internal.statusbar.IStatusBarService import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.flags.FeatureFlagsDebug.ALL_FLAGS import com.android.systemui.util.settings.SettingsUtilModule import dagger.Binds import dagger.Module import dagger.Provides import javax.inject.Named @Module(includes = [ FeatureFlagsDebugStartableModule::class, FlagsCommonModule::class, ServerFlagReaderModule::class, SettingsUtilModule::class, ]) Loading @@ -43,20 +41,5 @@ abstract class FlagsModule { fun provideFlagManager(context: Context, @Main handler: Handler): FlagManager { return FlagManager(context, handler) } @JvmStatic @Provides @Named(ALL_FLAGS) fun providesAllFlags(): Map<Int, Flag<*>> = Flags.collectFlags() @JvmStatic @Provides fun providesRestarter(barService: IStatusBarService): Restarter { return object: Restarter { override fun restart() { barService.restart() } } } } } packages/SystemUI/src-release/com/android/systemui/flags/FlagsModule.kt +1 −15 Original line number Diff line number Diff line Loading @@ -16,29 +16,15 @@ package com.android.systemui.flags import com.android.internal.statusbar.IStatusBarService import dagger.Binds import dagger.Module import dagger.Provides @Module(includes = [ FeatureFlagsReleaseStartableModule::class, FlagsCommonModule::class, ServerFlagReaderModule::class ]) abstract class FlagsModule { @Binds abstract fun bindsFeatureFlagRelease(impl: FeatureFlagsRelease): FeatureFlags @Module companion object { @JvmStatic @Provides fun providesRestarter(barService: IStatusBarService): Restarter { return object: Restarter { override fun restart() { barService.restart() } } } } } packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java +26 −11 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.systemui.flags.FlagManager.ACTION_SET_FLAG; import static com.android.systemui.flags.FlagManager.EXTRA_FLAGS; import static com.android.systemui.flags.FlagManager.EXTRA_ID; import static com.android.systemui.flags.FlagManager.EXTRA_VALUE; import static com.android.systemui.flags.FlagsCommonModule.ALL_FLAGS; import static java.util.Objects.requireNonNull; Loading Loading @@ -69,9 +70,9 @@ import javax.inject.Named; @SysUISingleton public class FeatureFlagsDebug implements FeatureFlags { static final String TAG = "SysUIFlags"; static final String ALL_FLAGS = "all_flags"; private final FlagManager mFlagManager; private final Context mContext; private final SecureSettings mSecureSettings; private final Resources mResources; private final SystemPropertiesHelper mSystemProperties; Loading @@ -82,6 +83,14 @@ public class FeatureFlagsDebug implements FeatureFlags { private final Map<Integer, String> mStringFlagCache = new TreeMap<>(); private final Restarter mRestarter; private final ServerFlagReader.ChangeListener mOnPropertiesChanged = new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); } }; @Inject public FeatureFlagsDebug( FlagManager flagManager, Loading @@ -92,23 +101,28 @@ public class FeatureFlagsDebug implements FeatureFlags { DeviceConfigProxy deviceConfigProxy, ServerFlagReader serverFlagReader, @Named(ALL_FLAGS) Map<Integer, Flag<?>> allFlags, Restarter barService) { Restarter restarter) { mFlagManager = flagManager; mContext = context; mSecureSettings = secureSettings; mResources = resources; mSystemProperties = systemProperties; mDeviceConfigProxy = deviceConfigProxy; mServerFlagReader = serverFlagReader; mAllFlags = allFlags; mRestarter = barService; mRestarter = restarter; } /** Call after construction to setup listeners. */ void init() { IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_SET_FLAG); filter.addAction(ACTION_GET_FLAGS); flagManager.setOnSettingsChangedAction(this::restartSystemUI); flagManager.setClearCacheAction(this::removeFromCache); context.registerReceiver(mReceiver, filter, null, null, mFlagManager.setOnSettingsChangedAction(this::restartSystemUI); mFlagManager.setClearCacheAction(this::removeFromCache); mContext.registerReceiver(mReceiver, filter, null, null, Context.RECEIVER_EXPORTED_UNAUDITED); mServerFlagReader.listenForChanges(mAllFlags.values(), mOnPropertiesChanged); } @Override Loading Loading @@ -272,6 +286,7 @@ public class FeatureFlagsDebug implements FeatureFlags { private void dispatchListenersAndMaybeRestart(int id, Consumer<Boolean> restartAction) { mFlagManager.dispatchListenersAndMaybeRestart(id, restartAction); } /** Works just like {@link #eraseFlag(int)} except that it doesn't restart SystemUI. */ private void eraseInternal(int id) { // We can't actually "erase" things from sysprops, but we can set them to empty! Loading packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugStartable.kt +2 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ constructor( dumpManager: DumpManager, private val commandRegistry: CommandRegistry, private val flagCommand: FlagCommand, featureFlags: FeatureFlags private val featureFlags: FeatureFlagsDebug ) : CoreStartable { init { Loading @@ -41,6 +41,7 @@ constructor( } override fun start() { featureFlags.init() commandRegistry.registerCommand(FlagCommand.FLAG_COMMAND) { flagCommand } } } Loading packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java +27 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.flags; import static com.android.systemui.flags.FlagsCommonModule.ALL_FLAGS; import static java.util.Objects.requireNonNull; import android.content.res.Resources; Loading @@ -34,6 +36,7 @@ import java.io.PrintWriter; import java.util.Map; import javax.inject.Inject; import javax.inject.Named; /** * Default implementation of the a Flag manager that returns default values for release builds Loading @@ -49,26 +52,47 @@ public class FeatureFlagsRelease implements FeatureFlags { private final SystemPropertiesHelper mSystemProperties; private final DeviceConfigProxy mDeviceConfigProxy; private final ServerFlagReader mServerFlagReader; private final Restarter mRestarter; private final Map<Integer, Flag<?>> mAllFlags; SparseBooleanArray mBooleanCache = new SparseBooleanArray(); SparseArray<String> mStringCache = new SparseArray<>(); private final ServerFlagReader.ChangeListener mOnPropertiesChanged = new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); } }; @Inject public FeatureFlagsRelease( @Main Resources resources, SystemPropertiesHelper systemProperties, DeviceConfigProxy deviceConfigProxy, ServerFlagReader serverFlagReader) { ServerFlagReader serverFlagReader, @Named(ALL_FLAGS) Map<Integer, Flag<?>> allFlags, Restarter restarter) { mResources = resources; mSystemProperties = systemProperties; mDeviceConfigProxy = deviceConfigProxy; mServerFlagReader = serverFlagReader; mAllFlags = allFlags; mRestarter = restarter; } /** Call after construction to setup listeners. */ void init() { mServerFlagReader.listenForChanges(mAllFlags.values(), mOnPropertiesChanged); } @Override public void addListener(@NonNull Flag<?> flag, @NonNull Listener listener) {} public void addListener(@NonNull Flag<?> flag, @NonNull Listener listener) { } @Override public void removeListener(@NonNull Listener listener) {} public void removeListener(@NonNull Listener listener) { } @Override public boolean isEnabled(@NotNull UnreleasedFlag flag) { Loading Loading
packages/SystemUI/src-debug/com/android/systemui/flags/FlagsModule.kt +1 −18 Original line number Diff line number Diff line Loading @@ -18,17 +18,15 @@ package com.android.systemui.flags import android.content.Context import android.os.Handler import com.android.internal.statusbar.IStatusBarService import com.android.systemui.dagger.qualifiers.Main import com.android.systemui.flags.FeatureFlagsDebug.ALL_FLAGS import com.android.systemui.util.settings.SettingsUtilModule import dagger.Binds import dagger.Module import dagger.Provides import javax.inject.Named @Module(includes = [ FeatureFlagsDebugStartableModule::class, FlagsCommonModule::class, ServerFlagReaderModule::class, SettingsUtilModule::class, ]) Loading @@ -43,20 +41,5 @@ abstract class FlagsModule { fun provideFlagManager(context: Context, @Main handler: Handler): FlagManager { return FlagManager(context, handler) } @JvmStatic @Provides @Named(ALL_FLAGS) fun providesAllFlags(): Map<Int, Flag<*>> = Flags.collectFlags() @JvmStatic @Provides fun providesRestarter(barService: IStatusBarService): Restarter { return object: Restarter { override fun restart() { barService.restart() } } } } }
packages/SystemUI/src-release/com/android/systemui/flags/FlagsModule.kt +1 −15 Original line number Diff line number Diff line Loading @@ -16,29 +16,15 @@ package com.android.systemui.flags import com.android.internal.statusbar.IStatusBarService import dagger.Binds import dagger.Module import dagger.Provides @Module(includes = [ FeatureFlagsReleaseStartableModule::class, FlagsCommonModule::class, ServerFlagReaderModule::class ]) abstract class FlagsModule { @Binds abstract fun bindsFeatureFlagRelease(impl: FeatureFlagsRelease): FeatureFlags @Module companion object { @JvmStatic @Provides fun providesRestarter(barService: IStatusBarService): Restarter { return object: Restarter { override fun restart() { barService.restart() } } } } }
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebug.java +26 −11 Original line number Diff line number Diff line Loading @@ -21,6 +21,7 @@ import static com.android.systemui.flags.FlagManager.ACTION_SET_FLAG; import static com.android.systemui.flags.FlagManager.EXTRA_FLAGS; import static com.android.systemui.flags.FlagManager.EXTRA_ID; import static com.android.systemui.flags.FlagManager.EXTRA_VALUE; import static com.android.systemui.flags.FlagsCommonModule.ALL_FLAGS; import static java.util.Objects.requireNonNull; Loading Loading @@ -69,9 +70,9 @@ import javax.inject.Named; @SysUISingleton public class FeatureFlagsDebug implements FeatureFlags { static final String TAG = "SysUIFlags"; static final String ALL_FLAGS = "all_flags"; private final FlagManager mFlagManager; private final Context mContext; private final SecureSettings mSecureSettings; private final Resources mResources; private final SystemPropertiesHelper mSystemProperties; Loading @@ -82,6 +83,14 @@ public class FeatureFlagsDebug implements FeatureFlags { private final Map<Integer, String> mStringFlagCache = new TreeMap<>(); private final Restarter mRestarter; private final ServerFlagReader.ChangeListener mOnPropertiesChanged = new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); } }; @Inject public FeatureFlagsDebug( FlagManager flagManager, Loading @@ -92,23 +101,28 @@ public class FeatureFlagsDebug implements FeatureFlags { DeviceConfigProxy deviceConfigProxy, ServerFlagReader serverFlagReader, @Named(ALL_FLAGS) Map<Integer, Flag<?>> allFlags, Restarter barService) { Restarter restarter) { mFlagManager = flagManager; mContext = context; mSecureSettings = secureSettings; mResources = resources; mSystemProperties = systemProperties; mDeviceConfigProxy = deviceConfigProxy; mServerFlagReader = serverFlagReader; mAllFlags = allFlags; mRestarter = barService; mRestarter = restarter; } /** Call after construction to setup listeners. */ void init() { IntentFilter filter = new IntentFilter(); filter.addAction(ACTION_SET_FLAG); filter.addAction(ACTION_GET_FLAGS); flagManager.setOnSettingsChangedAction(this::restartSystemUI); flagManager.setClearCacheAction(this::removeFromCache); context.registerReceiver(mReceiver, filter, null, null, mFlagManager.setOnSettingsChangedAction(this::restartSystemUI); mFlagManager.setClearCacheAction(this::removeFromCache); mContext.registerReceiver(mReceiver, filter, null, null, Context.RECEIVER_EXPORTED_UNAUDITED); mServerFlagReader.listenForChanges(mAllFlags.values(), mOnPropertiesChanged); } @Override Loading Loading @@ -272,6 +286,7 @@ public class FeatureFlagsDebug implements FeatureFlags { private void dispatchListenersAndMaybeRestart(int id, Consumer<Boolean> restartAction) { mFlagManager.dispatchListenersAndMaybeRestart(id, restartAction); } /** Works just like {@link #eraseFlag(int)} except that it doesn't restart SystemUI. */ private void eraseInternal(int id) { // We can't actually "erase" things from sysprops, but we can set them to empty! Loading
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsDebugStartable.kt +2 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ constructor( dumpManager: DumpManager, private val commandRegistry: CommandRegistry, private val flagCommand: FlagCommand, featureFlags: FeatureFlags private val featureFlags: FeatureFlagsDebug ) : CoreStartable { init { Loading @@ -41,6 +41,7 @@ constructor( } override fun start() { featureFlags.init() commandRegistry.registerCommand(FlagCommand.FLAG_COMMAND) { flagCommand } } } Loading
packages/SystemUI/src/com/android/systemui/flags/FeatureFlagsRelease.java +27 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.flags; import static com.android.systemui.flags.FlagsCommonModule.ALL_FLAGS; import static java.util.Objects.requireNonNull; import android.content.res.Resources; Loading @@ -34,6 +36,7 @@ import java.io.PrintWriter; import java.util.Map; import javax.inject.Inject; import javax.inject.Named; /** * Default implementation of the a Flag manager that returns default values for release builds Loading @@ -49,26 +52,47 @@ public class FeatureFlagsRelease implements FeatureFlags { private final SystemPropertiesHelper mSystemProperties; private final DeviceConfigProxy mDeviceConfigProxy; private final ServerFlagReader mServerFlagReader; private final Restarter mRestarter; private final Map<Integer, Flag<?>> mAllFlags; SparseBooleanArray mBooleanCache = new SparseBooleanArray(); SparseArray<String> mStringCache = new SparseArray<>(); private final ServerFlagReader.ChangeListener mOnPropertiesChanged = new ServerFlagReader.ChangeListener() { @Override public void onChange() { mRestarter.restart(); } }; @Inject public FeatureFlagsRelease( @Main Resources resources, SystemPropertiesHelper systemProperties, DeviceConfigProxy deviceConfigProxy, ServerFlagReader serverFlagReader) { ServerFlagReader serverFlagReader, @Named(ALL_FLAGS) Map<Integer, Flag<?>> allFlags, Restarter restarter) { mResources = resources; mSystemProperties = systemProperties; mDeviceConfigProxy = deviceConfigProxy; mServerFlagReader = serverFlagReader; mAllFlags = allFlags; mRestarter = restarter; } /** Call after construction to setup listeners. */ void init() { mServerFlagReader.listenForChanges(mAllFlags.values(), mOnPropertiesChanged); } @Override public void addListener(@NonNull Flag<?> flag, @NonNull Listener listener) {} public void addListener(@NonNull Flag<?> flag, @NonNull Listener listener) { } @Override public void removeListener(@NonNull Listener listener) {} public void removeListener(@NonNull Listener listener) { } @Override public boolean isEnabled(@NotNull UnreleasedFlag flag) { Loading