sfcta / androidtracks Goto Github PK
View Code? Open in Web Editor NEWAndroid Tracks
Home Page: http://www.sfcta.org/cycletracks
License: GNU General Public License v3.0
Android Tracks
Home Page: http://www.sfcta.org/cycletracks
License: GNU General Public License v3.0
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/>.
Sending the RecordActivity is crufty!!
after "save" button, map screen isn't attached to home page.
Don't submit if there are no points.
Use Toast to let user know.
Need to push demographic prefs every time they change
After the first map view, subsequent rotations shouldn't rezoom/recenter.
Sign of a larger problem.... threading issue.
Probably still need to switch to a service/data paradigm.
Even with high accuracy, GPS occasionally reports insanely high speed (256mph!).
Crop out unrealistic bike speeds, say > 30mps
TripUploader.java, line 219:
pd.dismiss();
UI calls are not supposed to be called from child threads. Should use AsyncTask object...
Something is amiss with the "n points received" updates.
Yikes!
On the map view, show the start and end pins differently
List of saved trips, preferably with thumbnails.
Need to have fake database for testing before we go live
Sometimes the map view crashes. Might be related to lack of data conn or timeout?
User needs to have feedback on distance travel, current speed, etc.
Dropdown doesn't always go to the correct Record Trip page.
IF* they haven't already entered demographics, "Start New Trip" and "Finish" pages should both prompt user to enter it.
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.
Timing issue? WTF?
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
Launcher is
Found in Release 12
Steps to recreate:
Result:
The application reloads the Recording Activity.
Expected Result:
The application releases to the launcher.
Can't reproduce yet...
Instead of toasts, save GPS coords in memory.
When re-entering after "Pause" then "Back", the resume button says "Pause"
Steps:
Might be nice to drop some points if they are bad accuracy or very close to previous point...
Recording about 300 points causes G! to go all crazy.
Probably need to stop storing geopoints in memory, just use database instead. sigh
tap-hold on list to get a context menu
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.
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)
If possible, show GPS status on recording page so user knows if they can get movin'
lat/long are not in iPhone units (iPhone says -137.545342, 38.23432423).
Need to verify that ALL data is in the same units as iPhone sends.
If trip upload fails, send on attempt a "send" on next submit.
Despite my best efforts, sometimes the app crashes and leaves flotsam in the database.
Before showing the list of saved trips, clean it up:
Looking at database, seems trip notes are not getting pushed.
Same as iPhone - and store as app preferences
Map view occasionally gets stuck in stack, should always disappear
It appears that GPS stays on, even after "Record Trip" is completed.
Required to use GMaps.
See http://code.google.com/android/add-ons/google-apis/mapkey.html
Currently there are lots of ways to get in an inconsistent state if you switch tasks during trip recording.
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
Accuracy values > 75 is really awful. Don't use those points for any type of user feedback
(But don't drop from database as we can clean them later)
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.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.