diff options
author | Raphael <raphael@google.com> | 2012-03-25 17:53:14 -0700 |
---|---|---|
committer | Raphael Moll <raphael@google.com> | 2012-03-25 19:06:08 -0700 |
commit | f1bbd98a728a6bdc63b29283d4f7ce6f4d9a0540 (patch) | |
tree | c33adc1cfdc1b1d0c9518cc59dcd62d30f2a9c80 | |
parent | b764200fe538498746c7f15e2109a60fba565aca (diff) | |
download | sdk-f1bbd98a728a6bdc63b29283d4f7ce6f4d9a0540.zip sdk-f1bbd98a728a6bdc63b29283d4f7ce6f4d9a0540.tar.gz sdk-f1bbd98a728a6bdc63b29283d4f7ce6f4d9a0540.tar.bz2 |
SdkController: merge lib, remove old Lib/Sensor/MT apps
- SdkController/SdkControllerLib: move files in Apps' .../lib
- SdkController/SdkControllerSensor + MultiTouch: remove.
- SdkController/SdkControllerApp: move to upper folder,
we don't need the subfolders anymore.
Besides the removal/move of the file, there's no
code change in the app itself.
Change-Id: Ib35428d7b10fd6eb849c7ec343fe5a23bf60ed97
-rwxr-xr-x | apps/SdkController/.classpath (renamed from apps/SdkController/SdkControllerLib/.classpath) | 0 | ||||
-rwxr-xr-x | apps/SdkController/.project (renamed from apps/SdkController/SdkControllerApp/.project) | 0 | ||||
-rwxr-xr-x | apps/SdkController/AndroidManifest.xml (renamed from apps/SdkController/SdkControllerApp/AndroidManifest.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/Implementation.txt (renamed from apps/SdkController/SdkControllerApp/Implementation.txt) | 170 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerApp/.classpath | 9 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerLib/.project | 33 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerLib/AndroidManifest.xml | 27 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerLib/project.properties | 12 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerLib/res/values/strings.xml | 4 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerMultitouch/.classpath | 9 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerMultitouch/.project | 33 | ||||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/AndroidManifest.xml | 45 | ||||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/project.properties | 12 | ||||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/res/drawable-hdpi/ic_launcher.png | bin | 4147 -> 0 bytes | |||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/res/drawable-ldpi/ic_launcher.png | bin | 1723 -> 0 bytes | |||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/res/drawable-mdpi/ic_launcher.png | bin | 2574 -> 0 bytes | |||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/res/layout/main.xml | 12 | ||||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/res/values/strings.xml | 5 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/MultiTouchView.java | 228 | ||||
-rw-r--r-- | apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/SdkControllerMultitouchActivity.java | 426 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/.classpath | 9 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/.project | 33 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/AndroidManifest.xml | 42 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/project.properties | 12 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/res/drawable-hdpi/ic_launcher.png | bin | 4147 -> 0 bytes | |||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/res/drawable-ldpi/ic_launcher.png | bin | 1723 -> 0 bytes | |||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/res/drawable-mdpi/ic_launcher.png | bin | 2574 -> 0 bytes | |||
-rw-r--r-- | apps/SdkController/SdkControllerSensor/res/layout/main.xml | 25 | ||||
-rw-r--r-- | apps/SdkController/SdkControllerSensor/res/layout/one_row.xml | 22 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/res/values/strings.xml | 5 | ||||
-rwxr-xr-x | apps/SdkController/SdkControllerSensor/src/com/android/tools/sdkcontroller/sdkcontrollersensor/SdkControllerSensorActivity.java | 656 | ||||
-rwxr-xr-x | apps/SdkController/assets/intro_help.html (renamed from apps/SdkController/SdkControllerApp/assets/intro_help.html) | 0 | ||||
-rwxr-xr-x | apps/SdkController/proguard-project.txt (renamed from apps/SdkController/SdkControllerApp/proguard-project.txt) | 0 | ||||
-rwxr-xr-x | apps/SdkController/project.properties (renamed from apps/SdkController/SdkControllerApp/project.properties) | 1 | ||||
-rwxr-xr-x | apps/SdkController/res/drawable-hdpi/ic_launcher.png (renamed from apps/SdkController/SdkControllerApp/res/drawable-hdpi/ic_launcher.png) | bin | 9397 -> 9397 bytes | |||
-rwxr-xr-x | apps/SdkController/res/drawable-ldpi/ic_launcher.png (renamed from apps/SdkController/SdkControllerApp/res/drawable-ldpi/ic_launcher.png) | bin | 2729 -> 2729 bytes | |||
-rwxr-xr-x | apps/SdkController/res/drawable-mdpi/ic_launcher.png (renamed from apps/SdkController/SdkControllerApp/res/drawable-mdpi/ic_launcher.png) | bin | 5237 -> 5237 bytes | |||
-rwxr-xr-x | apps/SdkController/res/drawable-xhdpi/ic_launcher.png (renamed from apps/SdkController/SdkControllerApp/res/drawable-xhdpi/ic_launcher.png) | bin | 14383 -> 14383 bytes | |||
-rwxr-xr-x | apps/SdkController/res/layout-land/sensors.xml (renamed from apps/SdkController/SdkControllerApp/res/layout-land/sensors.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/res/layout/main.xml (renamed from apps/SdkController/SdkControllerApp/res/layout/main.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/res/layout/multitouch.xml (renamed from apps/SdkController/SdkControllerApp/res/layout/multitouch.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/res/layout/sensor_row.xml (renamed from apps/SdkController/SdkControllerApp/res/layout/sensor_row.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/res/layout/sensors.xml (renamed from apps/SdkController/SdkControllerApp/res/layout/sensors.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/res/values-v11/styles_v11.xml (renamed from apps/SdkController/SdkControllerApp/res/values-v11/styles_v11.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/res/values/strings.xml (renamed from apps/SdkController/SdkControllerApp/res/values/strings.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/res/values/styles.xml (renamed from apps/SdkController/SdkControllerApp/res/values/styles.xml) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/activities/BaseBindingActivity.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/BaseBindingActivity.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/activities/MainActivity.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/MainActivity.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/activities/MultiTouchActivity.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/MultiTouchActivity.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/activities/SensorActivity.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/SensorActivity.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/handlers/BaseHandler.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/BaseHandler.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/handlers/MultiTouchHandler.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/MultiTouchHandler.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/handlers/SensorsHandler.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/SensorsHandler.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/lib/EmulatorConnection.java (renamed from apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/EmulatorConnection.java) | 0 | ||||
-rw-r--r-- | apps/SdkController/src/com/android/tools/sdkcontroller/lib/EmulatorListener.java (renamed from apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/EmulatorListener.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/service/ControllerService.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/service/ControllerService.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/utils/ApiHelper.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/utils/ApiHelper.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/utils/ApiHelper_11.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/utils/ApiHelper_11.java) | 0 | ||||
-rwxr-xr-x | apps/SdkController/src/com/android/tools/sdkcontroller/views/MultiTouchView.java (renamed from apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/views/MultiTouchView.java) | 0 |
59 files changed, 85 insertions, 1745 deletions
diff --git a/apps/SdkController/SdkControllerLib/.classpath b/apps/SdkController/.classpath index a4f1e40..a4f1e40 100755 --- a/apps/SdkController/SdkControllerLib/.classpath +++ b/apps/SdkController/.classpath diff --git a/apps/SdkController/SdkControllerApp/.project b/apps/SdkController/.project index a3417c5..a3417c5 100755 --- a/apps/SdkController/SdkControllerApp/.project +++ b/apps/SdkController/.project diff --git a/apps/SdkController/SdkControllerApp/AndroidManifest.xml b/apps/SdkController/AndroidManifest.xml index e6c876a..e6c876a 100755 --- a/apps/SdkController/SdkControllerApp/AndroidManifest.xml +++ b/apps/SdkController/AndroidManifest.xml diff --git a/apps/SdkController/SdkControllerApp/Implementation.txt b/apps/SdkController/Implementation.txt index a7b3788..f1ead49 100755 --- a/apps/SdkController/SdkControllerApp/Implementation.txt +++ b/apps/SdkController/Implementation.txt @@ -1,85 +1,85 @@ -Implementation Details for SdkControllerApp
--------------------------------------------
-
----- 2012-03-22
-App is in the namespace com.android.tools.sdkcontroller.
-
-This is an app that has a minSdkVersion of 7 (Eclair)
-and a targetSdkVersion of 15 (ICS). The target version
-means the app is forbidden under ICS from doing any network
-communication on its main thread.
-
-It the following from SdkControllerLib
-- EmulatorConnection abstracts a connection to the emulator.
- - Object is first created by giving a non-null EmulatorListener.
- - then connect(port) is called to initiate the connection.
- - The EmulatorConnection is always created in SYNC mode.
-- EmulatorListener is a callback: the emulator connection uses it to indicate
- when the connection is actually connected or disconnected.
-
-The overall design:
-- A background service is started by the app. It handles the connection
- to the emulator and provides a number of "handlers". Handlers can be
- though as being separate tasks that the user wants to achieve, for example
- sending sensor data, sending multi-touch events, receiving screen updates,
- sending a camera feed, etc.
-- All the handlers are started when the service starts and shutdown with it.
- They basically stay there as long as the app is running, and its up to the
- handler to deal with emulator connections starts/stopping. Some handlers
- will run in the background (e.g. sending sensor data) whereas other might
- need an activity to connect to them first.
-- The app has a number of activities which connect to existing handlers.
-
-Another way to see it is that the app handles a number of tasks which are
-composed of a background handler (that consumes data form the emulator and
-can send data to the emulator) and an optional activity for UI (that displays
-or controls the handler's state.)
-
-
-Here's a quick overview of the classes in the application:
-
-
-The main UI is in activities.MainActivity.
-There are 2 tasks activities: SensorActivity and MultiTouchActivity.
-
-These all derive from BaseBindingActivity which provides a few convenient common features
-- in onResume this will bind to the service, creating and starting it if necessary.
-- in onPause, this will unbind from the service, but does not stop it.
-
-Note however that due to the asynchronous nature of the bind operation, the activity
-must not attempt to use the service from onResume. Instead there are 2 callbacks to use:
-- onServiceConnected when the bind succeeded.
-- onServiceDisconnected as the reverse operation.
-
-When the activity is connected to the service, it can then use getServiceBinder()
-to get an interface to talk to the service.
-
-In the other direction, the activity provides a listener for the service to notify
-the application: ControllerListener createControllerListener().
-
-The activity can then access the handler:
- handler = getServiceBinder().getHandler(HandlerType....)
-
-and then the activity wants to provide a listener to get notified by the handler:
- handler.addUiHandler(new android.os.Handler(this));
-
-In the end we have the following workflow describing who controls what (-->):
-
-
- Emulator
- ^ ^
- | | EmuCnxHandler
- sendEventToEmulator| | (EmulatorListener)
- | +-------------+
- | |
- handlers.BaseHandler | v
- Activity ------------------------> Handler <---- ControllerService
- UI <------------------------ | ^
- android.os.Handler | |
- | ^ | |
- | | ControllerListener | |
- | +--------------------------------------------------+ |
- +-----------------------------------------------------------+
- ControllerBinder
-
-----
+Implementation Details for SdkControllerApp +------------------------------------------- + +---- 2012-03-22 +App is in the namespace com.android.tools.sdkcontroller. + +This is an app that has a minSdkVersion of 7 (Eclair) +and a targetSdkVersion of 15 (ICS). The target version +means the app is forbidden under ICS from doing any network +communication on its main thread. + +The overall design: +- A background service is started by the app. It handles the connection + to the emulator and provides a number of "handlers". Handlers can be + though as being separate tasks that the user wants to achieve, for example + sending sensor data, sending multi-touch events, receiving screen updates, + sending a camera feed, etc. +- All the handlers are started when the service starts and shutdown with it. + They basically stay there as long as the app is running, and its up to the + handler to deal with emulator connections starts/stopping. Some handlers + will run in the background (e.g. sending sensor data) whereas other might + need an activity to connect to them first. +- The app has a number of activities which connect to existing handlers. + +Another way to see it is that the app handles a number of tasks which are +composed of a background handler (that consumes data form the emulator and +can send data to the emulator) and an optional activity for UI (that displays +or controls the handler's state.) + + +Here's a quick overview of the classes in the application: + + +The main UI is in activities.MainActivity. +There are 2 tasks activities: SensorActivity and MultiTouchActivity. + +These all derive from BaseBindingActivity which provides a few convenient common features +- in onResume this will bind to the service, creating and starting it if necessary. +- in onPause, this will unbind from the service, but does not stop it. + +Note however that due to the asynchronous nature of the bind operation, the activity +must not attempt to use the service from onResume. Instead there are 2 callbacks to use: +- onServiceConnected when the bind succeeded. +- onServiceDisconnected as the reverse operation. + +When the activity is connected to the service, it can then use getServiceBinder() +to get an interface to talk to the service. + +In the other direction, the activity provides a listener for the service to notify +the application: ControllerListener createControllerListener(). + +The activity can then access the handler: + handler = getServiceBinder().getHandler(HandlerType....) + +and then the activity wants to provide a listener to get notified by the handler: + handler.addUiHandler(new android.os.Handler(this)); + +The emulator connection is separated in the "lib" subpackage: +- EmulatorConnection abstracts a connection to the emulator. + - Object is first created by giving a non-null EmulatorListener. + - then connect(port) is called to initiate the connection. + - The EmulatorConnection is always created in SYNC mode. +- EmulatorListener is a callback: the emulator connection uses it to indicate + when the connection is actually connected or disconnected. + +In the end we have the following workflow describing who controls what (-->): + + + Emulator + ^ ^ + | | EmuCnxHandler + sendEventToEmulator| | (EmulatorListener) + | +-------------+ + | | + handlers.BaseHandler | v + Activity ------------------------> Handler <---- ControllerService + UI <------------------------ | ^ + android.os.Handler | | + | ^ | | + | | ControllerListener | | + | +--------------------------------------------------+ | + +-----------------------------------------------------------+ + ControllerBinder + +---- diff --git a/apps/SdkController/SdkControllerApp/.classpath b/apps/SdkController/SdkControllerApp/.classpath deleted file mode 100755 index 57a5df6..0000000 --- a/apps/SdkController/SdkControllerApp/.classpath +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <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/SdkControllerLib/.project b/apps/SdkController/SdkControllerLib/.project deleted file mode 100755 index efa52a5..0000000 --- a/apps/SdkController/SdkControllerLib/.project +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>SdkControllerLib</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ApkBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/apps/SdkController/SdkControllerLib/AndroidManifest.xml b/apps/SdkController/SdkControllerLib/AndroidManifest.xml deleted file mode 100755 index d93f3b5..0000000 --- a/apps/SdkController/SdkControllerLib/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.tools.sdkcontroller.lib"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="7" />
- <uses-permission android:name="android.permission.INTERNET" />
-
-</manifest>
diff --git a/apps/SdkController/SdkControllerLib/project.properties b/apps/SdkController/SdkControllerLib/project.properties deleted file mode 100755 index 5fa344c..0000000 --- a/apps/SdkController/SdkControllerLib/project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system use, -# "ant.properties", and override values to adapt the script to your -# project structure. - -# Project target. -target=android-15 -android.library=true diff --git a/apps/SdkController/SdkControllerLib/res/values/strings.xml b/apps/SdkController/SdkControllerLib/res/values/strings.xml deleted file mode 100755 index 35c14ff..0000000 --- a/apps/SdkController/SdkControllerLib/res/values/strings.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<resources>
-
-</resources>
\ No newline at end of file diff --git a/apps/SdkController/SdkControllerMultitouch/.classpath b/apps/SdkController/SdkControllerMultitouch/.classpath deleted file mode 100755 index 57a5df6..0000000 --- a/apps/SdkController/SdkControllerMultitouch/.classpath +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <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/SdkControllerMultitouch/.project b/apps/SdkController/SdkControllerMultitouch/.project deleted file mode 100755 index 7498997..0000000 --- a/apps/SdkController/SdkControllerMultitouch/.project +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>SdkControllerMultitouch</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ApkBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/apps/SdkController/SdkControllerMultitouch/AndroidManifest.xml b/apps/SdkController/SdkControllerMultitouch/AndroidManifest.xml deleted file mode 100644 index a8fb47f..0000000 --- a/apps/SdkController/SdkControllerMultitouch/AndroidManifest.xml +++ /dev/null @@ -1,45 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- -/* - * Copyright 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ ---> -<manifest xmlns:android="http://schemas.android.com/apk/res/android" - package="com.android.tools.sdkcontroller.sdkcontrollermultitouch" - android:versionCode="1" - android:versionName="1.0" > - - <uses-sdk android:minSdkVersion="7" /> - - <uses-permission android:name="android.permission.INTERNET" /> - - <application - android:icon="@drawable/ic_launcher" - android:label="@string/app_name" - android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > - <activity - android:name=".SdkControllerMultitouchActivity" - android:configChanges="orientation|keyboardHidden|mcc|mnc|locale|touchscreen|keyboard|navigation|screenLayout|fontScale" - android:label="@string/app_name" - android:screenOrientation="portrait" android:launchMode="singleInstance"> - <intent-filter> - <action android:name="android.intent.action.MAIN" /> - - <category android:name="android.intent.category.LAUNCHER" /> - </intent-filter> - </activity> - </application> - -</manifest>
\ No newline at end of file diff --git a/apps/SdkController/SdkControllerMultitouch/project.properties b/apps/SdkController/SdkControllerMultitouch/project.properties deleted file mode 100644 index 1234e7b..0000000 --- a/apps/SdkController/SdkControllerMultitouch/project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system use, -# "ant.properties", and override values to adapt the script to your -# project structure. - -# Project target. -target=android-15 -android.library.reference.1=../SdkControllerLib diff --git a/apps/SdkController/SdkControllerMultitouch/res/drawable-hdpi/ic_launcher.png b/apps/SdkController/SdkControllerMultitouch/res/drawable-hdpi/ic_launcher.png Binary files differdeleted file mode 100644 index 8074c4c..0000000 --- a/apps/SdkController/SdkControllerMultitouch/res/drawable-hdpi/ic_launcher.png +++ /dev/null diff --git a/apps/SdkController/SdkControllerMultitouch/res/drawable-ldpi/ic_launcher.png b/apps/SdkController/SdkControllerMultitouch/res/drawable-ldpi/ic_launcher.png Binary files differdeleted file mode 100644 index 1095584..0000000 --- a/apps/SdkController/SdkControllerMultitouch/res/drawable-ldpi/ic_launcher.png +++ /dev/null diff --git a/apps/SdkController/SdkControllerMultitouch/res/drawable-mdpi/ic_launcher.png b/apps/SdkController/SdkControllerMultitouch/res/drawable-mdpi/ic_launcher.png Binary files differdeleted file mode 100644 index a07c69f..0000000 --- a/apps/SdkController/SdkControllerMultitouch/res/drawable-mdpi/ic_launcher.png +++ /dev/null diff --git a/apps/SdkController/SdkControllerMultitouch/res/layout/main.xml b/apps/SdkController/SdkControllerMultitouch/res/layout/main.xml deleted file mode 100644 index ed618cd..0000000 --- a/apps/SdkController/SdkControllerMultitouch/res/layout/main.xml +++ /dev/null @@ -1,12 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<FrameLayout - xmlns:android="http://schemas.android.com/apk/res/android" - android:layout_width="fill_parent" - android:layout_height="fill_parent" > - <com.android.tools.sdkcontroller.sdkcontrollermultitouch.MultiTouchView - class="com.android.tools.sdkcontroller.sdkcontrollermultitouch.MultiTouchView" - android:id="@+id/imageView" - android:layout_width="fill_parent" - android:layout_height="fill_parent" > - </com.android.tools.sdkcontroller.sdkcontrollermultitouch.MultiTouchView> -</FrameLayout> diff --git a/apps/SdkController/SdkControllerMultitouch/res/values/strings.xml b/apps/SdkController/SdkControllerMultitouch/res/values/strings.xml deleted file mode 100644 index a0a6206..0000000 --- a/apps/SdkController/SdkControllerMultitouch/res/values/strings.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<resources> - <string name="app_name">Multitouch SDK Controller</string> - -</resources>
\ No newline at end of file diff --git a/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/MultiTouchView.java b/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/MultiTouchView.java deleted file mode 100755 index fc3f994..0000000 --- a/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/MultiTouchView.java +++ /dev/null @@ -1,228 +0,0 @@ -/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-
-package com.android.tools.sdkcontroller.sdkcontrollermultitouch;
-
-import java.io.InputStream;
-
-import android.content.Context;
-import android.graphics.Bitmap;
-import android.graphics.BitmapFactory;
-import android.graphics.Canvas;
-import android.graphics.Matrix;
-import android.graphics.Paint;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.view.MotionEvent;
-import android.view.View;
-
-/**
- * Implements a main view for the application providing multi-touch emulation.
- */
-public class MultiTouchView extends View {
- /** Tag for logging messages. */
- private static final String TAG = "SdkControllerMultitouch";
- /**
- * Back-end bitmap. Initialized in onSizeChanged(), updated in
- * onTouchEvent() and drawn in onDraw().
- */
- private Bitmap mBitmap;
- /** Default Paint instance for drawing the bitmap. */
- private final Paint mPaint = new Paint();
- /** Canvas instance for this view. */
- private Canvas mCanvas;
- /** Emulator screen width to this view width ratio. */
- private float mDx = 1;
- /** Emulator screen height to this view height ratio. */
- private float mDy = 1;
- /**
- * Flags whether or not image received from the emulator should be rotated.
- * Rotation is required when display orientation state of the emulator and
- * the device doesn't match.
- */
- private boolean mRotateDisplay;
- /** Base matrix that keep emulator->device display scaling */
- private Matrix mBaseMatrix = new Matrix();
- /** Matrix that is used to draw emulator's screen on the device. */
- private Matrix mDrawMatrix = new Matrix();
-
- /**
- * Simple constructor to use when creating a view from code.
- *
- * @see View#View(Context)
- */
- public MultiTouchView(Context context) {
- this(context, null);
- }
-
- /**
- * Constructor that is called when inflating a view from XML.
- *
- * @see View#View(Context, AttributeSet)
- */
- public MultiTouchView(Context context, AttributeSet attrs) {
- this(context, attrs, 0);
- }
-
- /**
- * Perform inflation from XML and apply a class-specific base style.
- *
- * @see View#View(Context, AttributeSet, int)
- */
- public MultiTouchView(Context context, AttributeSet attrs, int defStyle) {
- super(context, attrs, defStyle);
-
- // TODO Add constructor-time code here.
- }
-
- @Override
- protected void onSizeChanged(int w, int h, int oldw, int oldh) {
- super.onSizeChanged(w, h, oldw, oldh);
-
- mBitmap = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);
- mCanvas = new Canvas(mBitmap);
- }
-
- @Override
- protected void onDraw(Canvas canvas) {
- super.onDraw(canvas);
- // Just draw the back-end bitmap without zooming or scaling.
- if (mBitmap != null) {
- canvas.drawBitmap(mBitmap, 0, 0, null);
- }
- }
-
- /**
- * Sets emulator screen width and height to this view width and height
- * ratio.
- *
- * @param dx Emulator screen width to this view width ratio.
- * @param dy Emulator screen height to this view height ratio.
- * @param rotateDisplay Flags whether image received from the emulator
- * should be rotated when drawn on the device.
- */
- public void setDxDy(float dx, float dy, boolean rotateDisplay) {
- mDx = dx;
- mDy = dy;
- mRotateDisplay = rotateDisplay;
-
- mBaseMatrix.setScale(dx, dy);
- if (mRotateDisplay) {
- mBaseMatrix.postRotate(90);
- mBaseMatrix.postTranslate(getWidth(), 0);
- }
- }
-
- /**
- * Computes draw matrix for the emulator screen update.
- *
- * @param x Left screen coordinate of the bitmap on emulator screen.
- * @param y Top screen coordinate of the bitmap on emulator screen.
- */
- private void computeDrawMatrix(int x, int y) {
- mDrawMatrix.set(mBaseMatrix);
- if (mRotateDisplay) {
- mDrawMatrix.postTranslate(-y * mDy, x * mDx);
- } else {
- mDrawMatrix.postTranslate(x * mDx, y * mDy);
- }
- }
-
- /**
- * Draws a bitmap on the screen.
- *
- * @param x Left screen coordinate of the bitmap on emulator screen.
- * @param y Top screen coordinate of the bitmap on emulator screen.
- * @param w Width of the bitmap on the emulator screen.
- * @param h Height of the bitmap on the emulator screen.
- * @param colors Bitmap to draw.
- */
- public void drawBitmap(int x, int y, int w, int h, int[] colors) {
- if (mCanvas != null) {
- final Bitmap bmp = Bitmap.createBitmap(colors, 0, w, w, h, Bitmap.Config.ARGB_8888);
-
- computeDrawMatrix(x, y);
-
- /* Draw the bitmap and invalidate the updated region. */
- mCanvas.drawBitmap(bmp, mDrawMatrix, mPaint);
- invalidate();
- }
- }
-
- /**
- * Draws a JPEG bitmap on the screen.
- *
- * @param x Left screen coordinate of the bitmap on emulator screen.
- * @param y Top screen coordinate of the bitmap on emulator screen.
- * @param w Width of the bitmap on the emulator screen.
- * @param h Height of the bitmap on the emulator screen.
- * @param jpeg JPEG bitmap to draw.
- */
- public void drawJpeg(int x, int y, int w, int h, InputStream jpeg) {
- if (mCanvas != null) {
- final Bitmap bmp = BitmapFactory.decodeStream(jpeg);
-
- computeDrawMatrix(x, y);
-
- /* Draw the bitmap and invalidate the updated region. */
- mCanvas.drawBitmap(bmp, mDrawMatrix, mPaint);
- invalidate();
- }
- }
-
- /**
- * Constructs touch event message to be send to emulator.
- *
- * @param sb String builder where to construct the message.
- * @param event Event for which to construct the message.
- * @param ptr_index Index of the motion pointer for which to construct the
- * message.
- */
- void constructEventMessage(StringBuilder sb, MotionEvent event, int ptr_index) {
- sb.append(" pid=").append(event.getPointerId(ptr_index));
- if (mRotateDisplay == false) {
- sb.append(" x=").append((int) (event.getX(ptr_index) / mDx));
- sb.append(" y=").append((int) (event.getY(ptr_index) / mDy));
- } else {
- sb.append(" x=").append((int) (event.getY(ptr_index) / mDy));
- sb.append(" y=").append((int) (getWidth() - event.getX(ptr_index) / mDx));
- }
- // At the system level the input reader takes integers in the range
- // 0 - 100 for the pressure.
- int pressure = (int) (event.getPressure(ptr_index) * 100);
- // Make sure it doesn't exceed 100...
- if (pressure > 100) {
- pressure = 100;
- }
- sb.append(" pressure=").append(pressure);
- }
-
- /***************************************************************************
- * Logging wrappers
- **************************************************************************/
-
- private void Loge(String log) {
- Log.e(TAG, log);
- }
-
- private void Logw(String log) {
- Log.w(TAG, log);
- }
-
- private void Logv(String log) {
- Log.v(TAG, log);
- }
-}
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 deleted file mode 100644 index 4715ac4..0000000 --- a/apps/SdkController/SdkControllerMultitouch/src/com/android/tools/sdkcontroller/sdkcontrollermultitouch/SdkControllerMultitouchActivity.java +++ /dev/null @@ -1,426 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.android.tools.sdkcontroller.sdkcontrollermultitouch; - -import java.io.ByteArrayInputStream; -import java.nio.ByteBuffer; -import java.nio.ByteOrder; - -import android.app.Activity; -import android.graphics.Color; -import android.os.Bundle; -import android.util.Log; -import android.view.MotionEvent; -import android.view.View; -import android.view.View.OnTouchListener; -import android.view.WindowManager; -import android.widget.Toast; - -import com.android.tools.sdkcontroller.lib.EmulatorConnection; -import com.android.tools.sdkcontroller.lib.EmulatorConnection.EmulatorConnectionType; -import com.android.tools.sdkcontroller.lib.EmulatorListener; - -/** - * Encapsulates an application that monitors multi-touch activities on a device, - * and reports them to an Android Emulator application running on the host - * machine. This application is used to provide a realistic multi-touch - * emulation in Android Emulator. - */ -public class SdkControllerMultitouchActivity extends Activity implements EmulatorListener { - /** Tag for logging messages. */ - private static final String TAG = "SdkControllerMultitouch"; - /** Received frame is JPEG image. */ - private static final int FRAME_JPEG = 1; - /** Received frame is RGB565 bitmap. */ - private static final int FRAME_RGB565 = 2; - /** Received frame is RGB888 bitmap. */ - private static final int FRAME_RGB888 = 3; - - /** TCP over USB connection to the emulator. */ - private EmulatorConnection mEmulator; - /** View for this application. */ - private MultiTouchView mView; - /** Listener to touch events. */ - private TouchListener mTouchListener; - /** Width of the emulator's display. */ - private int mEmulatorWidth = 0; - /** Height of the emulator's display. */ - private int mEmulatorHeight = 0; - /** Bitmap storage. */ - private int[] mColors; - - /** - * Implements OnTouchListener interface that receives touch screen events, - * and reports them to the emulator application. - */ - class TouchListener implements OnTouchListener { - /** - * Touch screen event handler. - */ - @Override - public boolean onTouch(View v, MotionEvent event) { - StringBuilder sb = new StringBuilder(); - final int action = event.getAction(); - final int action_code = action & MotionEvent.ACTION_MASK; - final int action_pid_index = action >> MotionEvent.ACTION_POINTER_ID_SHIFT; - - /* - * Build message for the emulator. - */ - - switch (action_code) { - case MotionEvent.ACTION_MOVE: - sb.append("action=move"); - for (int n = 0; n < event.getPointerCount(); n++) { - mView.constructEventMessage(sb, event, n); - } - break; - case MotionEvent.ACTION_DOWN: - sb.append("action=down"); - mView.constructEventMessage(sb, event, action_pid_index); - break; - case MotionEvent.ACTION_UP: - sb.append("action=up pid=").append(event.getPointerId(action_pid_index)); - break; - case MotionEvent.ACTION_POINTER_DOWN: - sb.append("action=pdown"); - mView.constructEventMessage(sb, event, action_pid_index); - break; - case MotionEvent.ACTION_POINTER_UP: - sb.append("action=pup pid=").append(event.getPointerId(action_pid_index)); - break; - default: - Logw("Unknown action type: " + action_code); - return true; - } - - Logv(sb.toString()); - mEmulator.sendNotification(sb.toString() + '\0'); - return true; - } - } // TouchListener - - /** Called when the activity is first created. */ - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.main); - 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. - // This will call onEmulatorBindResult with the result. - mEmulator = new EmulatorConnection(this); - mEmulator.connect(EmulatorConnection.MULTITOUCH_PORT, - EmulatorConnectionType.SYNC_CONNECTION); - } - - @Override - protected void onPause() { - super.onPause(); - - if (mEmulator != null) { - mEmulator.setEmulatorListener(null); - mEmulator.disconnect(); - mEmulator = null; - } - } - - /** - * Updates application's screen accordingly to the emulator screen. - * - * @param e_width Width of the emulator screen. - * @param e_height Height of the emulator screen. - */ - private void updateDisplay(int e_width, int e_height) { - if (e_width != mEmulatorWidth || e_height != mEmulatorHeight) { - mEmulatorWidth = e_width; - mEmulatorHeight = e_height; - - boolean rotateDisplay = false; - int w = mView.getWidth(); - int h = mView.getHeight(); - if (w > h != e_width > e_height) { - rotateDisplay = true; - int tmp = w; - w = h; - h = tmp; - } - - float dx = (float) w / (float) e_width; - float dy = (float) h / (float) e_height; - mView.setDxDy(dx, dy, rotateDisplay); - Logv("Dispay updated: " + e_width + " x " + e_height + - " -> " + w + " x " + h + " ratio: " + - dx + " x " + dy); - } - } - - /*************************************************************************** - * EmulatorListener implementation - **************************************************************************/ - - /** - * Called when emulator is connected. NOTE: This method is called from the - * I/O loop, so all communication with the emulator will be "on hold" until - * this method returns. - */ - @Override - public void onEmulatorConnected() { - Logv("Emulator is connected"); - } - - /** - * Called when emulator is disconnected. - */ - @Override - public void onEmulatorDisconnected() { - Logv("Emulator is disconnected."); - // Stop listening on events, and let it cool for a sec... - onStopEvents(); - try { - Thread.sleep(500); - } catch (Exception e) { - } - - // Instantiate emulator connector for the next client. - // This will call onEmulatorBindResult with the result. - mEmulator = new EmulatorConnection(this); - mEmulator.connect(EmulatorConnection.MULTITOUCH_PORT, - EmulatorConnectionType.SYNC_CONNECTION); - } - - /** - * 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(); - } - } - - /** - * Called when a query is received from the emulator. NOTE: This method is - * called from the I/O loop. - * - * @param query Name of the query received from the emulator. The allowed - * queries are: - 'start' - Starts delivering touch screen events - * to the emulator. - 'stop' - Stops delivering touch screen - * events to the emulator. - * @param param Query parameters. - * @return Zero-terminated reply string. String must be formatted as such: - * "ok|ko[:reply data]" - */ - @Override - public String onEmulatorQuery(String query, String param) { - if (query.contentEquals("start")) { - return onQueryStart(param); - } else if (query.contentEquals("stop")) { - return onQueryStop(); - } else { - Loge("Unknown query " + query + "(" + param + ")"); - return "ko:Unknown query\0"; - } - } - - /** - * Called when a BLOB query is received from the emulator. - * <p/> - * This query is used to deliver framebuffer updates in the emulator. The - * blob contains an update header, followed by the bitmap containing updated - * rectangle. The header is defined as MTFrameHeader structure in - * external/qemu/android/multitouch-port.h - * <p/> - * NOTE: This method is called from the I/O loop, so all communication with - * the emulator will be "on hold" until this method returns. - * - * @param array contains BLOB data for the query. - * @return Empty string: this query doesn't require any response. - */ - @Override - public String onEmulatorBlobQuery(byte[] array) { - final ByteBuffer bb = ByteBuffer.wrap(array); - bb.order(ByteOrder.LITTLE_ENDIAN); - - // Read frame header. - final int header_size = bb.getInt(); - final int disp_width = bb.getInt(); - final int disp_height = bb.getInt(); - final int x = bb.getInt(); - final int y = bb.getInt(); - final int w = bb.getInt(); - final int h = bb.getInt(); - final int bpl = bb.getInt(); - final int bpp = bb.getInt(); - final int format = bb.getInt(); - - // Update application display. - updateDisplay(disp_width, disp_height); - - mView.post(new Runnable() { - @Override - public void run() { - if (format == FRAME_JPEG) { - /* - * Framebuffer is in JPEG format. - */ - - final ByteArrayInputStream jpg = new ByteArrayInputStream(bb.array()); - // Advance input stream to JPEG image. - jpg.skip(header_size); - // Draw the image. - mView.drawJpeg(x, y, w, h, jpg); - } else { - /* - * Framebuffer is in a raw RGB format. - */ - - final int pixel_num = h * w; - // Advance stream to the beginning of framebuffer data. - bb.position(header_size); - - // Make sure that mColors is large enough to contain the - // update bitmap. - if (mColors == null || mColors.length < pixel_num) { - mColors = new int[pixel_num]; - } - - // Convert the blob bitmap into bitmap that we will display. - if (format == FRAME_RGB565) { - for (int n = 0; n < pixel_num; n++) { - // Blob bitmap is in RGB565 format. - final int color = bb.getShort(); - final int r = ((color & 0xf800) >> 8) | ((color & 0xf800) >> 14); - final int g = ((color & 0x7e0) >> 3) | ((color & 0x7e0) >> 9); - final int b = ((color & 0x1f) << 3) | ((color & 0x1f) >> 2); - mColors[n] = Color.rgb(r, g, b); - } - } else if (format == FRAME_RGB888) { - for (int n = 0; n < pixel_num; n++) { - // Blob bitmap is in RGB565 format. - final int r = bb.getChar(); - final int g = bb.getChar(); - final int b = bb.getChar(); - mColors[n] = Color.rgb(r, g, b); - } - } else { - Logw("Invalid framebuffer format: " + format); - return; - } - mView.drawBitmap(x, y, w, h, mColors); - } - } - }); - - return ""; - } - - /*************************************************************************** - * Emulator query handlers - **************************************************************************/ - - /** - * Handles 'start' query. - * - * @return 'ok:<WidthxHeight> on success, or 'ko:<reason>' on failure. Width - * and height returned on success represent width and height of the - * application view. - */ - private String onQueryStart(String param) { - // Lets see if query has parameters. - int sep = param.indexOf('x'); - if (sep != -1) { - final String dx = param.substring(0, sep); - final String dy = param.substring(sep + 1); - final int x = Integer.parseInt(dx); - final int y = Integer.parseInt(dy); - - updateDisplay(x, y); - } - onStartEvents(); - return "ok:" + mView.getWidth() + "x" + mView.getHeight() + "\0"; - } - - /** - * Handles 'stop' query. - * - * @return 'ok'. - */ - private String onQueryStop() { - onStopEvents(); - return "ok\0"; - } - - /*************************************************************************** - * Internals - **************************************************************************/ - - /** - * Registers touch screen event listener, and starts receiving touch screen - * events. - */ - private void onStartEvents() { - mView.post(new Runnable() { - @Override - public void run() { - mView.setOnTouchListener(mTouchListener); - } - }); - } - - /** - * Unregisters touch screen event listener, and stops receiving touch screen - * events. - */ - private void onStopEvents() { - mView.post(new Runnable() { - @Override - public void run() { - mView.setOnTouchListener(null); - } - }); - } - - /*************************************************************************** - * Logging wrappers - **************************************************************************/ - - private void Loge(String log) { - Log.e(TAG, log); - } - - private void Logw(String log) { - Log.w(TAG, log); - } - - private void Logv(String log) { - Log.v(TAG, log); - } -} diff --git a/apps/SdkController/SdkControllerSensor/.classpath b/apps/SdkController/SdkControllerSensor/.classpath deleted file mode 100755 index 57a5df6..0000000 --- a/apps/SdkController/SdkControllerSensor/.classpath +++ /dev/null @@ -1,9 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
- <classpathentry kind="src" path="src"/>
- <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/.project b/apps/SdkController/SdkControllerSensor/.project deleted file mode 100755 index 4a5bf31..0000000 --- a/apps/SdkController/SdkControllerSensor/.project +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
- <name>SdkControllerSensor</name>
- <comment></comment>
- <projects>
- </projects>
- <buildSpec>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>org.eclipse.jdt.core.javabuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- <buildCommand>
- <name>com.android.ide.eclipse.adt.ApkBuilder</name>
- <arguments>
- </arguments>
- </buildCommand>
- </buildSpec>
- <natures>
- <nature>com.android.ide.eclipse.adt.AndroidNature</nature>
- <nature>org.eclipse.jdt.core.javanature</nature>
- </natures>
-</projectDescription>
diff --git a/apps/SdkController/SdkControllerSensor/AndroidManifest.xml b/apps/SdkController/SdkControllerSensor/AndroidManifest.xml deleted file mode 100755 index 62cc096..0000000 --- a/apps/SdkController/SdkControllerSensor/AndroidManifest.xml +++ /dev/null @@ -1,42 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<!--
-/*
- * Copyright 2010 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
--->
-<manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.tools.sdkcontroller.sdkcontrollersensor"
- android:versionCode="1"
- android:versionName="1.0" >
-
- <uses-sdk android:minSdkVersion="7" />
- <uses-permission android:name="android.permission.INTERNET" />
-
- <application
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name" >
- <activity
- android:label="@string/app_name"
- android:configChanges="orientation|keyboardHidden|mcc|mnc|locale|touchscreen|keyboard|navigation|screenLayout|fontScale"
- android:name=".SdkControllerSensorActivity" android:launchMode="singleInstance">
- <intent-filter >
- <action android:name="android.intent.action.MAIN" />
-
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
-
-</manifest>
diff --git a/apps/SdkController/SdkControllerSensor/project.properties b/apps/SdkController/SdkControllerSensor/project.properties deleted file mode 100755 index 1234e7b..0000000 --- a/apps/SdkController/SdkControllerSensor/project.properties +++ /dev/null @@ -1,12 +0,0 @@ -# This file is automatically generated by Android Tools. -# Do not modify this file -- YOUR CHANGES WILL BE ERASED! -# -# This file must be checked in Version Control Systems. -# -# To customize properties used by the Ant build system use, -# "ant.properties", and override values to adapt the script to your -# project structure. - -# Project target. -target=android-15 -android.library.reference.1=../SdkControllerLib diff --git a/apps/SdkController/SdkControllerSensor/res/drawable-hdpi/ic_launcher.png b/apps/SdkController/SdkControllerSensor/res/drawable-hdpi/ic_launcher.png Binary files differdeleted file mode 100755 index 8074c4c..0000000 --- a/apps/SdkController/SdkControllerSensor/res/drawable-hdpi/ic_launcher.png +++ /dev/null diff --git a/apps/SdkController/SdkControllerSensor/res/drawable-ldpi/ic_launcher.png b/apps/SdkController/SdkControllerSensor/res/drawable-ldpi/ic_launcher.png Binary files differdeleted file mode 100755 index 1095584..0000000 --- a/apps/SdkController/SdkControllerSensor/res/drawable-ldpi/ic_launcher.png +++ /dev/null diff --git a/apps/SdkController/SdkControllerSensor/res/drawable-mdpi/ic_launcher.png b/apps/SdkController/SdkControllerSensor/res/drawable-mdpi/ic_launcher.png Binary files differdeleted file mode 100755 index a07c69f..0000000 --- a/apps/SdkController/SdkControllerSensor/res/drawable-mdpi/ic_launcher.png +++ /dev/null diff --git a/apps/SdkController/SdkControllerSensor/res/layout/main.xml b/apps/SdkController/SdkControllerSensor/res/layout/main.xml deleted file mode 100644 index d3b9426..0000000 --- a/apps/SdkController/SdkControllerSensor/res/layout/main.xml +++ /dev/null @@ -1,25 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:orientation="vertical" >
-
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content" />
-
- <ScrollView
- android:id="@+id/scrollView1"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:layout_weight="1" > -
- <TableLayout
- android:id="@+id/tableLayout"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:saveEnabled="false" />
-
- </ScrollView>
-
-</LinearLayout>
\ No newline at end of file diff --git a/apps/SdkController/SdkControllerSensor/res/layout/one_row.xml b/apps/SdkController/SdkControllerSensor/res/layout/one_row.xml deleted file mode 100644 index b8dee45..0000000 --- a/apps/SdkController/SdkControllerSensor/res/layout/one_row.xml +++ /dev/null @@ -1,22 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent" > -
- <CheckBox
- android:id="@+id/row_checkbox"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Some CheckBox"
- android:saveEnabled="false"
- android:layout_marginRight="10dp" - /> -
- <TextView
- android:id="@+id/row_textview"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_weight="1"
- android:textAppearance="?android:attr/textAppearanceSmall" />
-
-</TableRow>
\ No newline at end of file diff --git a/apps/SdkController/SdkControllerSensor/res/values/strings.xml b/apps/SdkController/SdkControllerSensor/res/values/strings.xml deleted file mode 100755 index b082a67..0000000 --- a/apps/SdkController/SdkControllerSensor/res/values/strings.xml +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?>
-<resources>
- <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 deleted file mode 100755 index 34601e7..0000000 --- a/apps/SdkController/SdkControllerSensor/src/com/android/tools/sdkcontroller/sdkcontrollersensor/SdkControllerSensorActivity.java +++ /dev/null @@ -1,656 +0,0 @@ -/* - * Copyright (C) 2011 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); you may not - * use this file except in compliance with the License. You may obtain a copy of - * the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -package com.android.tools.sdkcontroller.sdkcontrollersensor; - -import java.util.ArrayList; -import java.util.List; - -import android.app.Activity; -import android.hardware.Sensor; -import android.hardware.SensorEvent; -import android.hardware.SensorEventListener; -import android.hardware.SensorManager; -import android.os.Bundle; -import android.util.Log; -import android.view.LayoutInflater; -import android.widget.CheckBox; -import android.widget.CompoundButton; -import android.widget.TableLayout; -import android.widget.TableRow; -import android.widget.TextView; -import android.widget.Toast; - -import com.android.tools.sdkcontroller.lib.EmulatorConnection; -import com.android.tools.sdkcontroller.lib.EmulatorConnection.EmulatorConnectionType; -import com.android.tools.sdkcontroller.lib.EmulatorListener; - -/** - * Encapsulates an application that monitors all sensors available on a device, - * and sends acquired sensor values to an Android Emulator application running - * on the host machine. This application is used to provide a realistic sensor - * emulation in Android Emulator. - */ -public class SdkControllerSensorActivity extends Activity implements EmulatorListener { - /** Tag for logging messages. */ - private static final String TAG = "SdkControllerSensor"; - - /** TCP over USB connection to the emulator. */ - private EmulatorConnection mEmulator; - /** Array containing monitored sensors. */ - private List<MonitoredSensor> mSensors; - /** Controls displayed list of sensors. */ - private TableLayout mTableLayout; - - /** - * Encapsulates a sensor that is being monitored. To monitor sensor changes - * each monitored sensor registers with sensor manager as a sensor listener. - * To control sensor monitoring from the UI, each monitored sensor has two - * UI controls associated with it: - A check box (named after sensor) that - * can be used to enable, or disable listening to the sensor changes. - A - * text view where current sensor value is displayed. - */ - private class MonitoredSensor implements SensorEventListener, - CompoundButton.OnCheckedChangeListener { - /** Sensor to monitor. */ - private final Sensor mSensor; - /** Check box representing the sensor on the screen. */ - private final CheckBox mChk; - /** Text view displaying the value of the sensor. */ - private final TextView mVal; - /** Emulator-friendly name for the sensor. */ - private String mEmulatorFriendlyName; - /** Formats string to show in the TextView. */ - private String mTextFmt; - /** Formats string to send to the emulator. */ - private String mMsgFmt; - /** - * Enabled state. This state is controlled by the emulator, that - * maintains its own list of sensors. So, if a sensor is missing, or is - * disabled in the emulator, it should be disabled in this application. - */ - private boolean mEnabled = false; - /** Checked state. */ - private boolean mChecked = true; - - /** - * Constructs MonitoredSensor instance, and register the listeners. - * - * @param sensor Sensor to monitor. - */ - MonitoredSensor(Sensor sensor) { - mSensor = sensor; - mChecked = true; - - // Add a row representing this sensor on the display - final LayoutInflater inflater = getLayoutInflater(); - final TableRow row = (TableRow) inflater.inflate(R.layout.one_row, mTableLayout, false); - mTableLayout.addView(row); - - // Initialize displayed checkbox for this sensor, and register - // checked state listener for it. - mChk = (CheckBox) row.findViewById(R.id.row_checkbox); - mChk.setChecked(true); - mChk.setOnCheckedChangeListener(this); - - // Initialize displayed text box for this sensor. - mVal = (TextView) row.findViewById(R.id.row_textview); - mVal.setText(""); - - // Set appropriate sensor name depending on the type. Unfortunately, - // we can't really use sensor.getName() here, since the value it - // returns (although resembles the purpose) is a bit vaguer than it - // should be. Also choose an appropriate format for the strings that - // display sensor's value, and strings that are sent to the - // emulator. - switch (sensor.getType()) { - case Sensor.TYPE_ACCELEROMETER: - mChk.setText("Accelerometer"); - // 3 floats. - mTextFmt = "%+.2f %+.2f %+.2f"; - mEmulatorFriendlyName = "acceleration"; - mMsgFmt = mEmulatorFriendlyName + ":%g:%g:%g\0"; - break; - case 9: // Sensor.TYPE_GRAVITY is missing in API 7 - // 3 floats. - mChk.setText("Gravity"); - mTextFmt = "%+.2f %+.2f %+.2f"; - mEmulatorFriendlyName = "gravity"; - mMsgFmt = mEmulatorFriendlyName + ":%g:%g:%g\0"; - break; - case Sensor.TYPE_GYROSCOPE: - mChk.setText("Gyroscope"); - // 3 floats. - mTextFmt = "%+.2f %+.2f %+.2f"; - mEmulatorFriendlyName = "gyroscope"; - mMsgFmt = mEmulatorFriendlyName + ":%g:%g:%g\0"; - break; - case Sensor.TYPE_LIGHT: - mChk.setText("Light"); - // 1 integer. - mTextFmt = "%.0f"; - mEmulatorFriendlyName = "light"; - mMsgFmt = mEmulatorFriendlyName + ":%g\0"; - break; - case 10: // Sensor.TYPE_LINEAR_ACCELERATION is missing in API 7 - mChk.setText("Linear acceleration"); - // 3 floats. - mTextFmt = "%+.2f %+.2f %+.2f"; - mEmulatorFriendlyName = "linear-acceleration"; - mMsgFmt = mEmulatorFriendlyName + ":%g:%g:%g\0"; - break; - case Sensor.TYPE_MAGNETIC_FIELD: - mChk.setText("Magnetic field"); - // 3 floats. - mTextFmt = "%+.2f %+.2f %+.2f"; - mEmulatorFriendlyName = "magnetic-field"; - mMsgFmt = mEmulatorFriendlyName + ":%g:%g:%g\0"; - break; - case Sensor.TYPE_ORIENTATION: - mChk.setText("Orientation"); - // 3 integers. - mTextFmt = "%+03.0f %+03.0f %+03.0f"; - mEmulatorFriendlyName = "orientation"; - mMsgFmt = mEmulatorFriendlyName + ":%g:%g:%g\0"; - break; - case Sensor.TYPE_PRESSURE: - mChk.setText("Pressure"); - // 1 integer. - mTextFmt = "%.0f"; - mEmulatorFriendlyName = "pressure"; - mMsgFmt = mEmulatorFriendlyName + ":%g\0"; - break; - case Sensor.TYPE_PROXIMITY: - mChk.setText("Proximity"); - // 1 integer. - mTextFmt = "%.0f"; - mEmulatorFriendlyName = "proximity"; - mMsgFmt = mEmulatorFriendlyName + ":%g\0"; - break; - case 11: // Sensor.TYPE_ROTATION_VECTOR is missing in API 7 - mChk.setText("Rotation"); - // 3 floats. - mTextFmt = "%+.2f %+.2f %+.2f"; - mEmulatorFriendlyName = "rotation"; - mMsgFmt = mEmulatorFriendlyName + ":%g:%g:%g\0"; - break; - case Sensor.TYPE_TEMPERATURE: - mChk.setText("Temperature"); - // 1 integer. - mTextFmt = "%.0f"; - mEmulatorFriendlyName = "tempterature"; - mMsgFmt = mEmulatorFriendlyName + ":%g\0"; - break; - default: - mChk.setText("<Unknown>"); - mTextFmt = "N/A"; - mEmulatorFriendlyName = "unknown"; - mMsgFmt = mEmulatorFriendlyName + "\0"; - Loge("Unknown sensor type " + mSensor.getType() + " for sensor " - + mSensor.getName()); - break; - } - } - - /** - * Gets sensor type. - * - * @return Sensor type as one of the Sensor.TYPE_XXX constants. - */ - private int getType() { - return mSensor.getType(); - } - - /** - * Gets sensor's emulator-friendly name. - * - * @return Sensor's emulator-friendly name. - */ - private String getEmulatorFriendlyName() { - return mEmulatorFriendlyName; - } - - /** - * Starts monitoring the sensor. NOTE: This method is called from - * outside of the UI thread. - */ - private void startListening() { - if (mEnabled && mChecked) { - Logv("+++ Sensor " + getEmulatorFriendlyName() + " is started."); - SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE); - sm.registerListener(this, mSensor, SensorManager.SENSOR_DELAY_UI); - } - } - - /** - * Stops monitoring the sensor. NOTE: This method is called from outside - * of the UI thread. - */ - private void stopListening() { - Logv("--- Sensor " + getEmulatorFriendlyName() + " is stopped."); - SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE); - sm.unregisterListener(this); - } - - /** - * Enables sensor events. NOTE: This method is called from outside of - * the UI thread. - */ - private void enableSensor() { - Logv(">>> Sensor " + getEmulatorFriendlyName() + " is enabled."); - mEnabled = true; - mChk.post(new Runnable() { - @Override - public void run() { - mChk.setEnabled(true); - mVal.setText(""); - mVal.setEnabled(true); - } - }); - } - - /** - * Disables sensor events. NOTE: This method is called from outside of - * the UI thread. - */ - private void disableSensor() { - Logv("<<< Sensor " + getEmulatorFriendlyName() + " is disabled."); - mEnabled = false; - mChk.post(new Runnable() { - @Override - public void run() { - mChk.setEnabled(false); - mVal.setText("Disabled"); - mVal.setEnabled(false); - } - }); - } - - /** - * Handles checked state change for the associated CheckBox. If check - * box is checked we will register sensor change listener. If it is - * unchecked, we will unregister sensor change listener. - */ - @Override - public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { - mChecked = isChecked; - if (isChecked) { - startListening(); - } else { - stopListening(); - } - } - - /** - * Handles "sensor changed" event. This is an implementation of the - * SensorEventListener interface. - */ - @Override - public void onSensorChanged(SensorEvent event) { - // Display current sensor value, and format message that will be - // sent to the emulator. - final int nArgs = event.values.length; - String msg; - String val; - if (nArgs == 3) { - val = String.format(mTextFmt, event.values[0], event.values[1], event.values[2]); - msg = String.format(mMsgFmt, event.values[0], event.values[1], event.values[2]); - } else if (nArgs == 2) { - val = String.format(mTextFmt, event.values[0], event.values[1]); - msg = String.format(mMsgFmt, event.values[0], event.values[1]); - } else if (nArgs == 1) { - val = String.format(mTextFmt, event.values[0]); - msg = String.format(mMsgFmt, event.values[0]); - } else { - Loge("Unexpected number of values " + event.values.length - + " in onSensorChanged for sensor " + mSensor.getName()); - return; - } - mVal.setText(val); - sendSensorEvent(msg); - } - - /** - * Handles "sensor accuracy changed" event. This is an implementation of - * the SensorEventListener interface. - */ - @Override - public void onAccuracyChanged(Sensor sensor, int accuracy) { - } - } // MonitoredSensor - - /*************************************************************************** - * SdkControllerSensor implementation - **************************************************************************/ - - /** Called when the activity is first created. */ - @Override - public void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); - setContentView(R.layout.main); - - mTableLayout = (TableLayout) findViewById(R.id.tableLayout); - - // Iterate through the available sensors, adding them to the array. - mSensors = new ArrayList<MonitoredSensor>(); - SensorManager sm = (SensorManager) getSystemService(SENSOR_SERVICE); - List<Sensor> sensors = sm.getSensorList(Sensor.TYPE_ALL); - int cur_index = 0; - for (int n = 0; n < sensors.size(); n++) { - Sensor avail_sensor = sensors.get(n); - - // There can be multiple sensors of the same type. We need only one. - if (!isSensorTypeAlreadyMonitored(avail_sensor.getType())) { - // The first sensor we've got for the given type is not - // necessarily the right one. So, use the default sensor - // for the given type. - Sensor def_sens = sm.getDefaultSensor(avail_sensor.getType()); - MonitoredSensor to_add = new MonitoredSensor(def_sens); - cur_index++; - mSensors.add(to_add); - Logv(String.format("Monitoring sensor #%02d: Name = '%s', Type = 0x%x", - cur_index, def_sens.getName(), def_sens.getType())); - } - } - - // Instantiate emulator connector. - // 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(this); - mEmulator.connect(EmulatorConnection.SENSORS_PORT, - EmulatorConnectionType.SYNC_CONNECTION); - } - - @Override - protected void onPause() { - super.onPause(); - - if (mEmulator != null) { - mEmulator.setEmulatorListener(null); - mEmulator.disconnect(); - mEmulator = null; - } - } - - /** - * Sends sensor's event to the emulator. - * - * @param msg Sensor's event message. - */ - public void sendSensorEvent(String msg) { - mEmulator.sendNotification(msg); - } - - /*************************************************************************** - * EmulatorListener implementation - **************************************************************************/ - - /** - * Called when emulator is connected. NOTE: This method is called from the - * I/O loop, so all communication with the emulator will be "on hold" until - * this method returns. - */ - @Override - public void onEmulatorConnected() { - } - - /** - * Called when emulator is disconnected. - */ - @Override - public void onEmulatorDisconnected() { - // Stop listening to sensors, and let it cool for a sec... - stopSensors(); - try { - Thread.sleep(500); - } catch (Exception e) { - } - - // Instantiate emulator connector for the next client. - // This will call onEmulatorBindResult with the result. - mEmulator = new EmulatorConnection(this); - mEmulator.connect(EmulatorConnection.SENSORS_PORT, - EmulatorConnectionType.SYNC_CONNECTION); - } - - /** - * 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(); - } - } - - /** - * Called when a query is received from the emulator. NOTE: This method is - * called from the I/O loop. - * - * @param query Name of the query received from the emulator. The allowed - * queries are: 'list' - Lists sensors that are monitored by this - * application. The application replies to this command with a - * string: 'List:<name1>\n<name2>\n...<nameN>\n\0" 'start' - - * Starts monitoring sensors. There is no reply for this command. - * 'stop' - Stops monitoring sensors. There is no reply for this - * command. 'enable:<sensor|all> - Enables notifications for a - * sensor / all sensors. 'disable:<sensor|all> - Disables - * notifications for a sensor / all sensors. - * @param param Query parameters. - * @return Zero-terminated reply string. String must be formatted as such: - * "ok|ko[:reply data]" - */ - @Override - public String onEmulatorQuery(String query, String param) { - if (query.contentEquals("list")) { - return onQueryList(); - } else if (query.contentEquals("start")) { - return onQueryStart(); - } else if (query.contentEquals("stop")) { - return onQueryStop(); - } else if (query.contentEquals("enable")) { - return onQueryEnable(param); - } else if (query.contentEquals("disable")) { - return onQueryDisable(param); - } else { - Loge("Unknown query " + query + "(" + param + ")"); - return "ko:Query is unknown\0"; - } - } - - /** - * Called when a BLOB query is received from the emulator. NOTE: This method - * is called from the I/O loop, so all communication with the emulator will - * be "on hold" until this method returns. - * - * @param array contains BLOB data for the query. - * @return Zero-terminated reply string. String must be formatted as such: - * "ok|ko[:reply data]" - */ - @Override - public String onEmulatorBlobQuery(byte[] array) { - return "ko:Unexpected\0"; - } - - /*************************************************************************** - * Query handlers - **************************************************************************/ - - /** - * Handles 'list' query. - * - * @return List of emulator-friendly names for sensors that are available on - * the device. - */ - private String onQueryList() { - // List monitored sensors. - String list = "ok:"; - for (int n = 0; n < mSensors.size(); n++) { - list += mSensors.get(n).getEmulatorFriendlyName(); - list += "\n"; - } - list += '\0'; // Response must end with zero-terminator. - return list; - } - - /** - * Handles 'start' query. - * - * @return Empty string. This is a "command" query that doesn't assume any - * response. - */ - private String onQueryStart() { - startSensors(); - return "ok\0"; - } - - /** - * Handles 'stop' query. - * - * @return Empty string. This is a "command" query that doesn't assume any - * response. - */ - private String onQueryStop() { - stopSensors(); - return "ok\0"; - } - - /** - * Handles 'enable' query. - * - * @param param Sensor selector: - all Enables all available sensors, or - - * <name> Emulator-friendly name of a sensor to enable. - * @return "ok" / "ko": success / failure. - */ - private String onQueryEnable(String param) { - if (param.contentEquals("all")) { - // Enable all sensors. - for (int n = 0; n < mSensors.size(); n++) { - mSensors.get(n).enableSensor(); - } - return "ok\0"; - } - - // Lookup sensor by emulator-friendly name. - MonitoredSensor sensor = getSensorByEFN(param); - if (sensor != null) { - sensor.enableSensor(); - return "ok\0"; - } else { - return "ko:Sensor not found\0"; - } - } - - /** - * Handles 'disable' query. - * - * @param param Sensor selector: - all Disables all available sensors, or - - * <name> Emulator-friendly name of a sensor to disable. - * @return "ok" / "ko": success / failure. - */ - private String onQueryDisable(String param) { - if (param.contentEquals("all")) { - // Disable all sensors. - for (int n = 0; n < mSensors.size(); n++) { - mSensors.get(n).disableSensor(); - } - return "ok\0"; - } - - // Lookup sensor by emulator-friendly name. - MonitoredSensor sensor = getSensorByEFN(param); - if (sensor != null) { - sensor.disableSensor(); - return "ok\0"; - } else { - return "ko:Sensor not found\0"; - } - } - - /*************************************************************************** - * Internals - **************************************************************************/ - - /** - * Start listening to all monitored sensors. - */ - private void startSensors() { - for (int n = 0; n < mSensors.size(); n++) { - mSensors.get(n).startListening(); - } - } - - /** - * Stop listening to all monitored sensors. - */ - private void stopSensors() { - for (int n = 0; n < mSensors.size(); n++) { - mSensors.get(n).stopListening(); - } - } - - /** - * Checks if a sensor for the given type is already monitored. - * - * @param type Sensor type (one of the Sensor.TYPE_XXX constants) - * @return true if a sensor for the given type is already monitored, or - * false if the sensor is not monitored. - */ - private boolean isSensorTypeAlreadyMonitored(int type) { - for (int n = 0; n < mSensors.size(); n++) { - if (mSensors.get(n).getType() == type) { - return true; - } - } - return false; - } - - /** - * Looks up a monitored sensor by its emulator-friendly name. - * - * @param name Emulator-friendly name to look up the monitored sensor for. - * @return Monitored sensor for the fiven name, or null if sensor was not - * found. - */ - private MonitoredSensor getSensorByEFN(String name) { - for (int n = 0; n < mSensors.size(); n++) { - MonitoredSensor sensor = mSensors.get(n); - if (sensor.mEmulatorFriendlyName.contentEquals(name)) { - return sensor; - } - } - return null; - } - - /*************************************************************************** - * Logging wrappers - **************************************************************************/ - - private void Loge(String log) { - Log.e(TAG, log); - } - - private void Logv(String log) { - Log.v(TAG, log); - } - -} // SdkControllerSensor diff --git a/apps/SdkController/SdkControllerApp/assets/intro_help.html b/apps/SdkController/assets/intro_help.html index 000efa4..000efa4 100755 --- a/apps/SdkController/SdkControllerApp/assets/intro_help.html +++ b/apps/SdkController/assets/intro_help.html diff --git a/apps/SdkController/SdkControllerApp/proguard-project.txt b/apps/SdkController/proguard-project.txt index f2fe155..f2fe155 100755 --- a/apps/SdkController/SdkControllerApp/proguard-project.txt +++ b/apps/SdkController/proguard-project.txt diff --git a/apps/SdkController/SdkControllerApp/project.properties b/apps/SdkController/project.properties index 3b50fc7..9c52cb1 100755 --- a/apps/SdkController/SdkControllerApp/project.properties +++ b/apps/SdkController/project.properties @@ -12,4 +12,3 @@ # Project target. target=android-15 -android.library.reference.1=../SdkControllerLib diff --git a/apps/SdkController/SdkControllerApp/res/drawable-hdpi/ic_launcher.png b/apps/SdkController/res/drawable-hdpi/ic_launcher.png Binary files differindex 96a442e..96a442e 100755 --- a/apps/SdkController/SdkControllerApp/res/drawable-hdpi/ic_launcher.png +++ b/apps/SdkController/res/drawable-hdpi/ic_launcher.png diff --git a/apps/SdkController/SdkControllerApp/res/drawable-ldpi/ic_launcher.png b/apps/SdkController/res/drawable-ldpi/ic_launcher.png Binary files differindex 9923872..9923872 100755 --- a/apps/SdkController/SdkControllerApp/res/drawable-ldpi/ic_launcher.png +++ b/apps/SdkController/res/drawable-ldpi/ic_launcher.png diff --git a/apps/SdkController/SdkControllerApp/res/drawable-mdpi/ic_launcher.png b/apps/SdkController/res/drawable-mdpi/ic_launcher.png Binary files differindex 359047d..359047d 100755 --- a/apps/SdkController/SdkControllerApp/res/drawable-mdpi/ic_launcher.png +++ b/apps/SdkController/res/drawable-mdpi/ic_launcher.png diff --git a/apps/SdkController/SdkControllerApp/res/drawable-xhdpi/ic_launcher.png b/apps/SdkController/res/drawable-xhdpi/ic_launcher.png Binary files differindex 71c6d76..71c6d76 100755 --- a/apps/SdkController/SdkControllerApp/res/drawable-xhdpi/ic_launcher.png +++ b/apps/SdkController/res/drawable-xhdpi/ic_launcher.png diff --git a/apps/SdkController/SdkControllerApp/res/layout-land/sensors.xml b/apps/SdkController/res/layout-land/sensors.xml index 2d14089..2d14089 100755 --- a/apps/SdkController/SdkControllerApp/res/layout-land/sensors.xml +++ b/apps/SdkController/res/layout-land/sensors.xml diff --git a/apps/SdkController/SdkControllerApp/res/layout/main.xml b/apps/SdkController/res/layout/main.xml index 1a98d9e..1a98d9e 100755 --- a/apps/SdkController/SdkControllerApp/res/layout/main.xml +++ b/apps/SdkController/res/layout/main.xml diff --git a/apps/SdkController/SdkControllerApp/res/layout/multitouch.xml b/apps/SdkController/res/layout/multitouch.xml index 0aec0fb..0aec0fb 100755 --- a/apps/SdkController/SdkControllerApp/res/layout/multitouch.xml +++ b/apps/SdkController/res/layout/multitouch.xml diff --git a/apps/SdkController/SdkControllerApp/res/layout/sensor_row.xml b/apps/SdkController/res/layout/sensor_row.xml index e02bae7..e02bae7 100755 --- a/apps/SdkController/SdkControllerApp/res/layout/sensor_row.xml +++ b/apps/SdkController/res/layout/sensor_row.xml diff --git a/apps/SdkController/SdkControllerApp/res/layout/sensors.xml b/apps/SdkController/res/layout/sensors.xml index 8f5df34..8f5df34 100755 --- a/apps/SdkController/SdkControllerApp/res/layout/sensors.xml +++ b/apps/SdkController/res/layout/sensors.xml diff --git a/apps/SdkController/SdkControllerApp/res/values-v11/styles_v11.xml b/apps/SdkController/res/values-v11/styles_v11.xml index 6f58f57..6f58f57 100755 --- a/apps/SdkController/SdkControllerApp/res/values-v11/styles_v11.xml +++ b/apps/SdkController/res/values-v11/styles_v11.xml diff --git a/apps/SdkController/SdkControllerApp/res/values/strings.xml b/apps/SdkController/res/values/strings.xml index bb8a1c0..bb8a1c0 100755 --- a/apps/SdkController/SdkControllerApp/res/values/strings.xml +++ b/apps/SdkController/res/values/strings.xml diff --git a/apps/SdkController/SdkControllerApp/res/values/styles.xml b/apps/SdkController/res/values/styles.xml index 376a577..376a577 100755 --- a/apps/SdkController/SdkControllerApp/res/values/styles.xml +++ b/apps/SdkController/res/values/styles.xml diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/BaseBindingActivity.java b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/BaseBindingActivity.java index ab5306d..ab5306d 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/BaseBindingActivity.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/BaseBindingActivity.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/MainActivity.java b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/MainActivity.java index 4769245..4769245 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/MainActivity.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/MainActivity.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/MultiTouchActivity.java b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/MultiTouchActivity.java index f22f12f..f22f12f 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/MultiTouchActivity.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/MultiTouchActivity.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/SensorActivity.java b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/SensorActivity.java index 5055c23..5055c23 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/activities/SensorActivity.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/activities/SensorActivity.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/BaseHandler.java b/apps/SdkController/src/com/android/tools/sdkcontroller/handlers/BaseHandler.java index b15b8c1..b15b8c1 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/BaseHandler.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/handlers/BaseHandler.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/MultiTouchHandler.java b/apps/SdkController/src/com/android/tools/sdkcontroller/handlers/MultiTouchHandler.java index 6f64485..6f64485 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/MultiTouchHandler.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/handlers/MultiTouchHandler.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/SensorsHandler.java b/apps/SdkController/src/com/android/tools/sdkcontroller/handlers/SensorsHandler.java index 498b86d..498b86d 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/handlers/SensorsHandler.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/handlers/SensorsHandler.java diff --git a/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/EmulatorConnection.java b/apps/SdkController/src/com/android/tools/sdkcontroller/lib/EmulatorConnection.java index f7682f8..f7682f8 100755 --- a/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/EmulatorConnection.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/lib/EmulatorConnection.java diff --git a/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/EmulatorListener.java b/apps/SdkController/src/com/android/tools/sdkcontroller/lib/EmulatorListener.java index 4d2a19f..4d2a19f 100644 --- a/apps/SdkController/SdkControllerLib/src/com/android/tools/sdkcontroller/lib/EmulatorListener.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/lib/EmulatorListener.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/service/ControllerService.java b/apps/SdkController/src/com/android/tools/sdkcontroller/service/ControllerService.java index cd35833..cd35833 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/service/ControllerService.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/service/ControllerService.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/utils/ApiHelper.java b/apps/SdkController/src/com/android/tools/sdkcontroller/utils/ApiHelper.java index 956885b..956885b 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/utils/ApiHelper.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/utils/ApiHelper.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/utils/ApiHelper_11.java b/apps/SdkController/src/com/android/tools/sdkcontroller/utils/ApiHelper_11.java index fcbde6f..fcbde6f 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/utils/ApiHelper_11.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/utils/ApiHelper_11.java diff --git a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/views/MultiTouchView.java b/apps/SdkController/src/com/android/tools/sdkcontroller/views/MultiTouchView.java index d612769..d612769 100755 --- a/apps/SdkController/SdkControllerApp/src/com/android/tools/sdkcontroller/views/MultiTouchView.java +++ b/apps/SdkController/src/com/android/tools/sdkcontroller/views/MultiTouchView.java |