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

Commit fdac3ed8 authored by Kenny Guy's avatar Kenny Guy Committed by android-build-merger
Browse files

Merge "Don\'t clear widget providers from stopped profiles." into nyc-dev

am: 153c30b7

* commit '153c30b7':
  Don't clear widget providers from stopped profiles.
parents 71281b53 153c30b7
Loading
Loading
Loading
Loading
+2 −16
Original line number Diff line number Diff line
@@ -3014,7 +3014,6 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku

    private void onUserStopped(int userId) {
        synchronized (mLock) {
            boolean providersChanged = false;
            boolean crossProfileWidgetsChanged = false;

            // Remove widgets that have both host and provider in the user.
@@ -3050,16 +3049,8 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
                }
            }

            // Remove the providers and notify hosts in other profiles.
            final int providerCount = mProviders.size();
            for (int i = providerCount - 1; i >= 0; i--) {
                Provider provider = mProviders.get(i);
                if (provider.getUserId() == userId) {
                    crossProfileWidgetsChanged |= !provider.widgets.isEmpty();
                    providersChanged = true;
                    deleteProviderLocked(provider);
                }
            }
            // Leave the providers present as hosts will show the widgets
            // masked while the user is stopped.

            // Remove grants for this user.
            final int grantCount = mPackagesWithBindWidgetPermission.size();
@@ -3082,11 +3073,6 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
                mNextAppWidgetIds.removeAt(nextIdIndex);
            }

            // Announce removed provider changes to all hosts in the group.
            if (providersChanged) {
                scheduleNotifyGroupHostsForProvidersChangedLocked(userId);
            }

            // Save state if removing a profile changed the group state.
            // Nothing will be saved if the group parent was removed.
            if (crossProfileWidgetsChanged) {