Merge "Abandon in-flight app-search session when user stops" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
aa029a2526
@@ -2407,6 +2407,8 @@ class ShortcutPackage extends ShortcutPackageItem {
|
||||
mAppSearchSession = session;
|
||||
return cb.apply(mAppSearchSession);
|
||||
} catch (Exception e) {
|
||||
Slog.e(TAG, "Failed to initiate app search for shortcut package "
|
||||
+ getPackageName() + " user " + mShortcutUser.getUserId(), e);
|
||||
return AndroidFuture.completedFuture(null);
|
||||
} finally {
|
||||
Binder.restoreCallingIdentity(callingIdentity);
|
||||
|
||||
@@ -342,7 +342,7 @@ public class ShortcutService extends IShortcutService.Stub {
|
||||
|
||||
private final IPackageManager mIPackageManager;
|
||||
private final PackageManagerInternal mPackageManagerInternal;
|
||||
private final UserManagerInternal mUserManagerInternal;
|
||||
final UserManagerInternal mUserManagerInternal;
|
||||
private final UsageStatsManagerInternal mUsageStatsManagerInternal;
|
||||
private final ActivityManagerInternal mActivityManagerInternal;
|
||||
private final IUriGrantsManager mUriGrantsManager;
|
||||
|
||||
@@ -722,6 +722,12 @@ class ShortcutUser {
|
||||
future.completeExceptionally(new RuntimeException("app search manager is null"));
|
||||
return future;
|
||||
}
|
||||
if (!mService.mUserManagerInternal.isUserUnlockingOrUnlocked(getUserId())) {
|
||||
// In rare cases the user might be stopped immediate after it started, in these cases
|
||||
// any on-going session will need to be abandoned.
|
||||
future.completeExceptionally(new RuntimeException("User " + getUserId() + " is "));
|
||||
return future;
|
||||
}
|
||||
final long callingIdentity = Binder.clearCallingIdentity();
|
||||
try {
|
||||
mAppSearchManager.createSearchSession(searchContext, mExecutor, result -> {
|
||||
|
||||
Reference in New Issue
Block a user