Make sure a pinned slice with given uri exists before calling unpin.

Bug: 110411972
Change-Id: I7800e917d3c376d9e7ee54648c7771896fee2a0d
Test: Manual
This commit is contained in:
Pinyao Ting
2019-10-04 10:23:31 -07:00
parent 69657278ed
commit 115ed1bce5

View File

@@ -180,8 +180,13 @@ public class SliceManagerService extends ISliceManager.Stub {
verifyCaller(pkg);
enforceAccess(pkg, uri);
uri = maybeAddUserId(uri, Binder.getCallingUserHandle().getIdentifier());
if (getPinnedSlice(uri).unpin(pkg, token)) {
removePinnedSlice(uri);
try {
PinnedSliceState slice = getPinnedSlice(uri);
if (slice != null && slice.unpin(pkg, token)) {
removePinnedSlice(uri);
}
} catch (IllegalStateException exception) {
Slog.w(TAG, exception.getMessage());
}
}