diff --git a/src/com/android/settings/slices/SettingsSliceProvider.java b/src/com/android/settings/slices/SettingsSliceProvider.java index 3187d109994..3bdcb13141f 100644 --- a/src/com/android/settings/slices/SettingsSliceProvider.java +++ b/src/com/android/settings/slices/SettingsSliceProvider.java @@ -28,12 +28,12 @@ import android.provider.Settings; import android.provider.SettingsSlicesContract; import android.text.TextUtils; import android.util.ArrayMap; -import android.util.ArraySet; import android.util.KeyValueListParser; import android.util.Log; import android.util.Pair; import androidx.annotation.VisibleForTesting; +import androidx.collection.ArraySet; import androidx.slice.Slice; import androidx.slice.SliceProvider; @@ -53,7 +53,6 @@ import java.util.List; import java.util.Map; import java.util.Set; import java.util.WeakHashMap; -import java.util.concurrent.ConcurrentHashMap; /** * A {@link SliceProvider} for Settings to enabled inline results in system apps. @@ -123,9 +122,6 @@ public class SettingsSliceProvider extends SliceProvider { @VisibleForTesting Map mSliceWeakDataCache; - @VisibleForTesting - Map mSliceDataCache; - final Map mPinnedWorkers = new ArrayMap<>(); public SettingsSliceProvider() { @@ -135,7 +131,6 @@ public class SettingsSliceProvider extends SliceProvider { @Override public boolean onCreateSliceProvider() { mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(getContext()); - mSliceDataCache = new ConcurrentHashMap<>(); mSliceWeakDataCache = new WeakHashMap<>(); return true; } @@ -170,7 +165,6 @@ public class SettingsSliceProvider extends SliceProvider { public void onSliceUnpinned(Uri sliceUri) { SliceBroadcastRelay.unregisterReceivers(getContext(), sliceUri); ThreadUtils.postOnMainThread(() -> stopBackgroundWorker(sliceUri)); - mSliceDataCache.remove(sliceUri); } @Override @@ -226,7 +220,7 @@ public class SettingsSliceProvider extends SliceProvider { } // Remove the SliceData from the cache after it has been used to prevent a memory-leak. - if (!mSliceDataCache.containsKey(sliceUri)) { + if (!getPinnedSlices().contains(sliceUri)) { mSliceWeakDataCache.remove(sliceUri); } return SliceBuilderUtils.buildSlice(getContext(), cachedSliceData); @@ -396,11 +390,6 @@ public class SettingsSliceProvider extends SliceProvider { ThreadUtils.postOnMainThread(() -> startBackgroundWorker(controller, uri)); - final List pinnedSlices = getContext().getSystemService( - SliceManager.class).getPinnedSlices(); - if (pinnedSlices.contains(uri)) { - mSliceDataCache.put(uri, sliceData); - } mSliceWeakDataCache.put(uri, sliceData); getContext().getContentResolver().notifyChange(uri, null /* content observer */); diff --git a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java index 23025b2ebc6..005ffbebc08 100644 --- a/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java +++ b/tests/robotests/src/com/android/settings/slices/SettingsSliceProviderTest.java @@ -133,7 +133,6 @@ public class SettingsSliceProviderTest { mProvider = spy(new SettingsSliceProvider()); ShadowStrictMode.reset(); mProvider.mSliceWeakDataCache = new HashMap<>(); - mProvider.mSliceDataCache = new HashMap<>(); mProvider.mSlicesDatabaseAccessor = new SlicesDatabaseAccessor(mContext); when(mProvider.getContext()).thenReturn(mContext); @@ -197,30 +196,6 @@ public class SettingsSliceProviderTest { .isEqualTo(FakeToggleController.TestWorker.class); } - @Test - public void testLoadSlice_doesNotCacheWithoutPin() { - insertSpecialCase(KEY); - final Uri uri = SliceBuilderUtils.getUri(INTENT_PATH, false); - - mProvider.loadSlice(uri); - SliceData data = mProvider.mSliceDataCache.get(uri); - - assertThat(data).isNull(); - } - - @Test - public void testLoadSlice_cachesWithPin() { - insertSpecialCase(KEY); - final Uri uri = SliceBuilderUtils.getUri(INTENT_PATH, false); - when(mManager.getPinnedSlices()).thenReturn(Arrays.asList(uri)); - - mProvider.loadSlice(uri); - SliceData data = mProvider.mSliceDataCache.get(uri); - - assertThat(data.getKey()).isEqualTo(KEY); - assertThat(data.getTitle()).isEqualTo(TITLE); - } - @Test public void testLoadSlice_cachedEntryRemovedOnBuild() { SliceData data = getDummyData(); @@ -276,18 +251,6 @@ public class SettingsSliceProviderTest { assertThat(slice).isNull(); } - @Test - public void testLoadSlice_cachedEntryRemovedOnUnpin() { - SliceData data = getDummyData(); - mProvider.mSliceDataCache.put(data.getUri(), data); - mProvider.onSliceUnpinned(data.getUri()); - insertSpecialCase(data.getKey()); - - SliceData cachedData = mProvider.mSliceWeakDataCache.get(data.getUri()); - - assertThat(cachedData).isNull(); - } - @Test public void getDescendantUris_fullActionUri_returnsSelf() { final Uri uri = SliceBuilderUtils.getUri(