Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5734b17b authored by Willie Koomson's avatar Willie Koomson Committed by Android (Google) Code Review
Browse files

Merge "Delete generated preview file if corrupted" into main

parents 651a6713 380d8d52
Loading
Loading
Loading
Loading
+12 −8
Original line number Original line Diff line number Diff line
@@ -4673,12 +4673,6 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
                        keep.add(providerId);
                        keep.add(providerId);
                        // Use the new AppWidgetProviderInfo.
                        // Use the new AppWidgetProviderInfo.
                        provider.setPartialInfoLocked(info);
                        provider.setPartialInfoLocked(info);
                        // Clear old previews
                        if (remoteViewsProto()) {
                            clearGeneratedPreviewsAsync(provider);
                        } else {
                            provider.clearGeneratedPreviewsLocked();
                        }
                        // If it's enabled
                        // If it's enabled
                        final int M = provider.widgets.size();
                        final int M = provider.widgets.size();
                        if (M > 0) {
                        if (M > 0) {
@@ -5104,6 +5098,10 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
        AndroidFuture<RemoteViews> result = new AndroidFuture<>();
        AndroidFuture<RemoteViews> result = new AndroidFuture<>();
        mSavePreviewsHandler.post(() -> {
        mSavePreviewsHandler.post(() -> {
            SparseArray<RemoteViews> previews = loadGeneratedPreviews(provider);
            SparseArray<RemoteViews> previews = loadGeneratedPreviews(provider);
            if (previews.size() == 0 && provider.info.generatedPreviewCategories != 0) {
                // Failed to read previews from file, clear the file and update providers.
                saveGeneratedPreviews(provider, previews, /* notify= */ true);
            }
            for (int i = 0; i < previews.size(); i++) {
            for (int i = 0; i < previews.size(); i++) {
                if ((widgetCategory & previews.keyAt(i)) != 0) {
                if ((widgetCategory & previews.keyAt(i)) != 0) {
                    result.complete(previews.valueAt(i));
                    result.complete(previews.valueAt(i));
@@ -5222,8 +5220,14 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
                continue;
                continue;
            }
            }
            ProtoInputStream input = new ProtoInputStream(previewsFile.readFully());
            ProtoInputStream input = new ProtoInputStream(previewsFile.readFully());
            try {
                provider.info.generatedPreviewCategories = readGeneratedPreviewCategoriesFromProto(
                provider.info.generatedPreviewCategories = readGeneratedPreviewCategoriesFromProto(
                        input);
                        input);
            } catch (IOException e) {
                Slog.e(TAG, "Failed to read generated previews from file for " + provider, e);
                previewsFile.delete();
                provider.info.generatedPreviewCategories = 0;
            }
            if (DEBUG) {
            if (DEBUG) {
                Slog.i(TAG, TextUtils.formatSimple(
                Slog.i(TAG, TextUtils.formatSimple(
                        "loadGeneratedPreviewCategoriesLocked %d %s categories %d", profileId,
                        "loadGeneratedPreviewCategoriesLocked %d %s categories %d", profileId,