summaryrefslogtreecommitdiffstats
path: root/media/jni
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-12-12 12:17:43 -0800
committerMike Lockwood <lockwood@android.com>2010-12-12 12:17:43 -0800
commit7f36b19b6b78c83f1c52edd153d64295ee3840ce (patch)
tree91980be41de5b3de9dd497c9773fb9cbee5f8cec /media/jni
parent2711e494caf9ec665c46258feb36c9654290f6e0 (diff)
downloadframeworks_base-7f36b19b6b78c83f1c52edd153d64295ee3840ce.zip
frameworks_base-7f36b19b6b78c83f1c52edd153d64295ee3840ce.tar.gz
frameworks_base-7f36b19b6b78c83f1c52edd153d64295ee3840ce.tar.bz2
MTP: Add support for reserve storage setting to avoid low storage situations.
Set resource config_mtpReserveSpaceMegabytes to number of megabytes to reserve. If MTP has dedicated storage this value should be zero, but if MTP is sharing storage with the rest of the system, set this to a positive value to ensure that MTP activity does not result in the storage being too close to full. BUG: 3250924 Change-Id: I881c87240da268bad1ea1b99ad03673ab85ffdbf Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/jni')
-rw-r--r--media/jni/android_media_MtpServer.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/media/jni/android_media_MtpServer.cpp b/media/jni/android_media_MtpServer.cpp
index f16cdd9..28a80cb 100644
--- a/media/jni/android_media_MtpServer.cpp
+++ b/media/jni/android_media_MtpServer.cpp
@@ -60,14 +60,17 @@ private:
MtpDatabase* mDatabase;
MtpServer* mServer;
String8 mStoragePath;
+ uint64_t mReserveSpace;
jobject mJavaServer;
int mFd;
public:
- MtpThread(MtpDatabase* database, const char* storagePath, jobject javaServer)
+ MtpThread(MtpDatabase* database, const char* storagePath, uint64_t reserveSpace,
+ jobject javaServer)
: mDatabase(database),
mServer(NULL),
mStoragePath(storagePath),
+ mReserveSpace(reserveSpace),
mJavaServer(javaServer),
mFd(-1)
{
@@ -100,7 +103,7 @@ public:
}
mServer = new MtpServer(mFd, mDatabase, AID_SDCARD_RW, 0664, 0775);
- mServer->addStorage(mStoragePath);
+ mServer->addStorage(mStoragePath, mReserveSpace);
sMutex.unlock();
LOGD("MtpThread mServer->run");
@@ -139,7 +142,8 @@ public:
#endif // HAVE_ANDROID_OS
static void
-android_media_MtpServer_setup(JNIEnv *env, jobject thiz, jobject javaDatabase, jstring storagePath)
+android_media_MtpServer_setup(JNIEnv *env, jobject thiz, jobject javaDatabase,
+ jstring storagePath, jlong reserveSpace)
{
#ifdef HAVE_ANDROID_OS
LOGD("setup\n");
@@ -147,7 +151,8 @@ android_media_MtpServer_setup(JNIEnv *env, jobject thiz, jobject javaDatabase, j
MtpDatabase* database = getMtpDatabase(env, javaDatabase);
const char *storagePathStr = env->GetStringUTFChars(storagePath, NULL);
- MtpThread* thread = new MtpThread(database, storagePathStr, env->NewGlobalRef(thiz));
+ MtpThread* thread = new MtpThread(database, storagePathStr,
+ reserveSpace, env->NewGlobalRef(thiz));
env->SetIntField(thiz, field_context, (int)thread);
env->ReleaseStringUTFChars(storagePath, storagePathStr);
@@ -213,7 +218,7 @@ android_media_MtpServer_set_ptp_mode(JNIEnv *env, jobject thiz, jboolean usePtp)
// ----------------------------------------------------------------------------
static JNINativeMethod gMethods[] = {
- {"native_setup", "(Landroid/media/MtpDatabase;Ljava/lang/String;)V",
+ {"native_setup", "(Landroid/media/MtpDatabase;Ljava/lang/String;J)V",
(void *)android_media_MtpServer_setup},
{"native_finalize", "()V", (void *)android_media_MtpServer_finalize},
{"native_start", "()V", (void *)android_media_MtpServer_start},