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

Commit b053d468 authored by Matthew Williams's avatar Matthew Williams Committed by Android (Google) Code Review
Browse files

Merge "Revert "Bugfix for accountsUpdated receiver in SyncManager""

parents a26bd2ab e4d4435e
Loading
Loading
Loading
Loading
+11 −19
Original line number Diff line number Diff line
@@ -295,7 +295,7 @@ public class SyncManager {
    private final BroadcastReceiver mAccountsUpdatedReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            updateRunningAccounts(true /* resync all targets */);
            updateRunningAccounts();

            // Kick off sync for everyone, since this was a radical account change
            scheduleSync(null, UserHandle.USER_ALL, SyncOperation.REASON_ACCOUNTS_UPDATED, null,
@@ -344,12 +344,10 @@ public class SyncManager {
        return found;
    }

    private void updateRunningAccounts(boolean resyncAllTargets) {
    public void updateRunningAccounts() {
        if (Log.isLoggable(TAG, Log.VERBOSE)) Log.v(TAG, "sending MESSAGE_ACCOUNTS_UPDATED");
        // Update accounts in handler thread.
        Message m = mSyncHandler.obtainMessage(SyncHandler.MESSAGE_ACCOUNTS_UPDATED);
        m.arg1 = resyncAllTargets ? 1 : 0;
        m.sendToTarget();
        mSyncHandler.sendEmptyMessage(SyncHandler.MESSAGE_ACCOUNTS_UPDATED);
    }

    private void doDatabaseCleanup() {
@@ -1284,7 +1282,7 @@ public class SyncManager {

        mSyncAdapters.invalidateCache(userId);

        updateRunningAccounts(false);
        updateRunningAccounts();

        synchronized (mSyncQueue) {
            mSyncQueue.addPendingOperations(userId);
@@ -1303,7 +1301,7 @@ public class SyncManager {
    }

    private void onUserStopping(int userId) {
        updateRunningAccounts(false);
        updateRunningAccounts();

        cancelActiveSync(
                new SyncStorageEngine.EndPoint(
@@ -1315,7 +1313,7 @@ public class SyncManager {
    }

    private void onUserRemoved(int userId) {
        updateRunningAccounts(false);
        updateRunningAccounts();

        // Clean up the storage engine database
        mSyncStorageEngine.doDatabaseCleanup(new Account[0], userId);
@@ -2287,8 +2285,7 @@ public class SyncManager {
                        if (Log.isLoggable(TAG, Log.VERBOSE)) {
                            Log.v(TAG, "handleSyncHandlerMessage: MESSAGE_ACCOUNTS_UPDATED");
                        }
                        boolean resyncAllTargets = msg.arg1 == 0 ? false : true;
                        updateRunningAccountsH(resyncAllTargets);
                        updateRunningAccountsH();
                        break;

                    case SyncHandler.MESSAGE_CANCEL:
@@ -2872,7 +2869,7 @@ public class SyncManager {
            }
        }

        private void updateRunningAccountsH(boolean resyncAll) {
        private void updateRunningAccountsH() {
            mRunningAccounts = AccountManagerService.getSingleton().getRunningAccounts();

            if (mBootCompleted) {
@@ -2889,15 +2886,10 @@ public class SyncManager {
                            null /* no result since this is a cancel */);
                }
            }

            if (resyncAll) {
                // Kick off sync for everyone, since this was a radical account change
                scheduleSync(null, UserHandle.USER_ALL, SyncOperation.REASON_ACCOUNTS_UPDATED, null,
                        null, 0 /* no delay */, 0/* no delay */, false);
            } else {
            // we must do this since we don't bother scheduling alarms when
            // the accounts are not set yet
            sendCheckAlarmsMessage();
        }
        }

        private boolean isSyncNotUsingNetworkH(ActiveSyncContext activeSyncContext) {
            final long bytesTransferredCurrent =