Loading services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +12 −8 Original line number Original line Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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)); Loading Loading @@ -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, Loading Loading
services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java +12 −8 Original line number Original line Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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)); Loading Loading @@ -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, Loading