Merge changes Idbee5519,I4114923e,I29373877,If03d0518,If3bd3301
* changes:
gn2bp:
gn2bp: Add source genrule for proto to the srcs
gn2bp: Remove srcs from out/test
gn2bp: Skip generating pb2.py files
gn2bp: Split genrule for proto to source and header
diff --git a/service/src/com/android/server/ConnectivityService.java b/service/src/com/android/server/ConnectivityService.java
index 9b1fa45..d52f411 100755
--- a/service/src/com/android/server/ConnectivityService.java
+++ b/service/src/com/android/server/ConnectivityService.java
@@ -6101,14 +6101,12 @@
}
private void onUserAdded(@NonNull final UserHandle user) {
- mPermissionMonitor.onUserAdded(user);
if (mOemNetworkPreferences.getNetworkPreferences().size() > 0) {
handleSetOemNetworkPreference(mOemNetworkPreferences, null);
}
}
private void onUserRemoved(@NonNull final UserHandle user) {
- mPermissionMonitor.onUserRemoved(user);
// If there was a network preference for this user, remove it.
handleSetProfileNetworkPreference(
List.of(new ProfileNetworkPreferenceList.Preference(user, null, true)),
diff --git a/service/src/com/android/server/connectivity/PermissionMonitor.java b/service/src/com/android/server/connectivity/PermissionMonitor.java
index aeca717..eee7f3a 100755
--- a/service/src/com/android/server/connectivity/PermissionMonitor.java
+++ b/service/src/com/android/server/connectivity/PermissionMonitor.java
@@ -175,6 +175,22 @@
final String[] pkgList =
intent.getStringArrayExtra(Intent.EXTRA_CHANGED_PACKAGE_LIST);
onExternalApplicationsAvailable(pkgList);
+ } else if (Intent.ACTION_USER_ADDED.equals(action)) {
+ final UserHandle user = intent.getParcelableExtra(Intent.EXTRA_USER);
+ // User should be filled for below intents, check the existence.
+ if (user == null) {
+ Log.wtf(TAG, action + " broadcast without EXTRA_USER");
+ return;
+ }
+ onUserAdded(user);
+ } else if (Intent.ACTION_USER_REMOVED.equals(action)) {
+ final UserHandle user = intent.getParcelableExtra(Intent.EXTRA_USER);
+ // User should be filled for below intents, check the existence.
+ if (user == null) {
+ Log.wtf(TAG, action + " broadcast without EXTRA_USER");
+ return;
+ }
+ onUserRemoved(user);
} else {
Log.wtf(TAG, "received unexpected intent: " + action);
}
@@ -408,6 +424,14 @@
mIntentReceiver, externalIntentFilter, null /* broadcastPermission */,
null /* scheduler */);
+ // Listen for user add/remove.
+ final IntentFilter userIntentFilter = new IntentFilter();
+ userIntentFilter.addAction(Intent.ACTION_USER_ADDED);
+ userIntentFilter.addAction(Intent.ACTION_USER_REMOVED);
+ userAllContext.registerReceiver(
+ mIntentReceiver, userIntentFilter, null /* broadcastPermission */,
+ null /* scheduler */);
+
// Register UIDS_ALLOWED_ON_RESTRICTED_NETWORKS setting observer
mDeps.registerContentObserver(
userAllContext,
@@ -547,7 +571,8 @@
*
* @hide
*/
- public synchronized void onUserAdded(@NonNull UserHandle user) {
+ @VisibleForTesting
+ synchronized void onUserAdded(@NonNull UserHandle user) {
mUsers.add(user);
final List<PackageInfo> apps = getInstalledPackagesAsUser(user);
@@ -578,7 +603,8 @@
*
* @hide
*/
- public synchronized void onUserRemoved(@NonNull UserHandle user) {
+ @VisibleForTesting
+ synchronized void onUserRemoved(@NonNull UserHandle user) {
mUsers.remove(user);
// Remove uids network permissions that belongs to the user.