diff options
author | Mike Lockwood <lockwood@android.com> | 2011-03-17 09:43:50 -0400 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2011-03-17 09:43:50 -0400 |
commit | a3f8514492cb4bc8fa7c36e2c0f720342796ada7 (patch) | |
tree | 84a3b4d14257930c0c38f2d36ea6beb8e8c8e320 /media | |
parent | f8d1533b07b51935e295b2cf92e2ea2aa94b303f (diff) | |
download | frameworks_base-a3f8514492cb4bc8fa7c36e2c0f720342796ada7.zip frameworks_base-a3f8514492cb4bc8fa7c36e2c0f720342796ada7.tar.gz frameworks_base-a3f8514492cb4bc8fa7c36e2c0f720342796ada7.tar.bz2 |
MtpServer: Do not attempt to stop MTP if it has not been started
Fixes an ANR that occurred if we got a USB disconnected event
before the MTP service had started.
Bug: 4118033
Change-Id: I6cad4281a5911a9926cae923f34d3a6bf98346c5
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media')
-rw-r--r-- | media/java/android/mtp/MtpServer.java | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/media/java/android/mtp/MtpServer.java b/media/java/android/mtp/MtpServer.java index fe734e1..006fa6d 100644 --- a/media/java/android/mtp/MtpServer.java +++ b/media/java/android/mtp/MtpServer.java @@ -24,6 +24,9 @@ import android.util.Log; */ public class MtpServer { + private final Object mLock = new Object(); + private boolean mStarted; + private static final String TAG = "MtpServer"; static { @@ -35,11 +38,19 @@ public class MtpServer { } public void start() { - native_start(); + synchronized (mLock) { + native_start(); + mStarted = true; + } } public void stop() { - native_stop(); + synchronized (mLock) { + if (mStarted) { + native_stop(); + mStarted = false; + } + } } public void sendObjectAdded(int handle) { |