Loading services/core/java/com/android/server/slice/PinnedSliceState.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -166,6 +166,7 @@ public class PinnedSliceState { ContentProviderClient getClient() { ContentProviderClient getClient() { ContentProviderClient client = ContentProviderClient client = mService.getContext().getContentResolver().acquireContentProviderClient(mUri); mService.getContext().getContentResolver().acquireContentProviderClient(mUri); if (client == null) return null; client.setDetectNotResponding(SLICE_TIMEOUT); client.setDetectNotResponding(SLICE_TIMEOUT); return client; return client; } } Loading @@ -181,6 +182,7 @@ public class PinnedSliceState { } } if (!isPinned()) { if (!isPinned()) { // All the listeners died, remove from pinned state. // All the listeners died, remove from pinned state. mService.unlisten(mUri); mService.removePinnedSlice(mUri); mService.removePinnedSlice(mUri); } } } } Loading Loading @@ -210,6 +212,7 @@ public class PinnedSliceState { } } if (!isPinned()) { if (!isPinned()) { // All the listeners died, remove from pinned state. // All the listeners died, remove from pinned state. mService.unlisten(mUri); mService.removePinnedSlice(mUri); mService.removePinnedSlice(mUri); } } } } Loading @@ -217,6 +220,7 @@ public class PinnedSliceState { private Slice doBind(String overridePkg) { private Slice doBind(String overridePkg) { try (ContentProviderClient client = getClient()) { try (ContentProviderClient client = getClient()) { if (client == null) return null; Bundle extras = new Bundle(); Bundle extras = new Bundle(); extras.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); extras.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); extras.putParcelableArrayList(SliceProvider.EXTRA_SUPPORTED_SPECS, extras.putParcelableArrayList(SliceProvider.EXTRA_SUPPORTED_SPECS, Loading @@ -237,6 +241,7 @@ public class PinnedSliceState { private void handleSendPinned() { private void handleSendPinned() { try (ContentProviderClient client = getClient()) { try (ContentProviderClient client = getClient()) { if (client == null) return; Bundle b = new Bundle(); Bundle b = new Bundle(); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); try { try { Loading @@ -249,6 +254,7 @@ public class PinnedSliceState { private void handleSendUnpinned() { private void handleSendUnpinned() { try (ContentProviderClient client = getClient()) { try (ContentProviderClient client = getClient()) { if (client == null) return; Bundle b = new Bundle(); Bundle b = new Bundle(); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); try { try { Loading services/tests/uiservicestests/src/com/android/server/slice/PinnedSliceStateTest.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -198,6 +198,7 @@ public class PinnedSliceStateTest extends UiServiceTestCase { when(binder.isBinderAlive()).thenReturn(false); when(binder.isBinderAlive()).thenReturn(false); arg.getValue().binderDied(); arg.getValue().binderDied(); verify(mSliceService).unlisten(eq(TEST_URI)); verify(mSliceService).removePinnedSlice(eq(TEST_URI)); verify(mSliceService).removePinnedSlice(eq(TEST_URI)); assertFalse(mPinnedSliceManager.isPinned()); assertFalse(mPinnedSliceManager.isPinned()); } } Loading Loading
services/core/java/com/android/server/slice/PinnedSliceState.java +6 −0 Original line number Original line Diff line number Diff line Loading @@ -166,6 +166,7 @@ public class PinnedSliceState { ContentProviderClient getClient() { ContentProviderClient getClient() { ContentProviderClient client = ContentProviderClient client = mService.getContext().getContentResolver().acquireContentProviderClient(mUri); mService.getContext().getContentResolver().acquireContentProviderClient(mUri); if (client == null) return null; client.setDetectNotResponding(SLICE_TIMEOUT); client.setDetectNotResponding(SLICE_TIMEOUT); return client; return client; } } Loading @@ -181,6 +182,7 @@ public class PinnedSliceState { } } if (!isPinned()) { if (!isPinned()) { // All the listeners died, remove from pinned state. // All the listeners died, remove from pinned state. mService.unlisten(mUri); mService.removePinnedSlice(mUri); mService.removePinnedSlice(mUri); } } } } Loading Loading @@ -210,6 +212,7 @@ public class PinnedSliceState { } } if (!isPinned()) { if (!isPinned()) { // All the listeners died, remove from pinned state. // All the listeners died, remove from pinned state. mService.unlisten(mUri); mService.removePinnedSlice(mUri); mService.removePinnedSlice(mUri); } } } } Loading @@ -217,6 +220,7 @@ public class PinnedSliceState { private Slice doBind(String overridePkg) { private Slice doBind(String overridePkg) { try (ContentProviderClient client = getClient()) { try (ContentProviderClient client = getClient()) { if (client == null) return null; Bundle extras = new Bundle(); Bundle extras = new Bundle(); extras.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); extras.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); extras.putParcelableArrayList(SliceProvider.EXTRA_SUPPORTED_SPECS, extras.putParcelableArrayList(SliceProvider.EXTRA_SUPPORTED_SPECS, Loading @@ -237,6 +241,7 @@ public class PinnedSliceState { private void handleSendPinned() { private void handleSendPinned() { try (ContentProviderClient client = getClient()) { try (ContentProviderClient client = getClient()) { if (client == null) return; Bundle b = new Bundle(); Bundle b = new Bundle(); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); try { try { Loading @@ -249,6 +254,7 @@ public class PinnedSliceState { private void handleSendUnpinned() { private void handleSendUnpinned() { try (ContentProviderClient client = getClient()) { try (ContentProviderClient client = getClient()) { if (client == null) return; Bundle b = new Bundle(); Bundle b = new Bundle(); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); b.putParcelable(SliceProvider.EXTRA_BIND_URI, mUri); try { try { Loading
services/tests/uiservicestests/src/com/android/server/slice/PinnedSliceStateTest.java +1 −0 Original line number Original line Diff line number Diff line Loading @@ -198,6 +198,7 @@ public class PinnedSliceStateTest extends UiServiceTestCase { when(binder.isBinderAlive()).thenReturn(false); when(binder.isBinderAlive()).thenReturn(false); arg.getValue().binderDied(); arg.getValue().binderDied(); verify(mSliceService).unlisten(eq(TEST_URI)); verify(mSliceService).removePinnedSlice(eq(TEST_URI)); verify(mSliceService).removePinnedSlice(eq(TEST_URI)); assertFalse(mPinnedSliceManager.isPinned()); assertFalse(mPinnedSliceManager.isPinned()); } } Loading