Merge "Added scheduleWritePackageListLocked" into nyc-dev
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
index b6c269e..2d0cad3 100644
--- a/services/core/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -164,7 +164,6 @@
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.hardware.display.DisplayManager;
-import android.net.INetworkPolicyManager;
import android.net.Uri;
import android.os.Binder;
import android.os.Build;
@@ -1043,6 +1042,7 @@
static final int CHECK_PENDING_VERIFICATION = 16;
static final int START_INTENT_FILTER_VERIFICATIONS = 17;
static final int INTENT_FILTER_VERIFIED = 18;
+ static final int WRITE_PACKAGE_LIST = 19;
static final int WRITE_SETTINGS_DELAY = 10*1000; // 10 seconds
@@ -1665,6 +1665,14 @@
}
Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
} break;
+ case WRITE_PACKAGE_LIST: {
+ Process.setThreadPriority(Process.THREAD_PRIORITY_DEFAULT);
+ synchronized (mPackages) {
+ removeMessages(WRITE_PACKAGE_LIST);
+ mSettings.writePackageListLPr(msg.arg1);
+ }
+ Process.setThreadPriority(Process.THREAD_PRIORITY_BACKGROUND);
+ } break;
case CHECK_PENDING_VERIFICATION: {
final int verificationId = msg.arg1;
final PackageVerificationState state = mPendingVerification.get(verificationId);
@@ -2112,6 +2120,14 @@
}
}
+ void scheduleWritePackageListLocked(int userId) {
+ if (!mHandler.hasMessages(WRITE_PACKAGE_LIST)) {
+ Message msg = mHandler.obtainMessage(WRITE_PACKAGE_LIST);
+ msg.arg1 = userId;
+ mHandler.sendMessageDelayed(msg, WRITE_SETTINGS_DELAY);
+ }
+ }
+
void scheduleWritePackageRestrictionsLocked(UserHandle user) {
final int userId = user == null ? UserHandle.USER_ALL : user.getIdentifier();
scheduleWritePackageRestrictionsLocked(userId);
@@ -20039,13 +20055,15 @@
}
/** Called by UserManagerService */
- void createNewUser(int userHandle) {
+ void createNewUser(int userId) {
synchronized (mInstallLock) {
- mSettings.createNewUserLI(this, mInstaller, userHandle);
+ mSettings.createNewUserLI(this, mInstaller, userId);
}
synchronized (mPackages) {
- applyFactoryDefaultBrowserLPw(userHandle);
- primeDomainVerificationsLPw(userHandle);
+ scheduleWritePackageRestrictionsLocked(userId);
+ scheduleWritePackageListLocked(userId);
+ applyFactoryDefaultBrowserLPw(userId);
+ primeDomainVerificationsLPw(userId);
}
}
diff --git a/services/core/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
index 7fc0e8c..75bd35c 100644
--- a/services/core/java/com/android/server/pm/Settings.java
+++ b/services/core/java/com/android/server/pm/Settings.java
@@ -4014,8 +4014,6 @@
}
synchronized (mPackages) {
applyDefaultPreferredAppsLPw(service, userHandle);
- writePackageRestrictionsLPr(userHandle);
- writePackageListLPr(userHandle);
}
}