MTP: Send an Intent after an MTP session that resulted in media database modifications
Change-Id: Ib2796e9155350c67769502935a73cf98d6ae9c08
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/media/jni/android_media_MtpDatabase.cpp b/media/jni/android_media_MtpDatabase.cpp
index 4ef3a9f..4046287 100644
--- a/media/jni/android_media_MtpDatabase.cpp
+++ b/media/jni/android_media_MtpDatabase.cpp
@@ -52,6 +52,9 @@
static jmethodID method_deleteFile;
static jmethodID method_getObjectReferences;
static jmethodID method_setObjectReferences;
+static jmethodID method_sessionStarted;
+static jmethodID method_sessionEnded;
+
static jfieldID field_context;
MtpDatabase* getMtpDatabase(JNIEnv *env, jobject database) {
@@ -135,6 +138,10 @@
MtpObjectFormat format);
virtual MtpProperty* getDevicePropertyDesc(MtpDeviceProperty property);
+
+ virtual void sessionStarted();
+
+ virtual void sessionEnded();
};
// ----------------------------------------------------------------------------
@@ -583,6 +590,18 @@
return NULL;
}
+void MyMtpDatabase::sessionStarted() {
+ JNIEnv* env = AndroidRuntime::getJNIEnv();
+ env->CallVoidMethod(mDatabase, method_sessionStarted);
+ checkAndClearExceptionFromCallback(env, __FUNCTION__);
+}
+
+void MyMtpDatabase::sessionEnded() {
+ JNIEnv* env = AndroidRuntime::getJNIEnv();
+ env->CallVoidMethod(mDatabase, method_sessionEnded);
+ checkAndClearExceptionFromCallback(env, __FUNCTION__);
+}
+
#endif // HAVE_ANDROID_OS
// ----------------------------------------------------------------------------
@@ -701,6 +720,17 @@
LOGE("Can't find setObjectReferences");
return -1;
}
+ method_sessionStarted = env->GetMethodID(clazz, "sessionStarted", "()V");
+ if (method_sessionStarted == NULL) {
+ LOGE("Can't find sessionStarted");
+ return -1;
+ }
+ method_sessionEnded = env->GetMethodID(clazz, "sessionEnded", "()V");
+ if (method_sessionEnded == NULL) {
+ LOGE("Can't find sessionEnded");
+ return -1;
+ }
+
field_context = env->GetFieldID(clazz, "mNativeContext", "I");
if (field_context == NULL) {
LOGE("Can't find MtpDatabase.mNativeContext");