Realtime transit tracker of Pittsburgh's Port Authority buses using the realtime PAT API using Google Maps to Display the Maps

Overview

PAT track Logotype

Realtime-Port-Authority

The purpose of this was to create a real-time tracking of port authority of Pittsburgh, PA, using the realtime API given by Port Authority on top of the Google Maps API.

Features:

  • Buses Run at Realtime
  • shows ETAs of buses to stops and stops to buses
  • shows stop markers above a certain zoom
  • RecyclerView saves via sharedpreferences
  • Uses RxJava + Retrofit to obtain data from Port Authority's API
  • Our (lame) attempt at using MVVM for UI-model interaction

Releases:

API limitations:

  • the buses don't update until after 10+ seconds. Our app only updates every 10 seconds
  • There are only a couple buses offered publicly. We promise to get updates to the new buses as soon as possible!
  • Buses disappear when off-route away from their route lines

#Android Development

Please refer to this wiki page for instructions to install and use the project.

This will be done using Android Studio 1.0 as of 12-09-2014.

Comments
  • Icon/Logo Design Proposal

    Icon/Logo Design Proposal

    Hi @epicstar , I am a graphic designer and i want to contribute to your project by proposing an Icon/Logo design. If you like and considered using this I will send you the needed files as a gift for free. Here is the layout of the design Sir.

    I created a clean, modern and minimal design for the project. i hope you like it!

    idea

    presentation

    If you like or have any suggestions just let me know and I will edit it.

    Thanks and Best regards Sir, -Tobaloidee

    opened by Tobaloidee 17
  • No route lines when connectivity returns

    No route lines when connectivity returns

    Go to airplane mode, then start the app. You get a map, but no RT info of course. Now leave airplane mode. The bus icons appear on the map after a few seconds, but the route lines do not, even waiting several minutes. Rotating the device to change its orientation makes them come back. 2.95B.

    I also saw the missing-route-lines issue once after the device had powered down due to inactivity, but haven't been able to reproduce that case.

    bug - Production 
    opened by sgdoerfler 17
  • Make bus icons easier to spot

    Make bus icons easier to spot

    Right now, their arrow shape blends in with roads too easily (especially curvy roads). Would be useful to switch to something entirely different, like a black and white bus icon (would also solve some of the color blind issues)

    enhancement help wanted 
    opened by toddmedema 17
  • Map/Route Display issues

    Map/Route Display issues

    Since the last update to PAT Realtime Tracker, it has had trouble displaying maps. It usually displays either a "grid" or a blank map area (save for the word "Google" in the bottom left corner), and only rarely the maps would display. It would, however, be able to display the colored lines for the route correctly as far as I could tell (difficult without the map), and it would be able to locate and display my position.

    Since last week, the map has not displayed at all, nor have any of the bus routes, and I have been unable to get it to even show the blue "current location" dot. I have 9 routes selected, only one of them does not run all day (before now, the app would correctly report that it's not available when it's not running), the others should all show during daylight hours.

    Since this has started happening, the error reports have been sporadic, from cycling through the routes saying they aren't available, to reporting that either there is no Internet connection or the API call limit was exceeded, to no error messages at all.

    I have already tried removing/reinstalling the PAT Realtime Tracker app, and I have even tried clearing the data for (then re-starting) the Google Maps app. I even went as far as to remove PAT Realtime Tracker, clear the data and remove updates for the Google Maps app, clearing the entire cache partition (from my phone's recovery mode), then updating & re-starting Google Maps, then reinstalling PAT Realtime Tracker -- all to no avail.

    I am running Android 4.4.4 KitKat on a Motorola Moto G LTE.

    In case it matters, the results above are the same regardless of whether I have the runtime set to Dalvik or ART (I did the troubleshooting described above twice -- once for Dalvik, and once for ART, in case the PAT Realtime Tracker app preferred one or the other).

    It is also the same regardless of whether I use wifi or my mobile data connection (which, as my phone's name suggests, is 4G LTE, and I never burn out enough of my mobile data allotment to get bumped down to plain-old 4G).

    In most of the places I go, I have a good signal (at least 3 out of 4 bars), so this shouldn't be the issue either -- even with an abysmally low signal on a 4G (i.e. non-LTE) connection, the app has worked in the past (albeit slowly with map downloads and route updates -- to be expected in that situation).

    bug - Production 
    opened by ghost 11
  • Text contrast in list of routes

    Text contrast in list of routes

    It's hard to see the route number in the list of routes when the background color is dark. Maybe you could use white text when the color is dark, not black text. Something like http://www.nbdtech.com/Blog/archive/2008/04/27/Calculating-the-Perceived-Brightness-of-a-Color.aspx would probably work fine.

    enhancement 
    opened by sgdoerfler 11
  • Need to make icons for the app and buses

    Need to make icons for the app and buses

    Anybody (looking at you vincent LOL) on the team that wants to make bus icons from scratch, please do. We need one for the app and for the buses. It'd be nice to have icons based on headers too (or make them rotate based on their hdg info)

    enhancement help wanted 
    opened by epicstar 7
  • Add Static Route Lines on App's Build Time

    Add Static Route Lines on App's Build Time

    Add the static route lines before the app's runtime (during "compile-time").

    We can get the data here: https://data.wprdc.org/dataset/port which I learned from http://transportationcamp.org/events/pgh-2016/

    enhancement 
    opened by epicstar 6
  • new zoom level problem

    new zoom level problem

    Sometimes when returning to the app, it forgets the previous zoom level and zooms all the way out so all selected routes are shown in full. This appears to be a regression in the last 2 weeks or so. It's happened half a dozen times, but I haven't pinned down the steps to reproduce it at will.

    bug - Production 
    opened by sgdoerfler 6
  • Move Backend away from ASyncTask

    Move Backend away from ASyncTask

    ............. ASyncTask is so bad...... There are 3 big uses to the app and ASyncTask:

    • retrieve bus data from PAT with TimerTask (ALSO BAD!!!)
    • retrieve bus stop and bus pattern data from either the data folder or from PAT
    • retrieve predictions data from PAT

    Perhaps maybe we should look into using json data? Maybe this will be a good thing to look at as it will save data and there are also standard parsers for this (XML surprisingly has less useful ones)

    enhancement 
    opened by epicstar 6
  • offset arrow so its point is in the right place

    offset arrow so its point is in the right place

    Sometimes a bus about to turn will appear to be past the intersection already. Zooming in makes it move back to before the intersection. This is because the arrow marker for the bus isn't being positioned correctly. It should be drawn so the point of the arrow indicates the bus position. (This is the same idea as the hotspot of a mouse cursor.) Fixing this would prevent the current problem where zooming in or out makes the bus appear to change its position.

    bug - Production 
    opened by sgdoerfler 6
  • Update the detour URL

    Update the detour URL

    The old detour URL of http://www.portauthority.org/paac/SchedulesMaps/Detours.aspx was deprecated. This change updates it to http://www.portauthority.org/Detours/, which is the new correct link.

    @epicstar

    opened by chenblair 5
  • No Tracking Data, No Route Lines/Stops

    No Tracking Data, No Route Lines/Stops

    As of yesterday afternoon, the tracking functionality ceased to work. I received an error that Port Authority's Servers were down.

    Checked this morning, and same issue. Tried clearing my routes and route cache and now I have lost all route lines and stops, and there's still no tracking info.

    Thanks for your help!

    opened by Cmsciulli 0
  • F-Droid inclusion

    F-Droid inclusion

    Hi @rectangle-dbmi ,

    Since this app is GNU GPL v3 licensed, are you considering the fact to add it to F-Droid? There is a strong community behind.

    You can find some documentation here.

    Otherwise, if you don't want to work on the inclusion of this app in F-Droid by yourself, would you still agree with the inclusion of your app in F-Droid by the maintainer team?

    While we're waiting for the inclusion of this app, could you please attach a signed release apk in your releases section, at least for the last version?

    opened by Poussinou 0
  • Buses sometimes don't disappear when the route is deselected

    Buses sometimes don't disappear when the route is deselected

    Seems like a timing issue. Need to synchronize the changes to the busicons from the vehicle update observable and the route selection observable. Example logging that demonstrates the issue:

    D/RouteSelection: getting both routes: 61B, [61D, 65] D/PatternViewModel$Companion$createPatternSelection: Getting patternSelections: 61B D/BusMapFragment$setupReactiveObjects: removing all 61B's D/BusMapFragment$setupReactiveObjects: REMOVE 6441: com.google.android.gms.maps.model.Marker@8762692 D/BusMapFragment$setupReactiveObjects: Iterating through all vehicles to add V/BusMapFragment$makeBitmaps: using cached bitmap 61B V/BusMapFragment$vehicleUpdateObserver: marker_add adding_marker 6441

    opened by mikeantonacci 0
  • busMarkers are removed while they're added every time a route is selected after the route has already been previously selected

    busMarkers are removed while they're added every time a route is selected after the route has already been previously selected

    For some reason in the unselectVehicleSubscription we have this:

    unselectVehicleSubscription = toggledRoutesFlowable
        .skipWhile(Route::isSelected)
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
    

    That skipWhile call causes the emitted route to be skipped the first time isSelected is true, but as soon as isSelected was false once, it's never skipped again. Not sure why we would have intended this behavior.

    It doesn't seem to break anything consistently, I only noticed it because I kept seeing logging like this in the debug console:

    D/RouteSelection: getting both routes: 61A, [61A] D/PatternViewModel: Getting patternSelections: 61A D/BusMapFragment: removing all 61A's W/realtimetracke: Accessing hidden field Lsun/misc/Unsafe;->theUnsafe:Lsun/misc/Unsafe; (greylist, reflection, allowed) D/BusMapFragment: Selecting vehicle observable D/BusMapFragment: Calling x0 D/BusMapFragment: updating map with [61A] D/PatternViewModel: Changing stop selection state

    opened by mikeantonacci 0
  • Rapidly selecting and deselecting routes with no data floods user with error messages

    Rapidly selecting and deselecting routes with no data floods user with error messages

    If you hover over the bus selection and rapidly select and deselect routes that do not currently have tracking data, you can create a backed up stream of error messages that will all eventually come through, flooding the user with a confusing sequential history of their bus selections in the form of error messages.

    E.g. At 1:00 AM, select the 6 and the 7. Deselect the 6. Select the 6. Deselect the 7 Select the 7. Deselect both. Select the 7 then the 6.

    You'll slowly get all the error messages for all the intermediate states, f No tracking data available for routes: 6 No tracking data available for routes: 7 No tracking data available for routes: 6, 7 No tracking data available for routes: 7 No tracking data available for routes: 6, 7 No tracking data available for routes: 6, No tracking data available for routes: 6, 7 No tracking data available for routes: 7 No tracking data available for routes: 6, 7

    The delay is such that there's no correlation between what's currently selected and what error message displays, which can be very confusing.

    bug - Beta 
    opened by mikeantonacci 1
Releases(9.0.0)
  • 9.0.0(Nov 2, 2021)

    What's Changed

    • Route lines and predictions now appear (#339). Please thank @mikeantonacci

    Code-Related changes

    • Now using V3 of the TrueTime API: #340

    Details

    As of 9.0.0, we will no longer have issues with the routes and predictions not working. The issue in detail was explained in #339. There may still may be outages due to server instability; however, now that we are on v3 of TrueTime, we can start incorporating the T into the app.

    Full Changelog: https://github.com/rectangle-dbmi/Realtime-Port-Authority/compare/8.0.2-beta...9.0.0

    Source code(tar.gz)
    Source code(zip)
  • 9.0.0-rc2(Nov 2, 2021)

    See https://github.com/rectangle-dbmi/Realtime-Port-Authority/releases/tag/9.0.0-rc1

    Fixes a bug in rc1 where routes do not reload if a null route was cached. Now it works as expected.

    Source code(tar.gz)
    Source code(zip)
  • 9.0.0-rc1(Oct 31, 2021)

    Obtaining the Beta

    Google Play Store Beta Opt-In

    Then download the app normally through the Google Play Store Page

    Please give feedback on known changes and holler at undocumented issues!

    What's Changed

    • Bustime V3 Hardcoded by @mikeantonacci in https://github.com/rectangle-dbmi/Realtime-Port-Authority/pull/340; this fixes #339.

    New Contributors

    • @Tobaloidee made their first contribution in https://github.com/rectangle-dbmi/Realtime-Port-Authority/pull/326
    • @FerrariBruno made their first contribution in https://github.com/rectangle-dbmi/Realtime-Port-Authority/pull/327
    • @chenblair made their first contribution in https://github.com/rectangle-dbmi/Realtime-Port-Authority/pull/329

    Full Changelog: https://github.com/rectangle-dbmi/Realtime-Port-Authority/compare/8.0.2-beta...9.0.0-rc1

    Source code(tar.gz)
    Source code(zip)
  • 8.0.2-beta(Sep 19, 2017)

    Obtaining the Beta

    Google Play Store Beta Opt-In

    Then download the app normally through the Google Play Store Page

    Please give feedback on known changes and holler at undocumented issues!

    Description

    This is a patch release to fix a long-standing issue with a select set of Samsung devices, where the app would just zoom in on Africa on them. This is now officially fixed

    Changes

    • #321: Remove all Google Places API from being instantiated with the GoogleClientApi. We never used this so we really don't need this.
    Source code(tar.gz)
    Source code(zip)
  • 7.0.7(Sep 19, 2017)

    Obtaining the Release

    Google Play Store Page

    Description

    This is a patch release to fix a long-standing issue with a select set of Samsung devices, where the app would just zoom in on Africa on them. This is now officially fixed

    Changes

    • #321: Remove all Google Places API from being instantiated with the GoogleClientApi. We never used this so we really don't need this.
    Source code(tar.gz)
    Source code(zip)
  • 8.0.1-beta(May 24, 2017)

  • 8.0.0b3(May 24, 2017)

    Obtaining the Beta

    Google Play Store Beta Opt-In

    Then download the app normally through the Google Play Store Page

    Please give feedback on known changes and holler at undocumented issues!

    Description

    This is a beta release to fix issues from 8.0.0b2.

    It exposes a new feature, which I call "static route caching". By default, all routes lines and stops are prepackaged into the app, so now all route lines will show regardless if internet is on or off.

    In addition, there is a temporary "fix" for the buses not showing up, this is explained via #317.

    For more info on the roadmap to the next stable release, here is the 8.0.0 milestone: https://github.com/rectangle-dbmi/Realtime-Port-Authority/issues?q=is%3Aissue+milestone%3A%228.0.0+Release+Milestone%22+is%3Aopen

    Known beta issues

    • bus list caching is still finicky. I'll make sure to redownload a new route if possible, else fall back to the route in the cache

    Changes

    Bug fixes:

    • #138

    App Changes/New Features

    • #301
    • #317 (TEMPORARY)
    • #316
    • #302
    • #301
    Source code(tar.gz)
    Source code(zip)
  • 7.0.6(May 24, 2017)

    Obtaining the Release

    Google Play Store Page

    Description

    This is a patch release for updates to the bus list from version 7.0.5.

    Changes

    • remove startup dialog about why the buses may be down -> as of May 24, 2017, 6:40 PM, they're back up
    • Added a 'No Buses?' entry to the 3-dot menu.
    Source code(tar.gz)
    Source code(zip)
  • 7.0.5(May 24, 2017)

    There is a dialog that will pop up any time the app opens (#317). The reason is because Port Authority servers have been down consistently for the past 4 weeks. This is a temporary solution to the problems since I have no control over:

    1. When the server comes back up
    2. If the server is truly up or down

    Details are here: https://github.com/rectangle-dbmi/Realtime-Port-Authority/wiki/Port-Authority-Server-Downtimes

    Otherwise, there are no other code changes to this release.

    Source code(tar.gz)
    Source code(zip)
  • 8.0.0b2(Oct 15, 2016)

    Obtaining the Beta

    Google Play Store Beta Opt-In

    Then download the app normally through the Google Play Store Page

    Please give feedback on known changes and holler at undocumented issues!

    Description

    This is a beta release to fix issues from 8.0.0b1.

    For more info on the roadmap to the next stable release, here is the 8.0.0 milestone: https://github.com/rectangle-dbmi/Realtime-Port-Authority/issues?q=is%3Aissue+milestone%3A%228.0.0+Release+Milestone%22+is%3Aopen

    Enhancments for the next beta:

    • #276
    • #267
    • #138

    Take note: @mikeantonacci and I have decided drop #233 and #283 from this release due to time constraints and further rethinking of the app architecture. This may be going into the next stable release.

    Known beta issues

    • bus list stops displaying routes when no route appears for a certain route. This will be fixed for beta 3

    Changes

    Bug fixes:

    • Clearing transit no longer lags
    • Pittsburgh should always be the center point of the map. Previously, the app will zoom on Africa (latitude, longitude (0, 0)) on certain edge cases

    Code Changes

    • fix problems with extraneous calls to remove map elements redundantly
    • Update all @JakeWharton dependencies (you handsome man...)

    UI Differences (tweaking)

    • route lines (polylines) now thinner
    • stops no longer translucent
    Source code(tar.gz)
    Source code(zip)
  • 7.0.4(Oct 15, 2016)

  • 7.0.3(Aug 22, 2016)

    Obtaining the Release

    Google Play Store Page

    Description

    This is a patch release for a bug in version 7.0.2.

    Changes

    Bug Fixes

    • App now correctly notifies you if Port Authority's servers are down or if your phone data has issues

    Description

    The app incorrectly notified the user that their internet is down, when in fact, the phone is fine when Port Authority's site is down. Now, the phone will correctly distinguish these two cases.

    This bug happened because we would check the internet down state on IOException. When Port Authority's servers are down, Retrofit (the library we use to poll internet requests from Port Authority) will throw a SocketTimeoutException if the servers refuse to send a response. We didn't realize that this extended IOException, so the app mistakenly would think that the phone's connection is down.

    To fix this, I made sure to add logic where I check to make sure that the error thrown by Retrofit is an IOException but not a SocketTimeoutException.

    Source code(tar.gz)
    Source code(zip)
  • 7.0.2(Jun 5, 2016)

    Obtaining the Release

    Google Play Store Page

    Description

    This is a patch release for a bug in version 7.0.1 where the app crashes when a user clicks on the bus list before the Google Map is instantiated.

    Changes

    Bug Fixes

    • App crashed when a user clicks on the bus list before the Google Map is instantiated.
      • This happens when trying to check polyline states when the object for the list of polylines is not yet instantated
      • Now, the app does nothing in this case.
    Source code(tar.gz)
    Source code(zip)
  • 7.0.1(Jun 4, 2016)

    Obtaining the Release

    Google Play Store Page

    Description

    This release fixes lots of outstanding bugs, particularly with internet connection, and adds new information for users trying to travel to their destinations. All relevant code changes are in Pull Request #279

    New Features

    • Detour Information now in 3 Dot Menu
    • Application Information to see App Settings in the Android Settings App now in 3 Dot Menu
    • Map now zooms in on you when location permissions are accepted and location tracking is on.

    Bug Fixes

    • Camera state completely fixed -- #223
      • no longer zooms to Africa randomly
      • App now keeps camera state when reopening app
    • No more leaks with vehicle update interval
    • Bus vehicles now will reupdate when reconnected to internet. Previously, they would just freeze when internet was reconnected.
    • Bus vehicles now update when navigation drawer is out. Previously, buses would stop updating when the bus list was open and would only run when bus list was off.
    • App now reacts to Location Permissions correctly. Previously, the app would randomly crash when changing permissions

    Code Enhancements

    See #279 for all code changes between the previous release versions.

    • Map is now in its own Fragment
    • Bus clicks are fully reactive
    • Now using ReactiveNetwork to reactively see new app updates

    Added Android Permissions

    • WIFI State permissions -- App needs to know wifi state if internet disconnected
      • android.permission.ACCESS_WIFI_STATE
      • android.permission.CHANGE_WIFI_STATE
    • Network Permission -- App needs to know cell phone network state if internet is disconnected
      • android.permission.ACCESS_NETWORK_STATE
    • android.permission.ACCESS_COARSE_LOCATION -- App needs to know "inaccurate" location permission to center the map on you.

    Known Issues

    • #276 -- Polylines (route lines) do not show on the map when the app didn't precache route information and when reconnected. Ideally, when reconnected, the app will download polylines from Port Authority for all selected routes with no current polyline info.
    • There are bugs with route line coordinate parsing where if the polyline coordinates being read are somehow not actual numbers, the app will just crash. This will be fixed with #196.
    • Internet disconnection and reconnection messages will loop when connected to walled-garden wifi. The greatest example of this is connecting to Starbucks' wifi connection and not accepting their terms in the browser. This is actually expected; however, unfortunately, I cannot check for a walled-garden state easily. This will be fixed in a future version.
    Source code(tar.gz)
    Source code(zip)
  • 7.0b5(May 9, 2016)

    Obtaining the Beta

    Google Play Store Beta Opt-In

    Then download the app normally through the Google Play Store Page

    Changes

    Bug Fixes

    • Vehicles will now correctly reload when internet is disconnected then reconnected related to phone connectivity issues

    Enhancements

    • a prompt comes up when:
      • Internet is disconnected because of data issues
      • Internet is reconnected. App will prompt that the vehicle data is being retrieved again

    Miscellaneous

    • add permissions for:
      • internet connection state
      • wifi state

    Description

    Since the app's beginnings, it had a bug where disconnecting the phone's data connection from the internet then reconnecting the internet will leave the app stagnant where vehicle data would never update unless the app is restarted or the screen is rotated. This update addresses this issue by handling this data and waiting for the vehicle updater to restart when internet is back.

    Keep in mind that the added permissions may deter users from using the app. We only use these permissions for the above case so far, and in the future, we will be using this for polylines, too. We can ensure that we are not going to use this for other purposes, and this is reflected in the code.

    Everything in 7.0b4 applies to this release as well as previous betas

    Technical details are here: #277

    Source code(tar.gz)
    Source code(zip)
  • 7.0b4(May 8, 2016)

    Obtaining the Beta

    Google Play Store Beta Opt-In

    Then download the app normally through the Google Play Store Page

    Changes

    Bug Fixes

    • Hamburger Menu (3 line graphic at the top left corner) now opens the list of buses

    Enhancements

    • add a detour information button in the drop-down (3 dot) menu
    • "App Details" in the drop-down menu renamed to "App Info"

    Description

    This is an attempt to fix an issue from 7.0b1 where the hamburger menu no longer responded to clicks. This should be fixed now.

    In addition, Port Authority stops tracking buses when off route, especially on detours. A "Detour Information" menu item was added to help mitigate issues regarding detours.

    Source code(tar.gz)
    Source code(zip)
  • 7.0b3(May 7, 2016)

    Obtaining the Beta

    Google Play Store Beta Opt-In

    Then download the app normally through the Google Play Store Page

    Changes

    • Show an error message when Port Authority Servers are unresponsive.

    Description

    Recently, Port Authority has experienced frequent outages causing the API to become unresponsive. When this happened, PAT Track would wait for a response indefinitely without displaying anything on the map. This update adds a timeout to detect this situation and show an error message indicating that the Port Authority server is unresponsive.

    This is pretty much an exact replica of the stable 6.4.2 release.

    Source code(tar.gz)
    Source code(zip)
  • 6.4.2(May 7, 2016)

    Obtaining the Release

    Google Play Store Page

    Changes

    • Show an error message when Port Authority Servers are unresponsive.

    Description

    Recently, Port Authority has experienced frequent outages causing the API to become unresponsive. When this happened, PAT Track would wait for a response indefinitely without displaying anything on the map. This update adds a timeout to detect this situation and show an error message indicating that the Port Authority server is unresponsive.

    Source code(tar.gz)
    Source code(zip)
  • 7.0b2(Mar 29, 2016)

    Obtaining a Beta Version

    Follow the instructions here

    Summary

    Nothing was changed from version 7.0b1 aside adding the two buses.

    Changes

    • Added
      • Bus 42 -- Dormont
      • Shuttle RED2 -- Beechview Shuttle

    Known Issues

    • Everything in 7.0b1
    • RED2 does not fit within its space in the bus list

    Expect this fix to come with the next beta release.

    Source code(tar.gz)
    Source code(zip)
  • 6.4.1(Mar 29, 2016)

    Obtaining the release:

    Please download through our Play Store

    Nothing was changed from version 6.4 aside from adding the two new buses

    Changes

    • Added
      • Bus 42 -- Dormont
      • Shuttle RED2 -- Beechview Shuttle

    Known Issues

    • everything from 6.4
    • RED2 does not currently fit in its box
    Source code(tar.gz)
    Source code(zip)
  • 7.0b1(Mar 23, 2016)

    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
    Source code(tar.gz)
    Source code(zip)
  • 6.4(Dec 8, 2015)

    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

    Source code(tar.gz)
    Source code(zip)
  • 6.4rc1(Dec 5, 2015)

    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
    Source code(tar.gz)
    Source code(zip)
  • 6.0(Nov 23, 2015)

    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 |

    Source code(tar.gz)
    Source code(zip)
  • 6.1b(Nov 23, 2015)

    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
    Source code(tar.gz)
    Source code(zip)
  • 5.1(Nov 14, 2015)

  • 5.01(Nov 11, 2015)

    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."
    Source code(tar.gz)
    Source code(zip)
  • 5.0(Nov 9, 2015)

    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.
    Source code(tar.gz)
    Source code(zip)
  • 1.000(Aug 28, 2014)

    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!

    Source code(tar.gz)
    Source code(zip)
    app-release.apk(2.22 MB)
  • 0.1-alpha(Aug 6, 2014)

Owner
Rectang[le]
Rectang[le]
Quick start with the Google Maps Android API

Please note: This repository is not currently maintained, and is kept for historical purpose only. You can find an up to date tutorial here: https://g

Google Archive 234 Nov 14, 2022
A productivity tracker app published on Google Play

producktivity-tracker A productivity tracker app published on Google Play. Includes Google AdMob and in-app-purchases to disable ads. This project was

null 1 Mar 9, 2022
Retracer is a high performance, and near realtime REST API which used for Java/Android stack trace retracing by R8

Retracer is a high performance, and near realtime REST API which used for Java/Android stack trace retracing by R8 Getting Started docker

Johnson Lee 3 Aug 21, 2022
An App based on MVVM architecture to track & store a user's runs using Google Maps, with options to view & sort the runs as per the user's choice along the with option to run the app in background.

An App based on MVVM architecture to track & store a user's runs using Google Maps, with options to view & sort the runs as per the user's choice along the with option to run the app in background.

Harshit Maheshwari 1 Jun 9, 2022
Note taking application using Kotlin and Firebase Realtime Database.

Notes-Firebase-Kotlin Note taking application using Kotlin and Firebase Realtime Database. Features:- 1.Signup With Google 2.Create Note 3.Update Note

Shivam Kumar 4 Nov 9, 2022
Realtime SOS Android Application. Location (GPS + Cellular Network) tracing application by alerting guardians of the User.

WomenSaftey Women Safety Android Application: Realtime SOS Android Application. Designed a Location (GPS + Cellular Network) tracing application by al

jatin kasera 6 Nov 19, 2022
This app to track realtime location

✨ hacktoberfest2021 ?? ?? Contributing to hacktoberfest 2021 Welcome to hacktoberfest 2021 Public Repository. ????‍?? A month-long celebration from Oc

aldhykohar 1 Nov 16, 2021
Simple access to Firebase Realtime Database.

FbRemoteDb Simple access to Firebase Realtime Database. Everything is inside a Bucket, there you can store your items. This is for simplifying the acc

null 1 Dec 28, 2021
The application uses Firebase Authentication and Realtime Database services

This is a Chik-Chika. Chick-Chicka is android app, which is based on popular social network - Twitter. The application uses Firebase Authentication and Realtime Database services.

Natro 9 Nov 6, 2022
Firebase Authentication and realtime database implementation in Android Kotlin

Androidfirebaseauthentication Firebase is Google’s mobile platform that helps you develop high-quality apps and provides hosted backend services such

Samwel Nyandoro 1 Mar 21, 2022
An android app built using Kotlin that consumes TMDB API to display current trending, upcoming and popular movies 🍿 .

Flick An android app built using Kotlin that consumes TMDB API to display current trending, upcoming and popular movies ?? .It has been built followin

Kagiri Charles 8 Nov 29, 2022
Loop Habit Tracker, a mobile app for creating and maintaining long-term positive habits

Loop is a mobile app that helps you create and maintain good habits, allowing you to achieve your long-term goals. Detailed graphs and statistics show you how your habits improved over time.

Alinson S. Xavier 5.8k Jan 7, 2023
Episodie is a TV show time tracker app with unusual design written in kotlin and clean architecture approach. Get to know how much time you spent watching tv shows.

Episodie Episodie is a TV show time tracker app with unusual design. Get to know how much time you spent watching tv shows. Track easily overall progr

Przemek 126 Dec 7, 2022
Open source Crypto Currency Tracker Android App made fully in Kotlin

CoinBit CoinBit is a beautiful CryptoCurrency app, completely open sourced and 100% in kotlin. It supports following features Track prices of over 300

Pranay Airan 50 Dec 5, 2022
DNS over HTTPS / DNS over Tor / DNSCrypt client, firewall, and connection tracker for Android.

RethinkDNS + Firewall for Android An OpenSnitch-inspired firewall and network monitor + a pi-hole-inspired DNS over HTTPS client with blocklists. In o

null 1.1k Jan 5, 2023
Water tracker app helps you with daily reminder to drink water. This app is just a trial to test and improve my android development skills.

?? About Me I am a self-thaught developer learning web and android development. This app is just a trial to test and improve my android development sk

Sinan Sonmez (Chaush) 28 Dec 17, 2022
A Simple Expense Tracker App 📱 built to demonstrate the use of modern android architecture component with MVVM Architecture

Expenso ?? A Simple Expense Tracker App ?? built to demonstrate the use of modern android architecture component with MVVM Architecture ?? . Made with

Michel Horacio 1 Dec 28, 2022
Time Tracker Application

Time Tracker Application This Application is to serve two purposes. Learning Android Development Tracking Time Technology Language and Libraries Kotli

null 0 Dec 10, 2021