Remove APP_PANELS_REMOVE_APPS_ALLOWED flag

Test: manual. Remove apps from DeviceControls
Test: atest ControlUiControllerImpl
Test: atest AuthorizedPanelsRepositoryImplTest
Test: atest SelectedComponentRepositoryTest
Fixes: 269132640
Change-Id: I297797d78ae701aac28267f3b550e0b9b1e0c850
This commit is contained in:
Anton Potapov
2023-07-21 18:42:16 +01:00
parent 7786667ad2
commit 0af5c0abb1
6 changed files with 10 additions and 76 deletions

View File

@@ -20,8 +20,6 @@ package com.android.systemui.controls.panels
import android.content.Context
import android.content.SharedPreferences
import com.android.systemui.R
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.settings.UserFileManager
import com.android.systemui.settings.UserTracker
import com.android.systemui.statusbar.policy.DeviceControlsControllerImpl
@@ -33,7 +31,6 @@ constructor(
private val context: Context,
private val userFileManager: UserFileManager,
private val userTracker: UserTracker,
private val featureFlags: FeatureFlags,
) : AuthorizedPanelsRepository {
override fun getAuthorizedPanels(): Set<String> {
@@ -74,17 +71,8 @@ constructor(
userTracker.userId,
)
// We should add default packages in two cases:
// 1) We've never run this
// 2) APP_PANELS_REMOVE_APPS_ALLOWED got disabled after user removed all apps
val needToSetup =
if (featureFlags.isEnabled(Flags.APP_PANELS_REMOVE_APPS_ALLOWED)) {
sharedPref.getStringSet(KEY, null) == null
} else {
// There might be an empty set that need to be overridden after the feature has been
// turned off after being turned on
sharedPref.getStringSet(KEY, null).isNullOrEmpty()
}
// We should add default packages when we've never run this
val needToSetup = sharedPref.getStringSet(KEY, null) == null
if (needToSetup) {
sharedPref.edit().putStringSet(KEY, getPreferredPackages()).apply()
}

View File

@@ -21,7 +21,6 @@ import android.content.Context
import android.content.SharedPreferences
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.settings.UserFileManager
import com.android.systemui.settings.UserTracker
import com.android.systemui.statusbar.policy.DeviceControlsControllerImpl
@@ -83,11 +82,7 @@ constructor(
}
override fun shouldAddDefaultComponent(): Boolean =
if (featureFlags.isEnabled(Flags.APP_PANELS_REMOVE_APPS_ALLOWED)) {
sharedPreferences.getBoolean(SHOULD_ADD_DEFAULT_PANEL, true)
} else {
true
}
sharedPreferences.getBoolean(SHOULD_ADD_DEFAULT_PANEL, true)
override fun setShouldAddDefaultComponent(shouldAdd: Boolean) {
sharedPreferences.edit().putBoolean(SHOULD_ADD_DEFAULT_PANEL, shouldAdd).apply()

View File

@@ -72,7 +72,6 @@ import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.dump.DumpManager
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.plugins.ActivityStarter
import com.android.systemui.settings.UserTracker
import com.android.systemui.statusbar.policy.KeyguardStateController
@@ -518,12 +517,10 @@ class ControlsUiControllerImpl @Inject constructor (
ADD_APP_ID
))
}
if (featureFlags.isEnabled(Flags.APP_PANELS_REMOVE_APPS_ALLOWED)) {
add(OverflowMenuAdapter.MenuItem(
context.getText(R.string.controls_menu_remove),
REMOVE_APP_ID,
))
}
add(OverflowMenuAdapter.MenuItem(
context.getText(R.string.controls_menu_remove),
REMOVE_APP_ID,
))
if (!isPanel) {
add(OverflowMenuAdapter.MenuItem(
context.getText(R.string.controls_menu_edit),

View File

@@ -628,11 +628,6 @@ object Flags {
// 2000 - device controls
@JvmField val APP_PANELS_ALL_APPS_ALLOWED = releasedFlag(2001, "app_panels_all_apps_allowed")
// Enables removing app from Home control panel as a part of a new flow
// TODO(b/269132640): Tracking Bug
@JvmField
val APP_PANELS_REMOVE_APPS_ALLOWED = releasedFlag(2003, "app_panels_remove_apps_allowed")
// 2200 - biometrics (udfps, sfps, BiometricPrompt, etc.)
// TODO(b/259264861): Tracking Bug
@JvmField val UDFPS_NEW_TOUCH_DETECTION = releasedFlag(2200, "udfps_new_touch_detection")

View File

@@ -22,8 +22,6 @@ import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.R
import com.android.systemui.SysuiTestCase
import com.android.systemui.flags.FakeFeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.settings.UserFileManager
import com.android.systemui.settings.UserTracker
import com.android.systemui.util.FakeSharedPreferences
@@ -42,8 +40,6 @@ class AuthorizedPanelsRepositoryImplTest : SysuiTestCase() {
@Mock private lateinit var userTracker: UserTracker
private val featureFlags = FakeFeatureFlags()
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
@@ -52,7 +48,6 @@ class AuthorizedPanelsRepositoryImplTest : SysuiTestCase() {
arrayOf<String>()
)
whenever(userTracker.userId).thenReturn(0)
featureFlags.set(Flags.APP_PANELS_REMOVE_APPS_ALLOWED, true)
}
@Test
@@ -132,25 +127,8 @@ class AuthorizedPanelsRepositoryImplTest : SysuiTestCase() {
assertThat(sharedPrefs.getStringSet(KEY, null)).isEmpty()
}
@Test
fun testSetAuthorizedPackageAfterFeatureDisabled() {
mContext.orCreateTestableResources.addOverride(
R.array.config_controlsPreferredPackages,
arrayOf(TEST_PACKAGE)
)
val sharedPrefs = FakeSharedPreferences()
val fileManager = FakeUserFileManager(mapOf(0 to sharedPrefs))
val repository = createRepository(fileManager)
repository.removeAuthorizedPanels(setOf(TEST_PACKAGE))
featureFlags.set(Flags.APP_PANELS_REMOVE_APPS_ALLOWED, false)
assertThat(repository.getAuthorizedPanels()).isEqualTo(setOf(TEST_PACKAGE))
}
private fun createRepository(userFileManager: UserFileManager): AuthorizedPanelsRepositoryImpl {
return AuthorizedPanelsRepositoryImpl(mContext, userFileManager, userTracker, featureFlags)
return AuthorizedPanelsRepositoryImpl(mContext, userFileManager, userTracker)
}
private class FakeUserFileManager(private val sharedPrefs: Map<Int, SharedPreferences>) :

View File

@@ -22,7 +22,6 @@ import android.testing.AndroidTestingRunner
import androidx.test.filters.SmallTest
import com.android.systemui.SysuiTestCase
import com.android.systemui.flags.FakeFeatureFlags
import com.android.systemui.flags.Flags
import com.android.systemui.settings.UserFileManager
import com.android.systemui.settings.UserTracker
import com.android.systemui.statusbar.policy.DeviceControlsControllerImpl
@@ -103,35 +102,17 @@ class SelectedComponentRepositoryTest : SysuiTestCase() {
}
@Test
fun testFeatureEnabled_shouldAddDefaultPanelDefaultsToTrue() {
featureFlags.set(Flags.APP_PANELS_REMOVE_APPS_ALLOWED, true)
fun testShouldAddDefaultPanelDefaultsToTrue() {
assertThat(repository.shouldAddDefaultComponent()).isTrue()
}
@Test
fun testFeatureDisabled_shouldAddDefaultPanelDefaultsToTrue() {
featureFlags.set(Flags.APP_PANELS_REMOVE_APPS_ALLOWED, false)
assertThat(repository.shouldAddDefaultComponent()).isTrue()
}
@Test
fun testFeatureEnabled_shouldAddDefaultPanelChecked() {
featureFlags.set(Flags.APP_PANELS_REMOVE_APPS_ALLOWED, true)
fun testShouldAddDefaultPanelChecked() {
repository.setShouldAddDefaultComponent(false)
assertThat(repository.shouldAddDefaultComponent()).isFalse()
}
@Test
fun testFeatureDisabled_shouldAlwaysAddDefaultPanelAlwaysTrue() {
featureFlags.set(Flags.APP_PANELS_REMOVE_APPS_ALLOWED, false)
repository.setShouldAddDefaultComponent(false)
assertThat(repository.shouldAddDefaultComponent()).isTrue()
}
@Test
fun testGetPreferredStructure_differentUserId() {
sharedPreferences.savePanel(COMPONENT_A)