diff options
author | Marco Nelissen <marcone@google.com> | 2009-09-03 10:49:55 -0700 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2009-09-03 11:22:28 -0700 |
commit | 8b0466170082fdf12f78d7b70358002520e99e9b (patch) | |
tree | 5ff6b49f1d9373e654df1a3a324883a05b6eb8a8 /media/jni | |
parent | 04e1faf0f030ddb360180289fb798adbb3348dd4 (diff) | |
download | frameworks_base-8b0466170082fdf12f78d7b70358002520e99e9b.zip frameworks_base-8b0466170082fdf12f78d7b70358002520e99e9b.tar.gz frameworks_base-8b0466170082fdf12f78d7b70358002520e99e9b.tar.bz2 |
When encountering a .nomedia file, notify the MediaScannerClient,
so that it can erase the data column for entries that are in the
folder containing the .nomedia file. This prevents us from
deleting (via a delete trigger) files when somebody adds a
.nomedia file after the fact.
Diffstat (limited to 'media/jni')
-rw-r--r-- | media/jni/android_media_MediaScanner.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/media/jni/android_media_MediaScanner.cpp b/media/jni/android_media_MediaScanner.cpp index 97de486..6a5404e 100644 --- a/media/jni/android_media_MediaScanner.cpp +++ b/media/jni/android_media_MediaScanner.cpp @@ -65,6 +65,8 @@ public: "(Ljava/lang/String;Ljava/lang/String;)V"); mSetMimeTypeMethodID = env->GetMethodID(mediaScannerClientInterface, "setMimeType", "(Ljava/lang/String;)V"); + mAddNoMediaFolderMethodID = env->GetMethodID(mediaScannerClientInterface, "addNoMediaFolder", + "(Ljava/lang/String;)V"); } } @@ -111,12 +113,26 @@ public: return (!mEnv->ExceptionCheck()); } + // returns true if it succeeded, false if an exception occured in the Java code + virtual bool addNoMediaFolder(const char* path) + { + jstring pathStr; + if ((pathStr = mEnv->NewStringUTF(path)) == NULL) return false; + + mEnv->CallVoidMethod(mClient, mAddNoMediaFolderMethodID, pathStr); + + mEnv->DeleteLocalRef(pathStr); + return (!mEnv->ExceptionCheck()); + } + + private: JNIEnv *mEnv; jobject mClient; jmethodID mScanFileMethodID; jmethodID mHandleStringTagMethodID; jmethodID mSetMimeTypeMethodID; + jmethodID mAddNoMediaFolderMethodID; }; |