summaryrefslogtreecommitdiffstats
path: root/core/java/android/content/SyncManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/java/android/content/SyncManager.java')
-rw-r--r--core/java/android/content/SyncManager.java17
1 files changed, 11 insertions, 6 deletions
diff --git a/core/java/android/content/SyncManager.java b/core/java/android/content/SyncManager.java
index badcb03..e6303b9 100644
--- a/core/java/android/content/SyncManager.java
+++ b/core/java/android/content/SyncManager.java
@@ -53,6 +53,7 @@ import android.os.RemoteException;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserId;
+import android.os.UserManager;
import android.os.WorkSource;
import android.provider.Settings;
import android.text.format.DateUtils;
@@ -206,16 +207,20 @@ public class SyncManager implements OnAccountsUpdateListener {
// Use this as a random offset to seed all periodic syncs
private int mSyncRandomOffsetMillis;
+ private UserManager mUserManager;
+
private static final long SYNC_ALARM_TIMEOUT_MIN = 30 * 1000; // 30 seconds
private static final long SYNC_ALARM_TIMEOUT_MAX = 2 * 60 * 60 * 1000; // two hours
- private List<UserInfo> getAllUsers() {
- try {
- return AppGlobals.getPackageManager().getUsers();
- } catch (RemoteException re) {
- // Local to system process, shouldn't happen
+ private UserManager getUserManager() {
+ if (mUserManager == null) {
+ mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
}
- return null;
+ return mUserManager;
+ }
+
+ private List<UserInfo> getAllUsers() {
+ return getUserManager().getUsers();
}
private boolean containsAccountAndUser(AccountAndUser[] accounts, Account account, int userId) {