diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java index 3bdcb13141f..9b5fbd86253 100644 --- a/src/com/android/settings/slices/SettingsSliceProvider.java +++ b/src/com/android/settings/slices/SettingsSliceProvider.java @@ -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; @@ -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; @@ -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 descendants) { if (descendants == null) { diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java index 9f121306b8c..96aaf46ef35 100644 --- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java @@ -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; @@ -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);