New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

WIP - Issue #116 - OBA Google Glass GDK #219

Open
wants to merge 42 commits into
base: master
from

Conversation

Projects
None yet
2 participants
@barbeau
Member

barbeau commented Feb 24, 2015

This is somewhat dated now (most recent work mid-2014), but I wanted to open this as a WIP so it doesn't get lost, and is more visible if someone else wants to contribute to the Glass work.

Options to install an alpha version (this PR contents):

  1. Download the current APK here, and follow these directions to install it on Glass, or...
  2. If you have the Android dev environment setup w/ GDK installed - run gradlew installDebug from root of project using command-line

OBA Glassware is activated by using voice commands "ok glass", then "show me transit times".

show_me_transit_times

It will figure out your region (Puget Sound, Tampa, Atlanta, Washington DC, or York Canada):
finding_your_transit_services

...find the closest bus stop to your real-time location, and then show you the arrival times for that stop:
arrivals_uatc6-arrow

Times are refreshed every minute until you dismiss the Activity by swiping down. You can scroll up/down the list of arrival times by tilting your head up and down. You can pause/resume scrolling the list by long pressing with two fingers on the touch pad. Tapping with two fingers will automatically scroll to the top of the list. The arrow points towards your stop from your current position and orientation (so in the example above, you'd turn to your right a little over 90 degrees to face your stop).

Long-term goal is to get the GDK version of OBA Android merged back into the main project, hopefully using Gradle build flavors and/or project modules (see also work related to Wear in #181). Main differences between the main OBA app project and this PR is that Glass does not support the Google APIs add-on (including maps and GeoPoint object) or Google Play Services, and apparently has poor support for Fragments (hence use of a ListActivity instead of ListFragment). Most of the internal infrastructure for API calls and various utilities are the same, though, and could be shared between projects.

I'd like to get feedback from others for what features they'd like to see, so please let me know what features you think would be useful.

See #116 for more details.

barbeau added some commits Mar 13, 2014

Working Glassware! Will show the arrival list of the stop closest to …
…your real-time location. Changed to use ListActivity instead of Fragments, as Fragments don't seem to be well-supported in current GDK. Still need to working on styles.
Fixed card layout, added stop name and icon to card. Changed stops re…
…quest to execute before regions task finishes, if a region already exists. Added abbreviaton for Downtown.
Refactor some of location logic into service, which can now pass a gi…
…ven location to the tasks (helps with spoofing location for testing).
Add a progress bar in the GlassArrivalListActivity. Next step is to r…
…efactor existing logic in the Service into this Activity, so we no longer need the Service.
Consolidate to using just the ListActivity (i.e., remove the Service)…
…, since the service isn't needed. Add progress messages. Loading arrival times is really slow, need to examine why.
Initialize LoaderManager in OnCreate() to try and speed things up. On…
…ly show bus icon after arrival times are obtained.
Added development permission, which is now required with the XE16 upd…
…ate when a non-production voice trigger is used.
Per the Glassware Review Team, change voice command to "show me trans…
…it times", since this will be the official transit info voice command.
Fix CUTR-at-USF#1 - implement sensor-based scrolling for the ListView…
… as a workaround to broken swipe-based scrolling in XE16.X.
Change the Card layout to bring it in line with recommendations discu…
…ssed in https://developers.google.com/glass/develop/gdk/ui-widgets#main_layout, including more padding on the edges of cards.  Make the text slightly smaller to fit in new layout dimensions, and truncate route direction so it doesn't run into the arrival time.
Working arrow that points to north, refactor sensor code for list vie…
…w and arrow into its own centralized OrientationManager. TODO - point arrow to nearest stop location, update distance text.
Refactor OrientationManager from Singleton into normal class that's i…
…nstantiated from ArrivalsListActivity, since otherwise its awkward to start/stop updates for onResume and onPause.
Working distance measure, using LocationHelper to get ongoing best lo…
…cation and update other listeners. Revert accidental changes to UIHelp. TODO - point arrow to nearby stop.
Add mod function to make sure heading stays between 0-360 when calcul…
…ating heading differences with magnetic declination and bearing to stop. Force compass redraw when new location is calculated.
Show outdated Hide outdated glass-progress-bar/build.gradle
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'

This comment has been minimized.

This comment has been minimized.

@barbeau

barbeau Feb 25, 2015

Member

@cagryInside Yes, this (and the Gradle wrapper) likely need to be updated before this will build in the most recent version of Android Studio.

@barbeau

barbeau Feb 25, 2015

Member

@cagryInside Yes, this (and the Gradle wrapper) likely need to be updated before this will build in the most recent version of Android Studio.

This comment has been minimized.

@barbeau

barbeau Feb 25, 2015

Member

I'll push an update for this shortly.

@barbeau

barbeau Feb 25, 2015

Member

I'll push an update for this shortly.

Show outdated Hide outdated ...in/java/com/joulespersecond/seattlebusbot/GlassArrivalsListActivity.java
Log.d(TAG, "Found stops.");
// Find closest stop
ObaStop closestStop;
closestStop = UIHelp.getClosestStop(this, response.getStops(), mLastKnownLocation);

This comment has been minimized.

@cagryInside

cagryInside Feb 25, 2015

Contributor

@barbeau I would use these together:

ObaStop closestStop = UIHelp.getClosestStop(this, response.getStops(), mLastKnownLocation);
@cagryInside

cagryInside Feb 25, 2015

Contributor

@barbeau I would use these together:

ObaStop closestStop = UIHelp.getClosestStop(this, response.getStops(), mLastKnownLocation);

This comment has been minimized.

@barbeau

barbeau Feb 25, 2015

Member

Agreed! Code in this PR isn't my best work :). It's more of a shortest path to get something working on Glass.

@barbeau

barbeau Feb 25, 2015

Member

Agreed! Code in this PR isn't my best work :). It's more of a shortest path to get something working on Glass.

@barbeau

This comment has been minimized.

Show comment
Hide comment
@barbeau

barbeau Feb 25, 2015

Member

Thanks for the feedback @cagryInside, just pushed a few commits to fix those items.

Member

barbeau commented Feb 25, 2015

Thanks for the feedback @cagryInside, just pushed a few commits to fix those items.

@luqmaan luqmaan referenced this pull request Aug 14, 2015

Merged

Update OBA native app links #11

@barbeau barbeau added this to the Future milestone Dec 1, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment