summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
Diffstat (limited to 'media')
-rw-r--r--media/java/android/media/MediaScanner.java35
-rw-r--r--media/java/android/mtp/MtpDatabase.java16
2 files changed, 7 insertions, 44 deletions
diff --git a/media/java/android/media/MediaScanner.java b/media/java/android/media/MediaScanner.java
index 20cff84..3708623 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();
}
@@ -800,6 +784,9 @@ public class MediaScanner
} else {
// updated file
result = ContentUris.withAppendedId(tableUri, rowId);
+ // path should never change, and we want to avoid replacing mixed cased paths
+ // with squashed lower case paths
+ values.remove(MediaStore.MediaColumns.DATA);
mMediaProvider.update(result, values, null, null);
}
if (mProcessGenres && mGenre != null) {
@@ -886,8 +873,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 +931,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 +988,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 +1194,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 43460ae..ac476ff 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<Integer, MtpPropertyGroup> 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);