summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJerry Zhang <zhangjerry@google.com>2018-03-28 17:04:25 -0700
committerJerry Zhang <zhangjerry@google.com>2018-03-28 17:08:44 -0700
commit07c898a6f6f93ef3c0eb2b841cf916b97ac0beed (patch)
tree5b6171e9f53b0a4071ae6f087e50ea773353a26d
parentb394251d90e1a3e6aad36cc16d4255e42e4f98cc (diff)
downloadMediaProvider-07c898a6f6f93ef3c0eb2b841cf916b97ac0beed.tar.gz
Initialize volumes before registering listener
If we get a listener event before volumes are initialized, it could cause a NPE. Bug: 73656609 Test: passes Change-Id: Id5aabc75e2e0ad320cedba1759a346715bdecf1d
-rw-r--r--src/com/android/providers/media/MtpService.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/com/android/providers/media/MtpService.java b/src/com/android/providers/media/MtpService.java
index 072001019..d559b2baa 100644
--- a/src/com/android/providers/media/MtpService.java
+++ b/src/com/android/providers/media/MtpService.java
@@ -114,6 +114,9 @@ public class MtpService extends Service {
@Override
public void onCreate() {
+ mVolumes = StorageManager.getVolumeList(getUserId(), 0);
+ mVolumeMap = new HashMap<>();
+
mStorageManager = this.getSystemService(StorageManager.class);
mStorageManager.registerListener(mStorageEventListener);
}
@@ -130,11 +133,9 @@ public class MtpService extends Service {
@Override
public synchronized int onStartCommand(Intent intent, int flags, int startId) {
- UserHandle user = new UserHandle(ActivityManager.getCurrentUser());
mUnlocked = intent.getBooleanExtra(UsbManager.USB_DATA_UNLOCKED, false);
mPtpMode = intent.getBooleanExtra(UsbManager.USB_FUNCTION_PTP, false);
- mVolumes = StorageManager.getVolumeList(getUserId(), 0);
- mVolumeMap = new HashMap<>();
+
for (StorageVolume v : mVolumes) {
if (v.getState().equals(Environment.MEDIA_MOUNTED)) {
mVolumeMap.put(v.getPath(), v);