summaryrefslogtreecommitdiff
path: root/media/java/android/mtp/MtpServer.java
diff options
context:
space:
mode:
Diffstat (limited to 'media/java/android/mtp/MtpServer.java')
-rw-r--r--media/java/android/mtp/MtpServer.java9
1 files changed, 7 insertions, 2 deletions
diff --git a/media/java/android/mtp/MtpServer.java b/media/java/android/mtp/MtpServer.java
index 61fbfb902d0d..99f93e412b11 100644
--- a/media/java/android/mtp/MtpServer.java
+++ b/media/java/android/mtp/MtpServer.java
@@ -16,6 +16,8 @@
package android.mtp;
+import com.android.internal.util.Preconditions;
+
/**
* Java wrapper for MTP/PTP support as USB responder.
* {@hide}
@@ -24,13 +26,15 @@ public class MtpServer implements Runnable {
private long mNativeContext; // accessed by native methods
private final MtpDatabase mDatabase;
+ private final Runnable mOnTerminate;
static {
System.loadLibrary("media_jni");
}
- public MtpServer(MtpDatabase database, boolean usePtp) {
- mDatabase = database;
+ public MtpServer(MtpDatabase database, boolean usePtp, Runnable onTerminate) {
+ mDatabase = Preconditions.checkNotNull(database);
+ mOnTerminate = Preconditions.checkNotNull(onTerminate);
native_setup(database, usePtp);
database.setServer(this);
}
@@ -45,6 +49,7 @@ public class MtpServer implements Runnable {
native_run();
native_cleanup();
mDatabase.close();
+ mOnTerminate.run();
}
public void sendObjectAdded(int handle) {