From bdbe1abed288949284ec3ed6e12c26e6914c0494 Mon Sep 17 00:00:00 2001 From: Ytai Ben-Tsvi Date: Mon, 12 May 2014 00:02:21 -0700 Subject: [PATCH] ShoeBot: Move to master Changed ShoeBot to work with the motor control sequencer instead of relying on custom firmware. Also, prevent the screen from turning off. --- software/applications/ShoeBot/.classpath | 9 + software/applications/ShoeBot/.project | 33 ++ .../applications/ShoeBot/AndroidManifest.xml | 26 ++ software/applications/ShoeBot/lint.xml | 4 + software/applications/ShoeBot/proguard.cfg | 40 ++ .../applications/ShoeBot/project.properties | 16 + .../ShoeBot/res/drawable-hdpi/icon.png | Bin 0 -> 4147 bytes .../ShoeBot/res/drawable-ldpi/icon.png | Bin 0 -> 1723 bytes .../ShoeBot/res/drawable-mdpi/icon.png | Bin 0 -> 2574 bytes .../ShoeBot/res/drawable/ioio_down.png | Bin 0 -> 9321 bytes .../applications/ShoeBot/res/layout/main.xml | 21 + .../ShoeBot/res/values/strings.xml | 4 + .../ShoeBot/res/xml/accessory_filter.xml | 4 + .../applications/shoebot/ShoebotActivity.java | 428 ++++++++++++++++++ .../ioio/applications/shoebot/TcpServer.java | 61 +++ 15 files changed, 646 insertions(+) create mode 100644 software/applications/ShoeBot/.classpath create mode 100644 software/applications/ShoeBot/.project create mode 100644 software/applications/ShoeBot/AndroidManifest.xml create mode 100644 software/applications/ShoeBot/lint.xml create mode 100644 software/applications/ShoeBot/proguard.cfg create mode 100644 software/applications/ShoeBot/project.properties create mode 100644 software/applications/ShoeBot/res/drawable-hdpi/icon.png create mode 100644 software/applications/ShoeBot/res/drawable-ldpi/icon.png create mode 100644 software/applications/ShoeBot/res/drawable-mdpi/icon.png create mode 100644 software/applications/ShoeBot/res/drawable/ioio_down.png create mode 100644 software/applications/ShoeBot/res/layout/main.xml create mode 100644 software/applications/ShoeBot/res/values/strings.xml create mode 100644 software/applications/ShoeBot/res/xml/accessory_filter.xml create mode 100644 software/applications/ShoeBot/src/ioio/applications/shoebot/ShoebotActivity.java create mode 100644 software/applications/ShoeBot/src/ioio/applications/shoebot/TcpServer.java diff --git a/software/applications/ShoeBot/.classpath b/software/applications/ShoeBot/.classpath new file mode 100644 index 000000000..7bc01d9a9 --- /dev/null +++ b/software/applications/ShoeBot/.classpath @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/software/applications/ShoeBot/.project b/software/applications/ShoeBot/.project new file mode 100644 index 000000000..69b5a17ae --- /dev/null +++ b/software/applications/ShoeBot/.project @@ -0,0 +1,33 @@ + + + ShoeBot + + + + + + com.android.ide.eclipse.adt.ResourceManagerBuilder + + + + + com.android.ide.eclipse.adt.PreCompilerBuilder + + + + + org.eclipse.jdt.core.javabuilder + + + + + com.android.ide.eclipse.adt.ApkBuilder + + + + + + com.android.ide.eclipse.adt.AndroidNature + org.eclipse.jdt.core.javanature + + diff --git a/software/applications/ShoeBot/AndroidManifest.xml b/software/applications/ShoeBot/AndroidManifest.xml new file mode 100644 index 000000000..36f2cd080 --- /dev/null +++ b/software/applications/ShoeBot/AndroidManifest.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/software/applications/ShoeBot/lint.xml b/software/applications/ShoeBot/lint.xml new file mode 100644 index 000000000..9c834f4b3 --- /dev/null +++ b/software/applications/ShoeBot/lint.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/software/applications/ShoeBot/proguard.cfg b/software/applications/ShoeBot/proguard.cfg new file mode 100644 index 000000000..b1cdf17b5 --- /dev/null +++ b/software/applications/ShoeBot/proguard.cfg @@ -0,0 +1,40 @@ +-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 ; +} + +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet); +} + +-keepclasseswithmembers class * { + public (android.content.Context, android.util.AttributeSet, int); +} + +-keepclassmembers class * extends android.app.Activity { + public void *(android.view.View); +} + +-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/software/applications/ShoeBot/project.properties b/software/applications/ShoeBot/project.properties new file mode 100644 index 000000000..b435ececa --- /dev/null +++ b/software/applications/ShoeBot/project.properties @@ -0,0 +1,16 @@ +# 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=Google Inc.:Google APIs:10 +android.library.reference.1=../../IOIOLib/target/android +android.library.reference.2=../../IOIOLibAccessory +android.library.reference.3=../../IOIOLibBT + +manifestmerger.enabled=true diff --git a/software/applications/ShoeBot/res/drawable-hdpi/icon.png b/software/applications/ShoeBot/res/drawable-hdpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..8074c4c571b8cd19e27f4ee5545df367420686d7 GIT binary patch literal 4147 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 literal 0 HcmV?d00001 diff --git a/software/applications/ShoeBot/res/drawable-ldpi/icon.png b/software/applications/ShoeBot/res/drawable-ldpi/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..1095584ec21f71cd0afc9e0993aa2209671b590c GIT binary patch literal 1723 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 YydS8XKly|Ke0K;?lv6{LKQ<5fKjBzE?EnA( literal 0 HcmV?d00001 diff --git a/software/applications/ShoeBot/res/layout/main.xml b/software/applications/ShoeBot/res/layout/main.xml new file mode 100644 index 000000000..ea32da0cf --- /dev/null +++ b/software/applications/ShoeBot/res/layout/main.xml @@ -0,0 +1,21 @@ + + + + +