From f1d69ee247e551210f5ee56908581c6e0aa10da8 Mon Sep 17 00:00:00 2001 From: Daichi Hirono Date: Thu, 7 Jul 2016 10:57:47 +0900 Subject: [PATCH] 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 --- media/java/android/mtp/MtpServer.java | 9 +++++++-- 1 file 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) { -- 2.11.0