diff options
Diffstat (limited to 'apps/SdkController/SdkControllerSensor')
4 files changed, 42 insertions, 24 deletions
diff --git a/apps/SdkController/SdkControllerSensor/.classpath b/apps/SdkController/SdkControllerSensor/.classpath index a4f1e40..57a5df6 100755 --- a/apps/SdkController/SdkControllerSensor/.classpath +++ b/apps/SdkController/SdkControllerSensor/.classpath @@ -4,5 +4,6 @@ <classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/SdkControllerLib"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
diff --git a/apps/SdkController/SdkControllerSensor/AndroidManifest.xml b/apps/SdkController/SdkControllerSensor/AndroidManifest.xml index 0255cc9..62cc096 100755 --- a/apps/SdkController/SdkControllerSensor/AndroidManifest.xml +++ b/apps/SdkController/SdkControllerSensor/AndroidManifest.xml @@ -30,7 +30,7 @@ <activity
android:label="@string/app_name"
android:configChanges="orientation|keyboardHidden|mcc|mnc|locale|touchscreen|keyboard|navigation|screenLayout|fontScale"
- android:name=".SdkControllerSensorActivity" >
+ android:name=".SdkControllerSensorActivity" android:launchMode="singleInstance">
<intent-filter >
<action android:name="android.intent.action.MAIN" />
diff --git a/apps/SdkController/SdkControllerSensor/res/values/strings.xml b/apps/SdkController/SdkControllerSensor/res/values/strings.xml index 29bfa5f..b082a67 100755 --- a/apps/SdkController/SdkControllerSensor/res/values/strings.xml +++ b/apps/SdkController/SdkControllerSensor/res/values/strings.xml @@ -1,5 +1,5 @@ <?xml version="1.0" encoding="utf-8"?>
<resources>
- <string name="app_name">SDK Controller Sensor</string>
+ <string name="app_name">Sensors SDK Controller</string>
</resources>
diff --git a/apps/SdkController/SdkControllerSensor/src/com/android/tools/sdkcontroller/sdkcontrollersensor/SdkControllerSensorActivity.java b/apps/SdkController/SdkControllerSensor/src/com/android/tools/sdkcontroller/sdkcontrollersensor/SdkControllerSensorActivity.java index d640f2b..285ea8e 100755 --- a/apps/SdkController/SdkControllerSensor/src/com/android/tools/sdkcontroller/sdkcontrollersensor/SdkControllerSensorActivity.java +++ b/apps/SdkController/SdkControllerSensor/src/com/android/tools/sdkcontroller/sdkcontrollersensor/SdkControllerSensorActivity.java @@ -18,21 +18,21 @@ package com.android.tools.sdkcontroller.sdkcontrollersensor; import java.util.ArrayList; import java.util.List; -import java.io.IOException; import android.app.Activity; +import android.hardware.Sensor; import android.hardware.SensorEvent; import android.hardware.SensorEventListener; import android.hardware.SensorManager; -import android.hardware.Sensor; import android.os.Bundle; +import android.util.Log; +import android.view.LayoutInflater; import android.widget.CheckBox; -import android.widget.TextView; +import android.widget.CompoundButton; import android.widget.TableLayout; import android.widget.TableRow; -import android.widget.CompoundButton; -import android.view.LayoutInflater; -import android.util.Log; +import android.widget.TextView; +import android.widget.Toast; import com.android.tools.sdkcontroller.lib.EmulatorConnection; import com.android.tools.sdkcontroller.lib.EmulatorConnection.EmulatorConnectionType; @@ -367,16 +367,23 @@ public class SdkControllerSensorActivity extends Activity implements EmulatorLis } // Instantiate emulator connector. - try { - // Sensor emulator starts very early during emulator startup. So, as - // discussed in comments to Emulator class, we must use synchronous - // type of connection with the emulator. - mEmulator = new EmulatorConnection(EmulatorConnection.SENSORS_PORT, - EmulatorConnectionType.SYNC_CONNECTION, - this); - } catch (IOException e) { - Loge("Exception while creating server socket: " + e.getMessage()); - finish(); + // This will call onEmulatorBindResult with the result. + // Sensor emulator starts very early during emulator startup. So, as + // discussed in comments to Emulator class, we must use synchronous + // type of connection with the emulator. + mEmulator = new EmulatorConnection(EmulatorConnection.SENSORS_PORT, + EmulatorConnectionType.SYNC_CONNECTION, + this); + } + + @Override + protected void onPause() { + super.onPause(); + + if (mEmulator != null) { + mEmulator.setEmulatorListener(null); + mEmulator.disconnect(); + mEmulator = null; } } @@ -415,12 +422,22 @@ public class SdkControllerSensorActivity extends Activity implements EmulatorLis } // Instantiate emulator connector for the next client. - try { - mEmulator = new EmulatorConnection(EmulatorConnection.SENSORS_PORT, - EmulatorConnectionType.SYNC_CONNECTION, - this); - } catch (IOException e) { - Loge("Exception while creating server socket: " + e.getMessage()); + // This will call onEmulatorBindResult with the result. + mEmulator = new EmulatorConnection(EmulatorConnection.SENSORS_PORT, + EmulatorConnectionType.SYNC_CONNECTION, + this); + } + + /** + * Called with the result from {@code new EmulatorConnection} + */ + @Override + public void onEmulatorBindResult(boolean success, Exception e) { + if (!success) { + String msg = "Failed to connect to server socket"; + if (e != null) msg += ": " + e.toString(); + Loge(msg); + Toast.makeText(this, msg, Toast.LENGTH_LONG).show(); finish(); } } |