And the Choosen One is…….

Andmore with 38% of the vote.  Final voting results are below.

Screen Shot 2014-10-21 at 10.07.02 AM

This still needs to go through trademark approval.  If Andmore doesn’t pass then it will be Eldon, followed by Reuben, and then finally Origami.

Posted in android, eclipse | Tagged , | Leave a comment

The Final Four

The proposed Android Tooling Project for Eclipse has narrowed it down to four possible names. It needs the eclipse community to help chose which one will win out. A straw poll has been created to select the winner.

http://strawpoll.me/2781013

The four finalists are in no particular order:

  • Reuben
  • Eldon
  • Oragami
  • Andmore

The original bug tracking the nominations can be found here:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=446172

Polling is open until October 21, 2014.

Posted in android, eclipse | Tagged , | 1 Comment

Resolving the dual ItemClick conundrum for the Android Gallery View

Yes, the Gallery View is deprecated, however currently there really isn’t an out of the box solution to what the gallery view provides, which is a center locked horizontal scrolling list of items. The Twoway-view project has some potential in addressing this need, but it needs time to mature a bit.

There are many issues with the Gallery view, but one of the most significant is if you need the ability to show context menus for an item. If you are using it with a D-Pad (say in an Android TV application), and you long press on an item using D-PAD OK, or BUTTON-A, you’ll get both ItemLongClick and ItemClick events fired by the gallery. This has been a long standing bug within the app, an has plagued me for years. I finally tracked it down and created the following gist that can be applied to a custom version of the Gallery.

Basically, what was happening is that the onKeyUp event that fired the ItemClick event never checked to see if the dispatchLongPress event had already handled the event. So it was always firing the ItemClick event. The gist makes this small change, and actually eliminates numerous work arounds that had to be done to get context menus to show with the gallery.

This bug only affects you if you needed to use a D-PAD, Remote Control, or Game Controller as an input device. Normal touch screen events are handled correctly.

Posted in android, googletv, open source | Leave a comment

Creating Android TV Recommendations

I’m in the process of integrating Serenity for Android with the new Android TV platform.   One of the items is to add Recommendations for Movies and TV Shows to watch.  These will appear along side other apps recommendations.    Android TV makes use of the Notification API to build and display the recommendations, and it is fairly straight forward to implement.

The main items that you need do are as follows:

  1. Create an IntentService that can fetch and contribute the recommendations.
  2. Schedule the IntentService to run periodically after the device has booted to update its recommendations.
  3. Handle refreshing the recommendations after your video has completed if necessary.

To help others, I have created a Gist that shows what was necessary to implement this for Serenity.  The overall implementation took maybe a half a day, and lot of that was making sure that Android Universal Image Loader wasn’t running on the main thread.

Posted in android, googletv, open source, serenity | Leave a comment

Proteus Android IDE

Almost two years ago, MotoDev Studio was open sourced.  The code has sat idle in the git repositories.  MotoDev provided a lot of useful tools and additional functionality that was missing.  It provided better device integration and file exploring, a great repository of snippets, and kick ass Internationalization editor.   Since it was opened source, Google has gone a different direction with Android development, concentrating on Android Studio, and only providing bug fixes and tooling updates for the Android Development Tools based on eclipse.

I recently had an itch to resurrect the MotoDev studio plugins, and thus the Proteus Android IDE was born.  It leverages ADT 23.0.x, and includes the MotoDev basic functionality.   However it doesn’t stop there, it also is built off Eclipse Kepler, and includes, Maven and the Android Maven Connector, allow for consumption of maven artifacts.   In addition, Mylyn, Mylyn Reviews, the Gerrit Connector, EGit, and Github connectors are included.   Also included is the Gradle Tooling plugins from SpringSource.

The addition of these plugins on top of ADT, help form the basis going forward for hopefully a first class IDE for Android development based on eclipse.

The goal currently is to provide a community supported project where additional Android tooling can be done that extends and addresses the issues around ADT.   Eclipse developers and particularly corporate consumers should be able to leverage and use the tools they know and love.

Right now Proteus is a person project, and one that has a lot of other things going on.   So it needs help to survive and thrive.   This is where the eclipse community comes into play.   The project is hosted on GitHub, it is licensed under an Eclipse Development License 1.0, with MotoDev residing under Apache 2.0.     You can get the current code, from the link below:

https://github.com/kingargyle/proteus

Binaries and more information about the project can be found at the wiki:

https://github.com/kingargyle/proteus/wiki/Proteus-IDE

The project will need a community to form around it to survive and thrive long term.  It will be what the eclipse android community makes it.  So feel free to Fork the code, play around with it, and send in pull requests.   Maybe together we can make the Android IDE that we deserve.

 

Posted in android, eclipse, maven, mylyn | 3 Comments

Maven, Android L, Android TV, and a bit less hair.

While working on upgrading my app for Android TV.  I ran into some build issues.  There are problems with the way the Android L support libaries define their depenencies in the m2repository that comes with the SDK.   In general they are not specifying the Type for the depenency to be AAR, but leaving it without a type.   So for tools like Maven, this means it defaults to looking for a JAR.  However the m2repository doesn’t contain these artifacts as jars, only as AARs.   So builds fail, cats and dogs start sleeping together, and forces of Xul start to take over the world.

To get around this issue, one needs to setup some exclusions and then include the necessary AARs as dependencies.  Its ugly, it shouldn’t have to be done, but it works.   So with out further ado, if you need to use the v17-leanback support library here is the magic sauce.

      <dependency>
         <groupId>com.android.support</groupId>
         <artifactId>support-v4</artifactId>
         <version>21.0.0-rc1</version>
         <type>aar</type>
      </dependency>
       <dependency>
           <groupId>com.android.support</groupId>
           <artifactId>support-annotations</artifactId>
           <version>21.0.0-rc1</version>
       </dependency>
      <dependency>
         <groupId>com.android.support</groupId>
         <artifactId>leanback-v17</artifactId>
         <version>21.0.0-rc1</version>
         <type>aar</type>
          <exclusions>
              <exclusion>
                      <groupId>com.android.support</groupId>
                      <artifactId>recyclerview-v7</artifactId>
              </exclusion>
              <exclusion>
                  <groupId>com.android.support</groupId>
                  <artifactId>support-v4</artifactId>
              </exclusion>
          </exclusions>
      </dependency>
      <dependency>
         <groupId>com.android.support</groupId>
         <artifactId>recyclerview-v7</artifactId>
         <version>21.0.0-rc1</version>
         <type>aar</type>
          <exclusions>
              <exclusion>
                  <groupId>com.android.support</groupId>
                  <artifactId>support-v4</artifactId>
              </exclusion>
          </exclusions>
      </dependency>

Hopefully if you are using the android-maven-plugin to build your app, this brings a bit of sanity to building your Android L enabled apps.

 

Posted in android, googletv, maven, open source, serenity | Leave a comment

Serenity for Android now on Amazon Fire TV

serenity-bonsai-logo

Version 1.7.3 should now be available in the Amazon App store and be available for the Amazon Fire TV.   A newer version has been submitted that should bring it up to speed with the Google Play version in a few days.   For best playback experience,   it is recommended to use an external video player.  If you can, side load MX Player for the best integrated experience.

6a0148c71fb71b970c0153901475c3970b-pi

Serenity uses the same code base without changes as the versions that run on Google TV, Tablets, Android HDMI sticks, OUYA, and Android TV devices.

What do you get over the official Plex application:

  • Multiple user selectable views, select between Grid and Detail views for TV Shows and Movies
  • Video Queue and Continuous Playback support.
  • User configurable preferences for Default catagories on TV Shows and Movies.  Select the starting category for browsing from the preferences.
  • Integrated support of Plex meta data for supported External Players (i.e MX Player).  Plex metadata will update current playback position and watched/unwatched status.
  • Optional Overscan adjuster.  Accessible through the User Preferences.
  • Quick Navigation with the Remote Control or attached Blue Tooth Keyboard.
  • Optimized for Remote and Game Controller use.

Serenity does not support all the Plex functionality.  If your video library requires transcoding and you can’t use an external player that supports playback of your content, then the offical Plex client may be a better choice.   But if you can Direct Play all your content or are experiencing issues with the official client, you may want to give Serenity a spin.  It may fit your browsing needs.

 

Posted in android, googletv, open source, plex media server, serenity | Leave a comment