From 8568212428b4e721423bec247e81a4aa090970ff Mon Sep 17 00:00:00 2001 From: gered Date: Mon, 4 Mar 2013 19:17:16 -0500 Subject: [PATCH] Initial commit in preparation for further work to improve this app. Since it's been a long while since I've worked on it and it was never version controlled to begin with... --- .classpath | 8 + .gitignore | 7 + .project | 33 ++ .settings/org.eclipse.jdt.core.prefs | 4 + AndroidManifest.xml | 81 +++++ proguard-project.txt | 20 ++ project.properties | 14 + res/drawable-hdpi/ic_launcher.png | Bin 0 -> 9397 bytes res/drawable-hdpi/remote_button.png | Bin 0 -> 1142 bytes res/drawable-hdpi/remote_button_big.png | Bin 0 -> 1545 bytes .../remote_button_long_horiz.png | Bin 0 -> 1262 bytes res/drawable-hdpi/remote_button_long_vert.png | Bin 0 -> 1431 bytes res/drawable-hdpi/remote_button_small.png | Bin 0 -> 1095 bytes res/drawable-ldpi/ic_launcher.png | Bin 0 -> 2729 bytes res/drawable-mdpi/ic_launcher.png | Bin 0 -> 5237 bytes res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 14383 bytes res/drawable/remote_back.png | Bin 0 -> 3791 bytes res/drawable/remote_back_bg.xml | 5 + res/drawable/remote_back_pressed.png | Bin 0 -> 3890 bytes res/drawable/remote_dpad_down.png | Bin 0 -> 2826 bytes res/drawable/remote_dpad_down_bg.xml | 5 + res/drawable/remote_dpad_down_pressed.png | Bin 0 -> 2802 bytes res/drawable/remote_dpad_left.png | Bin 0 -> 2983 bytes res/drawable/remote_dpad_left_bg.xml | 5 + res/drawable/remote_dpad_left_pressed.png | Bin 0 -> 2947 bytes res/drawable/remote_dpad_right.png | Bin 0 -> 2745 bytes res/drawable/remote_dpad_right_bg.xml | 5 + res/drawable/remote_dpad_right_pressed.png | Bin 0 -> 2919 bytes res/drawable/remote_dpad_up.png | Bin 0 -> 2818 bytes res/drawable/remote_dpad_up_bg.xml | 5 + res/drawable/remote_dpad_up_pressed.png | Bin 0 -> 2801 bytes res/drawable/remote_fastforward.png | Bin 0 -> 2758 bytes res/drawable/remote_fastforward_bg.xml | 5 + res/drawable/remote_fastforward_pressed.png | Bin 0 -> 2832 bytes res/drawable/remote_home.png | Bin 0 -> 2098 bytes res/drawable/remote_home_bg.xml | 5 + res/drawable/remote_home_pressed.png | Bin 0 -> 2098 bytes res/drawable/remote_info.png | Bin 0 -> 3084 bytes res/drawable/remote_info_bg.xml | 5 + res/drawable/remote_info_pressed.png | Bin 0 -> 3154 bytes res/drawable/remote_menu.png | Bin 0 -> 3015 bytes res/drawable/remote_menu_bg.xml | 5 + res/drawable/remote_menu_pressed.png | Bin 0 -> 3174 bytes res/drawable/remote_ok.png | Bin 0 -> 6943 bytes res/drawable/remote_ok_bg.xml | 5 + res/drawable/remote_ok_pressed.png | Bin 0 -> 7086 bytes res/drawable/remote_osd.png | Bin 0 -> 3871 bytes res/drawable/remote_osd_bg.xml | 5 + res/drawable/remote_osd_pressed.png | Bin 0 -> 3950 bytes res/drawable/remote_pause.png | Bin 0 -> 1487 bytes res/drawable/remote_pause_bg.xml | 5 + res/drawable/remote_pause_pressed.png | Bin 0 -> 1563 bytes res/drawable/remote_play.png | Bin 0 -> 2558 bytes res/drawable/remote_play_bg.xml | 5 + res/drawable/remote_play_pressed.png | Bin 0 -> 2682 bytes res/drawable/remote_playpause.png | Bin 0 -> 2224 bytes res/drawable/remote_playpause_bg.xml | 5 + res/drawable/remote_playpause_pressed.png | Bin 0 -> 2288 bytes res/drawable/remote_power.png | Bin 0 -> 3908 bytes res/drawable/remote_power_bg.xml | 5 + res/drawable/remote_power_big.png | Bin 0 -> 5485 bytes res/drawable/remote_power_big_bg.xml | 5 + res/drawable/remote_power_big_pressed.png | Bin 0 -> 5550 bytes res/drawable/remote_power_pressed.png | Bin 0 -> 5580 bytes res/drawable/remote_rewind.png | Bin 0 -> 2772 bytes res/drawable/remote_rewind_bg.xml | 5 + res/drawable/remote_rewind_pressed.png | Bin 0 -> 2845 bytes res/drawable/remote_skip_next.png | Bin 0 -> 2351 bytes res/drawable/remote_skip_next_bg.xml | 5 + res/drawable/remote_skip_next_pressed.png | Bin 0 -> 2447 bytes res/drawable/remote_skip_previous.png | Bin 0 -> 2330 bytes res/drawable/remote_skip_previous_bg.xml | 5 + res/drawable/remote_skip_previous_pressed.png | Bin 0 -> 2434 bytes res/drawable/remote_stop.png | Bin 0 -> 1443 bytes res/drawable/remote_stop_bg.xml | 5 + res/drawable/remote_stop_pressed.png | Bin 0 -> 1372 bytes res/drawable/remote_togglefullscreen.png | Bin 0 -> 2419 bytes res/drawable/remote_togglefullscreen_bg.xml | 5 + .../remote_togglefullscreen_pressed.png | Bin 0 -> 2397 bytes res/layout-land/widget_remote_control_big.xml | 174 +++++++++++ .../widget_remote_control_medium.xml | 174 +++++++++++ .../widget_remote_control_small.xml | 174 +++++++++++ res/layout/remote_control.xml | 290 ++++++++++++++++++ res/layout/test_layout.xml | 267 ++++++++++++++++ res/layout/widget_remote_control_big.xml | 164 ++++++++++ res/layout/widget_remote_control_medium.xml | 164 ++++++++++ res/layout/widget_remote_control_small.xml | 164 ++++++++++ res/values-land/widget_dimensions_big.xml | 15 + res/values-land/widget_dimensions_medium.xml | 15 + res/values-land/widget_dimensions_small.xml | 15 + res/values-sw360dp/activity_dimensions.xml | 13 + res/values-sw800dp/activity_dimensions.xml | 16 + res/values-sw800dp/widget_dimensions_big.xml | 15 + .../widget_dimensions_medium.xml | 15 + .../widget_dimensions_small.xml | 15 + res/values/activity_dimensions.xml | 13 + res/values/colors.xml | 5 + res/values/strings.xml | 5 + res/values/styles.xml | 17 + res/values/widget_dimensions_big.xml | 11 + res/values/widget_dimensions_medium.xml | 11 + res/values/widget_dimensions_small.xml | 15 + .../widget_remote_control_big_provider.xml | 7 + .../widget_remote_control_medium_provider.xml | 7 + .../widget_remote_control_small_provider.xml | 7 + .../htpcremote/HtpcRemoteActivity.java | 27 ++ .../htpcremote/HtpcRemoteApplication.java | 34 ++ .../htpcremote/HtpcRemoteService.java | 43 +++ .../HtpcRemoteWidgetBigProvider.java | 15 + .../HtpcRemoteWidgetMediumProvider.java | 15 + .../htpcremote/HtpcRemoteWidgetProvider.java | 48 +++ .../HtpcRemoteWidgetSmallProvider.java | 15 + src/com/geredking/htpcremote/HtpcServer.java | 23 ++ .../htpcremote/HtpcServerConfig.java | 123 ++++++++ .../geredking/htpcremote/NetworkClient.java | 197 ++++++++++++ .../geredking/htpcremote/NetworkUtils.java | 154 ++++++++++ src/com/geredking/htpcremote/Utils.java | 38 +++ .../commands/HtpcServerCommand.java | 8 + .../commands/WakeOnLanPowerCommand.java | 31 ++ .../htpcremote/remotes/RemoteButton.java | 23 ++ .../htpcremote/remotes/RemoteControl.java | 44 +++ .../remotes/RemoteControlFactory.java | 46 +++ .../htpcremote/xbmc/XbmcCommand.java | 30 ++ .../htpcremote/xbmc/XbmcRemoteControl.java | 40 +++ .../htpcremote/xbmc/commands/BackCommand.java | 13 + .../xbmc/commands/DpadDownCommand.java | 13 + .../xbmc/commands/DpadLeftCommand.java | 13 + .../xbmc/commands/DpadRightCommand.java | 13 + .../xbmc/commands/DpadUpCommand.java | 13 + .../xbmc/commands/FastforwardCommand.java | 13 + .../htpcremote/xbmc/commands/HomeCommand.java | 15 + .../htpcremote/xbmc/commands/InfoCommand.java | 15 + .../htpcremote/xbmc/commands/MenuCommand.java | 15 + .../htpcremote/xbmc/commands/OkCommand.java | 13 + .../htpcremote/xbmc/commands/OsdCommand.java | 15 + .../htpcremote/xbmc/commands/PlayCommand.java | 13 + .../xbmc/commands/RewindCommand.java | 13 + .../xbmc/commands/SkipNextCommand.java | 13 + .../xbmc/commands/SkipPreviousCommand.java | 13 + .../htpcremote/xbmc/commands/StopCommand.java | 13 + .../commands/ToggleFullscreenCommand.java | 15 + 141 files changed, 3245 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 AndroidManifest.xml create mode 100644 proguard-project.txt create mode 100644 project.properties create mode 100644 res/drawable-hdpi/ic_launcher.png create mode 100644 res/drawable-hdpi/remote_button.png create mode 100644 res/drawable-hdpi/remote_button_big.png create mode 100644 res/drawable-hdpi/remote_button_long_horiz.png create mode 100644 res/drawable-hdpi/remote_button_long_vert.png create mode 100644 res/drawable-hdpi/remote_button_small.png create mode 100644 res/drawable-ldpi/ic_launcher.png create mode 100644 res/drawable-mdpi/ic_launcher.png create mode 100644 res/drawable-xhdpi/ic_launcher.png create mode 100644 res/drawable/remote_back.png create mode 100644 res/drawable/remote_back_bg.xml create mode 100644 res/drawable/remote_back_pressed.png create mode 100644 res/drawable/remote_dpad_down.png create mode 100644 res/drawable/remote_dpad_down_bg.xml create mode 100644 res/drawable/remote_dpad_down_pressed.png create mode 100644 res/drawable/remote_dpad_left.png create mode 100644 res/drawable/remote_dpad_left_bg.xml create mode 100644 res/drawable/remote_dpad_left_pressed.png create mode 100644 res/drawable/remote_dpad_right.png create mode 100644 res/drawable/remote_dpad_right_bg.xml create mode 100644 res/drawable/remote_dpad_right_pressed.png create mode 100644 res/drawable/remote_dpad_up.png create mode 100644 res/drawable/remote_dpad_up_bg.xml create mode 100644 res/drawable/remote_dpad_up_pressed.png create mode 100644 res/drawable/remote_fastforward.png create mode 100644 res/drawable/remote_fastforward_bg.xml create mode 100644 res/drawable/remote_fastforward_pressed.png create mode 100644 res/drawable/remote_home.png create mode 100644 res/drawable/remote_home_bg.xml create mode 100644 res/drawable/remote_home_pressed.png create mode 100644 res/drawable/remote_info.png create mode 100644 res/drawable/remote_info_bg.xml create mode 100644 res/drawable/remote_info_pressed.png create mode 100644 res/drawable/remote_menu.png create mode 100644 res/drawable/remote_menu_bg.xml create mode 100644 res/drawable/remote_menu_pressed.png create mode 100644 res/drawable/remote_ok.png create mode 100644 res/drawable/remote_ok_bg.xml create mode 100644 res/drawable/remote_ok_pressed.png create mode 100644 res/drawable/remote_osd.png create mode 100644 res/drawable/remote_osd_bg.xml create mode 100644 res/drawable/remote_osd_pressed.png create mode 100644 res/drawable/remote_pause.png create mode 100644 res/drawable/remote_pause_bg.xml create mode 100644 res/drawable/remote_pause_pressed.png create mode 100644 res/drawable/remote_play.png create mode 100644 res/drawable/remote_play_bg.xml create mode 100644 res/drawable/remote_play_pressed.png create mode 100644 res/drawable/remote_playpause.png create mode 100644 res/drawable/remote_playpause_bg.xml create mode 100644 res/drawable/remote_playpause_pressed.png create mode 100644 res/drawable/remote_power.png create mode 100644 res/drawable/remote_power_bg.xml create mode 100644 res/drawable/remote_power_big.png create mode 100644 res/drawable/remote_power_big_bg.xml create mode 100644 res/drawable/remote_power_big_pressed.png create mode 100644 res/drawable/remote_power_pressed.png create mode 100644 res/drawable/remote_rewind.png create mode 100644 res/drawable/remote_rewind_bg.xml create mode 100644 res/drawable/remote_rewind_pressed.png create mode 100644 res/drawable/remote_skip_next.png create mode 100644 res/drawable/remote_skip_next_bg.xml create mode 100644 res/drawable/remote_skip_next_pressed.png create mode 100644 res/drawable/remote_skip_previous.png create mode 100644 res/drawable/remote_skip_previous_bg.xml create mode 100644 res/drawable/remote_skip_previous_pressed.png create mode 100644 res/drawable/remote_stop.png create mode 100644 res/drawable/remote_stop_bg.xml create mode 100644 res/drawable/remote_stop_pressed.png create mode 100644 res/drawable/remote_togglefullscreen.png create mode 100644 res/drawable/remote_togglefullscreen_bg.xml create mode 100644 res/drawable/remote_togglefullscreen_pressed.png create mode 100644 res/layout-land/widget_remote_control_big.xml create mode 100644 res/layout-land/widget_remote_control_medium.xml create mode 100644 res/layout-land/widget_remote_control_small.xml create mode 100644 res/layout/remote_control.xml create mode 100644 res/layout/test_layout.xml create mode 100644 res/layout/widget_remote_control_big.xml create mode 100644 res/layout/widget_remote_control_medium.xml create mode 100644 res/layout/widget_remote_control_small.xml create mode 100644 res/values-land/widget_dimensions_big.xml create mode 100644 res/values-land/widget_dimensions_medium.xml create mode 100644 res/values-land/widget_dimensions_small.xml create mode 100644 res/values-sw360dp/activity_dimensions.xml create mode 100644 res/values-sw800dp/activity_dimensions.xml create mode 100644 res/values-sw800dp/widget_dimensions_big.xml create mode 100644 res/values-sw800dp/widget_dimensions_medium.xml create mode 100644 res/values-sw800dp/widget_dimensions_small.xml create mode 100644 res/values/activity_dimensions.xml create mode 100644 res/values/colors.xml create mode 100644 res/values/strings.xml create mode 100644 res/values/styles.xml create mode 100644 res/values/widget_dimensions_big.xml create mode 100644 res/values/widget_dimensions_medium.xml create mode 100644 res/values/widget_dimensions_small.xml create mode 100644 res/xml/widget_remote_control_big_provider.xml create mode 100644 res/xml/widget_remote_control_medium_provider.xml create mode 100644 res/xml/widget_remote_control_small_provider.xml create mode 100644 src/com/geredking/htpcremote/HtpcRemoteActivity.java create mode 100644 src/com/geredking/htpcremote/HtpcRemoteApplication.java create mode 100644 src/com/geredking/htpcremote/HtpcRemoteService.java create mode 100644 src/com/geredking/htpcremote/HtpcRemoteWidgetBigProvider.java create mode 100644 src/com/geredking/htpcremote/HtpcRemoteWidgetMediumProvider.java create mode 100644 src/com/geredking/htpcremote/HtpcRemoteWidgetProvider.java create mode 100644 src/com/geredking/htpcremote/HtpcRemoteWidgetSmallProvider.java create mode 100644 src/com/geredking/htpcremote/HtpcServer.java create mode 100644 src/com/geredking/htpcremote/HtpcServerConfig.java create mode 100644 src/com/geredking/htpcremote/NetworkClient.java create mode 100644 src/com/geredking/htpcremote/NetworkUtils.java create mode 100644 src/com/geredking/htpcremote/Utils.java create mode 100644 src/com/geredking/htpcremote/commands/HtpcServerCommand.java create mode 100644 src/com/geredking/htpcremote/commands/WakeOnLanPowerCommand.java create mode 100644 src/com/geredking/htpcremote/remotes/RemoteButton.java create mode 100644 src/com/geredking/htpcremote/remotes/RemoteControl.java create mode 100644 src/com/geredking/htpcremote/remotes/RemoteControlFactory.java create mode 100644 src/com/geredking/htpcremote/xbmc/XbmcCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/XbmcRemoteControl.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/BackCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/DpadDownCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/DpadLeftCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/DpadRightCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/DpadUpCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/FastforwardCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/HomeCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/InfoCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/MenuCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/OkCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/OsdCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/PlayCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/RewindCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/SkipNextCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/SkipPreviousCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/StopCommand.java create mode 100644 src/com/geredking/htpcremote/xbmc/commands/ToggleFullscreenCommand.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..a4763d1 --- /dev/null +++ b/.classpath @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a0d8995 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +*.apk +*.ap_ +*.dex +*.class +bin/ +gen/ +local.properties diff --git a/.project b/.project new file mode 100644 index 0000000..eab381d --- /dev/null +++ b/.project @@ -0,0 +1,33 @@ + + + HTPCRemote + + + + + + 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/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..f77b31c --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.source=1.5 diff --git a/AndroidManifest.xml b/AndroidManifest.xml new file mode 100644 index 0000000..f1cddec --- /dev/null +++ b/AndroidManifest.xml @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/proguard-project.txt b/proguard-project.txt new file mode 100644 index 0000000..f2fe155 --- /dev/null +++ b/proguard-project.txt @@ -0,0 +1,20 @@ +# To enable ProGuard in your project, edit project.properties +# to define the proguard.config property as described in that file. +# +# Add project specific ProGuard rules here. +# By default, the flags in this file are appended to flags specified +# in ${sdk.dir}/tools/proguard/proguard-android.txt +# You can edit the include path and order by changing the ProGuard +# include property in project.properties. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# Add any project specific keep options here: + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} diff --git a/project.properties b/project.properties new file mode 100644 index 0000000..6f9611b --- /dev/null +++ b/project.properties @@ -0,0 +1,14 @@ +# 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-10 diff --git a/res/drawable-hdpi/ic_launcher.png b/res/drawable-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..96a442e5b8e9394ccf50bab9988cb2316026245d GIT binary patch literal 9397 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 WjGkcOJ&S>51cRrmpUXO@geCxu8Wg_( literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/remote_button_big.png b/res/drawable-hdpi/remote_button_big.png new file mode 100644 index 0000000000000000000000000000000000000000..e2d48a0b5327cb1f280a4b7fdf62a8ee76320407 GIT binary patch literal 1545 zcmeAS@N?(olHy`uVBq!ia0vp^w?LSK4M-l4jkyh^Sc;uILpXq-h9ji|$mcBZh%9Dc zUN&PEETy3NzY zF{EP7+gk^-r~H&X{;_{?VVkLkgML=2ev^xcon5}hh)%3jXDTaDc@+u+z4gNSO6G)a|QjoW`)j$G%iv$5HKhUfn2+0Ref6s!Ed zyHaJo%Fc;Tex3XH*!CW?e3Sg7JHAEv&wrFo6950Yoo71)tK$Kl;PXFWy_SKM~~jMW4F_oJ$rU!eEj(eo4Wu0+b7q|dvg2d+3(K3 zb0^uW{?zbvTO2rT`t;&gS6248EuNpAWN|=kvgbVe`gv2QPW}1fp2|<9lk?N1KQD~+ z`Q%%sWL^F)W?jtANv*A|mrfKE_%6R}Q}sn-_3G7|*P45-OMQOIj5~M2ll3=u#_lP5 z8+C5JeY~6~-@dI|x8B)bUtd;beNun&pVu$W9h0B*NAKpoNwK?1R@y7dFsb{`J9F(? zSlr&KsVd@=a#Vi)o|seLx_?%Ri40%y=V!j#yFUo~EWdnbS84V)``Z>L_1Qe_e2u&& zou01W%~Q7s=o%e;{quhAo_4Y+zZFX+J^AwT@^3?N8LRhOOOhwNjju^DkxI3Yd3QRX z;090o;h*kF*X#Ez($&>{dpn>&;;d;YP*J{H(W4`swbC4Xi+3*5d-H3z&V&En8376= z8Uj)x9K2jDY^+YrObZ&kxM4lfHia z3QbP$_$J-)o^�(#MKD`OXIujpX``XZoZq|6aFek?P5Aas6+p8WuVCvR}SaI5}74 zu}bBiABD>g=ggr{0vzd2;TeO0>25{<`1aa<^^UR`l%5%)he)`S!5$ z%RPB|div(e_G&**Uz|I+Ugc-#ByMSGX-U5J$f&4W{gMwIs(*dSoM%&MWW9IplkcAQ zWM@{NJ*skF1(^TO&9j}oI(&UvV&Xz84H=iqFHQL6?ath~bt~t!@1$(ceZG?x7q9=D zKI#3WKWZlr9XsY079MUa)m!xE$443KvNe|GG8~gns+^x^dwQ;Q`Lld+prJ}9@25$- zmsP$$suHjIGpDY&%zEdJ9X~$%@UWkF_AKq%_3P!;DrMFupWoa$>22zSC#Q4j13#VH zw8r*&*tXd>zoz%@j=lJ7uGc5eNz$I{-pknEdu;nb@rUB=^9$a;mD%t2NnYONzw}Da W^cfCIYIXyQZ3a(QKbLh*2~7aWdUkyP literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/remote_button_long_horiz.png b/res/drawable-hdpi/remote_button_long_horiz.png new file mode 100644 index 0000000000000000000000000000000000000000..a2d38c7dcc9e51195cc5a96aff0eddfcb489d6fa GIT binary patch literal 1262 zcmeAS@N?(olHy`uVBq!ia0vp^w}3d0gAGVJy7BG+QY^(zo*^7SP{WbZ0pxQQctjR6 zFtDoc5!lIL8@MUQTpt6Hc~)?vOQfK zLn`LHz2%!7lPb~h(0X#Gy60q1k6TH%O{BY*=|;@z_{tomsj==4rM+ z^5OW~{Bs!7j9#D6dq448lWT(B=CsDA^}iJN9$4mmZ>py^@;Ah9YCqrh&F+Kc1%3mA zfTXNfGReupJUmnWEnm3wT0;)gBYAAGfB)6 zIdEYKLz^0_fr)0rLQh5>U#^6V5iF%3e5+JQTGAkhi`}5OJ|*BW9Q#D z;d)Qd@!gf5g-)N|zx4L`2JgN8W}6RKA2@RBmeA5mj%{tnKFrq!;trXuD=$8{N-QnC%2t` zdaE?|V%D;^p)2l+>So&)u+2ERMtS!h_gmaznSa^lu8WL{-+$|u@Y9`H*(bg;z6F*| N44$rjF6*2UngA7=B?$lk literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/remote_button_long_vert.png b/res/drawable-hdpi/remote_button_long_vert.png new file mode 100644 index 0000000000000000000000000000000000000000..a57be950fe459c4483d85879961ee68d9a92d8f0 GIT binary patch literal 1431 zcmeAS@N?(olHy`uVBq!ia0vp^c|d%NgAGW!GnCH&QY^(zo*^7SP{WbZ0pxQQctjR6 zFt7rZu(C1QP2CUVFi4iTMwA5SrER4wA^ z;uumf=k1O2*_X>@j($eXQU;E`9wc4`Ss_h4JWcL>18B^4BU-5Zny;=1(CA((hbLM?DKkFvtR~(-FUi_2h zhb;Go%?BhCc9q+0JZ)QLTi%d;pys^|yUnlV_CXAKOxXvF`xnY&?`3P9&U!14X$Q+0 z9=&O&+gDue3tZdBcyw-^_xiV*Yp-eb9y6MI?$$T{^hWLjcMl$Y`_OKY^jfaF5tAny z%h>+nn|kWu|CE%yEAHlP+Emm(+dQ3JdE1L)zjy67kN_IWD8shmy1$WW>AZ^im-@JWDT~_~*A;cj+aL$B)%D zr}KaO@G!T*=!4w{Q5*j6mLD_^{P>{)wAxuB)OzLBS6ia$FXgOr_`dds#Eu|_V-4&M zOJmj<8Gq(fR-XFMch&xzcXEuaf2+>*<6gkKCw9qi`?X93udY}w-rMNrrZvZ^bX|QU z<2kXH|2DEEjD9c)KoWWsqL}SIf;`k6g_<-exxC zTiSw)C4v@wU&>s*s7Ys()FiymI<9NDH*lVL(PhIa51l0SMv37V23H(*q#vH`RQ+X7 zpx_Sv3t4OVvZdZ$bXfe`H9>B{#R$1u4!34Ex_x$iAmy<9@}j$Wytx{Cqjuk2bou71 z;@sDr%n`AB?WZiu!YvmS4$sV4&ss46w)Y?#~-c+l(Ti?o`V-kO1o4H$)LA=p) z*KZxU-}P(0O1=3~@OF>I1C9bQ3ud41=hVw~y03rEclYdspZ6;HD!y#e|Ihk1zyDv_ TE3N6kLX^SN)z4*}Q$iB}iP(tc literal 0 HcmV?d00001 diff --git a/res/drawable-hdpi/remote_button_small.png b/res/drawable-hdpi/remote_button_small.png new file mode 100644 index 0000000000000000000000000000000000000000..3a6c83cfe1cb30a3028be89a509998d7aa24c81a GIT binary patch literal 1095 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 literal 0 HcmV?d00001 diff --git a/res/drawable-mdpi/ic_launcher.png b/res/drawable-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..359047dfa4ed206e41e2354f9c6b307e713efe32 GIT binary patch literal 5237 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 literal 0 HcmV?d00001 diff --git a/res/drawable-xhdpi/ic_launcher.png b/res/drawable-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..71c6d760f05183ef8a47c614d8d13380c8528499 GIT binary patch literal 14383 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_back.png b/res/drawable/remote_back.png new file mode 100644 index 0000000000000000000000000000000000000000..344baff1e431730603a7105e64108f7a3043ad3f GIT binary patch literal 3791 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 q$!@Y*5>+7|V!VmHH-3gjUNT0k)P62Ug + + + + \ No newline at end of file diff --git a/res/drawable/remote_back_pressed.png b/res/drawable/remote_back_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..a66f40fcb31f4e2a39e5c2021791463e0d036097 GIT binary patch literal 3890 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 + + + + \ No newline at end of file diff --git a/res/drawable/remote_dpad_down_pressed.png b/res/drawable/remote_dpad_down_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..7b19459bbf65a004e4b15510d0d1c315c1895bde GIT binary patch literal 2802 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_dpad_left.png b/res/drawable/remote_dpad_left.png new file mode 100644 index 0000000000000000000000000000000000000000..a01a3a6b89ef659b209c6c35a304e0f6c355f5e8 GIT binary patch literal 2983 zcmdT`_g7Qd8cjlIQP4n`AWBIQLNQ2h0wE?61Ze?50a2vL6EP5Gg0v(^384rmZNMQ& zm4N_)G@TGe5fMf}1yri2)Iq8uNO_m{(_8QT1#{QB`|R`W?|k<=>#lpxPI9!jmVzn3 zKp>Em4TaQi_|TZ2 zgnp@XYVzO+#NS^3{yWwg_lkz9gJ}gjypF;8V99nOiC2m<4g0v!+10f@QKYa_Y3`uB5nK8jLO$51K9_%A+( z`syN0m^-p!V)jTuG3d?FO)ZGDy%uIKHnoy}T* z*2}JLx1zo_uku*OR903N=ei!rvOC*95~cj^Z>IdA76mPBan;<2{m1KN4ZyoTn|ZyN zM^l5|E>SBhryiqnV0tiIWgH<;) zn1MP=dMqq;ooFdJ78rPgP$=|0D1ROt!B)?pJlE{ zr_IghkS*?fFX!E!!cvtN!4<#19-mA1(3~kTk$fX=z3ErkV{N4-)zu6vv&0lS}^C zc4}=kyiLKrZCsdr0JDLURV;Y~llT(O>7Ygyr+*sPR~fDD`_X zI8`327vO=6o6vj9>!Qba8$Ju<|chas$B$ilCVT1mq-!pqXIFE+xhg zShGTAa8+_&|FXQ7*D{c>?C)XLf1>4}qwt}k4g9a0wqQ|Dp!d<(WPnHlB(57E5`fg6 z$by6$(Pzmg659afgUu9&ouO9o}`pMuMW*SV_(GfsbF!oq-R`4 zihFF&S(mWxIW@x7c{6wXNHE-aKV(J?cwuBVfZ*s4-#F6OUmPO_^;;{bsHckzH!+@> zpK^MEQo-H6O96Lu{{Wt}^*D_JZfPF|`k5JUJ8;L9FcCrq z=tEwB>11<5SATIiqEE{wX=bD)ru9+eUP#vAM9*!9#t!oYdL_#nD*o4B>viEF8kzeF zP3Y|YejTNl?_(4`GJ%9{$J{z0%+ee(X7DY)g!t&`hsCqmdU~C8WGJl5&3+H9Uy`9z zRBDQ6z-a3ablW$gYbeG36qGh)S4domtB13REAg-Qki80E=w0L<<{9l_mfId?FyQSj zlqXMMU2+$Ib>FIpq47<7Lj2GkveyCRdYmIcVe0mNvT$5U^Bq?bFMZPSmp$S9xl>Rp zN-<0w;&&L(D(?IYX!jhy0h-1`E=L04tnO+Dgie>FmSZaK%lD4ko(nc}5SIlxDs zzN?S+t;aMx993S&t^Q<9iHCRWjO#X+l}}?IF_gKHDfh54k{6gY%Z-d2Hx z1fu_O3&NSfII#G5b-KATw}`{-dri+Ax{z#y9fCl}E)8L(g7j~HhiC&I$UYfsO60dS z+7d4k%toKD#hnZ_0m7A14P_RVvbr*tiLc~kwK6^xL z*e1|?n=L+P-$H=^3gzPTFC{cEYAk_LFjslh!f5`~LesXS1j1>ijA+`xOOM(QaGR3X z%5sXY1ks6q>`l86vU~i-eDz1TovQ-3B5q1Ha}g+^(UKqEz--$EDEDa)YGIt2DQ!pL`np=kUrD zUZEY=(NX${n@ord z*0PP2@}Y@vnP%`7-hE+lS3J*-`LsCcfNoy0XKR=tbJj>mS}K^y5%wqz3`fRwb=6>w zICvTXo?&bZvtfHuSOcmoLng2lCPG-t%kYH6n!b@J%On!|Pp1wt&<(X*I^^qI&PI2e znDmofG{hLZ1#*`@ej+NXsK`p;uv>=R6f@5y6R5kf_S%v*`^s`P#{tv}z72{Ww!?t!#f`tf@4p#+Go)S24~7p6JVd47Lw?Pb4+sj1n;)vtF%IW1nK(|Iytt3nl1m=~ zX^WgwDR=7-JP_InugRCNyl`cwBmK(T7S)4`a(frsF)aIw1~j!kn3l%mk;yXn1bXQx lb=_Q`KJjAgzX7{PCrtnV literal 0 HcmV?d00001 diff --git a/res/drawable/remote_dpad_left_bg.xml b/res/drawable/remote_dpad_left_bg.xml new file mode 100644 index 0000000..0723ed9 --- /dev/null +++ b/res/drawable/remote_dpad_left_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_dpad_left_pressed.png b/res/drawable/remote_dpad_left_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..c7432a69a7f016b943d0111943b9a43765974e83 GIT binary patch literal 2947 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 + + + + \ No newline at end of file diff --git a/res/drawable/remote_dpad_right_pressed.png b/res/drawable/remote_dpad_right_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..ca6f9bee1348ce2b627cbef944067080407c43d5 GIT binary patch literal 2919 zcmdT`i9b~98$UCQWg>UnkrH8yELpO|wHpRQ*@rY_$(k%v_92F%F}7g{mqARCt|26Z zn~F#%DkMuNTgBMd{Epv$anI-Te&6SPp7VU)?{m&`&gV_Gu`=U_i@*T@;5Wx%?Z7z` z03hN#T%d&!LK}b+XNZwGo(H^Qc)Td!nwN;X6aoNT`G*4{JRr9QI!}a}IEC5=`-Db# z-0%h>A|jNo23-sB^dNdG1>f*3_@yfX0Pq=eECwH0`15mcfWx}jYxZWV^yU1OV1j}p z-(BwG%s<){Jh+^j?``Gg(I)Bbg0@E%=z8HjwR*#K9UTTA;;uIaj0k4I@O!r~G@fq0 znw4Os{G8;E{_O(>hNDlKqKVOy#37^6rPkTaUB+&d^k)0^<+*La@oh#(e_#^30QwK` z30Qw_X{bo-<%~_*niqX{G=^7{yMZG*{@xWviO7~7k*jOoL8E%f^!LOgl?u*S-nGbO zfq|Z}M|Wblb5bSMI(GslgP&)>Cn{PRvKC+;FSG{9JE&DwwD`O&R*XNctBH$?Fc9u@ zDOq)6@NMv?Z@k{%5a5_N)}}(hrjVb;7fh#|JMUj{tb`yuF9*O)Y_`Nhh_+a&q5kQ=|i(U8bR5AAf9hBH689ig`XwssLDRz&QB z0?T8h)7z`ui=OA8n^V=L>N_t=8jYUceV|MzI>JYf<0D>|spQhb}Go0_%$lLNu2LrL_qi84BqWfF(yPgeHA}-Wl)?Fi#6A z^~S5s_AE_B8z-somSHT=8wzfyOEF!y!w{7+GFxjEtst_klJy06u>~ zaoh|0cjke2hnG0!d+;YR60BJ7r~Opyu~!~YUR^*W=c5GGOwc}5+*@R3o*e4G6R;Du zy&T3^M7*)8L=m0^DE70W@9rKOn8LDMBg6ptC z3h+o6Cw=eq`HAD@)h~TPM#1H@FlOqGhKR)MRClRn0%+h#7*q9eF!ZoKA;qs0Vxp9U zuclEID=4Q=+MvO7u0(u5JJyR|wvw*s!6Y$FbWa;qoH&M0E`r z#1lr4XHSvhOjpxi`%F3Jd#z`Mtsy@c?#3i{HV5nVGIj9eqKz?WiY0@zOI^*_g3HD9 zNkJ2l+R7*pRfACpF*xO4QMQt>&PNnrTyKMA1W%1X#2dlWat|^2DFQPrsn@uL8S+GT zE>hglOo5k2=Go6qDHqUMGI%D(rs3Vb7%V4R=lZ8d4R6>n0$*szMDDZy>jnoIu1uhvX9@Rgi z(;5Z?58YQB6opy<=m{U zDGR%^s6tkqNJiRR&kn@GDhqF{IzZ{bX+d|NFQ2gxxV!7|Afn_BjU-8hgzR_kFZ4kCRfY!kcrC0xLo6=MgHmUYm{ zgx-)khmezqutR|6nJo&E7LA#3;y(G#OnLQtW+*2o#H@a&;bVYn(_Edu+XI0Br?&PHKIe@fkJqZf&j*X@zqLj6T!YO|-PC zu6JG5TUsc$?k`w&%LfxQ*q8tHUwQ5GraAYDxUR3Vg46`7KJWOAxr%?w4cPH$T^OU@ zH(t4{Y}L0|$X5`gu z7BO_cJSDy;erv$_lDjhTaUpn$Fz=U!XfE?el zTZawC*66jZal1>9tkzDJXp+j;`>Xi)=ce0SRMpR77mEpB2NXk;m#>kjnTe~0((ib- zqs!XT^}j1Hj8D_e!wGCFrQGS|#XDN7OKR+I6HuM6c36O$EY1-E*=d_Ed)k_Nav@m4 z`5yP^H~&ato^iE!=`_wPCd!}&ahyx`i;oXSF`#L7Wbj(K{Q*v|?t8C1yK$<3MZYY% z-(ySq96i-jPSzm@mnFVuIiz$2+lNf2Xeza4ZX4wHr#7isoMmk>ck!CVH1flnX_=WraBq96C2S|^A>sKq{D8Gwhm0}{| z`>b{54RjWU+~T-D0b*sXT6g6qFU}OhX4d3KFN$v;tvp)+X#n(2?cG|l`1Mg|<-ql& z!-bjE-A(f8Ny(B^d1^NjmaHdzDaC#Ce=pqR7v&BI!~u?rJLfYGAa8Fuqdx7{Wq^lb Nz}&oj$r%Npc*Bme+w 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 + + + + \ No newline at end of file diff --git a/res/drawable/remote_dpad_up_pressed.png b/res/drawable/remote_dpad_up_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..9f089f447b78a61b029c0b137c2dff20b019cc65 GIT binary patch literal 2801 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_fastforward.png b/res/drawable/remote_fastforward.png new file mode 100644 index 0000000000000000000000000000000000000000..075534d8da2902be776b1965571d6e07a9c66e40 GIT binary patch literal 2758 zcmaJ@c{J4D8y*QWvKz*lB1`s(Y!Sx3XA46ZyDY=lw@Sty*B06$ApYo0%Hg0ekTA1TzEc zT|Xx>u$_!Rm^pxfkqGw50M3vwQG0qDJJYgE}DtRi8Go!@r&6wxZ z(JxjL)%Txbe-b@4}boQxOPnx7z1R-p2TmKu>@P3 z=!5}IKD|#rI$F)e#bwJhi>Ivi)9|ofNQlDW;ojwn|bv(<|yFf?*(_gmy=|Lt*o;{m9Gviia?Js}9;#Nn8 z#!RUCjc#2xBnQFo$d;=nTpb%$&MZER z42NJ63;&91on^S=uvLWK*wX&+QFr6xp z%5Gax5j4&&SbR15()sh}zZ#*D1uE`1fur(4gt5%GZUPk@e27CA#*iW$ zD5cOLwPhtUO-v&bqO8$sX25U2N))ie_2>1 zYmoVnu|A%SYw@p4DmD>ID#Bv1rfXXTVOn@745kwCV<@|O;q0-w1FE$;?MH+Mjmf`qSBi^^D;67o?Oyc?4OQ&#@7LZL zHb4k7LLd-%m#5h3YHsZf4?%!rjbgan6Tk1RCt)~DkZxaSgn>4d&qQzN)YS>k$x(XZZ+l)8r; zovul$l03n%+Cso(x#m~BE6v@MQ6~=tRnoJ-5gA!oug&@XJEwJ!0sIoR+_e$gWcBU! zm%pAyF53}eMl?h?_~o5%jjzy}UanstTjkdBG80a9?0vnd+t6^qpCV$MbKx>xJo=op zG%@iHW~}KN>7iL6mNpEpQO3i)2aW?zV;9D0MKuh|k6()sMZezV|ERsq_Wu3*UJMS2 zv%Y$jU(Tt?r$39&$HxauLIGiKQ!W8vYtz4_ygkMxMH0Kbu&{8&!QpLzqy;vb3V2(V zE_MS4cu_fx?$)V|ay1vgt{;#|q`sBi3jn-?oaAuoz~*NQrPk}CvOqq#3bhoZE&W#~ zS^;vj+&GL6?fA}2aH$1^hC-dS(cV1i}apMohu%Ov3N{K3-+cXEW)F)L5njT4U~j0Lcr;Xlab z(pt=1@jJso&94U@H+N-CuXWMI*z&n0S1~{r!oyppx^sPX`8!&CSgXoOoHxBv*vH%wR;d>+hC@8hUQ%k$oN3N4c$qLb3ipB2B(dh;cx=^?j#rQUS}Y z-h?jETarlxbW&7Y{CQ?ZUh9J{mttdGUHaN| zJ27I>nraA#FTTy>J^qURorR$Jj~&&kYDL}tsOwKER`?49RP6;KJW@H%8Bm7QCKBCi z^)p(grjS5n-G8^TGkz+CtRft zZ+~2TKp^Nx7NNL#QAtTjiCgcb0g9!}&CNMGXv*B^t}H0v0TL>sI#|OKg<|0lse1OT zXl!gOz-hNRGA4!?GOY%H(N`DuRK%9|H=xYw2HA@jx$)Jp69Hw$j*fi3zP=TglaK+$ zrd;7De@X?RvGGpQ!EZ?Sg)6SE*$oX}Mn@rJZZmPI#_sM)8{NaAyO;M(W7|z!U4_fl zLgs-V`O74PCcsv7wjPD{nO*>qBN{D*8mYCsyqxLKWMOOz72!zV7_fS%5w~?Nol~r< z<#em9yHP;$+d(i>6zxw6uieS}a;&*7K{{GUVqoa{gQK>NW$+2a* z0cnxxWSt%z80%_u=&McRnb7t?KNEpK06=?tUfsi;!p&z5tT=Wz8IgB-JS{28fm~$_ z@2H!3_wR@P351XlXSk|rYEnBpJCpC5*f9;UP_QtL=ywyzyFG;i>{-=$1qBE%FLCR- zLZBnE7<%c;yc2$;qoV_O@M&)D@`Tlfa54=m>S7>ycQ~$0sstxLNV)mr2y&^V=*k1b z9butI7HfY#(yO~K_JtT(0xbw8*|Nu~-uJw#gn@y?7yRf+)e|h>YeFJhyo3KZF%l^W UFZ73ufSwa%W@K&Hgz&umKc4q5;s5{u literal 0 HcmV?d00001 diff --git a/res/drawable/remote_fastforward_bg.xml b/res/drawable/remote_fastforward_bg.xml new file mode 100644 index 0000000..8f0de6e --- /dev/null +++ b/res/drawable/remote_fastforward_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_fastforward_pressed.png b/res/drawable/remote_fastforward_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..90e0124dbd45929ebe77dd99c768dd3538511944 GIT binary patch literal 2832 zcma)8X*d*Y7oH)EeP6ScUB=k=oyd}`nISTbwFqMwAxpN#HlKa6MpDc$_UujbT9Pb7 zwiJa(!XT4~zUjyJ>-+OQ*L9xzI@fv5b7Lwa5HNc5beZ)d>+z#=Fls!Z~%a@_^$z5J$(OW3rAdrMmUG~MWEnFUjPb) zQVzU(CmaC}^;Hf*`j_q)hyVaA+13`OF41M%3UcR#o7vD355_4kFgN&#@BN;K{pP%eC}=RA3s}r*%P^~Roza3#a`TZi zojHA9E{tK4X%pQqRZ@b`9G~Jza{3M)u_gUZoM>JgfJ|bnN9DLxPzH*!1Ttg%~jeA6@EYlJg#`B*Q z`P??1+`ZhT@!BbR8a9^mgv&^dGz$m_rYW2BDNy+%fO@1AQdwr6^!L6Uz&R_XSi^!h z?O|a&QgDfjK;rV(-9r<_xuHSpwv_t@tbjhp|M{IM&I#4;PuF5Qb;!?GFS3~P*Q&U{ z|1ErwRWjKR8$df*{YJOKAV0vh+S^Q_a|sJCnHk7P|n?bnU;Dkg>v*`_#WzWPgY+b zz6Z4|XK9taUe2)F6nBhdWaQv08T5?ClT{6F>4enuzdHC6Ujcg38MsU%ZB2E==b3+g zOst|_L(8+hd%cBNzEX?X6(xb?E@%Kk(m~>N-iYmdQvf~sg)GbH9%|2~)r&BlPo20ghc9l{XxAk5(46U%Wzx8SF0d z7C9uR#ab?#N5yCzgj8ZGXRo>NWt~}yKca#j1wP8c2t$;tLb%RuDw;?Tlk+9kPA~7O zhaFi|!O~LMSKGS?dn(1(uq*`esis z{t9N;1nWg*;pS*yDn*M>6DEx0 z8li9wON*>eV<*dNT_+X1dRbC|(tbImXoY_)-lXth+Jg!Wb=C$7a-BO5X7v}GyR8Cp zfN4MjgD-H}E9<+a%2o;b-)2uQoq@tF3DfEjc*R#CzyMpu=fVQF=wHSVUPG1RV~MXa zr#AE1CNFhm=%9E3YQfGP`U!p?V}mK!-$3M z5B&*)thnbmV%ze-wHad|HM1WS)RIlGj~nc$4%TSbzK0hdWa*iY$!)moF#;L2D)Oy@ z+2Cwcx3$AMKI4bCoXS-06c>IRj%rxnd(MT`0nPC zY$h$Ih}tU=d>rMv14E?jcN#MfbC3+A)OOhW`FlQcl@cdq#d~Qx4(YeL)E1w}@{dX)MiN66~v>djmEgkvK}rRl?_mTzjb7IY%d z3LbugkbSpqg=~6t2!=fCdIAe5T3T_1AC4Uc8FfC|wU6HzyG^he36WXjTMykK>5?6f zQ`}NucmX5uuL4gi6dArvu`D!n`Ut&x7p_dBmUV2;ZLhP5G@Tk`(3GneUj7W%E!$9Z zJxX-p)efSkIm&bIw)NmARk;7Rac@PHu$7;@74_9_uUqWmVMZRA9mwXx>Pe*?;xl;Xo@?DC%2F%e zLp0LmLQ9)8Pi80m0>kHa&eVd7w2Fc~WP8I_6+UR)c_ZkP)VJFC@(o>NN$HA1ssfuU zmh>-y`K(Ok?$-Xc?mg{`%Jx3Y&r$eD?8&Z9o>N$u69nj5tff^?iend)bLFA*AjWQh zsbulOOSG5*Fg2$=&6yplU!d<#cnRNbnhLFd)%DzgE=qqk$W!aK?VUbxyD#6~70q^Q z>FrB@Iu|=_%4^PHbx}|lC+LS&eFp9Z z;pQXCM)m=dNh-n?<|Pc?@aQeJ|DslMr$o1Zt23NzEh$LcyOgE%nCA$R*f4GB2@@lu zES}6{o-ps9=eEsEtvKuFC z^@~A1LPPRWvigP37(4GFITs`?i|0*5Mr$XSpSuL)S{>FMK;CMsGsrmJ6{0Q g##dg(Zod=0`^MP^LfGJ?yp+1{ej%=^KA0Y=|TcK`qY literal 0 HcmV?d00001 diff --git a/res/drawable/remote_home.png b/res/drawable/remote_home.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf23897f40bdca850b325cbdd1b8e09aa4357fc GIT binary patch literal 2098 zcmZuy2T;>%690olNJLPn4-~kFp@b$yKtM3W5~>slQI7#66azs@2oa2cp+0#ODS-qO zgdj?ZAkq{%M<7JP5GYqM0Y!`XBnfoz&5M{Y0N9_q$3nGNv3u6Pg`aZ| zcM0|lCwhfq0V0v86M)BsUH7_))d>#uqpg`M0Dx#U3VGHwlD=9ngOeIpVp--nT*W12 zzc?BGKJMCaH@xk+B9)xmU)U{EZ#64aR$MUa9ih3qqBihPce{0Lly_jC*pTJh<^7sj zmCh@b>R-E>O5(=0&{v8W!;FHy73IF4vT||* z1dD0MsF(*r9FGjVJzBU`C}_k}<&ese+FMBl~Q!k=-X_BD9Q{v=zL zIX-~Ni`!sGoeMlC3_SM-WdYErpbc$(nj#B;b0P+nZ+~A}o~ak^=}nqGWN4!U$RiKVpSg8PqeC zW7atn3gTU&?!@Y=7L81&2;RFJOsL8 z_8TZ9BYi|W_VJ_7Kr@nzhJd3kF}1!(Cuu}c`eY+2LPZ)&H)Q2!uMLtvbY)CuT7#GPe%V?pI4YTdP_@>VOiF~!lI(8>NI|RcjudVG(UZNo1mbm zXwYKu>e8V3iQe)Gcdhe8qOrBLbu&K7+dFPxz$rgJ-{j`3)p?#YBHxcE@L+R^t@OX7Adz23N`uaw0%nEI9Z&Nxx>i+tm9RQN~ zj2scf+DP6#-Q%Ml{C!N&&*Bmi&X+G^@5EVZ<1f}82wS~U{Qi0lw-j16R}xfTZP5hn zU46QS7d-Lu09=3`Jc|94`3lPJJQzSa=CQQ8IvtYqX{g*KoIv2#et$VIJp6ib(f{nk z*A;-FYVjYK{tssVtwjFWHxuX|5HKF{JTfRKRn4)mf$l_BSMbW!`RByuNL_q|Ihwk4UpicYcBxMz|c_E=DMVkIe)xqZEfvdE|;73K~Q;|kC_#93C~ z>W`@tkpD(d1SDYe#ODkwv!#V;Qr1GUoWUPInwG(+GijWjV&TA6_4@P$xy-FGdgqzL zU)QG1Mx`>Nm1y^=!au!o1k`WH*)CCC8Zb;PEj@u-lmzjowU(Otrl#o2$*4gCW8=iC z<&pk%$i@-=`+Iiw_B|hpMfJq*mX~Yb79D3xNlFnN_h3iBjIy%nUi-|1rKNx)$rPjT zeP;?yz6sySGn$*5tEi}G$Ss(ca&vQ&S5~f1_yy%AWmd*W^a3+yzqre$b%7H*va+&N zLed1FO-M{!t?t_ul21%)2Vk)Z4?)fkTB$VJae496KepmkqxQTgDZP+1+Xh;xpdDhq z>qANZNr}grf?lC?cy&D>Wcnm{$#;66eDmhbO4;RoEMr!LUO}wQtg+T0AefpN7b%z2 zDNk;F{pC{BZmkBuYVTYhi;`4aA*0Feg0~ + + + + \ No newline at end of file diff --git a/res/drawable/remote_home_pressed.png b/res/drawable/remote_home_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..ef3235e3f0985b9cc4c2d777aa8c730b74664a9a GIT binary patch literal 2098 zcmZWq2T+sQ7XBeXCoD1vms2*iXEdI$!^Ldi;R5fDW{ zK#CNp!iy+U6$^`@sDb5yK}vv7HqM(j^U9rj%Js{<2{5u+9dZvkA2J;grJx+0=hWdlG8CcB}ZK@+)&aR@S5a6d;f zJ!4A3X@M^C#nX6PaptvSJg^}@_Z-*U9%8g*6nGV1QrDQ#S{T0BR1K`&#b{?8X-W5s zxSG{Fkes_HNf0D^)qF$_Uzm~}&I>XpR#VB<-TbZV|41bR!aTjH#4*u0dlJQwm_ zsk}_Fg%$zlQ9>ym&Tw90#J1*6bNkW>+NFGGfV9xfqybj(kX{ieHGS+4qHq-D!W7QA z`%7sIY-0v~DSY$910Q4g*6!Y$GA7$w-XY7%Q&C~75H@~Jw)fcCoJke6g%y=kDif$%?plhu&zD2p{EIKR@|WgF7iZGen;U+&D?!nv_yTYi+Fe^@p)2t$=LI5sIh?(3FiETk72<4p~n9n~~ z*}!&5`}pdh>osPFm}p=Q2~P>S;K9a9+GjJ1+A)DSGQ~jHYPjfrblu_nq<9F)S%FgC zbaYxkYuuMq>;CeEKVadDpOsN@xYhTaVXMxLPtDt?GWi`0aqCDHhdEH8Hez%o4J7di z+JRwi!7z82H$bD~9)gY?O56pKnBe*a^*_`P-7OEp(o}6z@rz3-8c!6UFtff--+*R< zAvv~Id$h1rI2g(-af8B~hsVCUV3VLW;@Z}!v@s1B#=(%NTcF#2f!cJ0*;7GRQV%rd z6UX`wP|<44o*;Ue92O0e#n7RR4C1Rg!fj}faHeA_O$Lh6Lf%l4_@sf-CQf30Le)A6z|QX5r*KqfI8u5L!|+S0F_ zzx6s^AM}7RY3_0^BRKw*=dt9cHw|_}%pq$u^BYS&eHrXj&g@K@Nlx5MkhPlbZtbhp zjj#xh+lL#RVBI$G!FvV1`i5NV$u-`G7R8n~_{0yKNS?%(@@u9QGp2z$#H=;{LDt!! z;rD7;S=m3EZ1pua|60Q7`e&VOU`vI&d3W+E{p{&az`+O%*=)dlFZRyxrN@kQ5fPQi z-CGl^$?x}A9f>uQ&o^(TKhkun0w2<0c1;mEC$5+o*L$NU?lSwCmvUcNt_%i5w?#{I zIH|R2eu{BG2p!V7VrDp$J2XhxWMz*);@#DlZJ<>S~ z44-dzP33(FETevE29i@vYQAG3eY^Z$a3naJxCYQrjwD4Uh!@a3?A<3HlH&X$bM zkm1L7wlrQG{*fHcIv)Fj4A<^MrAk9#==870;Pg_V{|BSz*Od0YU6iu(UNr+qU6soV1=A;xtzMEMT-`hUD0Xt8dp6Mb&`7~;=^o(gCvu^vhE3HUtgeD|$+&|17!FMGseAJ(@0H;0&R@ zgzuY_Qu0~!nZq+qxyCn&ce->zDSB=mH#PT1`8Yu@=JL0 zE}o&hhcXYTX&aaxmrcnP>Yi3z;j&40*c5e(_3B2&@O!0Q8VtP&BxzcaGeW8Y+h;$r zQ~Myo?{E0M)bt2p2?n-p&A%-ipZYOL=2j_-Iyra79G`@9}M)U{P0$1J*p=I(TXyXZofAG>8~OvMe5 zb{(|>$m9Ej4BC9mYZd1N#rMDuKSS?DF;xZae2Q2$1{%Sy_XJiO7J!hCYO4JG4xkVi K>!+4p)V~2jG1@Z# literal 0 HcmV?d00001 diff --git a/res/drawable/remote_info.png b/res/drawable/remote_info.png new file mode 100644 index 0000000000000000000000000000000000000000..867c4a726f983a8e9f1c5a077da24a5f3b5f5994 GIT binary patch literal 3084 zcmd5;`8$+dA0Ly(k~Knj5uT((mLf|drXt(e8Ea@VmN9l=hN#IJ^4JjgSE*)<8W&D|VnovU|h z&Hg3Mz>)YsUXT7Teq*QBdyaK|W0RXbry9Yl(Z`_UlaS}XSOTM?z;iuyo#<>^deZ_!T+jm? zbt1g9hgY_Cyepi2RVv-w?soYqizIl+&31YtWQCm5OU_Y!J+om~J^69(@+a5@!NS_w zl=*pQO-;@3RI2Js70)X$#oadhi6=iz8Bc?N;_0$!XDjPGjw?C_x`9t+I#3xQ+X>~PlREK`W9gh?6 zFZ!sK91{a(;-HUor7RR#AskSM$o139Cxltp9-G}8%DkK|lPbc``Q%k)>)nl z*+6{ttvSj5vZ~4$EL&(-Z8JDHxLX2cnPE}ufmEeb`FG3(@Lx7=b5xu~w~!k7>rlEU zQ~y;iBrI&^(uI&aA^gL$H-d;jJubqn}5`2j0=K}N>?li2AW zax2?rnb#1KWdAmdd#u8d20wr9^q?$EFXyqrg>*iS`=_M~jQ>X;OM=4tl9IUU z8ybqd^!4?BN0MH>C`IAr8_CUL$-Q5tR8>_gR(AG9L`4%S?jw=kFdFb>I)mehp1+@q zot=TXIlpOHdTy?`UIE_?VoFVo;s_BsDjCHrm>q-NMa6BB80co-86j)x`ufs<95Jb) zZ4SM+IVWZ&6|nB7-g}D0r-n1Z~IuxQ3+M+zQ~FW!o9b#)~tF1-f$ehoeA`HGj9H*oj6IgjKG@|Q1P46qnX zYG$So0)fy7UK3R6q{Vz?U%_aEeT$cy?uux!@Eb_oD{F{*K*UaB#GuyNOj_@3(3lDS z;7u&s!{bAG5m@k&2v>as9Zh2XH0o_%9?D855{cu^@7yVmJvV3Ds_YxiPxxl5bl|qb zw8fz~?M>|ZLN^hJ_w5Nalf{Ck5*C|g))f5v^@juQDLVL>jccDZgX`<-?OHJf1xG*1 zi0607@3!cHYvc0zhcz9W7HdjpKV5^BnGs8iiexH~O^DB(4+9f4RcsLmQLSx7P;zoI z#}*Y3Hax=6&~VUf5fyQ7Zed~c(FwLNYIRHDTB5L0X<=aug+eKgG)1EowL;e8yk}}j z2MGdlrmzXOr`{m&BT)C@p2OQNHFb3{FPqAY*;z+m{pop^`eNTW&>EFmUR$f~80bT3 zjQHS_R@PIuhv8pk#_M5tz-JhwR|e?*!`TtnBz#l`Bf zoZM4xv1`Sziae3$I3cl%6k9*PT9i%*UqpQgHV#l$U)5$0_}`^SuD)TDTxy;{i!PxLSf`i@ixYI-s^T zU+q9DYn42szgMO(n7HHCy)1<>X;^G*>>q@CPbn%04H_cYrd7!A8dPxA!Ln8`_-_V#wJUofJYL$%Gt zix;_m0Y81#(o~#dbB>c0EUq1PWx`h^_Xd^%zoevO_8qmem;yx~kjqIV=kgYhY@2gn zjfX#F7jO*UikY~8^=ai^zNdX|_o$QAvpB|vJ1J_S!n(?-V-oJ??Ogjn&Bw#Y#pNuQl?+>F)pW1m#c zv2U9SnN!r|Sl$~~4yh&?SjL_?0^ubh)r_dt{xxn1pc}ukf_y(Bn%GTy=!E2 zhxf!i-6!lqTOs&~;=?Ua6g>M| zmzFDx+pZUbgM(iOQ*FGwyuPomCo!P&=OadGW(go29UVNS#3+l4=-!-H0k|>1`TlqTIe>@fj4~Ap8XE<( zhMo*9y8(&;I606*jnGYTfNZ7u7cHNh6lwb-T=MD*k%62u{6D@-xkN1!{77f*^C!zx zm9PJQ_}PCMEQD3&)QJ-()NSHcVzAjuI}`Wxa}*wg#OI+WNUXgEG;dSS08<4Pz}ET zv$RYn34)GzuISrlb5upsn#`s6UcP(@O6*g~=}M6I3=7Nd@9&@fF@5}|iTdMg`?uq0 zYu$6YQhYsI^z^K(r=Z0S@Xi3wKX-TFlsw;;JgH ztf8xKHWJGFS9d;+j|*za(3N_+bR&vgLuwGLkx7aMAao1i+c!6kF>U}WfccP1WBgbo zSVqAt0LOSx2l9FT_FI%8oU86~)8!>OB^78U_>2!jx4VzVg z7PwDFAdEn}MF*ZaP@(bJZsiiLF6mDxj>0BBkR1D5i1=(apv&`z+ vfEj$2mZ`Ls>j;jN5*#c{ws*Hvh + + + + \ No newline at end of file diff --git a/res/drawable/remote_info_pressed.png b/res/drawable/remote_info_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..a9d4ece65487550031a354549789b6eef0608554 GIT binary patch literal 3154 zcmc&$XD}QL6FyEkUGx$}iIQ+466Fwy5~r6-9ElnUqH`ywJ3;hlUvxSB5S&DdE=3O_ zryLhu1gG~?Kku*a&-ee`ncZi0c6WAWXLk3AF)`9%qUWOr002z7P%X1dO#VkfG?(@p z;fd%aP$4vQAAv3<2=qMq(x>x+S|R`dn)H8^qUPy~f2w(r+7?Kdry~+&@ACqHLZQGf zJzNnE_FgZ*o<2_58>)N&0K<^3)`LfWIqOrQZg^k8?ro>$SL*~q7mcq2BS8R|i3s1; z)G)E2QtpJ&#rW7oUwIdi0RqX%y&uk@JJ%bun$Mxz)){1om7~pK4@KYF=2C17W4;Os zr#Si3WnRCb1E1VK=MivkmmwXjjQO?*>0T_KoD^<;xj7?*8B!##f^vB+m`{0osDGi6 z*F0EHSPNl_KLK|rCD5{HAX?2zJ&BnED1d%?PjLXdFnJNkNB^T^20duHMcXU!$vz;a zO_i#M!3@K=M$L63drKla6G;-AH=DmDktvtK_~k&RAOgSfecA*2p*XG|3wH2i@Z&n6 z^8=M0+OkS&`FFtga=VVl`y_j=eYh33Sl0WcP@(|CKj}g&y=P(=94Ri#)PX_Uw#1!# zLxFu^2FAj2qRFTGWU&|GOq$)#?$nG~l%0M~IcR#dxpUp_-p@rTzo;I@{{R@&B5Paj zEV*TfVk@#U`sd~eQQgj`#ly{3^cuFUAS8oTFqFy@(tR&KG4 zQ${fFjQ`a~N3ewV-al^&+B8$$f&$$5VyjFF#D;jAbd>D9lX8gr^X`IurI>VrBrx0 z?tN@`lm5yLx?~e^VYWUoEse|wsAMWD-3vC6d;<-!|L8_X-2Rt>T*HUAcpT!zGT4G# zS~qMan}|U!a>qPu12MoVZi5!7_k;`!%#)`m{>vcdiJO7+cFBSJ|#&_=?2%Dom@Ycgu0jV**VV&^!9Svd`4W+NZV9*tzV52&8cE!?Z? z?M;<>0$+q77M2=^-WQhVyL8O>H*LL4`(ZH;Bkm20ui}o{4ugk7!{ zse%nv5B}yWy&zNZzBwz>lHp@~1C=#ye5!w?3%{oR5%aBGplkir%|mVv(?AG5-(mOD z!1v`slKTV%Sz%qBHm?)csJ?m5PXoG-!^^7#D-g}y7S??|c-o!xtyi==sCDrybnqYb<|OqFj;cuIJXT_yVzPb|1+ts^>T6(-!Ly>E zu`^ykLL9!$UUsDBJ_Q&h@A8A>?t^>c5*Dtl-LYP$vr_a_n&9G z8Md77lfoyLG)UBjm0sq;hfCA^UT3fbECCfH^cRdNoYMmaw7!pDWOTG}tPYtAkdA4? zstQ2r!83jG7*$PJAU-dEpV?GM1l<{G_2cyAu5!SfGvRRE3!*gTw-C1&mXY8n`1CZR zWaCxy1Omy@96FisVSLmUwcqra5Re>K$t|SKiar zkM{7%3+w3{EX?_{=rkpuDXrTdDZ+O7l$^}Fj%8h(t#cO}-AwpQ2M*1@dIDtNaC zvs1c%W$H_jE5)SS<>l-}WYxEPpd>+MLiPsXr%m!nwrGF|Dc0oKjyO8-Y)?#qy@{URmx*zeuI*NGeeU7|_5v0upPSpeGFJrT23E z*HqdPzgk8b80Svg;#ZEvoiS&7mc_v+2n0CIN$pclt|%EB#^;xj)z8_=?TB?mVpMIr z7caZ8&wi66#Ok}NtBqzkU`zy9VZ#yNl~8Ym=(Ip zj9qZ)xWydXK2|=l{LPIvWpYAEoBi+`Gzu#E$1U|>xk$5nZEqrc8lLBVx!`OCUdMTR zzyWpV%iHn0xADp<2y7`kJULNbhU>AED?PhBHqzO31~7HYP@mGu$bk%cQypX4&9lQ+ zXhXiK4Xmn6rtgWC$HV108(6jYtk;9fsTWUwwKs?a%{IekOfBKOD+)ntYHe_N!$SND z!F!0=aq9L~YAk9dK+%=EVswOml25V{%=8qad3Q;J$^`itguS^(`zPvYZXI|Q6rdMG zkE`;37qz6ih|rw1SIC<1IpnIBo?+XPo1Oa83}hCLua)ygE#bzV^gD54wtHUdh)n6V zqx7bQi7Azt*A$kS+^jw&*D;KnO+7O7McfrHjB(Rfz{9Y#0x$^jm^I2sh%aW0_KtX> z79jBLM$GafbURpw8y7^Tm&ui(Nbm0MN>#j`IEsKHY&U|RKm8O=Q(B%MTkuVrB3=7y z22=94KY5>vlzzD%mDY`Yav!QkvzO&VEPRvx9^S)cuErF}@r$5i<2bJ>Bg8I~oY&o6 zoM4Gk5G#(oQjVU?68V-Ra$Jk=R;8(LEA5pw@$y!){tcfQf83zp`j5asRI_7iR$5k4 zh{HHb^JNE@RfT3lSo6<-2fHfYb3%YqDSQ(7-1b&5Vi?)2-X3oeIBWwZwGwVXraZ9K8U1(xxJ%Vf2huip9S@8OJ6G&^ zEX30)>%^W65B@13WS*zRqJ$3hFW=|fw{Wcx{hbv}Gq!8a7wWMGK4bR^=!&tSIiAV3 zBzs>6N4ZiF*$Z>~=L&XG^)^$O{HU)jJ;?_~Q>Rhv5dxN-*RHi*6Ua4Ed|eqk+_U}) zwjDw(;}mQY)WUwmRuu)B)tME%2FzPHWOnmakZ$DKqv0jASvFn;-qlt$LM^?Vupr%ORqYe9n?IFFB?yiCR_W{(d7H7Sk`5$cMPYr8LQR?m{cQk zdoC$Usjvn%hu6gQCA|U8au)LwTP>g!l{tk(OWc=vJBo8A=>ywK_GI7tkyTNc8CF2& zkR!)f83*;5%q0-lk#)%7Q`edcr6e7xYCfE(iR81DX4jfw#kVq;>|H!_3)EKd%@4}c z@V2mG=*5E_-p0iJ$%_*)np+tk_(iKZ{8&FTWoXRg{{H-6O*7ue`o4e(Lk`se#r2L+ c6NPhi%Nr0B$;Ub2lK%sAwT-l@H0)mg7fHhQ761SM literal 0 HcmV?d00001 diff --git a/res/drawable/remote_menu.png b/res/drawable/remote_menu.png new file mode 100644 index 0000000000000000000000000000000000000000..435b1c403d82731355e33df1c4577fc469c4387d GIT binary patch literal 3015 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_menu_bg.xml b/res/drawable/remote_menu_bg.xml new file mode 100644 index 0000000..b6527ad --- /dev/null +++ b/res/drawable/remote_menu_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_menu_pressed.png b/res/drawable/remote_menu_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..3a8b30b00acf6d199d9d59546236afed8e29ea49 GIT binary patch literal 3174 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 DIxh!1 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_ok.png b/res/drawable/remote_ok.png new file mode 100644 index 0000000000000000000000000000000000000000..3926a7d0cfc2bd622d113ec0f9182c7117eba3f4 GIT binary patch literal 6943 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 + + + + \ No newline at end of file diff --git a/res/drawable/remote_ok_pressed.png b/res/drawable/remote_ok_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..e0d53b04ef3f7b4fd4bd1c1573561fb494533d37 GIT binary patch literal 7086 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_osd.png b/res/drawable/remote_osd.png new file mode 100644 index 0000000000000000000000000000000000000000..f64229e855f662b8e51507f2926495dc35b3dbb0 GIT binary patch literal 3871 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 SX&+2xA)2bX@Cs#{7ykhe19aX1 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_osd_bg.xml b/res/drawable/remote_osd_bg.xml new file mode 100644 index 0000000..f59b6bc --- /dev/null +++ b/res/drawable/remote_osd_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_osd_pressed.png b/res/drawable/remote_osd_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..27e5f193750eae03e0ffd96a05e1a5b64d83faeb GIT binary patch literal 3950 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_pause_bg.xml b/res/drawable/remote_pause_bg.xml new file mode 100644 index 0000000..55e5390 --- /dev/null +++ b/res/drawable/remote_pause_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_pause_pressed.png b/res/drawable/remote_pause_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..8e07dd2a35e9c2052b3688a81b52f9db1bb7acaa GIT binary patch literal 1563 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 + + + + \ No newline at end of file diff --git a/res/drawable/remote_play_pressed.png b/res/drawable/remote_play_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..32eecfb40289ca683bea983f84ee120d3e72eb6b GIT binary patch literal 2682 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 MgAKy^sg-ZyKkB_7umAu6 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_playpause_bg.xml b/res/drawable/remote_playpause_bg.xml new file mode 100644 index 0000000..848b17b --- /dev/null +++ b/res/drawable/remote_playpause_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_playpause_pressed.png b/res/drawable/remote_playpause_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..9e13e0c9ab8dd77e4c6aa708d6c8b720153ff2ba GIT binary patch literal 2288 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 S$ + + + + \ No newline at end of file diff --git a/res/drawable/remote_power_big.png b/res/drawable/remote_power_big.png new file mode 100644 index 0000000000000000000000000000000000000000..aad77f7a432c584dd2cd9bd241fbec800449fa8a GIT binary patch literal 5485 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 J%U+tl`yUgfu;u^& literal 0 HcmV?d00001 diff --git a/res/drawable/remote_power_big_bg.xml b/res/drawable/remote_power_big_bg.xml new file mode 100644 index 0000000..2dc28ce --- /dev/null +++ b/res/drawable/remote_power_big_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_power_big_pressed.png b/res/drawable/remote_power_big_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..606baeb048d95c45fefa8eabb6afb87bab58e510 GIT binary patch literal 5550 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_power_pressed.png b/res/drawable/remote_power_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2b385bf53a295936a5ea3b0b78e439bee81b5254 GIT binary patch literal 5580 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 + + + + \ No newline at end of file diff --git a/res/drawable/remote_rewind_pressed.png b/res/drawable/remote_rewind_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..218a0b86f98a04698952517aee654be7bdb2acad GIT binary patch literal 2845 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 Ef8WJenE(I) literal 0 HcmV?d00001 diff --git a/res/drawable/remote_skip_next.png b/res/drawable/remote_skip_next.png new file mode 100644 index 0000000000000000000000000000000000000000..3039ab6ef1d4385a0108e128ccc72c9f053b3ba8 GIT binary patch literal 2351 zcmV+~3DEY5P)(%FI9$ z@Pm4RBuUt8Hmp`F2?+@#BqU%mi8JC+kY$$!sW}CNl#A~ zvcibTWa9Mc)0{nfmgVK;U}=8?QVASHz^B5l1OHZLl9Q9Udi5$vNlB5&ECAx;)V|$rw^Eb}yaoOz?G^l}EU{XxWMySVIHEvJR#uk!4EG~| z1mpl;DWwjFLsT$yfXQUS;cx^OeFfx5z%`{rk|gYQd!(}o4!~}=BS}(l(KQJuR_4;u z(!@=%jxd|eq@|?=7ZpncTHOIetx$)koMcD@9+3cn+KE74sGMX<1fFMwS}4!~DknCH zp!P)71x}y?R8CC7kiihb3`W@M@bU5ST)cRZk&%&bZ6d6gOeQRr&wFC;^?FY@%}2r} z%wn-nUtiDY=qN6ii@CYEaBV6q zhoHGIh1Aqk?%uu2g9i`D$;r_=j&9M7Fom3)93DJ)z}>rdNli`FI*#tpoiGTrGL)2* z;B-2U&2x)i36n3zaqWhHHGZ4?z1X&pxw=vtV9-EOC@u8xL=2C}oWwT`1H zh7hJuP*6Z~b2HV|)iK+h!BD~=@IbGutc>>dcFN1kiHlRe9uVCaPME@}Q>Un^s-mT( zg~Gx@t>Z)t!wOS4ckUeb?%kulzMhPXjKfzjIEELdaOu(|T3cJWbLS4p$;n#B2^&!( z3<4c5D=I2*I-Qi3mPTbWS5yg8ICJI(^Sx35gIEg2KW=-8LwT zQ=-8T!VHEGW-x>>gCT?&3?a;52w?_82s0Q$n86Uj42BS9FoduWjE;`d*4CzVjF5=N z-yjwj7jd~RdU_Zd8bX$3t>c_1 zQ6;NT#;ySrM)i5P|x=J)$~_UswGy}hAEW{r9bC2VYLjE;^DW@l%$j-nZc z5axEf>Fn&}<;#~^N6{Qz3)|Y-Vqjo^Cr_TJ$2X2ybSX@hWu8BOPIq@V@7}%BI*zW; zov^8?DLOhjn3|f>I*KmQjj(s`-qGFN&GYBaqpmsWB+*>h&dv@`o;+b-V1TWyEv@6| z9!-V4eEE{j&d%TgrUi$fiLlw(Svop87#kbYV)KS3qQX2L552v;JbU&GzuzCpO-Bt8 z5w^R#%i!Q3eSLkbudhd9lTl09g&B3gH@#v4_Uq7vg@q^fGpt4*Qc*7~E-rrZ=qPM` z>%CsDkQD~R%Mb=b2s0QGLDw+RB&0u7PGkw#?_Fu+9X!|F2d0$!ux6#yPf)@k8K0%8Yt| zEi>>7@XdaK*-Tzu9+{b$Q8^x$9*||3g@py)ym_O(tr`Np1@;R=88{6*B1js5)oR7z zaA3FF4Kad(5%BqZxZQ51r>8@`*f9iL2mTB$Jm`=y15LmW>IIS{k(QQ5N=gbzNl7Fm zBp^wm(f=s;{eHH$xB2kl0~;F~tgfye)VJj!@Do8t)=~M6ztOZ~m_>Dl*;E`V>_&*pS V@wjMi + + + + \ No newline at end of file diff --git a/res/drawable/remote_skip_next_pressed.png b/res/drawable/remote_skip_next_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..cfe41f202ad960ce26aee68acd8d86491d55703c GIT binary patch literal 2447 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 Ar2qf` literal 0 HcmV?d00001 diff --git a/res/drawable/remote_skip_previous_bg.xml b/res/drawable/remote_skip_previous_bg.xml new file mode 100644 index 0000000..fd2aa0e --- /dev/null +++ b/res/drawable/remote_skip_previous_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_skip_previous_pressed.png b/res/drawable/remote_skip_previous_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..a2026b6e654585933bfd647297573711ca7f7cc5 GIT binary patch literal 2434 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 JF6*2Ung9hqZ=(PJ literal 0 HcmV?d00001 diff --git a/res/drawable/remote_stop_bg.xml b/res/drawable/remote_stop_bg.xml new file mode 100644 index 0000000..413a1b8 --- /dev/null +++ b/res/drawable/remote_stop_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_stop_pressed.png b/res/drawable/remote_stop_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..2f72574c56a2556dc6e3cb9f6a00209ba3d6c692 GIT binary patch literal 1372 zcmeAS@N?(olHy`uVBq!ia0vp^86eET1|(%=wk`xxEX7WqAsj$Z!;#Vf4nJ zuuTVH#?8^GAl;HBt`Q}{`DrEPiAAXl<>lpinR(g8$%zH2dih1^v)|cB0S&t8>Eakt zG3V{w{r=MF5(hrMpF2C@c%fi`^kxa}09B2N+cl<1L>Pr+MGCES`YUdgp8MQms?yT` zj!J==Ck2dBP8^zWENGe1Oa)g>CjAJ7W}V_6?y2hz|D5yqfN#dm$AWcsmw3O=vy6ME zz2EHlLALq&d^OxP{58BijF|}!c%Hv-_g%n~!~DKc{DAiXtM%~)oHlH)8rI(4nN#{e z(4er5PhF*<-NE~Sd`aYXwGRu5*ZQY^k(kdkkJu%_mAGPEKQAO7Hi=B-*}nnEaT||0pA^$IjYT9w4Sdz@ttIJZCljN zW6w^hEp_7jed3$kss}Drk7d8G&tka8r2Ou{hbsm?fO-WnpxizG;J@~+Mi~OUz&oA&ykln#_Zqu~?n(NQc znQ$X__Mv>%_eI~$4S4^gma)|>6h3aiThwjYE3Bk^Y3DQf@YUKDz6OQw1n!jfr+kvE zbuM6hw9;Z`%`xi|_8n=D?(FN_wfN@GoE^r&vHP;+ne%2_e80x9e9^!8#f3sITk5|? z85HK#Fin`_*Jh_#I%oaCp3dTMsfHT?I$t^op z+*AI&?0UKL{0Ua)u0NQ|xu@X!8rklsonpV1Oj#VZF7a)|y@jd56`UpF`_4{1J7M|K zn0?vt>~S+2SZzw(y;~>kU&Ph8H91gg${y$Q4bI>HFPPsb)=-!Y zdv12!mA%h&=cu_@G5?EEIWJ2$u{DCPCnY2_8XKPH~*dba2G>n77i_PN=A=le4CH##%cUr4>l*XVAs{^$Q!I{D|WuM*JXS_ yVgei6xq`mBD@T4FNsz8+|NQG8m-;33zs%ZB1qwl{CT9UlLIzJ)KbLh*2~7Z`-D~Lp literal 0 HcmV?d00001 diff --git a/res/drawable/remote_togglefullscreen.png b/res/drawable/remote_togglefullscreen.png new file mode 100644 index 0000000000000000000000000000000000000000..a3380437965705c67ad756782751a7c34cb52629 GIT binary patch literal 2419 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 literal 0 HcmV?d00001 diff --git a/res/drawable/remote_togglefullscreen_bg.xml b/res/drawable/remote_togglefullscreen_bg.xml new file mode 100644 index 0000000..637b9ef --- /dev/null +++ b/res/drawable/remote_togglefullscreen_bg.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/res/drawable/remote_togglefullscreen_pressed.png b/res/drawable/remote_togglefullscreen_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..bd9bea5f1ce244b1617548d133f5b93b1eeed8df GIT binary patch literal 2397 zcmZ`*do&aL8y{OXehsf&!rW&WGnGrE%r%>O-7mSk$ZamUG{WmrEY~;I8WJOwMTLqq zB+M&}l!irwx$~lsTgcw|_0R90-}jv7`#GQIe4g+5p7WgZe4b2OYfGq*j1T|-fa0*` z_B;$c2#5ghmV>=|zynaEDb5kXI|&fK3?3JZz`8~P00Q|3!S~YL|Dakr%Hm>_LwG<` z%q4<9ASNaT9TXN4>3b={A01A>Q@@^(0RSMwICB%n*rMfPuRvK#`6LXEj&hGqRdJ`k zV@u-dDMj%J5BFfEnObhd1e#Vm1KCO-r>oo&Kqfb)!&8m#)3(Ud^6tz$dUbINER|CB z`(ahs+}j|UM+hcznz`J@roL zp8U4TO2~ciyg=d8p^gCfp_F844qt>|y#PFGxK)o6sVL~j_G9LPjDU3KiA&H>M!B&Y z5g6xMF22&$-GKh9%6uobUj|PY= zYY1M)Taey|`Eoc(6ctgb?@UpPT9pi|$lEeRY1`JT&v2+h9VE%wY*>(6dT+A>2&^vE z9j{+^@&cg?>amor5g~E{18Knl?vRGDdv!Us%X9YVE;7u%+74 zS60A}U&c^p6c70N5X(~i0cQ|=3sWjEIxfDW;+{tI0I#VbSI9vvRtUl z9Qmhxa8^5t`T(2JKYs6-tFUpfLHk0uP2>{e#GYr%mDU1gn%bo4ZBa{0lGyoy<36KxG3k^mcyzGb2bI>a(pgg^;eS}(F8GX#d zR!wY@$^4C9ivJGosk1f5G)YCp67{FGn7SHQNr#dlS})33?eFv-)V8V3G?Oe=(=jHx;f#{1nohiFgP~175%s zqZ^A^t9E_w77C}ZTIJGm3YygLoduob2>{DH>itO;<${zWZp2OJH&uO@hf80-1iXG;-)KiG-93~l^o1#bkUEW zS}I&$__4+l;ZFW;t69~@GSB5OgK=}sn9do)eCVxjYsK%1cK1EPuEkv|{qi45s9AM~9pD z6U%UYGfRu(E`u>K_X2Kxsv1wJmSVh(Cy%=~(R>sn3YCyvBx_9yfp7s9**ails!RE_ zJK2xLwNKAGs^C&!qP90H%hd{Z5hsQOgN(ouIgX)PH#iaGZJ#%@M<;Jy;q|{T-YMe_kf`AJU6rjo*Y$VK zYv0(K6&eEP%;d{C*XSnFGFYWT25vMPlRdem4%zSuvOO7MaJuF^#hQ#YIDPUw#fmIJi1N#W=iOf?6h7*q`0sjkquA{B zzQZ)Jfw|?128lPG>vOP*;E+dTE75^ZLY`XAXH%SsQAFcPc)?5(jcA+&|2&iQmdNnH z$(jgb(U6|owRY1C0Z~wg)i9R8pnY0mn$i-=)Pt_jBeqA|u5ueXCSpYTCof;pGYSbz z2!Ltd9e{e-8JfPH(8w|qq`-bnuxem~x*ejp`ndR^$}8j=;HAW{6Lhs-Q!r)O_$$AKQbtD?{zJ*^!AY!+?K6u|U5Pyfg-5t(Rk= zly*5_rU=tp{9UK;2uwrpyD@l0*!W~2yop>^(Q-bjl1jf?zv3dz4{u|7?C&SZT})DXu&wbadku@k z^Cztj_J$s5+U$%{>Sl+xz_#G>{ywyjR + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout-land/widget_remote_control_medium.xml b/res/layout-land/widget_remote_control_medium.xml new file mode 100644 index 0000000..2c3b30a --- /dev/null +++ b/res/layout-land/widget_remote_control_medium.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout-land/widget_remote_control_small.xml b/res/layout-land/widget_remote_control_small.xml new file mode 100644 index 0000000..48a6d6d --- /dev/null +++ b/res/layout-land/widget_remote_control_small.xml @@ -0,0 +1,174 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/remote_control.xml b/res/layout/remote_control.xml new file mode 100644 index 0000000..7419353 --- /dev/null +++ b/res/layout/remote_control.xml @@ -0,0 +1,290 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/test_layout.xml b/res/layout/test_layout.xml new file mode 100644 index 0000000..5c7650e --- /dev/null +++ b/res/layout/test_layout.xml @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/widget_remote_control_big.xml b/res/layout/widget_remote_control_big.xml new file mode 100644 index 0000000..c2413b2 --- /dev/null +++ b/res/layout/widget_remote_control_big.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/widget_remote_control_medium.xml b/res/layout/widget_remote_control_medium.xml new file mode 100644 index 0000000..81a23ff --- /dev/null +++ b/res/layout/widget_remote_control_medium.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/layout/widget_remote_control_small.xml b/res/layout/widget_remote_control_small.xml new file mode 100644 index 0000000..9249163 --- /dev/null +++ b/res/layout/widget_remote_control_small.xml @@ -0,0 +1,164 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/res/values-land/widget_dimensions_big.xml b/res/values-land/widget_dimensions_big.xml new file mode 100644 index 0000000..ee406ab --- /dev/null +++ b/res/values-land/widget_dimensions_big.xml @@ -0,0 +1,15 @@ + + + + 61dp + 61dp + 78dp + 78dp + 156dp + 156dp + 320dp + 320dp + 1dp + 2dp + + \ No newline at end of file diff --git a/res/values-land/widget_dimensions_medium.xml b/res/values-land/widget_dimensions_medium.xml new file mode 100644 index 0000000..37b469a --- /dev/null +++ b/res/values-land/widget_dimensions_medium.xml @@ -0,0 +1,15 @@ + + + + 45dp + 45dp + 58dp + 58dp + 116dp + 116dp + 240dp + 240dp + 1dp + 2dp + + \ No newline at end of file diff --git a/res/values-land/widget_dimensions_small.xml b/res/values-land/widget_dimensions_small.xml new file mode 100644 index 0000000..6de5b88 --- /dev/null +++ b/res/values-land/widget_dimensions_small.xml @@ -0,0 +1,15 @@ + + + + 29dp + 29dp + 38dp + 38dp + 76dp + 76dp + 160dp + 160dp + 1dp + 2dp + + \ No newline at end of file diff --git a/res/values-sw360dp/activity_dimensions.xml b/res/values-sw360dp/activity_dimensions.xml new file mode 100644 index 0000000..f680f3d --- /dev/null +++ b/res/values-sw360dp/activity_dimensions.xml @@ -0,0 +1,13 @@ + + + + 65dp + 65dp + 84dp + 84dp + 165dp + 165dp + 11dp + 6dp + + \ No newline at end of file diff --git a/res/values-sw800dp/activity_dimensions.xml b/res/values-sw800dp/activity_dimensions.xml new file mode 100644 index 0000000..dffd47b --- /dev/null +++ b/res/values-sw800dp/activity_dimensions.xml @@ -0,0 +1,16 @@ + + + + 130dp + 130dp + 180dp + 180dp + 360dp + 360dp + 740dp + 740dp + 25dp + 3dp + 5dp + + \ No newline at end of file diff --git a/res/values-sw800dp/widget_dimensions_big.xml b/res/values-sw800dp/widget_dimensions_big.xml new file mode 100644 index 0000000..23de100 --- /dev/null +++ b/res/values-sw800dp/widget_dimensions_big.xml @@ -0,0 +1,15 @@ + + + + 74dp + 74dp + 94dp + 94dp + 188dp + 188dp + 384dp + 384dp + 1dp + 2dp + + \ No newline at end of file diff --git a/res/values-sw800dp/widget_dimensions_medium.xml b/res/values-sw800dp/widget_dimensions_medium.xml new file mode 100644 index 0000000..23c4120 --- /dev/null +++ b/res/values-sw800dp/widget_dimensions_medium.xml @@ -0,0 +1,15 @@ + + + + 55dp + 55dp + 70dp + 70dp + 140dp + 140dp + 288dp + 288dp + 1dp + 2dp + + \ No newline at end of file diff --git a/res/values-sw800dp/widget_dimensions_small.xml b/res/values-sw800dp/widget_dimensions_small.xml new file mode 100644 index 0000000..dc16ab8 --- /dev/null +++ b/res/values-sw800dp/widget_dimensions_small.xml @@ -0,0 +1,15 @@ + + + + 35dp + 35dp + 45dp + 45dp + 90dp + 90dp + 189dp + 189dp + 1dp + 2dp + + \ No newline at end of file diff --git a/res/values/activity_dimensions.xml b/res/values/activity_dimensions.xml new file mode 100644 index 0000000..79b1daf --- /dev/null +++ b/res/values/activity_dimensions.xml @@ -0,0 +1,13 @@ + + + + 57dp + 57dp + 73dp + 73dp + 145dp + 145dp + 10dp + 5dp + + \ No newline at end of file diff --git a/res/values/colors.xml b/res/values/colors.xml new file mode 100644 index 0000000..7ce9886 --- /dev/null +++ b/res/values/colors.xml @@ -0,0 +1,5 @@ + + + #00000000 + #ff1c1c1c + diff --git a/res/values/strings.xml b/res/values/strings.xml new file mode 100644 index 0000000..ad0271d --- /dev/null +++ b/res/values/strings.xml @@ -0,0 +1,5 @@ + + + HTPC Remote + + \ No newline at end of file diff --git a/res/values/styles.xml b/res/values/styles.xml new file mode 100644 index 0000000..60d37f2 --- /dev/null +++ b/res/values/styles.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/res/values/widget_dimensions_big.xml b/res/values/widget_dimensions_big.xml new file mode 100644 index 0000000..cac3375 --- /dev/null +++ b/res/values/widget_dimensions_big.xml @@ -0,0 +1,11 @@ + + + + 61dp + 61dp + 78dp + 78dp + 156dp + 156dp + + \ No newline at end of file diff --git a/res/values/widget_dimensions_medium.xml b/res/values/widget_dimensions_medium.xml new file mode 100644 index 0000000..a5e6593 --- /dev/null +++ b/res/values/widget_dimensions_medium.xml @@ -0,0 +1,11 @@ + + + + 45dp + 45dp + 58dp + 58dp + 116dp + 116dp + + \ No newline at end of file diff --git a/res/values/widget_dimensions_small.xml b/res/values/widget_dimensions_small.xml new file mode 100644 index 0000000..6de5b88 --- /dev/null +++ b/res/values/widget_dimensions_small.xml @@ -0,0 +1,15 @@ + + + + 29dp + 29dp + 38dp + 38dp + 76dp + 76dp + 160dp + 160dp + 1dp + 2dp + + \ No newline at end of file diff --git a/res/xml/widget_remote_control_big_provider.xml b/res/xml/widget_remote_control_big_provider.xml new file mode 100644 index 0000000..21fbf30 --- /dev/null +++ b/res/xml/widget_remote_control_big_provider.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/res/xml/widget_remote_control_medium_provider.xml b/res/xml/widget_remote_control_medium_provider.xml new file mode 100644 index 0000000..a4233f8 --- /dev/null +++ b/res/xml/widget_remote_control_medium_provider.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/res/xml/widget_remote_control_small_provider.xml b/res/xml/widget_remote_control_small_provider.xml new file mode 100644 index 0000000..ce6e9c3 --- /dev/null +++ b/res/xml/widget_remote_control_small_provider.xml @@ -0,0 +1,7 @@ + + + \ No newline at end of file diff --git a/src/com/geredking/htpcremote/HtpcRemoteActivity.java b/src/com/geredking/htpcremote/HtpcRemoteActivity.java new file mode 100644 index 0000000..98e66fb --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcRemoteActivity.java @@ -0,0 +1,27 @@ +package com.geredking.htpcremote; + +import android.app.Activity; +import android.content.Intent; +import android.os.Bundle; +import android.view.View; + +public class HtpcRemoteActivity extends Activity +{ + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + setContentView(R.layout.remote_control); + } + + public void onRemoteButtonClick(View v) + { + if (v.getTag() != null) + { + Intent intent = new Intent(this, HtpcRemoteService.class); + intent.setAction(v.getTag().toString()); + intent.addCategory(HtpcRemoteService.INTENT_CATEGORY_BUTTON_PRESS); + startService(intent); + } + } +} \ No newline at end of file diff --git a/src/com/geredking/htpcremote/HtpcRemoteApplication.java b/src/com/geredking/htpcremote/HtpcRemoteApplication.java new file mode 100644 index 0000000..cf05311 --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcRemoteApplication.java @@ -0,0 +1,34 @@ +package com.geredking.htpcremote; + +import com.geredking.htpcremote.remotes.RemoteControl; +import com.geredking.htpcremote.remotes.RemoteControlFactory; + +import android.app.Application; +import android.util.Log; + +public class HtpcRemoteApplication extends Application +{ + private RemoteControl mRemote = null; + + public RemoteControl getRemoteControl() + { + if (mRemote == null) + { + Log.d("HtpcRemoteApplication", "No existing RemoteControl instance, creating one."); + mRemote = RemoteControlFactory.create(this); + } + + return mRemote; + } + + public void refreshRemoteControlConfig() + { + if (mRemote == null) + Log.d("HtpcRemoteApplication", "No existing RemoteControl instance. No need to refresh config."); + else + { + Log.d("HtpcRemoteApplication", "Recreating RemoteControl instance to use new configuration."); + mRemote = RemoteControlFactory.create(this); + } + } +} diff --git a/src/com/geredking/htpcremote/HtpcRemoteService.java b/src/com/geredking/htpcremote/HtpcRemoteService.java new file mode 100644 index 0000000..88553d2 --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcRemoteService.java @@ -0,0 +1,43 @@ +package com.geredking.htpcremote; + +import android.app.IntentService; +import android.content.Intent; +import android.util.Log; + +public class HtpcRemoteService extends IntentService +{ + public static final String SERVICE_NAME = "HtpcRemoteService"; + public static final String INTENT_CATEGORY_BUTTON_PRESS = "com.geredking.htpcremote.INTENT_CATEGORY_BUTTON_PRESS"; + + private HtpcRemoteApplication mApplication; + + public HtpcRemoteService() + { + super(SERVICE_NAME); + } + + @Override + public void onCreate() + { + super.onCreate(); + mApplication = (HtpcRemoteApplication)getApplication(); + } + + @Override + protected void onHandleIntent(Intent intent) + { + Log.d(SERVICE_NAME, String.format("Handling intent: %s", intent)); + String action = intent.getAction(); + if (action == null) + { + Log.d(SERVICE_NAME, "Nothing to handle"); + return; + } + + if (intent.hasCategory(INTENT_CATEGORY_BUTTON_PRESS)) + { + Log.d(SERVICE_NAME, String.format("Running RemoteControl command for action \"%s\"", action)); + mApplication.getRemoteControl().doCommand(action); + } + } +} diff --git a/src/com/geredking/htpcremote/HtpcRemoteWidgetBigProvider.java b/src/com/geredking/htpcremote/HtpcRemoteWidgetBigProvider.java new file mode 100644 index 0000000..08640e8 --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcRemoteWidgetBigProvider.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote; + +import android.appwidget.AppWidgetManager; +import android.content.Context; +import android.util.Log; + +public class HtpcRemoteWidgetBigProvider extends HtpcRemoteWidgetProvider +{ + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) + { + Log.d("HtpcRemoteWidgetBigProvider", "onUpdate"); + setupWidget(context, appWidgetManager, appWidgetIds, R.layout.widget_remote_control_big); + } +} diff --git a/src/com/geredking/htpcremote/HtpcRemoteWidgetMediumProvider.java b/src/com/geredking/htpcremote/HtpcRemoteWidgetMediumProvider.java new file mode 100644 index 0000000..7c06638 --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcRemoteWidgetMediumProvider.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote; + +import android.appwidget.AppWidgetManager; +import android.content.Context; +import android.util.Log; + +public class HtpcRemoteWidgetMediumProvider extends HtpcRemoteWidgetProvider +{ + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) + { + Log.d("HtpcRemoteWidgetMediumProvider", "onUpdate"); + setupWidget(context, appWidgetManager, appWidgetIds, R.layout.widget_remote_control_medium); + } +} diff --git a/src/com/geredking/htpcremote/HtpcRemoteWidgetProvider.java b/src/com/geredking/htpcremote/HtpcRemoteWidgetProvider.java new file mode 100644 index 0000000..40b09ad --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcRemoteWidgetProvider.java @@ -0,0 +1,48 @@ +package com.geredking.htpcremote; + +import com.geredking.htpcremote.remotes.RemoteButton; + +import android.app.PendingIntent; +import android.appwidget.AppWidgetManager; +import android.appwidget.AppWidgetProvider; +import android.content.ComponentName; +import android.content.Context; +import android.content.Intent; +import android.util.Log; +import android.widget.RemoteViews; + +public abstract class HtpcRemoteWidgetProvider extends AppWidgetProvider +{ + protected void setupWidget(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds, int viewId) + { + Log.d("HtpcRemoteWidgetProvider", "Setting button click event handling intents"); + + RemoteViews views = new RemoteViews(context.getPackageName(), viewId); + ComponentName widget = new ComponentName(context, this.getClass()); + + setButtonClick(context, views, R.id.remoteButtonOK, RemoteButton.OK); + setButtonClick(context, views, R.id.remoteButtonUp, RemoteButton.DPAD_UP); + setButtonClick(context, views, R.id.remoteButtonLeft, RemoteButton.DPAD_LEFT); + setButtonClick(context, views, R.id.remoteButtonRight, RemoteButton.DPAD_RIGHT); + setButtonClick(context, views, R.id.remoteButtonDown, RemoteButton.DPAD_DOWN); + setButtonClick(context, views, R.id.remoteButtonOsd, RemoteButton.OSD); + setButtonClick(context, views, R.id.remoteButtonMenu, RemoteButton.MENU); + setButtonClick(context, views, R.id.remoteButtonPower, RemoteButton.POWER); + setButtonClick(context, views, R.id.remoteButtonBack, RemoteButton.BACK); + setButtonClick(context, views, R.id.remoteButtonPlay, RemoteButton.PLAY); + setButtonClick(context, views, R.id.remoteButtonStop, RemoteButton.STOP); + setButtonClick(context, views, R.id.remoteButtonPrevious, RemoteButton.SKIP_PREVIOUS); + setButtonClick(context, views, R.id.remoteButtonNext, RemoteButton.SKIP_NEXT); + + appWidgetManager.updateAppWidget(widget, views); + } + + private void setButtonClick(Context context, RemoteViews views, int viewId, String action) + { + Intent intent = new Intent(context, HtpcRemoteService.class); + intent.setAction(action); + intent.addCategory(HtpcRemoteService.INTENT_CATEGORY_BUTTON_PRESS); + PendingIntent pendingIntent = PendingIntent.getService(context, 0, intent, 0); + views.setOnClickPendingIntent(viewId, pendingIntent); + } +} \ No newline at end of file diff --git a/src/com/geredking/htpcremote/HtpcRemoteWidgetSmallProvider.java b/src/com/geredking/htpcremote/HtpcRemoteWidgetSmallProvider.java new file mode 100644 index 0000000..89ce545 --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcRemoteWidgetSmallProvider.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote; + +import android.appwidget.AppWidgetManager; +import android.content.Context; +import android.util.Log; + +public class HtpcRemoteWidgetSmallProvider extends HtpcRemoteWidgetProvider +{ + @Override + public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) + { + Log.d("HtpcRemoteWidgetSmallProvider", "onUpdate"); + setupWidget(context, appWidgetManager, appWidgetIds, R.layout.widget_remote_control_small); + } +} diff --git a/src/com/geredking/htpcremote/HtpcServer.java b/src/com/geredking/htpcremote/HtpcServer.java new file mode 100644 index 0000000..7835f57 --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcServer.java @@ -0,0 +1,23 @@ +package com.geredking.htpcremote; + +public class HtpcServer +{ + private HtpcServerConfig mConfig; + private NetworkClient mClient; + + public HtpcServer(HtpcServerConfig config, NetworkClient client) + { + mConfig = config; + mClient = client; + } + + public HtpcServerConfig getConfig() + { + return mConfig; + } + + public NetworkClient getClient() + { + return mClient; + } +} diff --git a/src/com/geredking/htpcremote/HtpcServerConfig.java b/src/com/geredking/htpcremote/HtpcServerConfig.java new file mode 100644 index 0000000..59a7bd4 --- /dev/null +++ b/src/com/geredking/htpcremote/HtpcServerConfig.java @@ -0,0 +1,123 @@ +package com.geredking.htpcremote; + +import java.util.Formatter; + +public class HtpcServerConfig +{ + private String mHost; + private int mPort; + private String mResource; + private boolean mAuthRequired; + private String mUsername; + private String mPassword; + private boolean mWakeOnLanSet; + private String mWakeOnLanBroadcast; + private String mWakeOnLanMacAddr; + + public String getHost() + { + return mHost; + } + + public void setHost(String host) + { + mHost = host; + } + + public int getPort() + { + return mPort; + } + + public void setPort(int port) + { + mPort = port; + } + + public String getResource() + { + return mResource; + } + + public void setResource(String resource) + { + mResource = resource; + } + + public boolean isAuthRequired() + { + return mAuthRequired; + } + + public void setAuthRequired(boolean required) + { + mAuthRequired = required; + } + + public String getUsername() + { + return mUsername; + } + + public void setUsername(String username) + { + mUsername = username; + } + + public String getPassword() + { + return mPassword; + } + + public void setPassword(String password) + { + mPassword = password; + } + + public boolean isWakeOnLanSet() + { + return mWakeOnLanSet; + } + + public void setWakeOnLan(boolean set) + { + mWakeOnLanSet = set; + } + + public String getWakeOnLanBroadcast() + { + return mWakeOnLanBroadcast; + } + + public void setWakeOnLanBroadcast(String addr) + { + mWakeOnLanBroadcast = addr; + } + + public String getWakeOnLanMacAddr() + { + return mWakeOnLanMacAddr; + } + + public void setWakeOnLanMacAddr(String addr) + { + mWakeOnLanMacAddr = addr; + } + + @Override + public String toString() + { + Formatter f = new Formatter(); + f.format("Host: %s\n", mHost); + f.format("Port: %d\n", mPort); + f.format("Resource: %s\n", mResource); + f.format("Auth Required: %b\n", mAuthRequired); + f.format("Username: %s\n", mUsername); + f.format("Password: %s\n", mPassword); + f.format("Wake On Lan Set: %b\n", mWakeOnLanSet); + f.format("Wake On Lan Broadcast Address: %s\n", mWakeOnLanBroadcast); + f.format("Wake On Lan MAC Address: %s\n", mWakeOnLanMacAddr); + + return f.toString(); + } +} diff --git a/src/com/geredking/htpcremote/NetworkClient.java b/src/com/geredking/htpcremote/NetworkClient.java new file mode 100644 index 0000000..19e5d55 --- /dev/null +++ b/src/com/geredking/htpcremote/NetworkClient.java @@ -0,0 +1,197 @@ +package com.geredking.htpcremote; + +import java.net.DatagramPacket; +import java.net.DatagramSocket; +import java.net.InetAddress; +import java.net.InterfaceAddress; +import java.net.NetworkInterface; +import java.util.List; + +import org.apache.http.HttpHost; +import org.apache.http.HttpResponse; +import org.apache.http.NameValuePair; +import org.apache.http.StatusLine; +import org.apache.http.auth.Credentials; +import org.apache.http.auth.UsernamePasswordCredentials; +import org.apache.http.client.HttpClient; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.client.utils.URLEncodedUtils; +import org.apache.http.conn.ClientConnectionManager; +import org.apache.http.conn.scheme.PlainSocketFactory; +import org.apache.http.conn.scheme.Scheme; +import org.apache.http.conn.scheme.SchemeRegistry; +import org.apache.http.impl.auth.BasicScheme; +import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager; +import org.apache.http.params.BasicHttpParams; +import org.apache.http.params.HttpConnectionParams; +import org.apache.http.params.HttpParams; +import org.apache.http.util.EntityUtils; + +import android.content.Context; +import android.net.Uri; +import android.net.wifi.WifiManager; +import android.util.Log; + +public class NetworkClient +{ + private final static String URL_STRING_ENCODING = "UTF-8"; + private final static int CONNECTION_TIMEOUT = 2000; + private final static int SOCKET_TIMEOUT = 2000; + + private Context mContext; + private ClientConnectionManager mClientManager; + private HttpClient mHttpClient; + + public NetworkClient(Context context) + { + mContext = context; + + HttpParams params = new BasicHttpParams(); + HttpConnectionParams.setConnectionTimeout(params, CONNECTION_TIMEOUT); + HttpConnectionParams.setConnectionTimeout(params, SOCKET_TIMEOUT); + + SchemeRegistry registry = new SchemeRegistry(); + registry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); + + mClientManager = new ThreadSafeClientConnManager(params, registry); + mHttpClient = new DefaultHttpClient(mClientManager, params); + } + + public void sendHttpGet(String host, int port, String path) throws Exception + { + sendHttpGet(host, port, path, null, null, null); + } + + public void sendHttpGet(String host, int port, String path, List params) throws Exception + { + sendHttpGet(host, port, path, params, null, null); + } + + public void sendHttpGet(String host, int port, String path, List params, String username, String password) throws Exception + { + HttpHost httpHost = new HttpHost(host, port, "http"); + Uri.Builder b = Uri.parse(httpHost.toURI()).buildUpon(); + b.encodedPath(path); + if (params != null) + b.query(URLEncodedUtils.format(params, URL_STRING_ENCODING)); + + HttpGet get = new HttpGet(b.build().toString()); + if (username != null && password != null) + { + Credentials credentials = new UsernamePasswordCredentials(username, password); + get.addHeader(BasicScheme.authenticate(credentials, URL_STRING_ENCODING, false)); + } + + Log.d("NetworkClient.sendHttpGet", String.format("Sending to: %s", get.getURI())); + HttpResponse response = mHttpClient.execute(get); + + StatusLine responseStatus = response.getStatusLine(); + Log.d("NetworkClient.sendHttpGet", String.format("Response status: %d %s", responseStatus.getStatusCode(), responseStatus.getReasonPhrase())); + + String responseString = EntityUtils.toString(response.getEntity()); + if (responseString != null) + Log.d("NetworkClient.sendHttpGet", String.format("Response body: %s",responseString)); + } + + public void sendHttpPost(String host, int port, String path) throws Exception + { + sendHttpPost(host, port, path, null, null, null); + } + + public void sendHttpPost(String host, int port, String path, List params) throws Exception + { + sendHttpPost(host, port, path, params, null, null); + } + + public void sendHttpPost(String host, int port, String path, List params, String username, String password) throws Exception + { + HttpHost httpHost = new HttpHost(host, port, "http"); + Uri.Builder b = Uri.parse(httpHost.toURI()).buildUpon(); + b.encodedPath(path); + + HttpPost post = new HttpPost(b.build().toString()); + if (username != null && password != null) + { + Credentials credentials = new UsernamePasswordCredentials(username, password); + post.addHeader(BasicScheme.authenticate(credentials, URL_STRING_ENCODING, false)); + } + if (params != null) + post.setEntity(new UrlEncodedFormEntity(params)); + + Log.d("NetworkClient.sendHttpPost", String.format("Sending to: %s", post.getURI())); + HttpResponse response = mHttpClient.execute(post); + + StatusLine responseStatus = response.getStatusLine(); + Log.d("NetworkClient.sendHttpPost", String.format("Response status: %d %s", responseStatus.getStatusCode(), responseStatus.getReasonPhrase())); + + String responseString = EntityUtils.toString(response.getEntity()); + if (responseString != null) + Log.d("NetworkClient.sendHttpPost", String.format("Response body: %s", responseString)); + } + + public void sendWakeOnLanPacket(InetAddress broadcastAddr, String macAddr) throws Exception + { + byte[] macBytes = getMacAddressBytes(macAddr); + byte[] bytes = new byte[6 + 16 * macBytes.length]; + for (int i = 0; i < 6; i++) + bytes[i] = (byte)0xff; + + for (int i = 6; i < bytes.length; i += macBytes.length) + System.arraycopy(macBytes, 0, bytes, i, macBytes.length); + + DatagramPacket packet = new DatagramPacket(bytes, bytes.length, broadcastAddr, 9); + DatagramSocket socket = new DatagramSocket(); + socket.send(packet); + socket.close(); + } + + public boolean isWifiEnabled() + { + WifiManager wifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE); + return wifiManager.isWifiEnabled(); + } + + private InterfaceAddress getWifiAddress() throws Exception + { + WifiManager wifiManager = (WifiManager)mContext.getSystemService(Context.WIFI_SERVICE); + if (!wifiManager.isWifiEnabled()) + return null; + + int ip = wifiManager.getConnectionInfo().getIpAddress(); + InetAddress wifiIp = InetAddress.getByName(String.format("%d.%d.%d.%d", (ip & 0xff), (ip >> 8 & 0xff), (ip >> 16 & 0xff), (ip >> 24 & 0xff))); + + NetworkInterface wifiInterface = NetworkInterface.getByInetAddress(wifiIp); + List addresses = wifiInterface.getInterfaceAddresses(); + for (InterfaceAddress a : addresses) + { + if (a.getAddress().equals(wifiIp)) + return a; + } + + return null; + } + + private byte[] getMacAddressBytes(String macAddr) throws IllegalArgumentException + { + byte[] bytes = new byte[6]; + String[] hex = macAddr.split("(\\:|\\-)"); + + if (hex.length != 6) + throw new IllegalArgumentException("Invalid MAC address."); + + try + { + for (int i = 0; i < 6; ++i) + bytes[i] = (byte)Integer.parseInt(hex[i], 16); + } + catch (NumberFormatException e) + { + throw new IllegalArgumentException("Invalid hex digit in MAC address."); + } + + return bytes; + } +} diff --git a/src/com/geredking/htpcremote/NetworkUtils.java b/src/com/geredking/htpcremote/NetworkUtils.java new file mode 100644 index 0000000..11608a7 --- /dev/null +++ b/src/com/geredking/htpcremote/NetworkUtils.java @@ -0,0 +1,154 @@ +package com.geredking.htpcremote; + +import java.io.BufferedReader; +import java.io.FileReader; +import java.io.IOException; +import java.net.InetAddress; +import java.net.Socket; + +public final class NetworkUtils +{ + public static String getMacAddressOf(String host) throws Exception + { + // try to see if the host with the IP is accessible. this also puts the IP + // in /proc/net/arp so we can read it's MAC address from there + // TODO: is this the best way to accomplish this? + InetAddress ipAddr = InetAddress.getByName(host); + boolean reachable = isReachable(ipAddr); + if (!reachable) + throw new Exception("Unable to reach host."); + + // try to find the matching MAC address in /proc/net/arp + BufferedReader reader = null; + String ip = ipAddr.getHostAddress(); + try + { + reader = new BufferedReader(new FileReader("/proc/net/arp")); + } + catch (Exception e) + { + throw new Exception("Error accessing ARP cache.", e); + } + + try + { + String line; + while ((line = reader.readLine()) != null) + { + String[] parts = line.split(" +"); + if (parts != null && parts.length >= 4 && ip.equals(parts[0])) + { + String macAddr = parts[3]; + if (macAddr.matches("..:..:..:..:..:..")) + return macAddr; + } + } + } + catch (Exception e) + { + throw new Exception("Error parsing ARP cache information.", e); + } + finally + { + reader.close(); + } + + return null; + } + + public static boolean areOnSameNetwork(InetAddress addr1, InetAddress addr2, int cidr) throws Exception + { + byte[] addr1Bytes = addr1.getAddress(); + byte[] addr2Bytes = addr2.getAddress(); + byte[] subnetMaskBytes = getSubnetMaskBytes(cidr); + + for (int i = 0; i < addr1Bytes.length; ++i) + { + if ((addr1Bytes[i] & subnetMaskBytes[i]) != (addr2Bytes[i] & subnetMaskBytes[i])) + return false; + } + + return true; + } + + public static InetAddress getBroadcastAddress(InetAddress addr, int cidr) throws Exception + { + byte[] addrBytes = addr.getAddress(); + byte[] subnetMaskBytes = getSubnetMaskBytes(cidr); + + byte[] broadcastBytes = new byte[addrBytes.length]; + + for (int i = 0; i < addrBytes.length; ++i) + broadcastBytes[i] = (byte)(addrBytes[i] | ~subnetMaskBytes[i]); + + return InetAddress.getByAddress(broadcastBytes); + } + + public static InetAddress getSubnetMask(int cidr) throws Exception + { + byte[] maskBytes = getSubnetMaskBytes(cidr); + return InetAddress.getByAddress(maskBytes); + } + + private static byte[] getSubnetMaskBytes(int cidr) + { + int mask = 0xffffffff << (32 - cidr); + return new byte[] { + (byte)(mask >> 24), + (byte)(mask >> 16 & 0xff), + (byte)(mask >> 8 & 0xff), + (byte)(mask & 0xff) + }; + } + + public static boolean isReachable(InetAddress addr) + { + String pingCommand = String.format("ping -c 4 %s", addr.getHostAddress()); + + try + { + Process proc = Runtime.getRuntime().exec(pingCommand); + proc.waitFor(); + int result = proc.exitValue(); + if (result == 0) + return true; + else + return false; + + } + catch (Exception e) + { + return false; + } + } + + public static boolean isPortAvailable(InetAddress addr, int port) + { + Socket socket = null; + boolean reachable; + try + { + socket = new Socket(addr, port); + reachable = true; + } + catch (IOException e) + { + reachable = false; + } + finally + { + if (socket != null) + { + try + { + socket.close(); + } + catch (IOException e) + { + } + } + } + + return reachable; + } +} diff --git a/src/com/geredking/htpcremote/Utils.java b/src/com/geredking/htpcremote/Utils.java new file mode 100644 index 0000000..ad24cf6 --- /dev/null +++ b/src/com/geredking/htpcremote/Utils.java @@ -0,0 +1,38 @@ +package com.geredking.htpcremote; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; + +public final class Utils +{ + public static String convertStreamToString(InputStream stream) + { + BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); + StringBuilder sb = new StringBuilder(); + + String line = null; + try + { + while ((line = reader.readLine()) != null) + sb.append(line + "\n"); + } + catch (IOException e) + { + e.printStackTrace(); + } + finally + { + try + { + stream.close(); + } + catch (IOException e) + { + e.printStackTrace(); + } + } + return sb.toString(); + } +} diff --git a/src/com/geredking/htpcremote/commands/HtpcServerCommand.java b/src/com/geredking/htpcremote/commands/HtpcServerCommand.java new file mode 100644 index 0000000..213ac3f --- /dev/null +++ b/src/com/geredking/htpcremote/commands/HtpcServerCommand.java @@ -0,0 +1,8 @@ +package com.geredking.htpcremote.commands; + +import com.geredking.htpcremote.HtpcServer; + +public abstract class HtpcServerCommand +{ + public abstract void run(HtpcServer server); +} diff --git a/src/com/geredking/htpcremote/commands/WakeOnLanPowerCommand.java b/src/com/geredking/htpcremote/commands/WakeOnLanPowerCommand.java new file mode 100644 index 0000000..620d402 --- /dev/null +++ b/src/com/geredking/htpcremote/commands/WakeOnLanPowerCommand.java @@ -0,0 +1,31 @@ +package com.geredking.htpcremote.commands; + +import java.net.InetAddress; + +import android.util.Log; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.HtpcServerConfig; + +public class WakeOnLanPowerCommand extends HtpcServerCommand +{ + @Override + public void run(HtpcServer server) + { + HtpcServerConfig config = server.getConfig(); + + if (config.isWakeOnLanSet()) + { + try + { + InetAddress broadcastAddr = InetAddress.getByName(config.getWakeOnLanBroadcast()); + String macAddr = config.getWakeOnLanMacAddr(); + server.getClient().sendWakeOnLanPacket(broadcastAddr, macAddr); + } + catch (Exception e) + { + Log.e("WakeOnLanPowerCommand", e.getMessage(), e); + } + } + } +} diff --git a/src/com/geredking/htpcremote/remotes/RemoteButton.java b/src/com/geredking/htpcremote/remotes/RemoteButton.java new file mode 100644 index 0000000..a93be08 --- /dev/null +++ b/src/com/geredking/htpcremote/remotes/RemoteButton.java @@ -0,0 +1,23 @@ +package com.geredking.htpcremote.remotes; + +public class RemoteButton +{ + public final static String POWER = "button.power"; + public final static String HOME = "button.home"; + public final static String TOGGLEFULLSCREEN = "button.togglefullscreen"; + public final static String MENU = "button.menu"; + public final static String INFO = "button.info"; + public final static String OSD = "button.osd"; + public final static String BACK = "button.back"; + public final static String DPAD_UP = "button.dpad_up"; + public final static String DPAD_LEFT = "button.dpad_left"; + public final static String DPAD_RIGHT = "button.dpad_right"; + public final static String DPAD_DOWN = "button.dpad_down"; + public final static String OK = "button.ok"; + public final static String SKIP_PREVIOUS = "button.skip_previous"; + public final static String SKIP_NEXT = "button.skip_next"; + public final static String FASTFORWARD = "button.fastforward"; + public final static String REWIND = "button.rewind"; + public final static String PLAY = "button.play"; + public final static String STOP = "button.stop"; +} diff --git a/src/com/geredking/htpcremote/remotes/RemoteControl.java b/src/com/geredking/htpcremote/remotes/RemoteControl.java new file mode 100644 index 0000000..6efc96c --- /dev/null +++ b/src/com/geredking/htpcremote/remotes/RemoteControl.java @@ -0,0 +1,44 @@ +package com.geredking.htpcremote.remotes; + +import java.util.HashMap; +import java.util.Map; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.commands.HtpcServerCommand; + +import android.content.Context; +import android.util.Log; + +public abstract class RemoteControl +{ + private HtpcServer mServer; + private Map mCommandMap; + + public RemoteControl(HtpcServer server, Context context) + { + mServer = server; + mCommandMap = new HashMap(); + } + + public void doCommand(String name) + { + final HtpcServerCommand command = mCommandMap.get(name); + if (command != null) + { + Log.d("RemoteControl", String.format("doCommand: %s", name)); + Thread t = new Thread(new Runnable() { + public void run() { + command.run(mServer); + } + }); + t.start(); + } + else + Log.e("RemoteControl", String.format("INVALID doCommand: %s", name)); + } + + protected void registerCommand(String name, HtpcServerCommand command) + { + mCommandMap.put(name, command); + } +} diff --git a/src/com/geredking/htpcremote/remotes/RemoteControlFactory.java b/src/com/geredking/htpcremote/remotes/RemoteControlFactory.java new file mode 100644 index 0000000..b576092 --- /dev/null +++ b/src/com/geredking/htpcremote/remotes/RemoteControlFactory.java @@ -0,0 +1,46 @@ +package com.geredking.htpcremote.remotes; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.HtpcServerConfig; +import com.geredking.htpcremote.NetworkClient; +import com.geredking.htpcremote.xbmc.XbmcRemoteControl; + +import android.content.Context; +import android.util.Log; + +public final class RemoteControlFactory +{ + public static RemoteControl create(Context context) + { + // TODO: check preferences to see which subclass of RemoteControl to instantiate + + HtpcServer server = createServer(getCurrentServerConfig(), context); + return new XbmcRemoteControl(server, context); + } + + public static HtpcServerConfig getCurrentServerConfig() + { + // TODO: deserialize config object from preferences + HtpcServerConfig config = new HtpcServerConfig(); + + config.setHost("10.0.0.30"); + config.setPort(8080); + config.setResource("/xbmcCmds/xbmcHttp?command=%s"); + config.setAuthRequired(true); + config.setUsername("xbmc"); + config.setPassword(""); + config.setWakeOnLan(true); + config.setWakeOnLanBroadcast("10.0.0.255"); + config.setWakeOnLanMacAddr("00:01:2E:2B:7C:DE"); + + Log.d("RemoteControlFactory", String.format("Obtained configuration:\n%s", config.toString())); + + return config; + } + + private static HtpcServer createServer(HtpcServerConfig config, Context context) + { + NetworkClient client = new NetworkClient(context); + return new HtpcServer(config, client); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/XbmcCommand.java b/src/com/geredking/htpcremote/xbmc/XbmcCommand.java new file mode 100644 index 0000000..9453efd --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/XbmcCommand.java @@ -0,0 +1,30 @@ +package com.geredking.htpcremote.xbmc; + +import android.net.Uri; +import android.util.Log; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.HtpcServerConfig; +import com.geredking.htpcremote.commands.HtpcServerCommand; + +public abstract class XbmcCommand extends HtpcServerCommand +{ + protected void command(HtpcServer server, String command) + { + HtpcServerConfig config = server.getConfig(); + + String path = String.format(config.getResource(), Uri.encode(command)); + + try + { + if (config.isAuthRequired()) + server.getClient().sendHttpGet(config.getHost(), config.getPort(), path, null, config.getUsername(), config.getPassword()); + else + server.getClient().sendHttpGet(config.getHost(), config.getPort(), path); + } + catch (Exception e) + { + Log.e("XbmcCommand", String.format("Exception occurred during command: %s", command), e); + } + } +} diff --git a/src/com/geredking/htpcremote/xbmc/XbmcRemoteControl.java b/src/com/geredking/htpcremote/xbmc/XbmcRemoteControl.java new file mode 100644 index 0000000..ecb6b07 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/XbmcRemoteControl.java @@ -0,0 +1,40 @@ +package com.geredking.htpcremote.xbmc; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.commands.WakeOnLanPowerCommand; +import com.geredking.htpcremote.remotes.RemoteButton; +import com.geredking.htpcremote.remotes.RemoteControl; +import com.geredking.htpcremote.xbmc.commands.*; + +import android.content.Context; +import android.util.Log; + +public class XbmcRemoteControl extends RemoteControl +{ + public XbmcRemoteControl(HtpcServer server, Context context) + { + super(server, context); + + Log.d("XbmcRemoteControl", "Register commands for XBMC remote control"); + + registerCommand(RemoteButton.POWER, new WakeOnLanPowerCommand()); + registerCommand(RemoteButton.HOME, new HomeCommand()); + registerCommand(RemoteButton.TOGGLEFULLSCREEN, new ToggleFullscreenCommand()); + registerCommand(RemoteButton.MENU, new MenuCommand()); + registerCommand(RemoteButton.INFO, new InfoCommand()); + registerCommand(RemoteButton.OSD, new OsdCommand()); + registerCommand(RemoteButton.BACK, new BackCommand()); + registerCommand(RemoteButton.OK, new OkCommand()); + registerCommand(RemoteButton.PLAY, new PlayCommand()); + registerCommand(RemoteButton.STOP, new StopCommand()); + registerCommand(RemoteButton.FASTFORWARD, new FastforwardCommand()); + registerCommand(RemoteButton.REWIND, new RewindCommand()); + registerCommand(RemoteButton.SKIP_NEXT, new SkipNextCommand()); + registerCommand(RemoteButton.SKIP_PREVIOUS, new SkipPreviousCommand()); + registerCommand(RemoteButton.DPAD_UP, new DpadUpCommand()); + registerCommand(RemoteButton.DPAD_DOWN, new DpadDownCommand()); + registerCommand(RemoteButton.DPAD_LEFT, new DpadLeftCommand()); + registerCommand(RemoteButton.DPAD_RIGHT, new DpadRightCommand()); + } + +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/BackCommand.java b/src/com/geredking/htpcremote/xbmc/commands/BackCommand.java new file mode 100644 index 0000000..1ea7bdb --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/BackCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class BackCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "SendKey(275)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/DpadDownCommand.java b/src/com/geredking/htpcremote/xbmc/commands/DpadDownCommand.java new file mode 100644 index 0000000..e5a1603 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/DpadDownCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class DpadDownCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "SendKey(271)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/DpadLeftCommand.java b/src/com/geredking/htpcremote/xbmc/commands/DpadLeftCommand.java new file mode 100644 index 0000000..17bb659 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/DpadLeftCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class DpadLeftCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "SendKey(272)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/DpadRightCommand.java b/src/com/geredking/htpcremote/xbmc/commands/DpadRightCommand.java new file mode 100644 index 0000000..f9dd053 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/DpadRightCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class DpadRightCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "SendKey(273)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/DpadUpCommand.java b/src/com/geredking/htpcremote/xbmc/commands/DpadUpCommand.java new file mode 100644 index 0000000..287feab --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/DpadUpCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class DpadUpCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "SendKey(270)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/FastforwardCommand.java b/src/com/geredking/htpcremote/xbmc/commands/FastforwardCommand.java new file mode 100644 index 0000000..3221439 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/FastforwardCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class FastforwardCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "Action(77)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/HomeCommand.java b/src/com/geredking/htpcremote/xbmc/commands/HomeCommand.java new file mode 100644 index 0000000..4f167af --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/HomeCommand.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class HomeCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + // 0xF01B corresponds to XBMC's "escape" keyboard mapping + // ref: http://groups.google.com/group/commandfusion/browse_thread/thread/e07d37e903cbe486 + command(server, "SendKey(0xF01B)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/InfoCommand.java b/src/com/geredking/htpcremote/xbmc/commands/InfoCommand.java new file mode 100644 index 0000000..b1a1eda --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/InfoCommand.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class InfoCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + // 0xF049 corresponds to XBMC's "i" keyboard mapping + // ref: http://groups.google.com/group/commandfusion/browse_thread/thread/e07d37e903cbe486 + command(server, "SendKey(0xF049)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/MenuCommand.java b/src/com/geredking/htpcremote/xbmc/commands/MenuCommand.java new file mode 100644 index 0000000..4a58a63 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/MenuCommand.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class MenuCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + // 0xF043 corresponds to XBMC's "c" keyboard mapping + // ref: http://groups.google.com/group/commandfusion/browse_thread/thread/e07d37e903cbe486 + command(server, "SendKey(0xF043)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/OkCommand.java b/src/com/geredking/htpcremote/xbmc/commands/OkCommand.java new file mode 100644 index 0000000..827eb3c --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/OkCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class OkCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "SendKey(256)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/OsdCommand.java b/src/com/geredking/htpcremote/xbmc/commands/OsdCommand.java new file mode 100644 index 0000000..b1fc342 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/OsdCommand.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class OsdCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + // 0xF04D corresponds to XBMC's "m" keyboard mapping + // ref: http://groups.google.com/group/commandfusion/browse_thread/thread/e07d37e903cbe486 + command(server, "SendKey(0xF04D)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/PlayCommand.java b/src/com/geredking/htpcremote/xbmc/commands/PlayCommand.java new file mode 100644 index 0000000..0e764a2 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/PlayCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class PlayCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "Action(12)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/RewindCommand.java b/src/com/geredking/htpcremote/xbmc/commands/RewindCommand.java new file mode 100644 index 0000000..4314056 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/RewindCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class RewindCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "Action(78)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/SkipNextCommand.java b/src/com/geredking/htpcremote/xbmc/commands/SkipNextCommand.java new file mode 100644 index 0000000..411eac0 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/SkipNextCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class SkipNextCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "Action(14)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/SkipPreviousCommand.java b/src/com/geredking/htpcremote/xbmc/commands/SkipPreviousCommand.java new file mode 100644 index 0000000..6ba95d9 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/SkipPreviousCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class SkipPreviousCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "Action(15)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/StopCommand.java b/src/com/geredking/htpcremote/xbmc/commands/StopCommand.java new file mode 100644 index 0000000..a749d20 --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/StopCommand.java @@ -0,0 +1,13 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class StopCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + command(server, "Action(13)"); + } +} diff --git a/src/com/geredking/htpcremote/xbmc/commands/ToggleFullscreenCommand.java b/src/com/geredking/htpcremote/xbmc/commands/ToggleFullscreenCommand.java new file mode 100644 index 0000000..1f9c6ed --- /dev/null +++ b/src/com/geredking/htpcremote/xbmc/commands/ToggleFullscreenCommand.java @@ -0,0 +1,15 @@ +package com.geredking.htpcremote.xbmc.commands; + +import com.geredking.htpcremote.HtpcServer; +import com.geredking.htpcremote.xbmc.XbmcCommand; + +public class ToggleFullscreenCommand extends XbmcCommand +{ + @Override + public void run(HtpcServer server) + { + // 0xF009 corresponds to XBMC's "tab" keyboard mapping + // ref: http://groups.google.com/group/commandfusion/browse_thread/thread/e07d37e903cbe486 + command(server, "SendKey(0xF009)"); + } +}