Merge "Hook up blocked keys" into pi-dev am: a60ea38f67

am: a8e1a02bfa

Change-Id: Ib79a5fe4721086f400477dc159e14ab5e641e304
This commit is contained in:
Matthew Fritze
2018-05-23 16:06:57 -07:00
committed by android-build-merger
2 changed files with 28 additions and 0 deletions

View File

@@ -177,6 +177,13 @@ public class SettingsSliceProvider extends SliceProvider {
@Override @Override
public Slice onBindSlice(Uri sliceUri) { public Slice onBindSlice(Uri sliceUri) {
final Set<String> blockedKeys = getBlockedKeys();
final String key = sliceUri.getLastPathSegment();
if (blockedKeys.contains(key)) {
Log.e(TAG, "Requested blocked slice with Uri: " + sliceUri);
return null;
}
// If adding a new Slice, do not directly match Slice URIs. // If adding a new Slice, do not directly match Slice URIs.
// Use {@link SlicesDatabaseAccessor}. // Use {@link SlicesDatabaseAccessor}.
if (WifiCallingSliceHelper.WIFI_CALLING_URI.equals(sliceUri)) { if (WifiCallingSliceHelper.WIFI_CALLING_URI.equals(sliceUri)) {

View File

@@ -22,6 +22,7 @@ import static android.content.ContentResolver.SCHEME_CONTENT;
import static com.google.common.truth.Truth.assertThat; import static com.google.common.truth.Truth.assertThat;
import static org.mockito.ArgumentMatchers.eq; import static org.mockito.ArgumentMatchers.eq;
import static org.mockito.Mockito.doReturn;
import static org.mockito.Mockito.mock; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy; import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify; import static org.mockito.Mockito.verify;
@@ -35,6 +36,7 @@ import android.database.sqlite.SQLiteDatabase;
import android.net.Uri; import android.net.Uri;
import android.os.StrictMode; import android.os.StrictMode;
import android.provider.SettingsSlicesContract; import android.provider.SettingsSlicesContract;
import android.util.ArraySet;
import com.android.settings.location.LocationSliceBuilder; import com.android.settings.location.LocationSliceBuilder;
import com.android.settings.wifi.WifiSliceBuilder; import com.android.settings.wifi.WifiSliceBuilder;
@@ -56,6 +58,7 @@ import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Set;
import androidx.slice.Slice; import androidx.slice.Slice;
@@ -192,6 +195,24 @@ public class SettingsSliceProviderTest {
assertThat(newThreadPolicy.toString()).isEqualTo(oldThreadPolicy.toString()); assertThat(newThreadPolicy.toString()).isEqualTo(oldThreadPolicy.toString());
} }
@Test
public void onBindSlice_requestsBlockedSlice_retunsNull() {
final String blockedKey = "blocked_key";
final Set<String> blockedSet = new ArraySet<>();
blockedSet.add(blockedKey);
doReturn(blockedSet).when(mProvider).getBlockedKeys();
final Uri blockedUri = new Uri.Builder()
.scheme(ContentResolver.SCHEME_CONTENT)
.authority(SettingsSliceProvider.SLICE_AUTHORITY)
.appendPath(SettingsSlicesContract.PATH_SETTING_ACTION)
.appendPath(blockedKey)
.build();
final Slice slice = mProvider.onBindSlice(blockedUri);
assertThat(slice).isNull();
}
@Test @Test
public void testLoadSlice_cachedEntryRemovedOnUnpin() { public void testLoadSlice_cachedEntryRemovedOnUnpin() {
SliceData data = getDummyData(); SliceData data = getDummyData();