Skip to content

Add Transit Center View for user-created stop groups#1517

Open
diveshpatil9104 wants to merge 1 commit into
OneBusAway:mainfrom
diveshpatil9104:feature/transit-center-view-1221
Open

Add Transit Center View for user-created stop groups#1517
diveshpatil9104 wants to merge 1 commit into
OneBusAway:mainfrom
diveshpatil9104:feature/transit-center-view-1221

Conversation

@diveshpatil9104

Copy link
Copy Markdown
Contributor

Closes #1221

Problem

Users who transfer at transit hubs (e.g., Bellevue Transit Center) have to star individual stops and scroll through a flat list to compare arrival times. There is no way to group related stops together.

Solution

Adds a "Transit centers" feature that lets users create named groups of stops, accessible from the navigation drawer. Users can:

  • Create, rename, and delete transit center groups
  • Add starred stops to a group via a multi-choice picker
  • View all stops in a group with a single tap
  • Toggle between "all stops" and "starred only" within a group
  • Remove individual stops via long-press context menu

Tapping a stop opens the existing ArrivalsListActivity — no new arrivals UI needed.

Demo

center.mp4

Implementation

Database (v33 → v34):

  • transit_centers table — stores group name + region ID
  • transit_center_stops join table — maps groups to stop IDs
  • Cascading ++oldVersion migration so all upgrade paths work

UI:

  • TransitCentersFragment — CursorLoader + ContentObserver list of groups
  • TransitCenterDetailFragment — two-step query (get stop IDs, then query Stops with IN clause)
  • AddStopToTransitCenterDialog — multi-choice picker for starred stops
  • TransitCenterDetailActivity — hosts detail fragment, uses UIUtils.setupActionBar() + android.R.id.content pattern

Navigation:

  • New NAVDRAWER_ITEM_TRANSIT_CENTERS in drawer (between Starred Routes and My Reminders)
  • Show/hide fragment pattern in HomeActivity matching existing nav items

New files (7)

File Purpose
TransitCentersFragment.java List of transit center groups
TransitCenterDetailActivity.java Hosts detail fragment
TransitCenterDetailFragment.java Stops within a group
AddStopToTransitCenterDialog.java Starred stop picker
transit_center_list_item.xml Group list item layout
transit_centers_options.xml "Add" menu
transit_center_detail_options.xml "Add stops" + "Toggle starred" menu

Modified files (6)

File Change
ObaContract.java TransitCenters + TransitCenterStops classes
ObaProvider.java DB v34 migration, URI matching, CRUD
NavigationDrawerFragment.java New nav drawer item
HomeActivity.java Show/hide transit centers fragment
AndroidManifest.xml Register detail activity
strings.xml 14 new string resources (including plurals)

Test plan

  • Open nav drawer → "Transit centers" → empty state shows "No transit centers"
  • Tap add → enter name → group appears in list with "0 stops"
  • Tap group → "Add stops" → pick starred stops → stops appear in detail view
  • Toggle "Starred only" → filters correctly
  • Tap a stop → ArrivalsListActivity opens
  • Long-press stop → "Remove from transit center" → stop removed
  • Long-press group in list → rename works, delete works
  • Switch regions → groups from other regions not shown

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Transit Center View

1 participant