Add a feature flag for the special access to the long background task

The entry should be hidden if the RUN_LONG_JOBS can't be toggled.

Bug: 255821578
Test: atest AppFilterRegistryTest
Test: make -j RunSettingsRoboTests \
ROBOTTEST_FILTER="LongBackgroundTasksDetailsTest|
LongBackgroundTasksDetailsPreferenceControllerTest"
Test: Manually check the Settings page

Change-Id: Ib1c58d93b40afefdf3ca666c661e213d01c542c6
This commit is contained in:
Jing Ji
2023-01-06 02:10:42 -08:00
parent d54c9cab7d
commit 50490a35ec
7 changed files with 83 additions and 4 deletions

View File

@@ -27,6 +27,7 @@ import android.content.Context;
import androidx.preference.Preference;
import com.android.settings.applications.ApplicationFeatureProvider;
import com.android.settings.core.BasePreferenceController;
import org.junit.Before;
@@ -44,6 +45,8 @@ public class LongBackgroundTasksDetailsPreferenceControllerTest {
private AppInfoDashboardFragment mFragment;
@Mock
private Preference mPreference;
@Mock
private ApplicationFeatureProvider mAppFeatureProvider;
private Context mContext;
private LongBackgroundTasksDetailsPreferenceController mController;
@@ -52,11 +55,13 @@ public class LongBackgroundTasksDetailsPreferenceControllerTest {
public void setUp() {
MockitoAnnotations.initMocks(this);
mContext = spy(RuntimeEnvironment.application);
mController = spy(new LongBackgroundTasksDetailsPreferenceController(mContext, "test_key"));
mController = spy(new LongBackgroundTasksDetailsPreferenceController(mContext, "test_key",
mAppFeatureProvider));
mController.setPackageName("Package1");
mController.setParentFragment(mFragment);
final String key = mController.getPreferenceKey();
when(mPreference.getKey()).thenReturn(key);
when(mAppFeatureProvider.isLongBackgroundTaskPermissionToggleSupported()).thenReturn(true);
}
@Test