OSDN Git Service

Add onTerminate runner to MtpServer.
authorDaichi Hirono <hirono@google.com>
Thu, 7 Jul 2016 01:57:47 +0000 (10:57 +0900)
committerDaichi Hirono <hirono@google.com>
Mon, 11 Jul 2016 01:15:41 +0000 (10:15 +0900)
The CL adds onTerminate runner to MtpServer constructor's arguments to
know when MtpServer stops its thread.

BUG=29971895

Change-Id: I685ad6bc663f76e04ae3837129cbe12805d2093c

media/java/android/mtp/MtpServer.java

index 61fbfb9..99f93e4 100644 (file)
@@ -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) {