diff options
Diffstat (limited to 'media/java/android/mtp/MtpServer.java')
-rw-r--r-- | media/java/android/mtp/MtpServer.java | 9 |
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) { |