Merge "fix broadcast receivers overflow for system_server" am: 9ba1a0d576 am: ad9467332c
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/1339995 Change-Id: Icad186f7a973ebf08a7b506561573a963d762d49
This commit is contained in:
committed by
Automerger Merge Worker
commit
ea66dd6ca5
@@ -64,12 +64,13 @@ class MtpNotificationManager {
|
|||||||
|
|
||||||
private final Context mContext;
|
private final Context mContext;
|
||||||
private final OnOpenInAppListener mListener;
|
private final OnOpenInAppListener mListener;
|
||||||
|
private final Receiver mReceiver;
|
||||||
|
|
||||||
MtpNotificationManager(Context context, OnOpenInAppListener listener) {
|
MtpNotificationManager(Context context, OnOpenInAppListener listener) {
|
||||||
mContext = context;
|
mContext = context;
|
||||||
mListener = listener;
|
mListener = listener;
|
||||||
final Receiver receiver = new Receiver();
|
mReceiver = new Receiver();
|
||||||
context.registerReceiver(receiver, new IntentFilter(ACTION_OPEN_IN_APPS));
|
context.registerReceiver(mReceiver, new IntentFilter(ACTION_OPEN_IN_APPS));
|
||||||
}
|
}
|
||||||
|
|
||||||
void showNotification(UsbDevice device) {
|
void showNotification(UsbDevice device) {
|
||||||
@@ -154,4 +155,8 @@ class MtpNotificationManager {
|
|||||||
static interface OnOpenInAppListener {
|
static interface OnOpenInAppListener {
|
||||||
void onOpenInApp(UsbDevice device);
|
void onOpenInApp(UsbDevice device);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void unregister() {
|
||||||
|
mContext.unregisterReceiver(mReceiver);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -260,6 +260,15 @@ class UsbProfileGroupSettingsManager {
|
|||||||
mUsbHandlerManager = usbResolveActivityManager;
|
mUsbHandlerManager = usbResolveActivityManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Unregister all broadcast receivers. Must be called explicitly before
|
||||||
|
* object deletion.
|
||||||
|
*/
|
||||||
|
public void unregisterReceivers() {
|
||||||
|
mPackageMonitor.unregister();
|
||||||
|
mMtpNotificationManager.unregister();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove all defaults and denied packages for a user.
|
* Remove all defaults and denied packages for a user.
|
||||||
*
|
*
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ class UsbSettingsManager {
|
|||||||
if (mSettingsByProfileGroup.indexOfKey(userToRemove.getIdentifier()) >= 0) {
|
if (mSettingsByProfileGroup.indexOfKey(userToRemove.getIdentifier()) >= 0) {
|
||||||
// The user to remove is the parent user of the group. The parent is the last user
|
// The user to remove is the parent user of the group. The parent is the last user
|
||||||
// that gets removed. All state will be removed with the user
|
// that gets removed. All state will be removed with the user
|
||||||
|
mSettingsByProfileGroup.get(userToRemove.getIdentifier()).unregisterReceivers();
|
||||||
mSettingsByProfileGroup.remove(userToRemove.getIdentifier());
|
mSettingsByProfileGroup.remove(userToRemove.getIdentifier());
|
||||||
} else {
|
} else {
|
||||||
// We cannot find the parent user of the user that is removed, hence try to remove
|
// We cannot find the parent user of the user that is removed, hence try to remove
|
||||||
|
|||||||
Reference in New Issue
Block a user