GithubHelp home page GithubHelp logo

androidtracks's Introduction

CycleTracks
-----------
Copyright 2009, 2010 San Francisco County Transportation Authority
100 Van Ness Ave FL26
San Francisco, CA 94102 USA

Code written by Billy Charlton.

contact email: [email protected]
http://www.sfcta.org/cycletracks

CycleTracks is released under the GNU General Public License, version 3.
See 'COPYING' for a detailed description of the GNU GPL.

-----------

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

androidtracks's People

Contributors

worldofbilly avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

androidtracks's Issues

Max speed is insane

Even with high accuracy, GPS occasionally reports insanely high speed (256mph!).

Crop out unrealistic bike speeds, say > 30mps

Implement saved trips list

List of saved trips, preferably with thumbnails.

  • Date/time, purpose, and distance
  • Thumbnail of track if possible
  • Tapping thumbnail or list item takes user to Google Maps zoomed into the trip

map view crashes

Sometimes the map view crashes. Might be related to lack of data conn or timeout?

Trip purpose can't have a default

Right now the Trip Purpose dropdown defaults to Commute. This is wrong.

We need to either have a dropdown without a default, or switch to pushable single-use buttons with pretty icons.

Either way, the "Submit" button needs to verify that a trip purpose is chosen with a popup or something.

ERROR/ActivityThread(859): Activity org.sfcta.cycletracks.MainInput has leaked ServiceConnection org.sfcta.cycletracks.MainInput$1@4373e6d8 that was originally bound here

12-07 20:05:09.441: INFO/ActivityManager(578): Displayed activity org.sfcta.cycletracks/.MainInput: 1567 ms
12-07 20:05:14.642: DEBUG/dalvikvm(619): GC freed 108 objects / 4848 bytes in 170ms
12-07 20:05:15.682: INFO/ActivityManager(578): Starting activity: Intent { comp={org.sfcta.cycletracks/org.sfcta.cycletracks.RecordingActivity} }
12-07 20:05:16.011: DEBUG/LocationManager(859): Constructor: service = android.location.ILocationManager$Stub$Proxy@4376d1d8
12-07 20:05:16.041: DEBUG/GpsLocationProvider(578): setMinTime 0
12-07 20:05:16.041: DEBUG/GpsLocationProvider(578): TTFF: 1
12-07 20:05:16.411: INFO/ActivityManager(578): Displayed activity org.sfcta.cycletracks/.RecordingActivity: 733 ms
12-07 20:05:16.531: ERROR/ActivityThread(859): Activity org.sfcta.cycletracks.MainInput has leaked ServiceConnection org.sfcta.cycletracks.MainInput$1@4373e6d8 that was originally bound here
12-07 20:05:16.531: ERROR/ActivityThread(859): android.app.ServiceConnectionLeaked: Activity org.sfcta.cycletracks.MainInput has leaked ServiceConnection org.sfcta.cycletracks.MainInput$1@4373e6d8 that was originally bound here
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ActivityThread$PackageInfo$ServiceDispatcher.(ActivityThread.java:886)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ActivityThread$PackageInfo.getServiceDispatcher(ActivityThread.java:781)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ApplicationContext.bindService(ApplicationContext.java:820)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.content.ContextWrapper.bindService(ContextWrapper.java:307)
12-07 20:05:16.531: ERROR/ActivityThread(859): at org.sfcta.cycletracks.MainInput.onCreate(MainInput.java:76)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2231)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2284)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ActivityThread.access$1800(ActivityThread.java:112)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.os.Handler.dispatchMessage(Handler.java:99)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.os.Looper.loop(Looper.java:123)
12-07 20:05:16.531: ERROR/ActivityThread(859): at android.app.ActivityThread.main(ActivityThread.java:3948)
12-07 20:05:16.531: ERROR/ActivityThread(859): at java.lang.reflect.Method.invokeNative(Native Method)
12-07 20:05:16.531: ERROR/ActivityThread(859): at java.lang.reflect.Method.invoke(Method.java:521)
12-07 20:05:16.531: ERROR/ActivityThread(859): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:782)
12-07 20:05:16.531: ERROR/ActivityThread(859): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:540)
12-07 20:05:16.531: ERROR/ActivityThread(859): at dalvik.system.NativeStart.main(Native Method)
12-07 20:05:16.581: WARN/ActivityManager(578): Unbind failed: could not find connection for android.os.BinderProxy@436061a8

Fix icons

Launcher is

  • too big
  • needs shadow
  • needs to be higher resolution for droid

Unexpected "Back" behavior in Record after viewing a map after a trip submission.

Found in Release 12

Steps to recreate:

  1. Open cycletracks
  2. Tap "Start New Trip"
  3. Allow the app to record some data points
  4. Click "Finish"
  5. Click "Submit" in the SaveTrip Activity.
  6. Wait for the trip to upload and the map to display.
  7. Click "Home" in the ShowMap Activity.
  8. Start CycleTracks
  9. Click "Start New Trip"
  10. In the Recording View hit the back button.

Result:
The application reloads the Recording Activity.

Expected Result:
The application releases to the launcher.

Implement battery saving & warning

  • Ring bike bell after 15 minutes and every 5 minutes thereafter.
  • Cancel trip if battery hits 10% or lower (and send one-time notification)

Clean up Save UI

  • Put in a scrollerview
  • Get those trip purpose buttons figured out!

Fire up GPS when app is launched?

Since GPS takes a few moments to lock-on, it would be prudent to fire up the GPS when the app is started instead of when "Start Recording" is pressed.

But, this has battery implications. Need to figure out if this can "time out" after a minute (or some period) if user is just looking at old trips or goes back to home screen.

Maybe it can fire up the GPS when the main screen is foreground, but shut off if it goes background AND there are no current trips being recorded.

Implement PAUSE

  • Turn off GPS tracking to save battery
  • Allow DISCARD and CONTINUE

GPS disabled !

Should prompt to turn GPS on, if GPS is disable.

"Your GPS is currently disabled. Without GPS, CycleTracks cannot determine your location. Would Go to System Settings to enable GPS?" Yes/No (Go/Cancel)

Resend bad trips

If trip upload fails, send on attempt a "send" on next submit.

Clear bad trips on MainInput view

Despite my best efforts, sometimes the app crashes and leaves flotsam in the database.

Before showing the list of saved trips, clean it up:

  • Change trip status from boolean to STAT_INCOMPLETE; STAT_COMPLETE; STAT_SENT
  • Check status of each trip, erase trip and coords of incomplete trips.

Be sure GPS shuts off when not recording

It appears that GPS stays on, even after "Record Trip" is completed.

  • GPS must turn off or the battery will die!
  • Check docs to see if Activity.finish() also destroys listeners. Seems like "no".

Clean up task stack and make sure back/home always work

Currently there are lots of ways to get in an inconsistent state if you switch tasks during trip recording.

  • Must have just one trip recording at a time.
  • The CycleTracks launch icon should return user to an existing trip, if one is being recorded or was recently finished and needs to be submitted.

This all has something to do with task reparenting and Activity type, see
http://developer.android.com/guide/topics/fundamentals.html#acttask and
http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html

Map needs some UI love

  • Back button shouldn't exit app (should go to main page)
  • Some trip details would be nice

Launcher should go to running task if there is one

Currently the launcher always shows the start page.

If there is a trip recording, or if the user left at the save/submit page, the launcher should go to the respective RecordingActivity or SaveTrip page instead of launching a new task.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.