Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f1d69ee2 authored by Daichi Hirono's avatar Daichi Hirono
Browse files

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
parent ae76412b
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -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) {