Merge "Remove only selected messages for vold reset" into rvc-dev am: df13a6364b

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/11712800

Change-Id: I9768c1072c1aa0a4b96457e989a1e6e866e85f7d
This commit is contained in:
Keun-young Park
2020-06-18 14:49:07 +00:00
committed by Automerger Merge Worker
2 changed files with 8 additions and 4 deletions

View File

@@ -1085,7 +1085,12 @@ class StorageManagerService extends IStorageManager.Stub
final List<UserInfo> users = mContext.getSystemService(UserManager.class).getUsers();
if (mIsFuseEnabled) {
mStorageSessionController.onReset(mVold, mHandler);
mStorageSessionController.onReset(mVold, () -> {
mHandler.removeMessages(H_RESET);
mHandler.removeMessages(H_VOLUME_BROADCAST);
mHandler.removeMessages(H_VOLUME_MOUNT);
mHandler.removeMessages(H_VOLUME_UNMOUNT);
});
} else {
killMediaProvider(users);
}

View File

@@ -27,7 +27,6 @@ import android.content.pm.PackageManager;
import android.content.pm.ProviderInfo;
import android.content.pm.ResolveInfo;
import android.content.pm.ServiceInfo;
import android.os.Handler;
import android.os.IVold;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
@@ -238,7 +237,7 @@ public final class StorageSessionController {
*
* Does nothing if {@link #shouldHandle} is {@code false}
**/
public void onReset(IVold vold, Handler handler) {
public void onReset(IVold vold, Runnable resetHandlerRunnable) {
if (!shouldHandle(null)) {
return;
}
@@ -280,7 +279,7 @@ public final class StorageSessionController {
connection.close();
}
handler.removeCallbacksAndMessages(null);
resetHandlerRunnable.run();
synchronized (mLock) {
mConnections.clear();
mIsResetting = false;