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

Commit e4996bbd authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Defer more Account actions until user starting.

Instead of explicitly scanning OWNER accounts, move to using the
"user starting" call path for consistency.

Bug: 7358086
Change-Id: Ied3289a074aafa48259d828db1d68804912589b3
parent a706e2fd
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -247,7 +247,6 @@ public class AccountManagerService
    }

    public void systemReady() {
        initUser(UserHandle.USER_OWNER);
    }

    private UserManager getUserManager() {
+5 −6
Original line number Diff line number Diff line
@@ -55,6 +55,7 @@ import android.text.format.Time;
import android.util.EventLog;
import android.util.Log;
import android.util.Pair;
import android.util.Slog;

import com.android.internal.R;
import com.android.internal.util.IndentingPrintWriter;
@@ -311,13 +312,10 @@ public class SyncManager {
            if (userId == UserHandle.USER_NULL) return;

            if (Intent.ACTION_USER_REMOVED.equals(action)) {
                Log.i(TAG, "User removed: u" + userId);
                onUserRemoved(userId);
            } else if (Intent.ACTION_USER_STARTING.equals(action)) {
                Log.i(TAG, "User starting: u" + userId);
                onUserStarting(userId);
            } else if (Intent.ACTION_USER_STOPPING.equals(action)) {
                Log.i(TAG, "User stopping: u" + userId);
                onUserStopping(userId);
            }
        }
@@ -338,6 +336,10 @@ public class SyncManager {
        }
    }

    /**
     * Should only be created after {@link ContentService#systemReady()} so that
     * {@link PackageManager} is ready to query.
     */
    public SyncManager(Context context, boolean factoryTest) {
        // Initialize the SyncStorageEngine first, before registering observers
        // and creating threads and so on; it may fail if the disk is full.
@@ -441,9 +443,6 @@ public class SyncManager {
                    UserHandle.ALL,
                    new IntentFilter(AccountManager.LOGIN_ACCOUNTS_CHANGED_ACTION),
                    null, null);

            // do this synchronously to ensure we have the accounts before this call returns
            onUserStarting(UserHandle.USER_OWNER);
        }

        // Pick a random second in a day to seed all periodic syncs
+0 −2
Original line number Diff line number Diff line
@@ -51,8 +51,6 @@ public class SyncQueue {
    public SyncQueue(SyncStorageEngine syncStorageEngine, final SyncAdaptersCache syncAdapters) {
        mSyncStorageEngine = syncStorageEngine;
        mSyncAdapters = syncAdapters;

        addPendingOperations(UserHandle.USER_OWNER);
    }

    public void addPendingOperations(int userId) {