Add onTerminate runner to MtpServer.

The CL adds onTerminate runner to MtpServer constructor's arguments to
know when MtpServer stops its thread.

BUG=29971895

Change-Id: I685ad6bc663f76e04ae3837129cbe12805d2093c
This commit is contained in:
Daichi Hirono
2016-07-07 10:57:47 +09:00
parent ae76412b99
commit f1d69ee247

View 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) {