diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 83269cc4e04..968c64dafac 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -70,8 +70,6 @@ - - diff --git a/res/xml/battery_saver_settings.xml b/res/xml/battery_saver_settings.xml index fa02bff8d5d..a6e2d9f3b71 100644 --- a/res/xml/battery_saver_settings.xml +++ b/res/xml/battery_saver_settings.xml @@ -41,7 +41,6 @@ android:summary="@string/battery_saver_turn_on_summary" settings:textOn="@string/battery_saver_button_turn_on" settings:textOff="@string/battery_saver_button_turn_off" - settings:platform_slice="true" settings:controller="com.android.settings.fuelgauge.batterysaver.BatterySaverButtonPreferenceController" /> \ No newline at end of file diff --git a/tests/robotests/res/xml-mcc999/night_display_settings.xml b/tests/robotests/res/xml-mcc999/night_display_settings.xml index c23a2cfd7f2..6196372b9da 100644 --- a/tests/robotests/res/xml-mcc999/night_display_settings.xml +++ b/tests/robotests/res/xml-mcc999/night_display_settings.xml @@ -27,8 +27,7 @@ android:icon="@drawable/ic_android" android:summary="summary" settings:controller="com.android.settings.slices.FakePreferenceController" - settings:keywords="keyword" - settings:platform_slice="true"/> + settings:keywords="keyword"/> \ No newline at end of file diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java index 4d7a100cb61..0a7de40b365 100644 --- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java @@ -34,10 +34,8 @@ import static org.mockito.Mockito.when; import android.app.PendingIntent; import android.app.slice.SliceManager; import android.content.ContentResolver; -import android.content.ContentValues; import android.content.Context; import android.content.Intent; -import android.database.sqlite.SQLiteDatabase; import android.net.Uri; import android.os.StrictMode; import android.provider.Settings; @@ -49,7 +47,6 @@ import androidx.slice.Slice; import androidx.slice.SliceProvider; import androidx.slice.widget.SliceLiveData; -import com.android.settings.R; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.FakeToggleController; import com.android.settings.testutils.shadow.ShadowBluetoothAdapter; diff --git a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java index 4e62b03b3b5..df3d84f3cae 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java +++ b/tests/robotests/src/com/android/settings/slices/SliceBroadcastReceiverTest.java @@ -43,7 +43,6 @@ import com.android.settings.search.SearchFeatureProvider; import com.android.settings.search.SearchFeatureProviderImpl; import com.android.settings.testutils.DatabaseTestUtils; import com.android.settings.testutils.FakeFeatureFactory; -import com.android.settings.testutils.FakeIndexProvider; import com.android.settings.testutils.FakeSliderController; import com.android.settings.testutils.FakeToggleController; @@ -57,13 +56,6 @@ import org.robolectric.RuntimeEnvironment; @RunWith(RobolectricTestRunner.class) public class SliceBroadcastReceiverTest { - private final String fakeTitle = "title"; - private final String fakeSummary = "summary"; - private final String fakeScreenTitle = "screen_title"; - private final int fakeIcon = 1234; - private final String fakeFragmentClassName = FakeIndexProvider.class.getName(); - private final Class fakeControllerName = FakeToggleController.class; - private Context mContext; private SQLiteDatabase mDb; private SliceBroadcastReceiver mReceiver; @@ -90,21 +82,18 @@ public class SliceBroadcastReceiverTest { @Test public void onReceive_toggleChanged() { final String key = "key"; - final Uri uri = new Uri.Builder() - .scheme(ContentResolver.SCHEME_CONTENT) - .authority(SettingsSliceProvider.SLICE_AUTHORITY) - .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(key) - .build(); + final Uri uri = buildUri(key); mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); insertSpecialCase(key); final ContentResolver resolver = mock(ContentResolver.class); doReturn(resolver).when(mContext).getContentResolver(); // Turn on toggle setting - FakeToggleController fakeToggleController = new FakeToggleController(mContext, key); + final FakeToggleController fakeToggleController = new FakeToggleController(mContext, key); fakeToggleController.setChecked(true); - Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED); - intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); + + final Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED) + .putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key) + .setData(uri); assertThat(fakeToggleController.isChecked()).isTrue(); @@ -128,6 +117,8 @@ public class SliceBroadcastReceiverTest { doReturn(resolver).when(mContext).getContentResolver(); final String key = "key"; + final Uri expectedUri = buildUri(key); + mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); insertSpecialCase(key); @@ -135,8 +126,9 @@ public class SliceBroadcastReceiverTest { fakeToggleController.setChecked(true); // Set the toggle setting update synchronously. fakeToggleController.setAsyncUpdate(false); - Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED); - intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); + final Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED) + .putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key) + .setData(expectedUri); assertThat(fakeToggleController.isChecked()).isTrue(); @@ -145,12 +137,6 @@ public class SliceBroadcastReceiverTest { assertThat(fakeToggleController.isChecked()).isFalse(); - final Uri expectedUri = new Uri.Builder() - .scheme(ContentResolver.SCHEME_CONTENT) - .authority(SettingsSliceProvider.SLICE_AUTHORITY) - .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(key) - .build(); verify(resolver).notifyChange(expectedUri, null); } @@ -163,16 +149,11 @@ public class SliceBroadcastReceiverTest { final String key = "key"; mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); - insertSpecialCase(key); + insertSpecialCase(AsyncToggleController.class.getName(), key); - FakeToggleController fakeToggleController = new FakeToggleController(mContext, key); - fakeToggleController.setChecked(true); - // Set the toggle setting update asynchronously. - fakeToggleController.setAsyncUpdate(true); - Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED); - intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); - - assertThat(fakeToggleController.isChecked()).isTrue(); + final Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED) + .putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key) + .setData(buildUri(key)); // Toggle setting mReceiver.onReceive(mContext, intent); @@ -183,26 +164,22 @@ public class SliceBroadcastReceiverTest { @Test public void onReceive_sliderChanged() { final String key = "key"; - final Uri uri = new Uri.Builder() - .scheme(ContentResolver.SCHEME_CONTENT) - .authority(SettingsSliceProvider.SLICE_AUTHORITY) - .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(key) - .build(); + final Uri uri = buildUri(key); final ContentResolver resolver = mock(ContentResolver.class); doReturn(resolver).when(mContext).getContentResolver(); final int position = FakeSliderController.MAX_VALUE - 1; final int oldPosition = FakeSliderController.MAX_VALUE; mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); - insertSpecialCase(FakeSliderController.class, key); + insertSpecialCase(FakeSliderController.class.getName(), key); // Set slider setting FakeSliderController fakeSliderController = new FakeSliderController(mContext, key); fakeSliderController.setSliderPosition(oldPosition); // Build action - Intent intent = new Intent(SettingsSliceProvider.ACTION_SLIDER_CHANGED); - intent.putExtra(Slice.EXTRA_RANGE_VALUE, position); - intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); + final Intent intent = new Intent(SettingsSliceProvider.ACTION_SLIDER_CHANGED) + .putExtra(Slice.EXTRA_RANGE_VALUE, position) + .putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key) + .setData(uri); assertThat(fakeSliderController.getSliderPosition()).isEqualTo(oldPosition); @@ -225,12 +202,12 @@ public class SliceBroadcastReceiverTest { final String key = "key"; final int position = 0; mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); - insertSpecialCase(FakeToggleController.class, key); + insertSpecialCase(key); // Build action - Intent intent = new Intent(SettingsSliceProvider.ACTION_SLIDER_CHANGED); - intent.putExtra(Slice.EXTRA_RANGE_VALUE, position); - intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); + final Intent intent = new Intent(SettingsSliceProvider.ACTION_SLIDER_CHANGED) + .putExtra(Slice.EXTRA_RANGE_VALUE, position) + .putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); // Trigger the exception. mReceiver.onReceive(mContext, intent); @@ -272,29 +249,25 @@ public class SliceBroadcastReceiverTest { // Insert Fake Toggle into Database final String key = "key"; + final Uri expectedUri = buildUri(key); mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); - insertSpecialCase(FakeToggleController.class, key); + insertSpecialCase(key); // Turn on toggle setting final FakeToggleController fakeToggleController = new FakeToggleController(mContext, key); fakeToggleController.setChecked(true); // Build Action - final Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED); - intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); + final Intent intent = new Intent(SettingsSliceProvider.ACTION_TOGGLE_CHANGED) + .putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key) + .setData(expectedUri); // Trigger Slice change mReceiver.onReceive(mContext, intent); // Check the value is the same and the Uri has been notified. assertThat(fakeToggleController.isChecked()).isTrue(); - final Uri expectedUri = new Uri.Builder() - .scheme(ContentResolver.SCHEME_CONTENT) - .authority(SettingsSliceProvider.SLICE_AUTHORITY) - .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) - .appendPath(key) - .build(); - verify(resolver).notifyChange(eq(expectedUri), eq(null)); + verify(resolver).notifyChange(expectedUri, null); } @Test @@ -310,47 +283,65 @@ public class SliceBroadcastReceiverTest { // Insert Fake Slider into Database final String key = "key"; + final Uri expectedUri = buildUri(key); + final int position = FakeSliderController.MAX_VALUE - 1; final int oldPosition = FakeSliderController.MAX_VALUE; mSearchFeatureProvider.getSearchIndexableResources().getProviderValues().clear(); - insertSpecialCase(FakeSliderController.class, key); + insertSpecialCase(FakeSliderController.class.getName(), key); // Set slider setting final FakeSliderController fakeSliderController = new FakeSliderController(mContext, key); fakeSliderController.setSliderPosition(oldPosition); // Build action - final Intent intent = new Intent(SettingsSliceProvider.ACTION_SLIDER_CHANGED); - intent.putExtra(Slice.EXTRA_RANGE_VALUE, position); - intent.putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key); + final Intent intent = new Intent(SettingsSliceProvider.ACTION_SLIDER_CHANGED) + .putExtra(Slice.EXTRA_RANGE_VALUE, position) + .putExtra(SettingsSliceProvider.EXTRA_SLICE_KEY, key) + .setData(expectedUri); // Trigger Slice change mReceiver.onReceive(mContext, intent); // Check position is the same and the Uri has been notified. assertThat(fakeSliderController.getSliderPosition()).isEqualTo(oldPosition); - final Uri expectedUri = new Uri.Builder() + verify(resolver).notifyChange(eq(expectedUri), eq(null)); + } + + private void insertSpecialCase(String key) { + insertSpecialCase(SliceTestUtils.FAKE_CONTROLLER_NAME, key); + } + + private void insertSpecialCase(String controllerClass, String key) { + ContentValues values = new ContentValues(); + values.put(SlicesDatabaseHelper.IndexColumns.KEY, key); + values.put(SlicesDatabaseHelper.IndexColumns.TITLE, SliceTestUtils.FAKE_TITLE); + values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, SliceTestUtils.FAKE_SUMMARY); + values.put(SlicesDatabaseHelper.IndexColumns.SCREENTITLE, SliceTestUtils.FAKE_SCREEN_TITLE); + values.put(SlicesDatabaseHelper.IndexColumns.ICON_RESOURCE, SliceTestUtils.FAKE_ICON); + values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, SliceTestUtils.FAKE_FRAGMENT_NAME); + values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, controllerClass); + values.put(SlicesDatabaseHelper.IndexColumns.SLICE_URI, buildUri(key).toSafeString()); + mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values); + } + + private static Uri buildUri(String key) { + return new Uri.Builder() .scheme(ContentResolver.SCHEME_CONTENT) .authority(SettingsSliceProvider.SLICE_AUTHORITY) .appendPath(SettingsSlicesContract.PATH_SETTING_ACTION) .appendPath(key) .build(); - verify(resolver).notifyChange(eq(expectedUri), eq(null)); } - private void insertSpecialCase(String key) { - insertSpecialCase(fakeControllerName, key); - } + public static class AsyncToggleController extends FakeToggleController { + public AsyncToggleController(Context context, String preferenceKey) { + super(context, preferenceKey); + } - private void insertSpecialCase(Class controllerClass, String key) { - ContentValues values = new ContentValues(); - values.put(SlicesDatabaseHelper.IndexColumns.KEY, key); - values.put(SlicesDatabaseHelper.IndexColumns.TITLE, fakeTitle); - values.put(SlicesDatabaseHelper.IndexColumns.SUMMARY, fakeSummary); - values.put(SlicesDatabaseHelper.IndexColumns.SCREENTITLE, fakeScreenTitle); - values.put(SlicesDatabaseHelper.IndexColumns.ICON_RESOURCE, fakeIcon); - values.put(SlicesDatabaseHelper.IndexColumns.FRAGMENT, fakeFragmentClassName); - values.put(SlicesDatabaseHelper.IndexColumns.CONTROLLER, controllerClass.getName()); - mDb.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values); + @Override + public boolean hasAsyncUpdate() { + return true; + } } } \ No newline at end of file diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java index 76d8def5e79..63da4d03a2e 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java +++ b/tests/robotests/src/com/android/settings/slices/SliceDataConverterTest.java @@ -124,7 +124,6 @@ public class SliceDataConverterTest { assertThat(fakeSlice.getFragmentClassName()).isEqualTo(FAKE_FRAGMENT_CLASSNAME); assertThat(fakeSlice.getPreferenceController()).isEqualTo(FAKE_CONTROLLER_NAME); assertThat(fakeSlice.getSliceType()).isEqualTo(SliceData.SliceType.SLIDER); - assertThat(fakeSlice.isPlatformDefined()).isTrue(); // from XML assertThat(fakeSlice.getUnavailableSliceSubtitle()).isEqualTo( "subtitleOfUnavailableSlice"); // from XML } diff --git a/tests/robotests/src/com/android/settings/slices/SliceDataTest.java b/tests/robotests/src/com/android/settings/slices/SliceDataTest.java index 6775e059d74..6074fe384a1 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceDataTest.java +++ b/tests/robotests/src/com/android/settings/slices/SliceDataTest.java @@ -37,7 +37,6 @@ public class SliceDataTest { private final Uri URI = Uri.parse("content://com.android.settings.slices/test"); private final String PREF_CONTROLLER = "com.android.settings.slices.tester"; private final int SLICE_TYPE = SliceData.SliceType.SWITCH; - private final boolean IS_PLATFORM_DEFINED = true; private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice"; @Test @@ -53,7 +52,6 @@ public class SliceDataTest { .setUri(URI) .setPreferenceControllerClassName(PREF_CONTROLLER) .setSliceType(SLICE_TYPE) - .setPlatformDefined(IS_PLATFORM_DEFINED) .setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE); SliceData data = builder.build(); @@ -68,7 +66,6 @@ public class SliceDataTest { assertThat(data.getUri()).isEqualTo(URI); assertThat(data.getPreferenceController()).isEqualTo(PREF_CONTROLLER); assertThat(data.getSliceType()).isEqualTo(SLICE_TYPE); - assertThat(data.isPlatformDefined()).isEqualTo(IS_PLATFORM_DEFINED); assertThat(data.getUnavailableSliceSubtitle()).isEqualTo(UNAVAILABLE_SLICE_SUBTITLE); } diff --git a/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java b/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java index 56db3a9d210..4f5b3a1c8f3 100644 --- a/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java +++ b/tests/robotests/src/com/android/settings/slices/SliceTestUtils.java @@ -73,5 +73,4 @@ class SliceTestUtils { db.replaceOrThrow(SlicesDatabaseHelper.Tables.TABLE_SLICES_INDEX, null, values); db.close(); } - } diff --git a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java index 3b642209f42..fad9c25ee92 100644 --- a/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java +++ b/tests/robotests/src/com/android/settings/slices/SlicesDatabaseHelperTest.java @@ -73,7 +73,6 @@ public class SlicesDatabaseHelperTest { IndexColumns.ICON_RESOURCE, IndexColumns.FRAGMENT, IndexColumns.CONTROLLER, - IndexColumns.PLATFORM_SLICE, IndexColumns.SLICE_TYPE, IndexColumns.UNAVAILABLE_SLICE_SUBTITLE, }; diff --git a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java index 8fd58c45b82..1501e45a697 100644 --- a/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java +++ b/tests/robotests/src/com/android/settings/slices/SlicesIndexerTest.java @@ -52,7 +52,6 @@ public class SlicesIndexerTest { private final int ICON = 1234; // I declare a thumb war private final Uri URI = Uri.parse("content://com.android.settings.slices/test"); private final String PREF_CONTROLLER = "com.android.settings.slices.tester"; - private final boolean PLATFORM_DEFINED = true; private final int SLICE_TYPE = SliceData.SliceType.SLIDER; private final String UNAVAILABLE_SLICE_SUBTITLE = "subtitleOfUnavailableSlice"; @@ -136,9 +135,6 @@ public class SlicesIndexerTest { assertThat( cursor.getString(cursor.getColumnIndex(IndexColumns.CONTROLLER))) .isEqualTo(PREF_CONTROLLER); - assertThat(cursor.getInt( - cursor.getColumnIndex(IndexColumns.PLATFORM_SLICE))) - .isEqualTo(1 /* true */); assertThat(cursor.getInt(cursor.getColumnIndex(IndexColumns.SLICE_TYPE))) .isEqualTo(SLICE_TYPE); assertThat(cursor.getString( @@ -176,7 +172,6 @@ public class SlicesIndexerTest { .setIcon(ICON) .setUri(URI) .setPreferenceControllerClassName(PREF_CONTROLLER) - .setPlatformDefined(PLATFORM_DEFINED) .setSliceType(SLICE_TYPE) .setUnavailableSliceSubtitle(UNAVAILABLE_SLICE_SUBTITLE); diff --git a/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java b/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java index e7854874c54..8bceb13669b 100644 --- a/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java +++ b/tests/robotests/src/com/android/settings/testutils/FakeToggleController.java @@ -49,7 +49,7 @@ public class FakeToggleController extends TogglePreferenceController { @Override public boolean isChecked() { return Settings.System.getInt(mContext.getContentResolver(), - SETTING_KEY, OFF) == ON; + SETTING_KEY, OFF) == ON; } @Override @@ -103,7 +103,7 @@ public class FakeToggleController extends TogglePreferenceController { } @Override - public void close() throws IOException { + public void close() { } } }