summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2011-03-17 09:43:50 -0400
committerMike Lockwood <lockwood@android.com>2011-03-17 09:43:50 -0400
commita3f8514492cb4bc8fa7c36e2c0f720342796ada7 (patch)
tree84a3b4d14257930c0c38f2d36ea6beb8e8c8e320 /media
parentf8d1533b07b51935e295b2cf92e2ea2aa94b303f (diff)
downloadframeworks_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.java15
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) {