Merge "Gracefully handle system error from AppSearch" into tm-dev
This commit is contained in:
@@ -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);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user