aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXavier Ducrohet <xav@android.com>2012-03-06 12:08:49 -0800
committerXavier Ducrohet <xav@android.com>2012-03-06 12:30:10 -0800
commit1bdd1764193c7d85649b09d66d6a0bc838c35d46 (patch)
tree68aa00e411a388b60726690d63a7fa91788ea6cb
parent3bd2a615de043eb86648671f29376f32230701a2 (diff)
downloadsdk-1bdd1764193c7d85649b09d66d6a0bc838c35d46.zip
sdk-1bdd1764193c7d85649b09d66d6a0bc838c35d46.tar.gz
sdk-1bdd1764193c7d85649b09d66d6a0bc838c35d46.tar.bz2
Properly disconnect the sdk controller when needed.
This is a temporary fix before we move to a full service. Also package the MT controller app in the SDK. Change-Id: Ib8a11f3b69d5545c9f428cbf65b27d903699e7b8
-rwxr-xr-xapps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/Emulator.java15
-rw-r--r--apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/SdkControllerMultitouchActivity.java21
-rw-r--r--build/tools.atree4
3 files changed, 34 insertions, 6 deletions
diff --git a/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/Emulator.java b/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/Emulator.java
index bb5bec8..d1c9669 100755
--- a/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/Emulator.java
+++ b/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/Emulator.java
@@ -86,6 +86,8 @@ public class Emulator {
private boolean mIsDisconnected = false;
/** Exit I/O loop flag. */
private boolean mExitIoLoop = false;
+ /** Disconnect flag. */
+ private boolean mDisconnect = false;
/***************************************************************************
* EmulatorChannel - Base class for sync / async channels.
@@ -536,6 +538,15 @@ public class Emulator {
constructEmulator(port, ctype);
}
+
+ /**
+ * Disconnects the emulator.
+ */
+ public void disconnect() {
+ mDisconnect = true;
+ mSelector.wakeup();
+ }
+
/**
* Constructs Emulator instance.
*
@@ -698,7 +709,9 @@ public class Emulator {
// Check mExitIoLoop before calling 'select', and after in order to
// detect condition when mSelector has been waken up to exit the
// I/O loop.
- while (!mExitIoLoop && mSelector.select() >= 0 && !mExitIoLoop) {
+ while (!mExitIoLoop && !mDisconnect &&
+ mSelector.select() >= 0 &&
+ !mExitIoLoop && !mDisconnect) {
Set<SelectionKey> readyKeys = mSelector.selectedKeys();
Iterator<SelectionKey> i = readyKeys.iterator();
while (i.hasNext()) {
diff --git a/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/SdkControllerMultitouchActivity.java b/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/SdkControllerMultitouchActivity.java
index ce4ac1d..5d5f2ef 100644
--- a/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/SdkControllerMultitouchActivity.java
+++ b/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/SdkControllerMultitouchActivity.java
@@ -122,6 +122,14 @@ public class SdkControllerMultitouchActivity extends Activity implements OnEmula
mView = (MultiTouchView) findViewById(R.id.imageView);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ // Create listener for touch events.
+ mTouchListener = new TouchListener();
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+
// Instantiate emulator connector.
try {
mEmulator = new Emulator(Emulator.MULTITOUCH_PORT,
@@ -131,8 +139,17 @@ public class SdkControllerMultitouchActivity extends Activity implements OnEmula
finish();
}
- // Create listener for touch events.
- mTouchListener = new TouchListener();
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+
+ if (mEmulator != null) {
+ mEmulator.setOnEmulatorListener(null);
+ mEmulator.disconnect();
+ mEmulator = null;
+ }
}
/**
diff --git a/build/tools.atree b/build/tools.atree
index 8fc262c..03868e2 100644
--- a/build/tools.atree
+++ b/build/tools.atree
@@ -146,9 +146,7 @@ prebuilts/tools/common/proguard/proguard4.7/bin/retrace.sh tools/proguard/bi
prebuilts/tools/common/proguard/proguard4.7/src/proguard/ant/task.properties tools/proguard/ant/task.properties
# SDK Controller
-#sdk/apps/SdkController tools/apps/SdkController
-sdk/apps/SdkController/SdkControllerLib tools/apps/SdkController/SdkControllerLib
-sdk/apps/SdkController/SdkControllerSensor tools/apps/SdkController/SdkControllerSensor
+sdk/apps/SdkController tools/apps/SdkController
# tools specific support jar
framework/annotations.jar tools/support/annotations.jar