From 1c4e88d0b0a8deede0415183739478b5ebc12bfd Mon Sep 17 00:00:00 2001 From: Mike Lockwood Date: Wed, 12 Jan 2011 12:38:41 -0500 Subject: [PATCH] Media Provider and MTP now use emulated /mnt/sdcard instead of /data/media This rips out some complicated code that was added since gingerbread that is no longer necessary. Change-Id: Iab5ecb7314c06221475ce01ef483f34f17003b06 Signed-off-by: Mike Lockwood --- media/java/android/media/MediaScanner.java | 32 ++-------------------- media/java/android/mtp/MtpDatabase.java | 16 ++--------- 2 files changed, 4 insertions(+), 44 deletions(-) diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java index 20cff84acb335..d5fc1d367843f 100644 --- a/media/java/android/media/MediaScanner.java +++ b/media/java/android/media/MediaScanner.java @@ -292,7 +292,6 @@ public class MediaScanner private boolean mProcessPlaylists, mProcessGenres; private int mMtpObjectHandle; - private final String mMediaStoragePath; private final String mExternalStoragePath; // used when scanning the image database so we know whether we have to prune @@ -365,12 +364,6 @@ public class MediaScanner setDefaultRingtoneFileNames(); - String mediaStoragePath = SystemProperties.get("ro.media.storage"); - if (mediaStoragePath != null && mediaStoragePath.length() > 0) { - mMediaStoragePath = mediaStoragePath; - } else { - mMediaStoragePath = null; - } mExternalStoragePath = Environment.getExternalStorageDirectory().getAbsolutePath(); } @@ -390,13 +383,6 @@ public class MediaScanner return prop != null && prop.equals("true"); } - private final String mediaToExternalPath(String path) { - if (mMediaStoragePath != null && path.startsWith(mMediaStoragePath)) { - path = mExternalStoragePath + path.substring(mMediaStoragePath.length()); - } - return path; - } - private class MyMediaScannerClient implements MediaScannerClient { private String mArtist; @@ -471,9 +457,7 @@ public class MediaScanner } } - // MediaProvider uses external variant of path for _data, so we need to match - // against that path instead. - String key = mediaToExternalPath(path); + String key = path; if (mCaseInsensitivePaths) { key = path.toLowerCase(); } @@ -886,8 +870,6 @@ public class MediaScanner } public void addNoMediaFolder(String path) { - path = mediaToExternalPath(path); - ContentValues values = new ContentValues(); values.put(MediaStore.Images.ImageColumns.DATA, ""); String [] pathSpec = new String[] {path + '%'}; @@ -946,10 +928,6 @@ public class MediaScanner } if (filePath != null) { - // MediaProvider uses external variant of path for _data, so we need to query - // using that path instead. - filePath = mediaToExternalPath(filePath); - // query for only one file where = Files.FileColumns.DATA + "=?"; selectionArgs = new String[] { filePath }; @@ -1007,10 +985,6 @@ public class MediaScanner private boolean inScanDirectory(String path, String[] directories) { for (int i = 0; i < directories.length; i++) { String directory = directories[i]; - if (mExternalStoragePath != null && directory.equals(mMediaStoragePath)) { - // database paths use external storage prefix - directory = mExternalStoragePath; - } if (path.startsWith(directory)) { return true; } @@ -1217,9 +1191,7 @@ public class MediaScanner // build file cache so we can look up tracks in the playlist prescan(null, true); - // MediaProvider uses external variant of path for _data, so we need to match - // against that path instead. - String key = mediaToExternalPath(path); + String key = path; if (mCaseInsensitivePaths) { key = path.toLowerCase(); } diff --git a/media/java/android/mtp/MtpDatabase.java b/media/java/android/mtp/MtpDatabase.java index 43460aee98a2e..ac476ffe5eb3e 100644 --- a/media/java/android/mtp/MtpDatabase.java +++ b/media/java/android/mtp/MtpDatabase.java @@ -50,7 +50,6 @@ public class MtpDatabase { private final String mVolumeName; private final Uri mObjectsUri; private final String mMediaStoragePath; - private final String mExternalStoragePath; // cached property groups for single properties private final HashMap mPropertyGroupsByProperty @@ -113,7 +112,6 @@ public class MtpDatabase { mMediaProvider = context.getContentResolver().acquireProvider("media"); mVolumeName = volumeName; mMediaStoragePath = storagePath; - mExternalStoragePath = Environment.getExternalStorageDirectory().getAbsolutePath(); mObjectsUri = Files.getMtpObjectsUri(volumeName); mMediaScanner = new MediaScanner(context); openDevicePropertiesDatabase(context); @@ -128,16 +126,6 @@ public class MtpDatabase { } } - private String externalToMediaPath(String path) { - // convert external storage path to media path - if (path != null && mMediaStoragePath != null - && mExternalStoragePath != null - && path.startsWith(mExternalStoragePath)) { - path = mMediaStoragePath + path.substring(mExternalStoragePath.length()); - } - return path; - } - private void openDevicePropertiesDatabase(Context context) { mDevicePropDb = context.openOrCreateDatabase("device-properties", Context.MODE_PRIVATE, null); int version = mDevicePropDb.getVersion(); @@ -525,7 +513,7 @@ public class MtpDatabase { try { c = mMediaProvider.query(mObjectsUri, PATH_PROJECTION, ID_WHERE, whereArgs, null); if (c != null && c.moveToNext()) { - path = externalToMediaPath(c.getString(1)); + path = c.getString(1); } } catch (RemoteException e) { Log.e(TAG, "RemoteException in getObjectFilePath", e); @@ -707,7 +695,7 @@ public class MtpDatabase { c = mMediaProvider.query(mObjectsUri, PATH_SIZE_FORMAT_PROJECTION, ID_WHERE, new String[] { Integer.toString(handle) }, null); if (c != null && c.moveToNext()) { - String path = externalToMediaPath(c.getString(1)); + String path = c.getString(1); path.getChars(0, path.length(), outFilePath, 0); outFilePath[path.length()] = 0; outFileLengthFormat[0] = c.getLong(2);