diff --git a/src/com/android/settings/DeviceInfoSettings.java b/src/com/android/settings/DeviceInfoSettings.java index 4cabccd6d11..82a9abb13d5 100644 --- a/src/com/android/settings/DeviceInfoSettings.java +++ b/src/com/android/settings/DeviceInfoSettings.java @@ -89,7 +89,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable { @Override protected int getPreferenceScreenResId() { - return FeatureFlagUtils.isEnabled(DEVICE_INFO_V2) + return FeatureFlagUtils.isEnabled(getContext(), DEVICE_INFO_V2) ? R.xml.device_info_settings_v2 : R.xml.device_info_settings; } @@ -126,7 +126,7 @@ public class DeviceInfoSettings extends DashboardFragment implements Indexable { private static List buildPreferenceControllers(Context context, Activity activity, Fragment fragment, Lifecycle lifecycle) { - if (FeatureFlagUtils.isEnabled(DEVICE_INFO_V2)) { + if (FeatureFlagUtils.isEnabled(context, DEVICE_INFO_V2)) { final List controllers = new ArrayList<>(); // Device name diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java index 279ff88dc1d..53cc046f588 100644 --- a/src/com/android/settings/Settings.java +++ b/src/com/android/settings/Settings.java @@ -67,7 +67,7 @@ public class Settings extends SettingsActivity { @Deprecated public static class DevelopmentSettingsActivity extends SettingsActivity { public static final boolean isEnabled() { - return FeatureFlagUtils.isEnabled(DEV_OPTION_V1); + return FeatureFlagUtils.isEnabled(null /* context */, DEV_OPTION_V1); } } public static class DevelopmentSettingsDashboardActivity extends SettingsActivity { /* empty */ } diff --git a/src/com/android/settings/core/InstrumentedPreferenceFragment.java b/src/com/android/settings/core/InstrumentedPreferenceFragment.java index ea82f1326f6..7e37115bab0 100644 --- a/src/com/android/settings/core/InstrumentedPreferenceFragment.java +++ b/src/com/android/settings/core/InstrumentedPreferenceFragment.java @@ -21,7 +21,6 @@ import android.os.Bundle; import android.support.annotation.XmlRes; import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; -import android.util.FeatureFlagUtils; import android.util.Log; import com.android.settings.core.instrumentation.Instrumentable; diff --git a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java index 14f0e2c09c5..4f4753ab37e 100644 --- a/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java +++ b/src/com/android/settings/dashboard/suggestions/SuggestionFeatureProviderImpl.java @@ -73,7 +73,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider final ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); boolean isLowRamDevice = am.isLowRamDevice(); - return !isLowRamDevice && !isV2Enabled(); + return !isLowRamDevice && !isV2Enabled(context); } @Override @@ -81,7 +81,7 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider final ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); boolean isLowRamDevice = am.isLowRamDevice(); - return !isLowRamDevice && isV2Enabled(); + return !isLowRamDevice && isV2Enabled(context); } @Override @@ -91,8 +91,8 @@ public class SuggestionFeatureProviderImpl implements SuggestionFeatureProvider "com.android.settings.intelligence.suggestions.SuggestionService"); } - private static boolean isV2Enabled() { - return FeatureFlagUtils.isEnabled(SUGGESTIONS_V2) || true; + private static boolean isV2Enabled(Context context) { + return FeatureFlagUtils.isEnabled(context, SUGGESTIONS_V2) || true; } @Override diff --git a/src/com/android/settings/development/featureflags/FeatureFlagPreference.java b/src/com/android/settings/development/featureflags/FeatureFlagPreference.java index 80851d35dc3..7da182644a7 100644 --- a/src/com/android/settings/development/featureflags/FeatureFlagPreference.java +++ b/src/com/android/settings/development/featureflags/FeatureFlagPreference.java @@ -29,7 +29,7 @@ public class FeatureFlagPreference extends SwitchPreference { mKey = key; setKey(key); setTitle(key); - setCheckedInternal(FeatureFlagUtils.isEnabled(mKey)); + setCheckedInternal(FeatureFlagUtils.isEnabled(context, mKey)); } @Override diff --git a/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java b/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java index 5e7cd88d84d..7934ad7ced2 100644 --- a/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java +++ b/src/com/android/settings/deviceinfo/DeviceModelPreferenceController.java @@ -51,7 +51,7 @@ public class DeviceModelPreferenceController extends AbstractPreferenceControlle super.displayPreference(screen); final Preference pref = screen.findPreference(KEY_DEVICE_MODEL); if (pref != null) { - if (FeatureFlagUtils.isEnabled(FeatureFlags.DEVICE_INFO_V2)) { + if (FeatureFlagUtils.isEnabled(mContext, FeatureFlags.DEVICE_INFO_V2)) { pref.setSummary(mContext.getResources().getString(R.string.model_summary, getDeviceModel())); } else { diff --git a/src/com/android/settings/deviceinfo/HardwareInfoDialogFragment.java b/src/com/android/settings/deviceinfo/HardwareInfoDialogFragment.java index c57a4e08f7e..26f1ac2b53e 100644 --- a/src/com/android/settings/deviceinfo/HardwareInfoDialogFragment.java +++ b/src/com/android/settings/deviceinfo/HardwareInfoDialogFragment.java @@ -59,7 +59,7 @@ public class HardwareInfoDialogFragment extends InstrumentedDialogFragment { DeviceModelPreferenceController.getDeviceModel()); // Serial number - if (FeatureFlagUtils.isEnabled(FeatureFlags.DEVICE_INFO_V2)) { + if (FeatureFlagUtils.isEnabled(getContext(), FeatureFlags.DEVICE_INFO_V2)) { setText(content, R.id.serial_number_label, R.id.serial_number_value, getSerialNumber()); } else { content.findViewById(R.id.serial_number_label).setVisibility(View.GONE); diff --git a/src/com/android/settings/search/SearchFeatureProvider.java b/src/com/android/settings/search/SearchFeatureProvider.java index 467deef890c..d0c0cd971fe 100644 --- a/src/com/android/settings/search/SearchFeatureProvider.java +++ b/src/com/android/settings/search/SearchFeatureProvider.java @@ -17,6 +17,7 @@ package com.android.settings.search; import android.annotation.NonNull; +import android.app.Activity; import android.content.ComponentName; import android.content.Context; import android.content.Intent; @@ -167,18 +168,18 @@ public interface SearchFeatureProvider { /** * Initializes the search toolbar. */ - default void initSearchToolbar(Context context, Toolbar toolbar) { - if (context == null || toolbar == null) { + default void initSearchToolbar(Activity activity, Toolbar toolbar) { + if (activity == null || toolbar == null) { return; } toolbar.setOnClickListener(tb -> { final Intent intent; - if (FeatureFlagUtils.isEnabled(FeatureFlags.SEARCH_V2)) { + if (FeatureFlagUtils.isEnabled(activity, FeatureFlags.SEARCH_V2)) { intent = new Intent("com.android.settings.action.SETTINGS_SEARCH"); } else { - intent = new Intent(context, SearchActivity.class); + intent = new Intent(activity, SearchActivity.class); } - context.startActivity(intent); + activity.startActivityForResult(intent, 0 /* requestCode */); }); } } diff --git a/tests/robotests/src/android/util/FeatureFlagUtils.java b/tests/robotests/src/android/util/FeatureFlagUtils.java index 500884a6c3b..189336b0826 100644 --- a/tests/robotests/src/android/util/FeatureFlagUtils.java +++ b/tests/robotests/src/android/util/FeatureFlagUtils.java @@ -16,6 +16,7 @@ package android.util; +import android.content.Context; import android.os.SystemProperties; import android.text.TextUtils; @@ -35,7 +36,7 @@ public class FeatureFlagUtils { * @param feature the flag name * @return true if the flag is enabled (either by default in system, or override by user) */ - public static boolean isEnabled(String feature) { + public static boolean isEnabled(Context context, String feature) { // Tries to get feature flag from system property. // Step 1: check if feature flag has any override. Flag name: sys.fflag.override. String value = SystemProperties.get(FFLAG_OVERRIDE_PREFIX + feature); @@ -54,7 +55,6 @@ public class FeatureFlagUtils { SystemProperties.set(FFLAG_OVERRIDE_PREFIX + feature, enabled ? "true" : "false"); } - public static Map getAllFeatureFlags() { final Map features = new HashMap<>(); features.put(FFLAG_PREFIX + "abc", "false"); diff --git a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java index 09ee15f3bac..8cedaf10e61 100644 --- a/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java +++ b/tests/robotests/src/com/android/settings/DeviceInfoSettingsTest.java @@ -46,7 +46,7 @@ import java.util.List; @RunWith(SettingsRobolectricTestRunner.class) @Config( manifest = TestConfig.MANIFEST_PATH, - sdk = TestConfig.SDK_VERSION, + sdk = TestConfig.SDK_VERSION_O, shadows = {ShadowUtils.class, ShadowConnectivityManager.class} ) public class DeviceInfoSettingsTest { diff --git a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java index 126a346da02..16b1f61c081 100644 --- a/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java +++ b/tests/robotests/src/com/android/settings/core/codeinspection/CodeInspectionTest.java @@ -35,7 +35,7 @@ import java.util.List; * for conformance. */ @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION, +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O, assetDir = "/tests/robotests/assets") public class CodeInspectionTest { diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java index a9273065c7b..88c184c1052 100644 --- a/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/core/instrumentation/InstrumentedDialogFragmentTest.java @@ -15,18 +15,20 @@ */ package com.android.settings.core.instrumentation; +import static com.google.common.truth.Truth.assertThat; + import android.os.Bundle; -import com.android.settings.testutils.SettingsRobolectricTestRunner; + import com.android.settings.TestConfig; +import com.android.settings.testutils.SettingsRobolectricTestRunner; + import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.annotation.Config; import org.robolectric.shadows.ShadowApplication; -import static com.google.common.truth.Truth.assertThat; - @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class InstrumentedDialogFragmentTest { public static class TestDialogFragment extends InstrumentedDialogFragment { diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java index ff91c4099d3..a7c95b6a331 100644 --- a/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java +++ b/tests/robotests/src/com/android/settings/core/instrumentation/MetricsFeatureProviderTest.java @@ -15,15 +15,22 @@ */ package com.android.settings.core.instrumentation; +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.verifyNoMoreInteractions; +import static org.mockito.Mockito.when; + import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.util.Pair; import com.android.internal.logging.nano.MetricsProto.MetricsEvent; -import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.overlay.FeatureFactory; +import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.Before; import org.junit.Test; @@ -39,15 +46,8 @@ import org.robolectric.util.ReflectionHelpers; import java.util.ArrayList; import java.util.List; -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.verifyNoMoreInteractions; -import static org.mockito.Mockito.when; - @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class MetricsFeatureProviderTest { private static int CATEGORY = 10; private static boolean SUBTYPE_BOOLEAN = true; diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java index bb41cf0d4f4..3ad70abdc33 100644 --- a/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java +++ b/tests/robotests/src/com/android/settings/core/instrumentation/SharedPreferenceLoggerTest.java @@ -15,13 +15,24 @@ */ package com.android.settings.core.instrumentation; +import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.ACTION_SETTINGS_PREFERENCE_CHANGE; +import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE; +import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE; +import static com.android.internal.logging.nano.MetricsProto.MetricsEvent.FIELD_SETTINGS_PREFERENCE_CHANGE_NAME; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyInt; +import static org.mockito.Matchers.argThat; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; + import android.content.Context; import android.content.SharedPreferences; import android.util.Pair; -import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; import com.android.settings.testutils.FakeFeatureFactory; +import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.google.common.truth.Platform; @@ -34,23 +45,8 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; -import static com.android.internal.logging.nano.MetricsProto.MetricsEvent - .ACTION_SETTINGS_PREFERENCE_CHANGE; -import static com.android.internal.logging.nano.MetricsProto.MetricsEvent - .FIELD_SETTINGS_PREFERENCE_CHANGE_FLOAT_VALUE; -import static com.android.internal.logging.nano.MetricsProto.MetricsEvent - .FIELD_SETTINGS_PREFERENCE_CHANGE_INT_VALUE; -import static com.android.internal.logging.nano.MetricsProto.MetricsEvent - .FIELD_SETTINGS_PREFERENCE_CHANGE_NAME; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyInt; -import static org.mockito.Matchers.argThat; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class SharedPreferenceLoggerTest { private static final String TEST_TAG = "tag"; diff --git a/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java b/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java index 1a47a66f25e..b12d9d64b8a 100644 --- a/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java +++ b/tests/robotests/src/com/android/settings/core/instrumentation/VisibilityLoggerMixinTest.java @@ -44,7 +44,7 @@ import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class VisibilityLoggerMixinTest { @Mock diff --git a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceControllerTest.java index 3d95cf44ee1..470c1ec3ca4 100644 --- a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceControllerTest.java @@ -37,7 +37,7 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class FeatureFlagPreferenceControllerTest { @Mock diff --git a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceTest.java b/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceTest.java index 11099b16c21..35ad7e154a0 100644 --- a/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceTest.java +++ b/tests/robotests/src/com/android/settings/development/featureflags/FeatureFlagPreferenceTest.java @@ -30,7 +30,7 @@ import org.robolectric.RuntimeEnvironment; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class FeatureFlagPreferenceTest { private static final String KEY = "feature_key"; diff --git a/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java index 108d34212d2..aa86fd97aa7 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/DeviceModelPreferenceControllerTest.java @@ -16,13 +16,20 @@ package com.android.settings.deviceinfo; +import static com.google.common.truth.Truth.assertThat; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; +import static org.mockito.Matchers.eq; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + import android.app.Fragment; import android.content.Context; import android.support.v7.preference.Preference; import android.support.v7.preference.PreferenceScreen; -import com.android.settings.testutils.SettingsRobolectricTestRunner; import com.android.settings.TestConfig; +import com.android.settings.testutils.SettingsRobolectricTestRunner; import org.junit.Before; import org.junit.Test; @@ -32,15 +39,8 @@ import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.robolectric.annotation.Config; -import static com.google.common.truth.Truth.assertThat; -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class DeviceModelPreferenceControllerTest { @Mock(answer = Answers.RETURNS_DEEP_STUBS) diff --git a/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java b/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java index 15461cc2962..e56a2b267a1 100644 --- a/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java +++ b/tests/robotests/src/com/android/settings/deviceinfo/HardwareInfoDialogFragmentTest.java @@ -38,7 +38,7 @@ import org.robolectric.Robolectric; import org.robolectric.annotation.Config; @RunWith(SettingsRobolectricTestRunner.class) -@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION) +@Config(manifest = TestConfig.MANIFEST_PATH, sdk = TestConfig.SDK_VERSION_O) public class HardwareInfoDialogFragmentTest { private Activity mActivity;