From 4a845fe93e517100010af104fa1f324b4e88031e Mon Sep 17 00:00:00 2001 From: talregev Date: Sun, 8 Feb 2015 22:31:28 +0200 Subject: [PATCH 1/3] change it as a module (and not standlon project) can compile as part of android_core project. (another library). --- .gitignore | 2 + build.gradle | 54 ++++---- build.xml | 92 ------------- create_project.sh | 1 - gradle.properties | 1 - gradle/wrapper/gradle-wrapper.jar | Bin 45332 -> 0 bytes gradle/wrapper/gradle-wrapper.properties | 6 - gradlew | 164 ----------------------- gradlew.bat | 90 ------------- manifest.xml | 12 -- proguard.cfg | 36 ----- project.properties | 16 --- 12 files changed, 25 insertions(+), 449 deletions(-) delete mode 100644 build.xml delete mode 100755 create_project.sh delete mode 100644 gradle.properties delete mode 100644 gradle/wrapper/gradle-wrapper.jar delete mode 100644 gradle/wrapper/gradle-wrapper.properties delete mode 100755 gradlew delete mode 100644 gradlew.bat delete mode 100644 manifest.xml delete mode 100644 proguard.cfg delete mode 100644 project.properties diff --git a/.gitignore b/.gitignore index 46156a4..1823e7d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,4 @@ local.properties proguard-project.txt +/build/ +*.iml diff --git a/build.gradle b/build.gradle index b8f8bef..8fde7ae 100644 --- a/build.gradle +++ b/build.gradle @@ -14,40 +14,32 @@ * the License. */ -task wrapper(type: Wrapper) { - gradleVersion = '1.0-milestone-9' -} - -allprojects { - group 'ros.android_app_manager' - version = '0.0.0-SNAPSHOT' -} +group 'org.ros.android_app_manager' +version = '0.1.0' -repositories { - mavenLocal() - mavenCentral() +dependencies { + compile "org.ros.rosjava_core:rosjava:0.2.0" + compile "org.ros.rosjava_messages:std_msgs:[0.5,0.6)" + compile "org.ros.rosjava_messages:tf:1.11.4" + compile "org.ros.rosjava_messages:diagnostic_msgs:[0,)" + compile "org.ros.rosjava_messages:pr2_msgs:1.11.4" + compile "org.ros.rosjava_messages:pr2_power_board:1.1.2" + compile "org.ros.rosjava_messages:std_srvs:1.10.12" + compile "org.ros.rosjava_messages:app_manager:1.0.2" + compile "org.ros.rosjava_messages:create_node:2.2.1" + compile fileTree(dir: 'libs', include: ['*.jar']) } -configurations.add('compile') { - exclude group: 'junit' - exclude group: 'xml-apis' -} +apply plugin: "com.android.library" -task deployLibs(type: Copy) { - from { configurations.compile } - into "${projectDir}/libs" -} - -task clean << { - ant.delete file: "${projectDir}/local.properties" - ant.delete file: "${projectDir}/proguard-project.txt" - ant.delete file: "${projectDir}/build.xml" - ant.delete dir: "${projectDir}/bin" - ant.delete dir: "${projectDir}/gen" - ant.delete dir: "${projectDir}/libs" -} +android { + compileSdkVersion 10 -task debug(type: Exec) { - dependsOn deployLibs - commandLine 'ant', 'debug' + defaultConfig { + minSdkVersion 10 + //applicationId "org.ros.android.android_10" + targetSdkVersion 10 + versionCode 1 + versionName "1.0" + } } diff --git a/build.xml b/build.xml deleted file mode 100644 index ffb5b6a..0000000 --- a/build.xml +++ /dev/null @@ -1,92 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/create_project.sh b/create_project.sh deleted file mode 100755 index 54b2e30..0000000 --- a/create_project.sh +++ /dev/null @@ -1 +0,0 @@ -android update lib-project --target 11 --path . diff --git a/gradle.properties b/gradle.properties deleted file mode 100644 index 1a644c7..0000000 --- a/gradle.properties +++ /dev/null @@ -1 +0,0 @@ -org.gradle.daemon=true diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar deleted file mode 100644 index 5437731f7edebd8ce962fd1bdb09ce776087a394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45332 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 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties deleted file mode 100644 index a11773b..0000000 --- a/gradle/wrapper/gradle-wrapper.properties +++ /dev/null @@ -1,6 +0,0 @@ -#Thu Mar 29 16:06:14 CEST 2012 -distributionBase=GRADLE_USER_HOME -distributionPath=wrapper/dists -zipStoreBase=GRADLE_USER_HOME -zipStorePath=wrapper/dists -distributionUrl=http\://services.gradle.org/distributions/gradle-1.0-milestone-9-bin.zip diff --git a/gradlew b/gradlew deleted file mode 100755 index ae91ed9..0000000 --- a/gradlew +++ /dev/null @@ -1,164 +0,0 @@ -#!/bin/bash - -############################################################################## -## -## Gradle start up script for UN*X -## -############################################################################## - -# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -DEFAULT_JVM_OPTS="" - -APP_NAME="Gradle" -APP_BASE_NAME=`basename "$0"` - -# Use the maximum available, or set MAX_FD != -1 to use that value. -MAX_FD="maximum" - -warn ( ) { - echo "$*" -} - -die ( ) { - echo - echo "$*" - echo - exit 1 -} - -# OS specific support (must be 'true' or 'false'). -cygwin=false -msys=false -darwin=false -case "`uname`" in - CYGWIN* ) - cygwin=true - ;; - Darwin* ) - darwin=true - ;; - MINGW* ) - msys=true - ;; -esac - -# For Cygwin, ensure paths are in UNIX format before anything is touched. -if $cygwin ; then - [ -n "$JAVA_HOME" ] && JAVA_HOME=`cygpath --unix "$JAVA_HOME"` -fi - -# Attempt to set APP_HOME -# Resolve links: $0 may be a link -PRG="$0" -# Need this for relative symlinks. -while [ -h "$PRG" ] ; do - ls=`ls -ld "$PRG"` - link=`expr "$ls" : '.*-> \(.*\)$'` - if expr "$link" : '/.*' > /dev/null; then - PRG="$link" - else - PRG=`dirname "$PRG"`"/$link" - fi -done -SAVED="`pwd`" -cd "`dirname \"$PRG\"`/" -APP_HOME="`pwd -P`" -cd "$SAVED" - -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar - -# Determine the Java command to use to start the JVM. -if [ -n "$JAVA_HOME" ] ; then - if [ -x "$JAVA_HOME/jre/sh/java" ] ; then - # IBM's JDK on AIX uses strange locations for the executables - JAVACMD="$JAVA_HOME/jre/sh/java" - else - JAVACMD="$JAVA_HOME/bin/java" - fi - if [ ! -x "$JAVACMD" ] ; then - die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." - fi -else - JAVACMD="java" - which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. - -Please set the JAVA_HOME variable in your environment to match the -location of your Java installation." -fi - -# Increase the maximum file descriptors if we can. -if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then - MAX_FD_LIMIT=`ulimit -H -n` - if [ $? -eq 0 ] ; then - if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then - MAX_FD="$MAX_FD_LIMIT" - fi - ulimit -n $MAX_FD - if [ $? -ne 0 ] ; then - warn "Could not set maximum file descriptor limit: $MAX_FD" - fi - else - warn "Could not query businessSystem maximum file descriptor limit: $MAX_FD_LIMIT" - fi -fi - -# For Darwin, add options to specify how the application appears in the dock -if $darwin; then - JAVA_OPTS="$JAVA_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" -fi - -# For Cygwin, switch paths to Windows format before running java -if $cygwin ; then - APP_HOME=`cygpath --path --mixed "$APP_HOME"` - CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` - - # We build the pattern for arguments to be converted via cygpath - ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` - SEP="" - for dir in $ROOTDIRSRAW ; do - ROOTDIRS="$ROOTDIRS$SEP$dir" - SEP="|" - done - OURCYGPATTERN="(^($ROOTDIRS))" - # Add a user-defined pattern to the cygpath arguments - if [ "$GRADLE_CYGPATTERN" != "" ] ; then - OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" - fi - # Now convert the arguments - kludge to limit ourselves to /bin/sh - i=0 - for arg in "$@" ; do - CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` - CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option - - if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition - eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` - else - eval `echo args$i`="\"$arg\"" - fi - i=$((i+1)) - done - case $i in - (0) set -- ;; - (1) set -- "$args0" ;; - (2) set -- "$args0" "$args1" ;; - (3) set -- "$args0" "$args1" "$args2" ;; - (4) set -- "$args0" "$args1" "$args2" "$args3" ;; - (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; - (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; - (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; - (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; - (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; - esac -fi - -# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules -function splitJvmOpts() { - JVM_OPTS=("$@") -} -eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS -JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" - -exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" diff --git a/gradlew.bat b/gradlew.bat deleted file mode 100644 index aec9973..0000000 --- a/gradlew.bat +++ /dev/null @@ -1,90 +0,0 @@ -@if "%DEBUG%" == "" @echo off -@rem ########################################################################## -@rem -@rem Gradle startup script for Windows -@rem -@rem ########################################################################## - -@rem Set local scope for the variables with windows NT shell -if "%OS%"=="Windows_NT" setlocal - -@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. -set DEFAULT_JVM_OPTS= - -set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. -set APP_BASE_NAME=%~n0 -set APP_HOME=%DIRNAME% - -@rem Find java.exe -if defined JAVA_HOME goto findJavaFromJavaHome - -set JAVA_EXE=java.exe -%JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto init - -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:findJavaFromJavaHome -set JAVA_HOME=%JAVA_HOME:"=% -set JAVA_EXE=%JAVA_HOME%/bin/java.exe - -if exist "%JAVA_EXE%" goto init - -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. - -goto fail - -:init -@rem Get command-line arguments, handling Windowz variants - -if not "%OS%" == "Windows_NT" goto win9xME_args -if "%@eval[2+2]" == "4" goto 4NT_args - -:win9xME_args -@rem Slurp the command line arguments. -set CMD_LINE_ARGS= -set _SKIP=2 - -:win9xME_args_slurp -if "x%~1" == "x" goto execute - -set CMD_LINE_ARGS=%* -goto execute - -:4NT_args -@rem Get arguments from the 4NT Shell from JP Software -set CMD_LINE_ARGS=%$ - -:execute -@rem Setup the command line - -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar - -@rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% - -:end -@rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd - -:fail -rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of -rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 - -:mainEnd -if "%OS%"=="Windows_NT" endlocal - -:omega diff --git a/manifest.xml b/manifest.xml deleted file mode 100644 index 33c833e..0000000 --- a/manifest.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - Client side code for accessing the app manager from Android, plus some client apps which use it. - - - Dave Hershberger/hersh@willowgarage.com, Ken Conley/kwc@willowgarage.com - BSD - - http://ros.org/wiki/appman_android - - diff --git a/proguard.cfg b/proguard.cfg deleted file mode 100644 index 12dd039..0000000 --- a/proguard.cfg +++ /dev/null @@ -1,36 +0,0 @@ --optimizationpasses 5 --dontusemixedcaseclassnames --dontskipnonpubliclibraryclasses --dontpreverify --verbose --optimizations !code/simplification/arithmetic,!field/*,!class/merging/* - --keep public class * extends android.app.Activity --keep public class * extends android.app.Application --keep public class * extends android.app.Service --keep public class * extends android.content.BroadcastReceiver --keep public class * extends android.content.ContentProvider --keep public class * extends android.app.backup.BackupAgentHelper --keep public class * extends android.preference.Preference --keep public class com.android.vending.licensing.ILicensingService - --keepclasseswithmembernames class * { - native ; -} - --keepclasseswithmembernames class * { - public (android.content.Context, android.util.AttributeSet); -} - --keepclasseswithmembernames class * { - public (android.content.Context, android.util.AttributeSet, int); -} - --keepclassmembers enum * { - public static **[] values(); - public static ** valueOf(java.lang.String); -} - --keep class * implements android.os.Parcelable { - public static final android.os.Parcelable$Creator *; -} diff --git a/project.properties b/project.properties deleted file mode 100644 index c84ac9a..0000000 --- a/project.properties +++ /dev/null @@ -1,16 +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 edit -# "ant.properties", and override values to adapt the script to your -# project structure. -# -# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home): -#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt - -# Project target. -target=android-17 -android.library=true -android.library.reference.1=../android_core/android_gingerbread_mr1/ From b1ec11d3e0b8599a7288d5d08fbb63f6e52b3f17 Mon Sep 17 00:00:00 2001 From: talregev Date: Mon, 9 Feb 2015 02:16:25 +0200 Subject: [PATCH 2/3] change to org.ros.android package (insted ros.android). fix AndroidManifest too. --- AndroidManifest.xml | 18 +++++--- build.gradle | 3 +- .../activity/AppChooserRedirectActivity.java | 2 +- .../ros/android/activity/AppManager.java | 10 +++-- .../AppManagerNotAvailableException.java | 2 +- .../android/activity/AppStartCallback.java | 2 +- .../ros/android/activity/MasterAdapter.java | 5 ++- .../activity/MasterChooserActivity.java | 36 ++++++++-------- .../ros/android/activity/MasterItem.java | 15 ++++--- .../ros/android/activity/RosActivity.java | 43 ++++++++----------- .../ros/android/activity/RosAppActivity.java | 28 ++++++------ .../ros/android/util/ControlChecker.java | 12 +++--- .../util/CurrentRobotContentProvider.java | 4 +- src/{ => org}/ros/android/util/Dashboard.java | 10 ++--- .../ros/android/util/FingerReceiver.java | 2 +- .../ros/android/util/FingerTracker.java | 2 +- .../InvalidRobotDescriptionException.java | 2 +- .../ros/android/util/MasterChecker.java | 10 ++--- .../ros/android/util/MasterChooser.java | 32 +++++++------- .../android/util/PlaneTfChangeListener.java | 20 ++++----- src/{ => org}/ros/android/util/Posable.java | 2 +- .../ros/android/util/RobotDescription.java | 6 +-- src/{ => org}/ros/android/util/RobotId.java | 2 +- .../android/util/RobotsContentProvider.java | 4 +- .../ros/android/util/SdCardSetup.java | 3 +- .../ros/android/util/WiFiChecker.java | 11 ++--- .../android/util/zxing/IntentIntegrator.java | 4 +- .../ros/android/util/zxing/IntentResult.java | 2 +- .../ros/android/views/BatteryLevelView.java | 6 +-- .../ros/android/views/BitmapDisplay.java | 3 +- .../android/views/CheckableLinearLayout.java | 6 +-- .../ros/android/views/JoystickView.java | 14 +++--- .../ros/android/views/LaserScanDisplay.java | 12 +++--- .../ros/android/views/MapDisplay.java | 26 +++++------ src/{ => org}/ros/android/views/MapView.java | 18 ++++---- .../ros/android/views/PanZoomDisplay.java | 8 ++-- .../ros/android/views/PanZoomView.java | 12 +++--- .../ros/android/views/PathDisplay.java | 18 ++++---- .../android/views/PosablePanZoomDisplay.java | 6 +-- .../ros/android/views/PoseInputDisplay.java | 14 +++--- .../ros/android/views/Pr2Dashboard.java | 27 ++++++------ .../ros/android/views/SendGoalDisplay.java | 2 +- .../ros/android/views/SensorImageView.java | 14 +++--- .../android/views/SetInitialPoseDisplay.java | 10 ++--- .../ros/android/views/TurtlebotDashboard.java | 29 ++++++------- src/{ => org}/ros/tf/Frame.java | 2 +- src/{ => org}/ros/tf/Stamped.java | 2 +- src/{ => org}/ros/tf/StampedTransform.java | 2 +- src/{ => org}/ros/tf/TfBroadcaster.java | 18 ++++---- src/{ => org}/ros/tf/TfListener.java | 27 ++++++------ src/{ => org}/ros/tf/TimeCache.java | 2 +- .../ros/tf/TransformChangeDetector.java | 2 +- src/{ => org}/ros/tf/TransformStorage.java | 2 +- 53 files changed, 281 insertions(+), 293 deletions(-) rename src/{ => org}/ros/android/activity/AppChooserRedirectActivity.java (99%) rename src/{ => org}/ros/android/activity/AppManager.java (98%) rename src/{ => org}/ros/android/activity/AppManagerNotAvailableException.java (98%) rename src/{ => org}/ros/android/activity/AppStartCallback.java (98%) rename src/{ => org}/ros/android/activity/MasterAdapter.java (97%) rename src/{ => org}/ros/android/activity/MasterChooserActivity.java (97%) rename src/{ => org}/ros/android/activity/MasterItem.java (96%) rename src/{ => org}/ros/android/activity/RosActivity.java (98%) rename src/{ => org}/ros/android/activity/RosAppActivity.java (97%) rename src/{ => org}/ros/android/util/ControlChecker.java (99%) rename src/{ => org}/ros/android/util/CurrentRobotContentProvider.java (99%) rename src/{ => org}/ros/android/util/Dashboard.java (99%) rename src/{ => org}/ros/android/util/FingerReceiver.java (98%) rename src/{ => org}/ros/android/util/FingerTracker.java (99%) rename src/{ => org}/ros/android/util/InvalidRobotDescriptionException.java (98%) rename src/{ => org}/ros/android/util/MasterChecker.java (99%) rename src/{ => org}/ros/android/util/MasterChooser.java (99%) rename src/{ => org}/ros/android/util/PlaneTfChangeListener.java (99%) rename src/{ => org}/ros/android/util/Posable.java (98%) rename src/{ => org}/ros/android/util/RobotDescription.java (97%) rename src/{ => org}/ros/android/util/RobotId.java (99%) rename src/{ => org}/ros/android/util/RobotsContentProvider.java (99%) rename src/{ => org}/ros/android/util/SdCardSetup.java (99%) rename src/{ => org}/ros/android/util/WiFiChecker.java (99%) rename src/{ => org}/ros/android/util/zxing/IntentIntegrator.java (99%) rename src/{ => org}/ros/android/util/zxing/IntentResult.java (97%) rename src/{ => org}/ros/android/views/BatteryLevelView.java (98%) rename src/{ => org}/ros/android/views/BitmapDisplay.java (97%) rename src/{ => org}/ros/android/views/CheckableLinearLayout.java (98%) rename src/{ => org}/ros/android/views/JoystickView.java (99%) rename src/{ => org}/ros/android/views/LaserScanDisplay.java (98%) rename src/{ => org}/ros/android/views/MapDisplay.java (99%) rename src/{ => org}/ros/android/views/MapView.java (98%) rename src/{ => org}/ros/android/views/PanZoomDisplay.java (99%) rename src/{ => org}/ros/android/views/PanZoomView.java (99%) rename src/{ => org}/ros/android/views/PathDisplay.java (98%) rename src/{ => org}/ros/android/views/PosablePanZoomDisplay.java (98%) rename src/{ => org}/ros/android/views/PoseInputDisplay.java (97%) rename src/{ => org}/ros/android/views/Pr2Dashboard.java (99%) rename src/{ => org}/ros/android/views/SendGoalDisplay.java (99%) rename src/{ => org}/ros/android/views/SensorImageView.java (98%) rename src/{ => org}/ros/android/views/SetInitialPoseDisplay.java (99%) rename src/{ => org}/ros/android/views/TurtlebotDashboard.java (98%) rename src/{ => org}/ros/tf/Frame.java (99%) rename src/{ => org}/ros/tf/Stamped.java (99%) rename src/{ => org}/ros/tf/StampedTransform.java (99%) rename src/{ => org}/ros/tf/TfBroadcaster.java (99%) rename src/{ => org}/ros/tf/TfListener.java (99%) rename src/{ => org}/ros/tf/TimeCache.java (99%) rename src/{ => org}/ros/tf/TransformChangeDetector.java (99%) rename src/{ => org}/ros/tf/TransformStorage.java (99%) diff --git a/AndroidManifest.xml b/AndroidManifest.xml index ec277e7..c7c74db 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -1,23 +1,27 @@ - + package="org.ros.android.activity"> + - - + + + + - diff --git a/build.gradle b/build.gradle index 8fde7ae..f817a8f 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ * the License. */ -group 'org.ros.android_app_manager' +group 'org.ros' version = '0.1.0' dependencies { @@ -37,7 +37,6 @@ android { defaultConfig { minSdkVersion 10 - //applicationId "org.ros.android.android_10" targetSdkVersion 10 versionCode 1 versionName "1.0" diff --git a/src/ros/android/activity/AppChooserRedirectActivity.java b/src/org/ros/android/activity/AppChooserRedirectActivity.java similarity index 99% rename from src/ros/android/activity/AppChooserRedirectActivity.java rename to src/org/ros/android/activity/AppChooserRedirectActivity.java index 5c1731b..d286499 100644 --- a/src/ros/android/activity/AppChooserRedirectActivity.java +++ b/src/org/ros/android/activity/AppChooserRedirectActivity.java @@ -31,7 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; import android.app.Activity; import android.app.AlertDialog; diff --git a/src/ros/android/activity/AppManager.java b/src/org/ros/android/activity/AppManager.java similarity index 98% rename from src/ros/android/activity/AppManager.java rename to src/org/ros/android/activity/AppManager.java index 920c87a..08ea788 100644 --- a/src/ros/android/activity/AppManager.java +++ b/src/org/ros/android/activity/AppManager.java @@ -31,9 +31,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; -import java.util.ArrayList; +import android.util.Log; import org.ros.exception.RemoteException; import org.ros.exception.RosException; @@ -46,7 +46,8 @@ import org.ros.node.service.ServiceResponseListener; import org.ros.node.topic.Subscriber; -import android.util.Log; +import java.util.ArrayList; + import app_manager.App; import app_manager.AppInstallationState; import app_manager.AppList; @@ -71,7 +72,8 @@ * @author kwc@willowgarage.com (Ken Conley) */ public class AppManager { - static public final String PACKAGE = "ros.android.activity"; + + static public final String PACKAGE = "org.ros.android.activity"; private final ConnectedNode node; private AppList appList; diff --git a/src/ros/android/activity/AppManagerNotAvailableException.java b/src/org/ros/android/activity/AppManagerNotAvailableException.java similarity index 98% rename from src/ros/android/activity/AppManagerNotAvailableException.java rename to src/org/ros/android/activity/AppManagerNotAvailableException.java index 73d99e6..2c893bf 100644 --- a/src/ros/android/activity/AppManagerNotAvailableException.java +++ b/src/org/ros/android/activity/AppManagerNotAvailableException.java @@ -31,7 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; /** * diff --git a/src/ros/android/activity/AppStartCallback.java b/src/org/ros/android/activity/AppStartCallback.java similarity index 98% rename from src/ros/android/activity/AppStartCallback.java rename to src/org/ros/android/activity/AppStartCallback.java index b7d4ee6..3aef6ad 100644 --- a/src/ros/android/activity/AppStartCallback.java +++ b/src/org/ros/android/activity/AppStartCallback.java @@ -31,7 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; /** * @author kwc@willowgarage.com (Ken Conley) diff --git a/src/ros/android/activity/MasterAdapter.java b/src/org/ros/android/activity/MasterAdapter.java similarity index 97% rename from src/ros/android/activity/MasterAdapter.java rename to src/org/ros/android/activity/MasterAdapter.java index 2b07943..c11c223 100644 --- a/src/ros/android/activity/MasterAdapter.java +++ b/src/org/ros/android/activity/MasterAdapter.java @@ -31,13 +31,14 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; -import ros.android.util.RobotDescription; + +import org.ros.android.util.RobotDescription; import java.util.ArrayList; import java.util.List; diff --git a/src/ros/android/activity/MasterChooserActivity.java b/src/org/ros/android/activity/MasterChooserActivity.java similarity index 97% rename from src/ros/android/activity/MasterChooserActivity.java rename to src/org/ros/android/activity/MasterChooserActivity.java index 08f046a..893ef6e 100644 --- a/src/ros/android/activity/MasterChooserActivity.java +++ b/src/org/ros/android/activity/MasterChooserActivity.java @@ -31,25 +31,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Timer; -import java.util.TimerTask; - -import org.yaml.snakeyaml.Yaml; - -import ros.android.util.InvalidRobotDescriptionException; -import ros.android.util.MasterChooser; -import ros.android.util.RobotDescription; -import ros.android.util.RobotId; -import ros.android.util.RobotsContentProvider; -import ros.android.util.zxing.IntentIntegrator; -import ros.android.util.zxing.IntentResult; import android.app.Activity; import android.app.AlertDialog; import android.app.Dialog; @@ -78,6 +61,23 @@ import android.widget.ListView; import android.widget.Toast; +import org.ros.android.util.InvalidRobotDescriptionException; +import org.ros.android.util.MasterChooser; +import org.ros.android.util.RobotDescription; +import org.ros.android.util.RobotId; +import org.ros.android.util.RobotsContentProvider; +import org.ros.android.util.zxing.IntentIntegrator; +import org.ros.android.util.zxing.IntentResult; +import org.yaml.snakeyaml.Yaml; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Timer; +import java.util.TimerTask; + /** * @author hersh@willowgarage.com */ diff --git a/src/ros/android/activity/MasterItem.java b/src/org/ros/android/activity/MasterItem.java similarity index 96% rename from src/ros/android/activity/MasterItem.java rename to src/org/ros/android/activity/MasterItem.java index d623c25..dd03d9f 100644 --- a/src/ros/android/activity/MasterItem.java +++ b/src/org/ros/android/activity/MasterItem.java @@ -31,9 +31,10 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; import android.content.Context; +import android.net.wifi.WifiManager; import android.util.Log; import android.view.LayoutInflater; import android.view.View; @@ -41,11 +42,11 @@ import android.widget.ImageView; import android.widget.ProgressBar; import android.widget.TextView; -import ros.android.util.WiFiChecker; -import ros.android.util.ControlChecker; -import ros.android.util.MasterChecker; -import ros.android.util.RobotDescription; -import android.net.wifi.WifiManager; + +import org.ros.android.util.ControlChecker; +import org.ros.android.util.MasterChecker; +import org.ros.android.util.RobotDescription; +import org.ros.android.util.WiFiChecker; /** * Data class behind view of one item in the list of ROS Masters. Gets created @@ -71,7 +72,7 @@ public MasterItem(RobotDescription robotDescription, MasterChooserActivity paren this.parentMca = parentMca; this.description = robotDescription; this.description.setConnectionStatus(RobotDescription.CONNECTING); - if (ros.android.util.WiFiChecker.wifiValid(this.description.getRobotId(), + if (WiFiChecker.wifiValid(this.description.getRobotId(), (WifiManager)parentMca.getSystemService(parentMca.WIFI_SERVICE))) { checker = new MasterChecker(this, this); if (this.description.getRobotId().getControlUri() != null) { diff --git a/src/ros/android/activity/RosActivity.java b/src/org/ros/android/activity/RosActivity.java similarity index 98% rename from src/ros/android/activity/RosActivity.java rename to src/org/ros/android/activity/RosActivity.java index aa21637..de21d13 100644 --- a/src/ros/android/activity/RosActivity.java +++ b/src/org/ros/android/activity/RosActivity.java @@ -31,44 +31,39 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; -import android.app.AlertDialog; import android.app.Activity; +import android.app.AlertDialog; import android.app.ProgressDialog; -import android.content.Intent; import android.content.DialogInterface; +import android.content.Intent; +import android.net.wifi.WifiManager; +import android.os.Bundle; import android.os.Handler; import android.util.Log; -import android.view.View; -import android.widget.Button; import android.widget.Toast; -import org.ros.node.DefaultNodeMainExecutor; -import org.ros.node.NodeMainExecutor; + +import org.apache.http.HttpResponse; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.DefaultHttpClient; +import org.ros.android.util.ControlChecker; +import org.ros.android.util.MasterChecker; +import org.ros.android.util.MasterChooser; +import org.ros.android.util.RobotDescription; +import org.ros.android.util.RobotId; +import org.ros.android.util.WiFiChecker; +import org.ros.exception.RosException; import org.ros.node.DefaultNodeFactory; +import org.ros.node.DefaultNodeMainExecutor; import org.ros.node.Node; -import org.ros.exception.RosException; -import ros.android.util.RobotId; -import ros.android.util.MasterChooser; -import ros.android.util.MasterChecker; -import ros.android.util.WiFiChecker; -import ros.android.util.ControlChecker; -import ros.android.util.RobotDescription; import org.ros.node.NodeConfiguration; -import java.lang.Runnable; -import java.lang.System; -import android.net.wifi.WifiManager; -import android.os.Bundle; +import org.ros.node.NodeMainExecutor; import java.io.BufferedReader; import java.io.InputStreamReader; -import java.io.IOException; -import java.net.URISyntaxException; import java.net.URI; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.DefaultHttpClient; /** * * @author hersh@willowgarage.com diff --git a/src/ros/android/activity/RosAppActivity.java b/src/org/ros/android/activity/RosAppActivity.java similarity index 97% rename from src/ros/android/activity/RosAppActivity.java rename to src/org/ros/android/activity/RosAppActivity.java index 409d0e9..9e5c4e8 100644 --- a/src/ros/android/activity/RosAppActivity.java +++ b/src/org/ros/android/activity/RosAppActivity.java @@ -31,21 +31,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.activity; +package org.ros.android.activity; -import ros.android.activity.RosActivity; -import org.ros.exception.RemoteException; -import org.ros.exception.RosException; -import org.ros.internal.node.xmlrpc.XmlRpcTimeoutException; -import org.ros.namespace.GraphName; -import org.ros.namespace.NameResolver; -import org.ros.node.ConnectedNode; -import org.ros.node.Node; -import org.ros.node.NodeMainExecutor; -import org.ros.node.service.ServiceResponseListener; - -import ros.android.util.Dashboard; -import ros.android.util.RobotDescription; import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.DialogInterface; @@ -55,7 +42,18 @@ import android.view.WindowManager; import android.widget.LinearLayout; import android.widget.Toast; -import app_manager.StartApp; + +import org.ros.android.util.Dashboard; +import org.ros.android.util.RobotDescription; +import org.ros.exception.RemoteException; +import org.ros.exception.RosException; +import org.ros.internal.node.xmlrpc.XmlRpcTimeoutException; +import org.ros.namespace.GraphName; +import org.ros.namespace.NameResolver; +import org.ros.node.ConnectedNode; +import org.ros.node.Node; +import org.ros.node.service.ServiceResponseListener; + import app_manager.StartAppResponse; /** diff --git a/src/ros/android/util/ControlChecker.java b/src/org/ros/android/util/ControlChecker.java similarity index 99% rename from src/ros/android/util/ControlChecker.java rename to src/org/ros/android/util/ControlChecker.java index 30f1874..e55d917 100644 --- a/src/ros/android/util/ControlChecker.java +++ b/src/org/ros/android/util/ControlChecker.java @@ -32,19 +32,19 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; import android.util.Log; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.io.IOException; -import java.net.URISyntaxException; -import java.net.URI; + import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.net.URI; + /** * Threaded control checker. Checks to see if the software is running and in a valid state. diff --git a/src/ros/android/util/CurrentRobotContentProvider.java b/src/org/ros/android/util/CurrentRobotContentProvider.java similarity index 99% rename from src/ros/android/util/CurrentRobotContentProvider.java rename to src/org/ros/android/util/CurrentRobotContentProvider.java index 6d80990..f1565fd 100644 --- a/src/ros/android/util/CurrentRobotContentProvider.java +++ b/src/org/ros/android/util/CurrentRobotContentProvider.java @@ -32,14 +32,14 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; import android.content.ContentProvider; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; -import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.util.Log; diff --git a/src/ros/android/util/Dashboard.java b/src/org/ros/android/util/Dashboard.java similarity index 99% rename from src/ros/android/util/Dashboard.java rename to src/org/ros/android/util/Dashboard.java index b98ede9..d41336c 100644 --- a/src/ros/android/util/Dashboard.java +++ b/src/org/ros/android/util/Dashboard.java @@ -31,11 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; - -import org.ros.exception.RosException; -import org.ros.node.ConnectedNode; -import org.ros.node.parameter.ParameterTree; +package org.ros.android.util; import android.app.Activity; import android.content.Context; @@ -43,6 +39,10 @@ import android.view.View; import android.view.ViewGroup; +import org.ros.exception.RosException; +import org.ros.node.ConnectedNode; +import org.ros.node.parameter.ParameterTree; + public class Dashboard { public interface DashboardInterface { /** diff --git a/src/ros/android/util/FingerReceiver.java b/src/org/ros/android/util/FingerReceiver.java similarity index 98% rename from src/ros/android/util/FingerReceiver.java rename to src/org/ros/android/util/FingerReceiver.java index 6e88649..9e6fd13 100644 --- a/src/ros/android/util/FingerReceiver.java +++ b/src/org/ros/android/util/FingerReceiver.java @@ -27,7 +27,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; public interface FingerReceiver { /** diff --git a/src/ros/android/util/FingerTracker.java b/src/org/ros/android/util/FingerTracker.java similarity index 99% rename from src/ros/android/util/FingerTracker.java rename to src/org/ros/android/util/FingerTracker.java index ec1a9a5..94c00ad 100644 --- a/src/ros/android/util/FingerTracker.java +++ b/src/org/ros/android/util/FingerTracker.java @@ -27,7 +27,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; import android.view.MotionEvent; import android.view.View; diff --git a/src/ros/android/util/InvalidRobotDescriptionException.java b/src/org/ros/android/util/InvalidRobotDescriptionException.java similarity index 98% rename from src/ros/android/util/InvalidRobotDescriptionException.java rename to src/org/ros/android/util/InvalidRobotDescriptionException.java index 22e944f..848658a 100644 --- a/src/ros/android/util/InvalidRobotDescriptionException.java +++ b/src/org/ros/android/util/InvalidRobotDescriptionException.java @@ -31,7 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; public class InvalidRobotDescriptionException extends Exception { diff --git a/src/ros/android/util/MasterChecker.java b/src/org/ros/android/util/MasterChecker.java similarity index 99% rename from src/ros/android/util/MasterChecker.java rename to src/org/ros/android/util/MasterChecker.java index f70f48b..29e5d42 100644 --- a/src/ros/android/util/MasterChecker.java +++ b/src/org/ros/android/util/MasterChecker.java @@ -31,17 +31,17 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Date; +import android.util.Log; import org.ros.internal.node.client.ParameterClient; import org.ros.internal.node.server.NodeIdentifier; import org.ros.namespace.GraphName; -import android.util.Log; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Date; /** * Threaded ROS-master checker. Runs a thread which checks for a valid ROS diff --git a/src/ros/android/util/MasterChooser.java b/src/org/ros/android/util/MasterChooser.java similarity index 99% rename from src/ros/android/util/MasterChooser.java rename to src/org/ros/android/util/MasterChooser.java index dcad5ba..50d213a 100644 --- a/src/ros/android/util/MasterChooser.java +++ b/src/org/ros/android/util/MasterChooser.java @@ -31,23 +31,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; -import java.net.InetAddress; -import java.net.NetworkInterface; -import java.net.SocketException; -import java.net.URI; -import java.net.URISyntaxException; -import java.util.Enumeration; -import java.util.HashMap; - -import org.ros.exception.RosException; -import org.ros.namespace.GraphName; -import org.ros.namespace.NameResolver; -import org.ros.node.NodeConfiguration; -import org.yaml.snakeyaml.Yaml; - -import ros.android.activity.MasterChooserActivity; import android.app.Activity; import android.content.ActivityNotFoundException; import android.content.ContentValues; @@ -56,6 +41,21 @@ import android.net.Uri; import android.util.Log; +import org.ros.android.activity.MasterChooserActivity; +import org.ros.exception.RosException; +import org.ros.namespace.GraphName; +import org.ros.namespace.NameResolver; +import org.ros.node.NodeConfiguration; +import org.yaml.snakeyaml.Yaml; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.Enumeration; +import java.util.HashMap; + /** * Helper class for launching the {@link MasterChooserActivity} for choosing a * ROS master. Keep this object around for the lifetime of an {@link Activity}. diff --git a/src/ros/android/util/PlaneTfChangeListener.java b/src/org/ros/android/util/PlaneTfChangeListener.java similarity index 99% rename from src/ros/android/util/PlaneTfChangeListener.java rename to src/org/ros/android/util/PlaneTfChangeListener.java index a25282b..f222be6 100644 --- a/src/ros/android/util/PlaneTfChangeListener.java +++ b/src/org/ros/android/util/PlaneTfChangeListener.java @@ -27,11 +27,14 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; -import geometry_msgs.Quaternion; -import geometry_msgs.TransformStamped; -import geometry_msgs.Vector3; +import android.graphics.Matrix; + +import org.ros.exception.RosException; +import org.ros.message.MessageListener; +import org.ros.node.ConnectedNode; +import org.ros.node.topic.Subscriber; import java.util.ArrayList; import java.util.HashMap; @@ -40,13 +43,10 @@ import javax.vecmath.Quat4d; import javax.vecmath.Vector3d; -import org.ros.exception.RosException; -import org.ros.message.MessageListener; -import org.ros.node.ConnectedNode; -import org.ros.node.topic.Subscriber; - +import geometry_msgs.Quaternion; +import geometry_msgs.TransformStamped; +import geometry_msgs.Vector3; import tf.tfMessage; -import android.graphics.Matrix; /** * Listener for tf messages which does not compose transforms, it just looks for diff --git a/src/ros/android/util/Posable.java b/src/org/ros/android/util/Posable.java similarity index 98% rename from src/ros/android/util/Posable.java rename to src/org/ros/android/util/Posable.java index 96548e5..dd42362 100644 --- a/src/ros/android/util/Posable.java +++ b/src/org/ros/android/util/Posable.java @@ -26,7 +26,7 @@ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; import android.graphics.Matrix; diff --git a/src/ros/android/util/RobotDescription.java b/src/org/ros/android/util/RobotDescription.java similarity index 97% rename from src/ros/android/util/RobotDescription.java rename to src/org/ros/android/util/RobotDescription.java index f1a38be..2e8e2fa 100644 --- a/src/ros/android/util/RobotDescription.java +++ b/src/org/ros/android/util/RobotDescription.java @@ -31,12 +31,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; -import org.ros.exception.RosException; -import org.ros.namespace.GraphName; - -import java.net.URI; import java.util.Date; public class RobotDescription implements java.io.Serializable { diff --git a/src/ros/android/util/RobotId.java b/src/org/ros/android/util/RobotId.java similarity index 99% rename from src/ros/android/util/RobotId.java rename to src/org/ros/android/util/RobotId.java index 53398b6..5d8d30e 100644 --- a/src/ros/android/util/RobotId.java +++ b/src/org/ros/android/util/RobotId.java @@ -31,7 +31,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; import java.util.Map; diff --git a/src/ros/android/util/RobotsContentProvider.java b/src/org/ros/android/util/RobotsContentProvider.java similarity index 99% rename from src/ros/android/util/RobotsContentProvider.java rename to src/org/ros/android/util/RobotsContentProvider.java index 74f06d6..4b83054 100644 --- a/src/ros/android/util/RobotsContentProvider.java +++ b/src/org/ros/android/util/RobotsContentProvider.java @@ -32,14 +32,14 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; import android.content.ContentProvider; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; -import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; +import android.database.sqlite.SQLiteOpenHelper; import android.net.Uri; import android.util.Log; diff --git a/src/ros/android/util/SdCardSetup.java b/src/org/ros/android/util/SdCardSetup.java similarity index 99% rename from src/ros/android/util/SdCardSetup.java rename to src/org/ros/android/util/SdCardSetup.java index 8a88ca3..50b8426 100644 --- a/src/ros/android/util/SdCardSetup.java +++ b/src/org/ros/android/util/SdCardSetup.java @@ -32,13 +32,14 @@ */ -package ros.android.util; +package org.ros.android.util; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnCancelListener; import android.os.Environment; + import org.ros.exception.RosException; import java.io.File; diff --git a/src/ros/android/util/WiFiChecker.java b/src/org/ros/android/util/WiFiChecker.java similarity index 99% rename from src/ros/android/util/WiFiChecker.java rename to src/org/ros/android/util/WiFiChecker.java index 5a76d17..e5d4b0d 100644 --- a/src/ros/android/util/WiFiChecker.java +++ b/src/org/ros/android/util/WiFiChecker.java @@ -31,16 +31,13 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.util; +package org.ros.android.util; -import android.util.Log; - - -import android.net.wifi.WifiManager; -import android.net.wifi.WifiConfiguration; import android.net.wifi.SupplicantState; +import android.net.wifi.WifiConfiguration; import android.net.wifi.WifiInfo; -import android.content.Context; +import android.net.wifi.WifiManager; +import android.util.Log; /** diff --git a/src/ros/android/util/zxing/IntentIntegrator.java b/src/org/ros/android/util/zxing/IntentIntegrator.java similarity index 99% rename from src/ros/android/util/zxing/IntentIntegrator.java rename to src/org/ros/android/util/zxing/IntentIntegrator.java index 1082109..3fe5737 100644 --- a/src/ros/android/util/zxing/IntentIntegrator.java +++ b/src/org/ros/android/util/zxing/IntentIntegrator.java @@ -14,10 +14,10 @@ * limitations under the License. */ -package ros.android.util.zxing; +package org.ros.android.util.zxing; -import android.app.AlertDialog; import android.app.Activity; +import android.app.AlertDialog; import android.content.ActivityNotFoundException; import android.content.DialogInterface; import android.content.Intent; diff --git a/src/ros/android/util/zxing/IntentResult.java b/src/org/ros/android/util/zxing/IntentResult.java similarity index 97% rename from src/ros/android/util/zxing/IntentResult.java rename to src/org/ros/android/util/zxing/IntentResult.java index ed1124d..a5bf5d8 100644 --- a/src/ros/android/util/zxing/IntentResult.java +++ b/src/org/ros/android/util/zxing/IntentResult.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package ros.android.util.zxing; +package org.ros.android.util.zxing; /** *

Encapsulates the result of a barcode scan invoked through {@link IntentIntegrator}.

diff --git a/src/ros/android/views/BatteryLevelView.java b/src/org/ros/android/views/BatteryLevelView.java similarity index 98% rename from src/ros/android/views/BatteryLevelView.java rename to src/org/ros/android/views/BatteryLevelView.java index d7874c9..bb61267 100644 --- a/src/ros/android/views/BatteryLevelView.java +++ b/src/org/ros/android/views/BatteryLevelView.java @@ -27,7 +27,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; import android.content.Context; import android.graphics.Bitmap; @@ -37,10 +37,10 @@ import android.graphics.PorterDuff; import android.graphics.PorterDuffColorFilter; import android.graphics.Rect; -import android.view.View; import android.util.AttributeSet; +import android.view.View; -import ros.android.activity.R; +import org.ros.android.activity.R; public class BatteryLevelView extends View { private Bitmap silhouette; diff --git a/src/ros/android/views/BitmapDisplay.java b/src/org/ros/android/views/BitmapDisplay.java similarity index 97% rename from src/ros/android/views/BitmapDisplay.java rename to src/org/ros/android/views/BitmapDisplay.java index 7933c97..2c1db6c 100644 --- a/src/ros/android/views/BitmapDisplay.java +++ b/src/org/ros/android/views/BitmapDisplay.java @@ -27,11 +27,10 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; import android.graphics.Bitmap; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; diff --git a/src/ros/android/views/CheckableLinearLayout.java b/src/org/ros/android/views/CheckableLinearLayout.java similarity index 98% rename from src/ros/android/views/CheckableLinearLayout.java rename to src/org/ros/android/views/CheckableLinearLayout.java index e3589b5..d16653e 100644 --- a/src/ros/android/views/CheckableLinearLayout.java +++ b/src/org/ros/android/views/CheckableLinearLayout.java @@ -27,12 +27,12 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import android.widget.LinearLayout; -import android.widget.Checkable; import android.content.Context; import android.util.AttributeSet; +import android.widget.Checkable; +import android.widget.LinearLayout; /** * Simple extension of LinearLayout which trivially implements diff --git a/src/ros/android/views/JoystickView.java b/src/org/ros/android/views/JoystickView.java similarity index 99% rename from src/ros/android/views/JoystickView.java rename to src/org/ros/android/views/JoystickView.java index 67a8379..6a184d5 100644 --- a/src/ros/android/views/JoystickView.java +++ b/src/org/ros/android/views/JoystickView.java @@ -27,13 +27,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; - -import geometry_msgs.Twist; - -import org.ros.exception.RosException; -import org.ros.node.ConnectedNode; -import org.ros.node.topic.Publisher; +package org.ros.android.views; import android.content.Context; import android.util.AttributeSet; @@ -43,6 +37,12 @@ import android.view.View.OnTouchListener; import android.widget.ImageView; +import org.ros.exception.RosException; +import org.ros.node.ConnectedNode; +import org.ros.node.topic.Publisher; + +import geometry_msgs.Twist; + /** * View for screen-based joystick teleop. */ diff --git a/src/ros/android/views/LaserScanDisplay.java b/src/org/ros/android/views/LaserScanDisplay.java similarity index 98% rename from src/ros/android/views/LaserScanDisplay.java rename to src/org/ros/android/views/LaserScanDisplay.java index e2ef6ea..91866b4 100644 --- a/src/ros/android/views/LaserScanDisplay.java +++ b/src/org/ros/android/views/LaserScanDisplay.java @@ -27,19 +27,19 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; + +import android.graphics.Canvas; +import android.graphics.Paint; +import android.graphics.PointF; +import android.util.FloatMath; import org.ros.exception.RosException; import org.ros.message.MessageListener; import org.ros.node.ConnectedNode; -import org.ros.node.Node; import org.ros.node.topic.Subscriber; import sensor_msgs.LaserScan; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.graphics.PointF; -import android.util.FloatMath; /** * PanZoomDisplay which shows a top view of a laser range finder scan. diff --git a/src/ros/android/views/MapDisplay.java b/src/org/ros/android/views/MapDisplay.java similarity index 99% rename from src/ros/android/views/MapDisplay.java rename to src/org/ros/android/views/MapDisplay.java index 8390e76..3ed86e0 100644 --- a/src/ros/android/views/MapDisplay.java +++ b/src/org/ros/android/views/MapDisplay.java @@ -27,14 +27,14 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import java.util.ArrayList; -import java.util.concurrent.locks.ReentrantLock; - -import nav_msgs.GetMapRequest; -import nav_msgs.GetMapResponse; -import nav_msgs.OccupancyGrid; +import android.graphics.Bitmap; +import android.graphics.Canvas; +import android.graphics.Color; +import android.graphics.Matrix; +import android.graphics.Paint; +import android.util.Log; import org.ros.exception.RemoteException; import org.ros.exception.RosException; @@ -44,12 +44,12 @@ import org.ros.node.service.ServiceResponseListener; import org.ros.node.topic.Subscriber; -import android.graphics.Bitmap; -import android.graphics.Canvas; -import android.graphics.Color; -import android.graphics.Matrix; -import android.graphics.Paint; -import android.util.Log; +import java.util.ArrayList; +import java.util.concurrent.locks.ReentrantLock; + +import nav_msgs.GetMapRequest; +import nav_msgs.GetMapResponse; +import nav_msgs.OccupancyGrid; /** * PanZoomDisplay which shows an OccupancyGrid map in a PanZoomView. diff --git a/src/ros/android/views/MapView.java b/src/org/ros/android/views/MapView.java similarity index 98% rename from src/ros/android/views/MapView.java rename to src/org/ros/android/views/MapView.java index 33be213..575a220 100644 --- a/src/ros/android/views/MapView.java +++ b/src/org/ros/android/views/MapView.java @@ -27,16 +27,8 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import java.util.List; - -import org.ros.exception.RosException; -import org.ros.node.ConnectedNode; -import org.ros.node.parameter.ParameterTree; - -import ros.android.activity.R; -import ros.android.util.PlaneTfChangeListener; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; @@ -49,6 +41,14 @@ import android.util.AttributeSet; import android.util.Log; +import org.ros.android.activity.R; +import org.ros.android.util.PlaneTfChangeListener; +import org.ros.exception.RosException; +import org.ros.node.ConnectedNode; +import org.ros.node.parameter.ParameterTree; + +import java.util.List; + /** * View of the latest map with the turtlebot drawn in where TF thinks it is. */ diff --git a/src/ros/android/views/PanZoomDisplay.java b/src/org/ros/android/views/PanZoomDisplay.java similarity index 99% rename from src/ros/android/views/PanZoomDisplay.java rename to src/org/ros/android/views/PanZoomDisplay.java index 8ebbc60..c0ca804 100644 --- a/src/ros/android/views/PanZoomDisplay.java +++ b/src/org/ros/android/views/PanZoomDisplay.java @@ -27,15 +27,15 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; - -import org.ros.exception.RosException; -import org.ros.node.ConnectedNode; +package org.ros.android.views; import android.graphics.Canvas; import android.util.Log; import android.view.MotionEvent; +import org.ros.exception.RosException; +import org.ros.node.ConnectedNode; + /** * Abstract base class for displays added to a PanZoomView. */ diff --git a/src/ros/android/views/PanZoomView.java b/src/org/ros/android/views/PanZoomView.java similarity index 99% rename from src/ros/android/views/PanZoomView.java rename to src/org/ros/android/views/PanZoomView.java index 42167e9..6e88882 100644 --- a/src/ros/android/views/PanZoomView.java +++ b/src/org/ros/android/views/PanZoomView.java @@ -27,12 +27,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; - -import java.util.ArrayList; - -import org.ros.exception.RosException; -import org.ros.node.ConnectedNode; +package org.ros.android.views; import android.content.Context; import android.graphics.Canvas; @@ -44,6 +39,11 @@ import android.view.MotionEvent; import android.view.View; +import org.ros.exception.RosException; +import org.ros.node.ConnectedNode; + +import java.util.ArrayList; + /** * 2D container view class for showing a map with a robot on it, * sensor data from the robot, etc. diff --git a/src/ros/android/views/PathDisplay.java b/src/org/ros/android/views/PathDisplay.java similarity index 98% rename from src/ros/android/views/PathDisplay.java rename to src/org/ros/android/views/PathDisplay.java index b47e64a..b9e5530 100644 --- a/src/ros/android/views/PathDisplay.java +++ b/src/org/ros/android/views/PathDisplay.java @@ -27,23 +27,21 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import geometry_msgs.PoseStamped; - -import java.util.ArrayList; - -import nav_msgs.Path; +import android.graphics.Canvas; +import android.graphics.Paint; +import android.util.Log; import org.ros.exception.RosException; import org.ros.message.MessageListener; import org.ros.node.ConnectedNode; -import org.ros.node.Node; import org.ros.node.topic.Subscriber; -import android.graphics.Canvas; -import android.graphics.Paint; -import android.util.Log; +import java.util.ArrayList; + +import geometry_msgs.PoseStamped; +import nav_msgs.Path; /** * PanZoomDisplay which shows a path in a PanZoomView. diff --git a/src/ros/android/views/PosablePanZoomDisplay.java b/src/org/ros/android/views/PosablePanZoomDisplay.java similarity index 98% rename from src/ros/android/views/PosablePanZoomDisplay.java rename to src/org/ros/android/views/PosablePanZoomDisplay.java index ab74d9b..41748f7 100644 --- a/src/ros/android/views/PosablePanZoomDisplay.java +++ b/src/org/ros/android/views/PosablePanZoomDisplay.java @@ -27,12 +27,12 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import android.graphics.Matrix; import android.graphics.Canvas; +import android.graphics.Matrix; -import ros.android.util.Posable; +import org.ros.android.util.Posable; /** * Extension of PanZoomDisplay which implements the Posable interface, diff --git a/src/ros/android/views/PoseInputDisplay.java b/src/org/ros/android/views/PoseInputDisplay.java similarity index 97% rename from src/ros/android/views/PoseInputDisplay.java rename to src/org/ros/android/views/PoseInputDisplay.java index e8bcf6e..5201c58 100644 --- a/src/ros/android/views/PoseInputDisplay.java +++ b/src/org/ros/android/views/PoseInputDisplay.java @@ -27,10 +27,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; import android.graphics.Canvas; -import android.graphics.Color; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PointF; @@ -38,12 +37,9 @@ import android.util.Log; import android.view.MotionEvent; -import javax.vecmath.Quat4f; -import javax.vecmath.Matrix3f; - -import ros.android.util.Posable; -import ros.android.util.FingerReceiver; -import ros.android.util.FingerTracker; +import org.ros.android.util.FingerReceiver; +import org.ros.android.util.FingerTracker; +import org.ros.android.util.Posable; /** * PanZoomDisplay which implements a draggable pose input. @@ -60,7 +56,7 @@ * incoming Poses are ignored and the pose is updated by the user's * drag gestures. */ -abstract public class PoseInputDisplay extends PanZoomDisplay implements Posable { +abstract public class PoseInputDisplay extends org.ros.android.views.PanZoomDisplay implements Posable { private Paint paint = new Paint(); private Paint linePaint = new Paint(); private Matrix estimatedRobotRelMap = new Matrix(); diff --git a/src/ros/android/views/Pr2Dashboard.java b/src/org/ros/android/views/Pr2Dashboard.java similarity index 99% rename from src/ros/android/views/Pr2Dashboard.java rename to src/org/ros/android/views/Pr2Dashboard.java index 1954b79..4825957 100644 --- a/src/ros/android/views/Pr2Dashboard.java +++ b/src/org/ros/android/views/Pr2Dashboard.java @@ -31,8 +31,21 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; +import android.app.AlertDialog; +import android.content.Context; +import android.content.DialogInterface; +import android.graphics.Color; +import android.util.AttributeSet; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageButton; +import android.widget.ImageView; +import android.widget.ProgressBar; + +import org.ros.android.activity.R; +import org.ros.android.util.Dashboard; import org.ros.exception.RemoteException; import org.ros.exception.RosException; import org.ros.exception.ServiceNotFoundException; @@ -47,20 +60,8 @@ import pr2_msgs.DashboardState; import pr2_power_board.PowerBoardCommandRequest; import pr2_power_board.PowerBoardCommandResponse; -import ros.android.activity.R; -import ros.android.util.Dashboard; import std_srvs.EmptyRequest; import std_srvs.EmptyResponse; -import android.app.AlertDialog; -import android.content.Context; -import android.content.DialogInterface; -import android.graphics.Color; -import android.util.AttributeSet; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageButton; -import android.widget.ImageView; -import android.widget.ProgressBar; public class Pr2Dashboard extends android.widget.LinearLayout implements Dashboard.DashboardInterface { private ImageButton modeButton; diff --git a/src/ros/android/views/SendGoalDisplay.java b/src/org/ros/android/views/SendGoalDisplay.java similarity index 99% rename from src/ros/android/views/SendGoalDisplay.java rename to src/org/ros/android/views/SendGoalDisplay.java index 88efc08..7537890 100644 --- a/src/ros/android/views/SendGoalDisplay.java +++ b/src/org/ros/android/views/SendGoalDisplay.java @@ -27,7 +27,7 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; //// diff --git a/src/ros/android/views/SensorImageView.java b/src/org/ros/android/views/SensorImageView.java similarity index 98% rename from src/ros/android/views/SensorImageView.java rename to src/org/ros/android/views/SensorImageView.java index de9c376..9903db8 100644 --- a/src/ros/android/views/SensorImageView.java +++ b/src/org/ros/android/views/SensorImageView.java @@ -27,20 +27,20 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import org.ros.exception.RosException; -import org.ros.message.MessageListener; -import org.ros.node.ConnectedNode; -import org.ros.node.Node; - -import sensor_msgs.CompressedImage; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.AttributeSet; import android.widget.ImageView; +import org.ros.exception.RosException; +import org.ros.message.MessageListener; +import org.ros.node.ConnectedNode; + +import sensor_msgs.CompressedImage; + /** * A camera node that publishes images and camera_info * diff --git a/src/ros/android/views/SetInitialPoseDisplay.java b/src/org/ros/android/views/SetInitialPoseDisplay.java similarity index 99% rename from src/ros/android/views/SetInitialPoseDisplay.java rename to src/org/ros/android/views/SetInitialPoseDisplay.java index 815d795..e28557f 100644 --- a/src/ros/android/views/SetInitialPoseDisplay.java +++ b/src/org/ros/android/views/SetInitialPoseDisplay.java @@ -27,17 +27,17 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import geometry_msgs.Pose; -import geometry_msgs.PoseWithCovarianceStamped; +import android.util.FloatMath; +import android.util.Log; import org.ros.exception.RosException; import org.ros.node.ConnectedNode; import org.ros.node.topic.Publisher; -import android.util.FloatMath; -import android.util.Log; +import geometry_msgs.Pose; +import geometry_msgs.PoseWithCovarianceStamped; /** * PanZoomDisplay which implements a draggable initial-pose setter. diff --git a/src/ros/android/views/TurtlebotDashboard.java b/src/org/ros/android/views/TurtlebotDashboard.java similarity index 98% rename from src/ros/android/views/TurtlebotDashboard.java rename to src/org/ros/android/views/TurtlebotDashboard.java index 0d72397..7cfcfcc 100644 --- a/src/ros/android/views/TurtlebotDashboard.java +++ b/src/org/ros/android/views/TurtlebotDashboard.java @@ -31,11 +31,20 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.android.views; +package org.ros.android.views; -import java.util.HashMap; -import java.util.List; +import android.content.Context; +import android.graphics.Color; +import android.util.AttributeSet; +import android.util.Log; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.ImageButton; +import android.widget.ProgressBar; +import android.widget.Toast; +import org.ros.android.activity.R; +import org.ros.android.util.Dashboard; import org.ros.exception.RemoteException; import org.ros.exception.RosException; import org.ros.message.MessageListener; @@ -46,19 +55,9 @@ import org.ros.node.service.ServiceResponseListener; import org.ros.node.topic.Subscriber; -import ros.android.activity.R; -import ros.android.util.Dashboard; - +import java.util.HashMap; +import java.util.List; -import android.content.Context; -import android.graphics.Color; -import android.util.AttributeSet; -import android.util.Log; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.ImageButton; -import android.widget.ProgressBar; -import android.widget.Toast; import diagnostic_msgs.DiagnosticArray; import diagnostic_msgs.DiagnosticStatus; import diagnostic_msgs.KeyValue; diff --git a/src/ros/tf/Frame.java b/src/org/ros/tf/Frame.java similarity index 99% rename from src/ros/tf/Frame.java rename to src/org/ros/tf/Frame.java index dcccb2a..c6f7f68 100755 --- a/src/ros/tf/Frame.java +++ b/src/org/ros/tf/Frame.java @@ -28,7 +28,7 @@ */ -package ros.tf; +package org.ros.tf; import java.util.HashMap; import java.util.Set; diff --git a/src/ros/tf/Stamped.java b/src/org/ros/tf/Stamped.java similarity index 99% rename from src/ros/tf/Stamped.java rename to src/org/ros/tf/Stamped.java index 25b4bd7..e9da710 100755 --- a/src/ros/tf/Stamped.java +++ b/src/org/ros/tf/Stamped.java @@ -28,7 +28,7 @@ */ -package ros.tf; +package org.ros.tf; import org.ros.message.Time; diff --git a/src/ros/tf/StampedTransform.java b/src/org/ros/tf/StampedTransform.java similarity index 99% rename from src/ros/tf/StampedTransform.java rename to src/org/ros/tf/StampedTransform.java index 6f11f38..35812e6 100755 --- a/src/ros/tf/StampedTransform.java +++ b/src/org/ros/tf/StampedTransform.java @@ -28,7 +28,7 @@ */ -package ros.tf; +package org.ros.tf; import org.ros.message.Time; diff --git a/src/ros/tf/TfBroadcaster.java b/src/org/ros/tf/TfBroadcaster.java similarity index 99% rename from src/ros/tf/TfBroadcaster.java rename to src/org/ros/tf/TfBroadcaster.java index 44ebccb..4543d47 100755 --- a/src/ros/tf/TfBroadcaster.java +++ b/src/org/ros/tf/TfBroadcaster.java @@ -27,21 +27,21 @@ * POSSIBILITY OF SUCH DAMAGE. */ -package ros.tf; - -import javax.vecmath.Vector3d; -import javax.vecmath.Quat4d; +package org.ros.tf; +import org.ros.message.Time; import org.ros.node.ConnectedNode; import org.ros.node.topic.Publisher; -import org.ros.message.Time; -import tf.tfMessage; +import java.util.ArrayList; + +import javax.vecmath.Quat4d; +import javax.vecmath.Vector3d; + +import geometry_msgs.Quaternion; import geometry_msgs.TransformStamped; import geometry_msgs.Vector3; -import geometry_msgs.Quaternion; - -import java.util.ArrayList; +import tf.tfMessage; /** * diff --git a/src/ros/tf/TfListener.java b/src/org/ros/tf/TfListener.java similarity index 99% rename from src/ros/tf/TfListener.java rename to src/org/ros/tf/TfListener.java index 72daf85..aed0d3d 100755 --- a/src/ros/tf/TfListener.java +++ b/src/org/ros/tf/TfListener.java @@ -28,26 +28,27 @@ */ -package ros.tf; +package org.ros.tf; -import org.ros.node.ConnectedNode; -import org.ros.message.MessageListener; -import org.ros.node.topic.Subscriber; import org.ros.message.Duration; +import org.ros.message.MessageListener; import org.ros.message.Time; -import tf.tfMessage; -import geometry_msgs.Quaternion; -import geometry_msgs.TransformStamped; -import geometry_msgs.Vector3; +import org.ros.node.ConnectedNode; +import org.ros.node.topic.Subscriber; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.PriorityQueue; + +import javax.vecmath.Matrix4d; +import javax.vecmath.Point3d; import javax.vecmath.Quat4d; import javax.vecmath.Vector3d; -import javax.vecmath.Point3d; -import javax.vecmath.Matrix4d; -import java.util.HashMap; -import java.util.PriorityQueue; -import java.util.LinkedList; +import geometry_msgs.Quaternion; +import geometry_msgs.TransformStamped; +import geometry_msgs.Vector3; +import tf.tfMessage; /** * A client that listens to the /tf topic, stores transforms in a buffer and allows transformation diff --git a/src/ros/tf/TimeCache.java b/src/org/ros/tf/TimeCache.java similarity index 99% rename from src/ros/tf/TimeCache.java rename to src/org/ros/tf/TimeCache.java index 93b0da8..d6f1a26 100755 --- a/src/ros/tf/TimeCache.java +++ b/src/org/ros/tf/TimeCache.java @@ -28,7 +28,7 @@ */ -package ros.tf; +package org.ros.tf; import java.util.TreeMap; diff --git a/src/ros/tf/TransformChangeDetector.java b/src/org/ros/tf/TransformChangeDetector.java similarity index 99% rename from src/ros/tf/TransformChangeDetector.java rename to src/org/ros/tf/TransformChangeDetector.java index 94d8be6..7eca975 100644 --- a/src/ros/tf/TransformChangeDetector.java +++ b/src/org/ros/tf/TransformChangeDetector.java @@ -29,7 +29,7 @@ * @author hersh@willowgarage.com (Dave Hershberger) */ -package ros.tf; +package org.ros.tf; import org.ros.message.Time; diff --git a/src/ros/tf/TransformStorage.java b/src/org/ros/tf/TransformStorage.java similarity index 99% rename from src/ros/tf/TransformStorage.java rename to src/org/ros/tf/TransformStorage.java index 0c90635..d8b1275 100755 --- a/src/ros/tf/TransformStorage.java +++ b/src/org/ros/tf/TransformStorage.java @@ -28,7 +28,7 @@ */ -package ros.tf; +package org.ros.tf; import javax.vecmath.Quat4d; import javax.vecmath.Vector3d; From d0c17183d3e3ae5bcdda6c2fda79a0c0d4134b68 Mon Sep 17 00:00:00 2001 From: talregev Date: Tue, 10 Feb 2015 06:32:12 +0200 Subject: [PATCH 3/3] update libs -> to external_libs (do not confilct name with eclipse libs library). --- build.gradle | 2 +- {libs => external_libs}/README-snakeyaml.txt | 0 .../snakeyaml-android-1.8-SNAPSHOT.jar | Bin {libs => external_libs}/vecmath.jar | Bin 4 files changed, 1 insertion(+), 1 deletion(-) rename {libs => external_libs}/README-snakeyaml.txt (100%) rename {libs => external_libs}/snakeyaml-android-1.8-SNAPSHOT.jar (100%) rename {libs => external_libs}/vecmath.jar (100%) diff --git a/build.gradle b/build.gradle index f817a8f..c647ce8 100644 --- a/build.gradle +++ b/build.gradle @@ -27,7 +27,7 @@ dependencies { compile "org.ros.rosjava_messages:std_srvs:1.10.12" compile "org.ros.rosjava_messages:app_manager:1.0.2" compile "org.ros.rosjava_messages:create_node:2.2.1" - compile fileTree(dir: 'libs', include: ['*.jar']) + compile fileTree(dir: 'external_libs', include: ['*.jar']) } apply plugin: "com.android.library" diff --git a/libs/README-snakeyaml.txt b/external_libs/README-snakeyaml.txt similarity index 100% rename from libs/README-snakeyaml.txt rename to external_libs/README-snakeyaml.txt diff --git a/libs/snakeyaml-android-1.8-SNAPSHOT.jar b/external_libs/snakeyaml-android-1.8-SNAPSHOT.jar similarity index 100% rename from libs/snakeyaml-android-1.8-SNAPSHOT.jar rename to external_libs/snakeyaml-android-1.8-SNAPSHOT.jar diff --git a/libs/vecmath.jar b/external_libs/vecmath.jar similarity index 100% rename from libs/vecmath.jar rename to external_libs/vecmath.jar