Remove intent-filters from SettingsSliceProvider
And remove unused methods from SliceDeepLinkSpringBoard.
This is part 1 of b/110156445
Bug: 110156445
Test: atest
Change-Id: Iab36a97332fd847ed911a9e34b505fd4a64522d3
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 90aa55f..32a21b5 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -3021,16 +3021,7 @@
<provider android:name=".slices.SettingsSliceProvider"
android:authorities="com.android.settings.slices;android.settings.slices"
android:exported="true"
- android:grantUriPermissions="true">
- <intent-filter>
- <action android:name="android.intent.action.VIEW" />
- <category android:name="android.intent.category.DEFAULT" />
- <category android:name="android.intent.category.BROWSABLE" />
- <category android:name="android.app.slice.category.SLICE" />
- <data android:scheme="settings"
- android:host="com.android.settings.slices" />
- </intent-filter>
- </provider>
+ android:grantUriPermissions="true" />
<receiver
android:name=".slices.SliceBroadcastReceiver"
diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java
index 80b7133..24c6701 100644
--- a/src/com/android/settings/slices/SettingsSliceProvider.java
+++ b/src/com/android/settings/slices/SettingsSliceProvider.java
@@ -21,7 +21,6 @@
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;
@@ -46,7 +45,6 @@
import com.android.settingslib.SliceBroadcastRelay;
import com.android.settingslib.utils.ThreadUtils;
-import java.net.URISyntaxException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
@@ -150,18 +148,6 @@
}
@Override
- public Uri onMapIntentToUri(Intent intent) {
- try {
- return getContext().getSystemService(SliceManager.class).mapIntentToUri(
- SliceDeepLinkSpringBoard.parse(
- intent.getData(), getContext().getPackageName()));
- } catch (URISyntaxException e) {
- Log.e(TAG, "Uri syntax error, can't map intent to uri.", e);
- return null;
- }
- }
-
- @Override
public void onSlicePinned(Uri sliceUri) {
if (mCustomSliceManager.isValidUri(sliceUri)) {
final CustomSliceable sliceable = mCustomSliceManager.getSliceableFromUri(sliceUri);
diff --git a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
index d633b7a..8d7f44f 100644
--- a/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
+++ b/src/com/android/settings/slices/SliceDeepLinkSpringBoard.java
@@ -21,8 +21,6 @@
import android.provider.Settings;
import android.util.Log;
-import androidx.annotation.Keep;
-
import com.android.settings.bluetooth.BluetoothSliceBuilder;
import com.android.settings.notification.ZenModeSliceBuilder;
import com.android.settings.overlay.FeatureFactory;
@@ -89,14 +87,6 @@
}
}
- @Keep
- public static Uri createDeepLink(String s) {
- return new Uri.Builder().scheme(SETTINGS)
- .authority(SettingsSliceProvider.SLICE_AUTHORITY)
- .appendQueryParameter(INTENT, s)
- .build();
- }
-
public static Intent parse(Uri uri, String pkg) throws URISyntaxException {
Intent intent = Intent.parseUri(uri.getQueryParameter(INTENT),
Intent.URI_ANDROID_APP_SCHEME);
diff --git a/tests/unit/src/com/android/settings/slices/SliceDeepLinkSpringBoardTest.java b/tests/unit/src/com/android/settings/slices/SliceDeepLinkSpringBoardTest.java
deleted file mode 100644
index 0c5f501..0000000
--- a/tests/unit/src/com/android/settings/slices/SliceDeepLinkSpringBoardTest.java
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.slices;
-
-import static com.android.settings.slices.SliceDeepLinkSpringBoard.createDeepLink;
-
-import android.content.Context;
-import android.content.Intent;
-import android.net.Uri;
-import android.platform.test.annotations.Presubmit;
-
-import androidx.test.InstrumentationRegistry;
-import androidx.test.filters.MediumTest;
-import androidx.test.runner.AndroidJUnit4;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-@RunWith(AndroidJUnit4.class)
-@MediumTest
-public class SliceDeepLinkSpringBoardTest {
- private Context mContext;
-
- @Before
- public void setUp() {
- mContext = InstrumentationRegistry.getTargetContext();
- }
-
- @Test
- @Presubmit
- public void launchesDeepLinkIntent_shouldNotCrash() {
- final Intent deepLinkIntent = getSpringboardIntent(
- "content://com.android.settings.slices/action/test_slice");
-
- mContext.startActivity(deepLinkIntent);
- }
-
- @Test
- @Presubmit
- public void launchesDeepLinkIntent_wifiSlice_shouldNotCrash() {
- final Intent deepLinkIntent = getSpringboardIntent(
- CustomSliceRegistry.WIFI_SLICE_URI.toString());
-
- mContext.startActivity(deepLinkIntent);
- }
-
- @Test
- @Presubmit
- public void launchesDeepLinkIntent_bluetoothSlice_shouldNotCrash() {
- final Intent deepLinkIntent = getSpringboardIntent(
- CustomSliceRegistry.BLUETOOTH_URI.toString());
-
- mContext.startActivity(deepLinkIntent);
- }
-
- @Test
- @Presubmit
- public void launchesDeepLinkIntent_dndSlice_shouldNotCrash() {
- final Intent deepLinkIntent = getSpringboardIntent(
- CustomSliceRegistry.ZEN_MODE_SLICE_URI.toString());
-
- mContext.startActivity(deepLinkIntent);
- }
-
- @Test
- @Presubmit
- public void launchesDeepLinkIntent_locationSlice_shouldNotCrash() {
- final Intent deepLinkIntent = getSpringboardIntent(
- CustomSliceRegistry.LOCATION_SLICE_URI.toString());
-
- mContext.startActivity(deepLinkIntent);
- }
-
- private Intent getSpringboardIntent(String uriString) {
- final Uri uri = createDeepLink(new Intent(SliceDeepLinkSpringBoard.ACTION_VIEW_SLICE)
- .setPackage(mContext.getPackageName())
- .putExtra(SliceDeepLinkSpringBoard.EXTRA_SLICE, uriString)
- .toUri(Intent.URI_ANDROID_APP_SCHEME));
-
- return new Intent(Intent.ACTION_VIEW)
- .setData(uri)
- .setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
- }
-}