Loading src/com/android/settings/slices/SettingsSliceProvider.java +14 −0 Original line number Diff line number Diff line Loading @@ -18,9 +18,11 @@ package com.android.settings.slices; import static android.Manifest.permission.READ_SEARCH_INDEXABLES; import android.app.PendingIntent; import android.app.slice.SliceManager; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.os.StrictMode; Loading @@ -32,6 +34,8 @@ import android.util.KeyValueListParser; import android.util.Log; import android.util.Pair; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.collection.ArraySet; import androidx.slice.Slice; Loading Loading @@ -295,6 +299,16 @@ public class SettingsSliceProvider extends SliceProvider { return descendants; } @Nullable @Override public PendingIntent onCreatePermissionRequest(@NonNull Uri sliceUri, @NonNull String callingPackage) { final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS); final PendingIntent noOpIntent = PendingIntent.getActivity(getContext(), 0 /* requestCode */, settingsIntent, 0 /* flags */); return noOpIntent; } @VisibleForTesting static void grantWhitelistedPackagePermissions(Context context, List<Uri> descendants) { if (descendants == null) { Loading tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -31,10 +31,12 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; 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; Loading Loading @@ -444,6 +446,16 @@ public class SettingsSliceProviderTest { assertThat(descendants).containsExactlyElementsIn(expectedUris); } @Test public void onCreatePermissionRequest_returnsSettingIntent() { final PendingIntent pendingIntent = mProvider.onCreatePermissionRequest( CustomSliceRegistry.FLASHLIGHT_SLICE_URI, "com.android.whaaaat"); PendingIntent settingsPendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(Settings.ACTION_SETTINGS), 0); assertThat(pendingIntent).isEqualTo(settingsPendingIntent); } @Test public void bindSlice_wifiSlice_returnsWifiSlice() { final Slice wifiSlice = mProvider.onBindSlice(CustomSliceRegistry.WIFI_SLICE_URI); Loading Loading
src/com/android/settings/slices/SettingsSliceProvider.java +14 −0 Original line number Diff line number Diff line Loading @@ -18,9 +18,11 @@ package com.android.settings.slices; import static android.Manifest.permission.READ_SEARCH_INDEXABLES; import android.app.PendingIntent; import android.app.slice.SliceManager; import android.content.ContentResolver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.net.Uri; import android.os.StrictMode; Loading @@ -32,6 +34,8 @@ import android.util.KeyValueListParser; import android.util.Log; import android.util.Pair; import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.VisibleForTesting; import androidx.collection.ArraySet; import androidx.slice.Slice; Loading Loading @@ -295,6 +299,16 @@ public class SettingsSliceProvider extends SliceProvider { return descendants; } @Nullable @Override public PendingIntent onCreatePermissionRequest(@NonNull Uri sliceUri, @NonNull String callingPackage) { final Intent settingsIntent = new Intent(Settings.ACTION_SETTINGS); final PendingIntent noOpIntent = PendingIntent.getActivity(getContext(), 0 /* requestCode */, settingsIntent, 0 /* flags */); return noOpIntent; } @VisibleForTesting static void grantWhitelistedPackagePermissions(Context context, List<Uri> descendants) { if (descendants == null) { Loading
tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +12 −0 Original line number Diff line number Diff line Loading @@ -31,10 +31,12 @@ import static org.mockito.Mockito.spy; import static org.mockito.Mockito.verify; 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; Loading Loading @@ -444,6 +446,16 @@ public class SettingsSliceProviderTest { assertThat(descendants).containsExactlyElementsIn(expectedUris); } @Test public void onCreatePermissionRequest_returnsSettingIntent() { final PendingIntent pendingIntent = mProvider.onCreatePermissionRequest( CustomSliceRegistry.FLASHLIGHT_SLICE_URI, "com.android.whaaaat"); PendingIntent settingsPendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(Settings.ACTION_SETTINGS), 0); assertThat(pendingIntent).isEqualTo(settingsPendingIntent); } @Test public void bindSlice_wifiSlice_returnsWifiSlice() { final Slice wifiSlice = mProvider.onBindSlice(CustomSliceRegistry.WIFI_SLICE_URI); Loading