Releases: rectangle-dbmi/Realtime-Port-Authority
App Complete Rewrite (for Modularity) First Beta
Obtaining a beta release:
Follow the instructions here
Description
The purpose of this pre-release is to get the entirely new backend out to my beta testers. This is a huge complete rewrite of the app despite seemingly no new features. I want to squash bugs before this is released in production. In addition, for all issues not known, please complain to me about them (but not in reviews)
Bug Fixes
- Camera is completely in all situations. No more centering to Africa.
- Permissions in Android M should now work as expected in a non-hacky way
- all network leaks fixed
Added Features
- If you completely deny the locations permission, a Snackbar will pop up saying you should allow it to show the map on you.
- added a menu option to see the app permissions
Known Issues -- not complain about these following bugs
- Connection Handoffs kill the reloading of the buses. Must restart app to have the buses re-update if this happens.
- hamburger menu completely broken. Will be fixed in next release
Backend Updates
- Whole map was moved into its own class (fragment) -> more modular code which will pave the way for more and better features
- bus selection now works reactively with ReactiveX
- buses now update instantly on selecting buses
- bus unselection now handled reactively
- no more chance of network leaks
What to expect for next release
- List of buses will be abiding by Material Design standards
6.4 Production Release - Bus Selection Total Refactor + UI changes
Obtaining the Release
Visit our Google Play Store page.
Description
This is a production release of two previous releases....
There were many changes to the release which includes a much better Bus List Selection menu and a new About Page. Please stay tuned for more updates regarding these!
Changes
Bug Fixes
- Bus List Selection should never be unsynchronized
UI Enhancements
- App now named PAT Track in phone/tablet
- Bus List Selection looks closer to Material Design
- Bus List Selection feels much more responsive
- Bus List now has Material Ripple Effect
- About Page Changed
- No Bus Selection Changed from the map cleared message to "No routes selected."
Backend
- Now using Retrofit 2.0
- ListView of Bus Selection completely rewritten to be a RecyclerView
- AboutActivity completely rewritten
- Bus List Selection completely rewritten
Possible Issues
- #267 - Polylines may be finicky on first boot up.... Not sure what the cause is but it will be fixed on next app rewrite. After this, it will run fine.
Future Release Proposals
UI Change Release Candidate
This is an addendum release of version 6.1b (beta).
This is an actual release candidate so if there are no problems this code, the exact codebase will be rebuilt with a production version name.
Obtaining the Release
You must first be part of the open beta, then visit the app store page.
Changes
- Everything in version 6.1b (beta).
- List View is now a Recycler View
- Bus List now Snappy
- Bugs related to List View are completely fixed
- Converted to Retrofit 2
- About Page Redesigned
- Shorter Error Display Time
- Change No Buses Selected "Error" Message
- App Name in Android is now PAT Track
All Buses Added
Retrieving the App
Please visit the App's Play Store Page
Changes
Port Authority has added the last 6 buses as of November 22, 2015. All 98 buses are now available on the app.
New buses added:
Bus Route | Route Name |
---|---|
4 | Troy Hill |
7 | Spring Garden |
11 | Fineview |
40 | Mount Washington |
43 | Bailey |
44 | Via Knoxville |
Bus List Redesign
Retrieving the App
Please visit the App's Play Store Page
To subscribe to the Beta Release, please visit this link and become a tester. The beta release will be automatically updated.
To Beta Testers...
Please use the issues page or email us from the App Play Store Page to discuss changes. Your opinions count!
Changes
- Total refactor of bus list selection to use RecyclerView
- Total refactor of bus list saving
- Initial UI Redesign of bus list
Thread Leak Fixes
This release fixes another set of fix to the previous ReactiveX code.
Should feel:
- faster
- much better battery life
"Transaction limit for current day has been exceeded." Quick Fix
Obtaining the Release
Please download and install the app from our Google Play Store page.
Summary
This is a quick fix for version 5.0, which is a response to Port Authority's API Error Message: "Transaction limit for current day has been exceeded."
Official Statement for the App Being Down
There has been a misconception that since 5.0, we are now limiting the amount of times people can use the app. As you can see from the source code, this couldn't be farther from the truth. In fact, the only code that was changed was how we handled updates to the buses on the map. This does not affect how many calls are done on the app.
Port Authority has a 10,000 request per day limit to their TrueTime API per app. This is controlled by each app's API key. While the app currently has a special 500,000 request per day limit, we hit the limit on November 5 at 7:30PM.
The error message from Port Authority to us is "Transaction limit for current day has been exceeded." Everytime this message comes up, the app is out of commission until midnight when requests will be accepted again.
"Why was the API suddenly blocked after 7:30PM?" you may ask... While the route lines and stops are cached, every Monday and Friday, the cache is flushed and is re-cached. Each route download takes 1 API call. If you have 5 selected routes on Monday, your phone would do 6 requests to Port Authority -- 1 for the buses on the map, 5 for every route downloaded --. After this, the app will just do 1 API call per bus route updated (assuming you don't change your routes).
When we first hit the 10,000 request limit 2 months after the app back in July, we (at the time @RitwikGupta and I) took this as a compliment. As the userbase increased, we kept thinking about this error message as a compliment. Since then, we have requested the API key 5 times successfully to eventually get 500,000 requests per day. Unfortunately, now that we have well over 10,000 users using the app, where each user has contributed well over 500,000 uses per day, this has now become a burden to all users, including me. I sincerely apologize for my arrogance regarding this problem, as I use this app daily, also.
Since Port Authority doesn't seem to give developers usage numbers of the app, we are unable to predict when our app will go down because of over-usage. In addition, Port Authority told us we are only able to increase the usage request only if we have our app go down. Because of this, we have done our best on our side to mitigate the issue by requesting for another limit increase when the app's requests to the server get blocked.. We have also changed the app to say "Port Authority server unavailable. Please check after midnight." This is only a quick fix, and we expect to have an update to gracefully handle this better (as well as other error messages) in the coming weeks.
From this update, we ask users when this happens in the future to not add a review but instead just message us that the API is down.
Changes
- Transform API error message "Transaction limit for current day has been exceeded." to "Port Authority server unavailable. Please check after midnight."
Vehicle Update Code Refactor, Retrolambda, and Bus List in Natural Order
Retrieving the Release
To obtain a copy of the app, please visit the Play Store's Website:
https://play.google.com/store/apps/details?id=rectangledbmi.com.pittsburghrealtimetracker
To opt into the open beta to get the latest (and possibly more stable features) first, please visit:
https://play.google.com/apps/testing/rectangledbmi.com.pittsburghrealtimetracker
The changes should...
- Increase app responsiveness -> all processing is done on background processes
- quell headaches regarding error messages -> like messages will be combined and will be printed only when changed.
- Reduce bus list headaches...
Changes:
- bus lists -> all in natural alphanumeric order as opposed to lexicographic order -> thanks @VincentIII - #192
- Added a Natural Order Comparator to the code -> thanks @paour
- code now uses RetroLambda for
- some java 8 syntax
- RxAndroid/RxJava code ease for making the app look more functional
- ReactiveX code for vehicle updates vastly improved -> thanks @mikeantonacci
- all processing is done in the background -> previously a list of buses and errors were processed on the main thread
- App should feel much much faster
- final output for vehicle updates only updated/added on main thread
- updates to errors only happens when updates change or buses are reselected
- like error messages from the API are handled together
- should reduce memory footprint tenfold -> no chance for memory issues from bad multithreading
- Like Transient error messages now processed to be together -> thanks @sgdoerfler - #221
- leads to much less repeatable error messages
- App should now say "No tracking data available for routes: allNonTrackedBusRoutes" as opposed to "Port Authority currently not tracking oneBusRoute"
- Google Libraries updated for more stability
- No more hidden packages to hide Port Authority API Key from GitHub
Issues not Fixed
- Toasts can still be flaky, especially when selecting 10 buses
- Camera sometimes unsets at irregular intervals.
Pittsburgh Realtime Tracker First Release
Google Play Store Link
This is our first release of our real-time tracking system of Pittsburgh's public transit, starting with the Real-time API by the Pittsburgh Port Authority.
There are only currently 9 buses that are being tracked real-time by Port Authority:
- 41 (Bower Hill)
- 48 (Arlington)
- 56 (Lincoln Place)
- 8 (Perrysville)
- 86 (Liberty)
- 88 (Penn)
- P1 (East Busway - all stops)
- P3 (East Busway - Oakland)
- Y49 (Prospect Flyer)
That said, we will promise to bring the buses as soon as possible!
More features coming soon!
Pittsburgh Realtime Transit Tracker
We have been able to have to track the P1 at realtime which is updated every ten seconds.