Merge "Gracefully handle system error from AppSearch" into tm-dev

This commit is contained in:
Pinyao Ting
2022-03-21 17:32:32 +00:00
committed by Android (Google) Code Review

View File

@@ -19,9 +19,12 @@ import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.UserIdInt; import android.annotation.UserIdInt;
import android.app.Person; import android.app.Person;
import android.app.appsearch.AppSearchBatchResult;
import android.app.appsearch.AppSearchManager; import android.app.appsearch.AppSearchManager;
import android.app.appsearch.AppSearchResult; import android.app.appsearch.AppSearchResult;
import android.app.appsearch.AppSearchSession; import android.app.appsearch.AppSearchSession;
import android.app.appsearch.BatchResultCallback;
import android.app.appsearch.GenericDocument;
import android.app.appsearch.GetByDocumentIdRequest; import android.app.appsearch.GetByDocumentIdRequest;
import android.app.appsearch.PackageIdentifier; import android.app.appsearch.PackageIdentifier;
import android.app.appsearch.PutDocumentsRequest; import android.app.appsearch.PutDocumentsRequest;
@@ -2384,14 +2387,24 @@ class ShortcutPackage extends ShortcutPackageItem {
} }
runAsSystem(() -> fromAppSearch().thenAccept(session -> { runAsSystem(() -> fromAppSearch().thenAccept(session -> {
session.getByDocumentId(new GetByDocumentIdRequest.Builder(getPackageName()) session.getByDocumentId(new GetByDocumentIdRequest.Builder(getPackageName())
.addIds(ids).build(), mShortcutUser.mExecutor, result -> { .addIds(ids).build(), mShortcutUser.mExecutor,
final List<ShortcutInfo> ret = result.getSuccesses().values() new BatchResultCallback<String, GenericDocument>() {
.stream().map(doc -> @Override
ShortcutInfo.createFromGenericDocument( public void onResult(
mShortcutUser.getUserId(), doc)) @NonNull AppSearchBatchResult<String, GenericDocument> result) {
.collect(Collectors.toList()); final List<ShortcutInfo> ret = result.getSuccesses().values()
cb.accept(ret); .stream().map(doc ->
}); ShortcutInfo.createFromGenericDocument(
mShortcutUser.getUserId(), doc))
.collect(Collectors.toList());
cb.accept(ret);
}
@Override
public void onSystemError(
@Nullable Throwable throwable) {
Slog.d(TAG, "Error retrieving shortcuts", throwable);
}
});
})); }));
} }
@@ -2407,15 +2420,24 @@ class ShortcutPackage extends ShortcutPackageItem {
runAsSystem(() -> fromAppSearch().thenAccept(session -> runAsSystem(() -> fromAppSearch().thenAccept(session ->
session.remove( session.remove(
new RemoveByDocumentIdRequest.Builder(getPackageName()).addIds(ids).build(), new RemoveByDocumentIdRequest.Builder(getPackageName()).addIds(ids).build(),
mShortcutUser.mExecutor, result -> { mShortcutUser.mExecutor,
if (!result.isSuccess()) { new BatchResultCallback<String, Void>() {
final Map<String, AppSearchResult<Void>> failures = @Override
result.getFailures(); public void onResult(
for (String key : failures.keySet()) { @NonNull AppSearchBatchResult<String, Void> result) {
Slog.e(TAG, "Failed deleting " + key + ", error message:" if (!result.isSuccess()) {
+ failures.get(key).getErrorMessage()); final Map<String, AppSearchResult<Void>> failures =
result.getFailures();
for (String key : failures.keySet()) {
Slog.e(TAG, "Failed deleting " + key + ", error message:"
+ failures.get(key).getErrorMessage());
}
} }
} }
@Override
public void onSystemError(@Nullable Throwable throwable) {
Slog.e(TAG, "Error removing shortcuts", throwable);
}
}))); })));
} }
@@ -2452,12 +2474,20 @@ class ShortcutPackage extends ShortcutPackageItem {
AppSearchShortcutInfo.toGenericDocuments(shortcuts)) AppSearchShortcutInfo.toGenericDocuments(shortcuts))
.build(), .build(),
mShortcutUser.mExecutor, mShortcutUser.mExecutor,
result -> { new BatchResultCallback<String, Void>() {
if (!result.isSuccess()) { @Override
for (AppSearchResult<Void> k : result.getFailures().values()) { public void onResult(
Slog.e(TAG, k.getErrorMessage()); @NonNull AppSearchBatchResult<String, Void> result) {
if (!result.isSuccess()) {
for (AppSearchResult<Void> k : result.getFailures().values()) {
Slog.e(TAG, k.getErrorMessage());
}
} }
} }
@Override
public void onSystemError(@Nullable Throwable throwable) {
Slog.d(TAG, "Error persisting shortcuts", throwable);
}
}); });
})); }));
} }