summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-05-16 12:38:18 -0700
committerAndroid Git Automerger <android-git-automerger@android.com>2011-05-16 12:38:18 -0700
commite23639e0386735df50ad208078f638c38f662d42 (patch)
tree16afa210d62d5e75457bb9b7efc41ba7940e77ab /media
parentfe5b5d3700a5c67b5e8fcee324efe0fa24c4622c (diff)
parent15afd076d6070374cbb4f9dcbe28dda67caa0718 (diff)
downloadframeworks_base-e23639e0386735df50ad208078f638c38f662d42.zip
frameworks_base-e23639e0386735df50ad208078f638c38f662d42.tar.gz
frameworks_base-e23639e0386735df50ad208078f638c38f662d42.tar.bz2
am 15afd076: Merge "MTP: Have GetStorageInfo command return correct storage type for removable storage" into honeycomb-mr2
* commit '15afd076d6070374cbb4f9dcbe28dda67caa0718': MTP: Have GetStorageInfo command return correct storage type for removable storage
Diffstat (limited to 'media')
-rw-r--r--media/java/android/mtp/MtpStorage.java13
-rw-r--r--media/jni/android_mtp_MtpServer.cpp12
-rw-r--r--media/mtp/MtpStorage.cpp7
-rw-r--r--media/mtp/MtpStorage.h5
4 files changed, 30 insertions, 7 deletions
diff --git a/media/java/android/mtp/MtpStorage.java b/media/java/android/mtp/MtpStorage.java
index 33146e7..21a18ca 100644
--- a/media/java/android/mtp/MtpStorage.java
+++ b/media/java/android/mtp/MtpStorage.java
@@ -29,12 +29,15 @@ public class MtpStorage {
private final String mPath;
private final String mDescription;
private final long mReserveSpace;
+ private final boolean mRemovable;
- public MtpStorage(int id, String path, String description, long reserveSpace) {
+ public MtpStorage(int id, String path, String description,
+ long reserveSpace, boolean removable) {
mStorageId = id;
mPath = path;
mDescription = description;
mReserveSpace = reserveSpace;
+ mRemovable = removable;
}
/**
@@ -86,4 +89,12 @@ public class MtpStorage {
return mReserveSpace;
}
+ /**
+ * Returns true if the storage is removable.
+ *
+ * @return is removable
+ */
+ public final boolean isRemovable() {
+ return mRemovable;
+ }
}
diff --git a/media/jni/android_mtp_MtpServer.cpp b/media/jni/android_mtp_MtpServer.cpp
index c55189f..4f6bb15 100644
--- a/media/jni/android_mtp_MtpServer.cpp
+++ b/media/jni/android_mtp_MtpServer.cpp
@@ -47,6 +47,7 @@ static jfieldID field_MtpStorage_storageId;
static jfieldID field_MtpStorage_path;
static jfieldID field_MtpStorage_description;
static jfieldID field_MtpStorage_reserveSpace;
+static jfieldID field_MtpStorage_removable;
static Mutex sMutex;
@@ -245,11 +246,13 @@ android_mtp_MtpServer_add_storage(JNIEnv *env, jobject thiz, jobject jstorage)
jstring path = (jstring)env->GetObjectField(jstorage, field_MtpStorage_path);
jstring description = (jstring)env->GetObjectField(jstorage, field_MtpStorage_description);
jlong reserveSpace = env->GetLongField(jstorage, field_MtpStorage_reserveSpace);
+ jboolean removable = env->GetBooleanField(jstorage, field_MtpStorage_removable);
const char *pathStr = env->GetStringUTFChars(path, NULL);
const char *descriptionStr = env->GetStringUTFChars(description, NULL);
- MtpStorage* storage = new MtpStorage(storageID, pathStr, descriptionStr, reserveSpace);
+ MtpStorage* storage = new MtpStorage(storageID, pathStr, descriptionStr,
+ reserveSpace, removable);
thread->addStorage(storage);
env->ReleaseStringUTFChars(path, pathStr);
@@ -318,7 +321,12 @@ int register_android_mtp_MtpServer(JNIEnv *env)
}
field_MtpStorage_reserveSpace = env->GetFieldID(clazz, "mReserveSpace", "J");
if (field_MtpStorage_reserveSpace == NULL) {
- LOGE("Can't find MtpStorage.mStorageId");
+ LOGE("Can't find MtpStorage.mReserveSpace");
+ return -1;
+ }
+ field_MtpStorage_removable = env->GetFieldID(clazz, "mRemovable", "Z");
+ if (field_MtpStorage_removable == NULL) {
+ LOGE("Can't find MtpStorage.mRemovable");
return -1;
}
clazz_MtpStorage = (jclass)env->NewGlobalRef(clazz);
diff --git a/media/mtp/MtpStorage.cpp b/media/mtp/MtpStorage.cpp
index fff0b5f..fef8066 100644
--- a/media/mtp/MtpStorage.cpp
+++ b/media/mtp/MtpStorage.cpp
@@ -33,12 +33,13 @@
namespace android {
MtpStorage::MtpStorage(MtpStorageID id, const char* filePath,
- const char* description, uint64_t reserveSpace)
+ const char* description, uint64_t reserveSpace, bool removable)
: mStorageID(id),
mFilePath(filePath),
mDescription(description),
mMaxCapacity(0),
- mReserveSpace(reserveSpace)
+ mReserveSpace(reserveSpace),
+ mRemovable(removable)
{
LOGV("MtpStorage id: %d path: %s\n", id, filePath);
}
@@ -47,7 +48,7 @@ MtpStorage::~MtpStorage() {
}
int MtpStorage::getType() const {
- return MTP_STORAGE_FIXED_RAM;
+ return (mRemovable ? MTP_STORAGE_REMOVABLE_RAM : MTP_STORAGE_FIXED_RAM);
}
int MtpStorage::getFileSystemType() const {
diff --git a/media/mtp/MtpStorage.h b/media/mtp/MtpStorage.h
index d6ad25f..3e4f40d 100644
--- a/media/mtp/MtpStorage.h
+++ b/media/mtp/MtpStorage.h
@@ -33,10 +33,12 @@ private:
uint64_t mMaxCapacity;
// amount of free space to leave unallocated
uint64_t mReserveSpace;
+ bool mRemovable;
public:
MtpStorage(MtpStorageID id, const char* filePath,
- const char* description, uint64_t reserveSpace);
+ const char* description, uint64_t reserveSpace,
+ bool removable);
virtual ~MtpStorage();
inline MtpStorageID getStorageID() const { return mStorageID; }
@@ -47,6 +49,7 @@ public:
uint64_t getFreeSpace();
const char* getDescription() const;
inline const char* getPath() const { return (const char *)mFilePath; }
+ inline bool isRemovable() const { return mRemovable; }
};
}; // namespace android