From cf0392ef1904440c824633fa2ca545ad57fd9b82 Mon Sep 17 00:00:00 2001 From: Brandon Martin-Anderson Date: Mon, 20 Jul 2026 22:37:08 -0700 Subject: [PATCH 1/2] Move gpx_files/ to tools/gpx/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The GPX files are mock-location fixtures for the Android emulator, not app resources — nothing in the build or the source tree reads them. They sit better next to the other developer tooling in tools/ (which already holds android-wait-for-emulator.sh), and it drops one more entry from a crowded repo root. Pure move; the README's links are intra-folder relative paths and still resolve. --- {gpx_files => tools/gpx}/README.md | 0 {gpx_files => tools/gpx}/atlanta.gpx | 0 {gpx_files => tools/gpx}/capitolhill.gpx | 0 {gpx_files => tools/gpx}/invalid.gpx | 0 {gpx_files => tools/gpx}/rvtd.gpx | 0 {gpx_files => tools/gpx}/sandiego.gpx | 0 {gpx_files => tools/gpx}/tampa.gpx | 0 {gpx_files => tools/gpx}/washingtondc.gpx | 0 {gpx_files => tools/gpx}/yorkca.gpx | 0 9 files changed, 0 insertions(+), 0 deletions(-) rename {gpx_files => tools/gpx}/README.md (100%) rename {gpx_files => tools/gpx}/atlanta.gpx (100%) rename {gpx_files => tools/gpx}/capitolhill.gpx (100%) rename {gpx_files => tools/gpx}/invalid.gpx (100%) rename {gpx_files => tools/gpx}/rvtd.gpx (100%) rename {gpx_files => tools/gpx}/sandiego.gpx (100%) rename {gpx_files => tools/gpx}/tampa.gpx (100%) rename {gpx_files => tools/gpx}/washingtondc.gpx (100%) rename {gpx_files => tools/gpx}/yorkca.gpx (100%) diff --git a/gpx_files/README.md b/tools/gpx/README.md similarity index 100% rename from gpx_files/README.md rename to tools/gpx/README.md diff --git a/gpx_files/atlanta.gpx b/tools/gpx/atlanta.gpx similarity index 100% rename from gpx_files/atlanta.gpx rename to tools/gpx/atlanta.gpx diff --git a/gpx_files/capitolhill.gpx b/tools/gpx/capitolhill.gpx similarity index 100% rename from gpx_files/capitolhill.gpx rename to tools/gpx/capitolhill.gpx diff --git a/gpx_files/invalid.gpx b/tools/gpx/invalid.gpx similarity index 100% rename from gpx_files/invalid.gpx rename to tools/gpx/invalid.gpx diff --git a/gpx_files/rvtd.gpx b/tools/gpx/rvtd.gpx similarity index 100% rename from gpx_files/rvtd.gpx rename to tools/gpx/rvtd.gpx diff --git a/gpx_files/sandiego.gpx b/tools/gpx/sandiego.gpx similarity index 100% rename from gpx_files/sandiego.gpx rename to tools/gpx/sandiego.gpx diff --git a/gpx_files/tampa.gpx b/tools/gpx/tampa.gpx similarity index 100% rename from gpx_files/tampa.gpx rename to tools/gpx/tampa.gpx diff --git a/gpx_files/washingtondc.gpx b/tools/gpx/washingtondc.gpx similarity index 100% rename from gpx_files/washingtondc.gpx rename to tools/gpx/washingtondc.gpx diff --git a/gpx_files/yorkca.gpx b/tools/gpx/yorkca.gpx similarity index 100% rename from gpx_files/yorkca.gpx rename to tools/gpx/yorkca.gpx From 8192651c92f8f264a8d21f5a98a85ac1ad101bb7 Mon Sep 17 00:00:00 2001 From: Brandon Martin-Anderson Date: Mon, 20 Jul 2026 22:44:39 -0700 Subject: [PATCH 2/2] Move contributor docs to docs/ MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nine markdown files that README links into — BUILD, TROUBLESHOOTING, FAQ, REBRANDING, BETA_TESTING, ISSUE_REPORTING, CUSTOM_SERVERS, DESTINATION_REMINDERS, SYSTEM_ARCHITECTURE — move out of the repo root into docs/. README.md, LICENSE, CONTRIBUTORS.md and CLAUDE.md stay at root, where GitHub and tooling expect them. PRIVACY.md also stays: it's plausibly the privacy-policy URL registered in the Play Console, and moving it would break an external link that isn't verifiable from the repo. Link updates: - README/BUILD absolute github.com/blob/main/ URLs to moved files are now relative, so they can't silently 404 on a future move. - Links from inside docs/ to source-tree paths gained a ../ prefix. Also fixes two links that were already broken before this move: - FAQ.md pointed at PERMISSIONS.md, renamed to PRIVACY.md in 3967a6dad. - BETA_TESTING.md pointed at a root CONTRIBUTING.md, which lives in .github/. Verified every relative markdown link in the repo resolves. --- CLAUDE.md | 2 +- README.md | 14 +++++++------- BETA_TESTING.md => docs/BETA_TESTING.md | 2 +- BUILD.md => docs/BUILD.md | 4 ++-- CUSTOM_SERVERS.md => docs/CUSTOM_SERVERS.md | 2 +- .../DESTINATION_REMINDERS.md | 0 FAQ.md => docs/FAQ.md | 2 +- ISSUE_REPORTING.md => docs/ISSUE_REPORTING.md | 0 REBRANDING.md => docs/REBRANDING.md | 0 .../SYSTEM_ARCHITECTURE.md | 0 TROUBLESHOOTING.md => docs/TROUBLESHOOTING.md | 2 +- onebusaway-android/flavors/README.md | 2 +- .../android/nav/test/NavigationTest.java | 2 +- .../android/ui/compose/theme/ObaTheme.kt | 2 +- 14 files changed, 17 insertions(+), 17 deletions(-) rename BETA_TESTING.md => docs/BETA_TESTING.md (95%) rename BUILD.md => docs/BUILD.md (98%) rename CUSTOM_SERVERS.md => docs/CUSTOM_SERVERS.md (89%) rename DESTINATION_REMINDERS.md => docs/DESTINATION_REMINDERS.md (100%) rename FAQ.md => docs/FAQ.md (98%) rename ISSUE_REPORTING.md => docs/ISSUE_REPORTING.md (100%) rename REBRANDING.md => docs/REBRANDING.md (100%) rename SYSTEM_ARCHITECTURE.md => docs/SYSTEM_ARCHITECTURE.md (100%) rename TROUBLESHOOTING.md => docs/TROUBLESHOOTING.md (92%) diff --git a/CLAUDE.md b/CLAUDE.md index a8e68c286f..b872e9d850 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -292,7 +292,7 @@ The app supports multiple OBA server deployments. Region configuration: ## White-Label / Branding -The app supports white-labeling via Gradle product flavors. See `REBRANDING.md` for full documentation. +The app supports white-labeling via Gradle product flavors. See `docs/REBRANDING.md` for full documentation. ### Branded String Pattern Strings containing the app name use `%1$s` placeholders that are replaced at runtime: diff --git a/README.md b/README.md index 4cf3ecf2fa..9c6d5a43ba 100644 --- a/README.md +++ b/README.md @@ -17,17 +17,17 @@ OneBusAway for Android provides: 5. The ability to search for nearby stops or routes 6. Real-time multimodal trip planning, using real-time transit and bike share information (requires a regional [OpenTripPlanner](https://www.opentripplanner.org/) server) 7. Bike share map layer, which includes real-time availability information for floating bikes and bike rack capacity (requires a regional [OpenTripPlanner](https://www.opentripplanner.org/) server) -8. Issue reporting to any Open311-compliant issue management system (see [this page](ISSUE_REPORTING.md) for details) +8. Issue reporting to any Open311-compliant issue management system (see [this page](docs/ISSUE_REPORTING.md) for details) OneBusAway for Android automatically keeps track of your most used stops and routes, and allows you to put shortcuts on your phone's home screen for any stop or route you choose. ## Alpha and Beta Testing -Get early access to new OneBusAway Android versions, and help us squash bugs! See our [Testing Guide](https://github.com/OneBusAway/onebusaway-android/blob/main/BETA_TESTING.md) for details. +Get early access to new OneBusAway Android versions, and help us squash bugs! See our [Testing Guide](docs/BETA_TESTING.md) for details. ## Build Setup -Want to build the project yourself and test some changes? See our [build documentation](BUILD.md). +Want to build the project yourself and test some changes? See our [build documentation](docs/BUILD.md). ## Contributing @@ -35,18 +35,18 @@ We welcome contributions to the project! Please see our [Contributing Guide](htt ## System Architecture -Curious what servers power certain features in OneBusAway Android? Check out the [System Architecture page](SYSTEM_ARCHITECTURE.md). +Curious what servers power certain features in OneBusAway Android? Check out the [System Architecture page](docs/SYSTEM_ARCHITECTURE.md). ## Deploying OneBusAway Android in Your City There are two ways to deploy OneBusAway Android in your city: 1. **Join the OneBusAway [multi-region project](https://github.com/OneBusAway/onebusaway/wiki/Multi-Region)** - The easiest way to get started - simply set up your own OneBusAway server with your own transit data, and get added to the OneBusAway apps! See [this page](https://github.com/OneBusAway/onebusaway/wiki/Multi-Region) for details. -2. **Deploy a rebranded version of OneBusAway Android as your own app on Google Play** - Requires a bit more maintenance, but it allows you to set up your own app on Google Play based on the OneBusAway Android source code. See [rebranding page](https://github.com/OneBusAway/onebusaway-android/blob/main/REBRANDING.md) for details. +2. **Deploy a rebranded version of OneBusAway Android as your own app on Google Play** - Requires a bit more maintenance, but it allows you to set up your own app on Google Play based on the OneBusAway Android source code. See [rebranding page](docs/REBRANDING.md) for details. ## Testing Your Own OneBusAway/OpenTripPlanner servers -Did you just set up your own [OneBusAway](https://github.com/OneBusAway/onebusaway-application-modules/wiki) and/or [OpenTripPlanner](https://www.opentripplanner.org/) server? You can test both in this app without compiling any Android code. Just download the app from [Google Play](https://play.google.com/store/apps/details?id=com.joulespersecond.seattlebusbot), and see our [Custom Server Setup Guide](CUSTOM_SERVERS.md) for details. +Did you just set up your own [OneBusAway](https://github.com/OneBusAway/onebusaway-application-modules/wiki) and/or [OpenTripPlanner](https://www.opentripplanner.org/) server? You can test both in this app without compiling any Android code. Just download the app from [Google Play](https://play.google.com/store/apps/details?id=com.joulespersecond.seattlebusbot), and see our [Custom Server Setup Guide](docs/CUSTOM_SERVERS.md) for details. ## Permissions @@ -54,7 +54,7 @@ In order to support certain features in OneBusAway, we need to request various p ## Troubleshooting -Things not going well building the project? See our [Troubleshooting](TROUBLESHOOTING.md) section. If you're a user of the app, check out our [FAQ](FAQ.md). +Things not going well building the project? See our [Troubleshooting](docs/TROUBLESHOOTING.md) section. If you're a user of the app, check out our [FAQ](docs/FAQ.md). ## OneBusAway Project diff --git a/BETA_TESTING.md b/docs/BETA_TESTING.md similarity index 95% rename from BETA_TESTING.md rename to docs/BETA_TESTING.md index ac036418cc..92df3f08ea 100644 --- a/BETA_TESTING.md +++ b/docs/BETA_TESTING.md @@ -44,4 +44,4 @@ You can also reach us via: * Email - android-app (at) onebusaway.org * Posting a messsage to the [OneBusAway Google+ Community](https://plus.google.com/u/0/communities/105092615216731099521) * Posting a messsage on the [onebusaway-developers Google Group](https://groups.google.com/forum/#!forum/onebusaway-developers) -* Filing a issue on the [OBA Android Github issue tracker](https://github.com/OneBusAway/onebusaway-android/blob/main/CONTRIBUTING.md#issue-tracker) \ No newline at end of file +* Filing a issue on the [OBA Android Github issue tracker](../.github/CONTRIBUTING.md#issue-tracker) \ No newline at end of file diff --git a/BUILD.md b/docs/BUILD.md similarity index 98% rename from BUILD.md rename to docs/BUILD.md index fad03e0a87..ec910da4fc 100644 --- a/BUILD.md +++ b/docs/BUILD.md @@ -16,7 +16,7 @@ This results in a total of 1 * 3 = 3 core build variants. Each of these core va The below instructions assume you're going to be building for the **google** platform flavor and original **oba** brand by default (e.g., `obaGoogleDebug`). -If you want more info about building the other brands, please see the [Rebranding OneBusAway Android page](https://github.com/OneBusAway/onebusaway-android/blob/main/REBRANDING.md). +If you want more info about building the other brands, please see the [Rebranding OneBusAway Android page](REBRANDING.md). ### Prerequisites for both Android Studio and Gradle @@ -27,7 +27,7 @@ If you want more info about building the other brands, please see the [Rebrandin 1. Download, install, and run the latest version of [Android Studio](http://developer.android.com/sdk/installing/studio.html). 1. At the welcome screen select `Import Project`, browse to the location of this repository and select it then select Ok. -1. Open the Android SDK Manager (Tools->Android->SDK Manager) and add a checkmark for the necessary API level (see `compileSdk` in [`onebusaway-android/build.gradle.kts`](onebusaway-android/build.gradle.kts)) then select OK. +1. Open the Android SDK Manager (Tools->Android->SDK Manager) and add a checkmark for the necessary API level (see `compileSdk` in [`onebusaway-android/build.gradle.kts`](../onebusaway-android/build.gradle.kts)) then select OK. 1. Connect a [debugging enabled](https://developer.android.com/tools/device.html) Android device to your computer or setup an Android Virtual Device (Tools->Andorid->AVD Manager). 1. Open the "Build Variants" window (it appears as a vertical button on left side of workspace by default) & choose **obaGoogleDebug** to select the Google Play version. 1. Click the green play button (or Alt+Shift+F10) to build and run the project! diff --git a/CUSTOM_SERVERS.md b/docs/CUSTOM_SERVERS.md similarity index 89% rename from CUSTOM_SERVERS.md rename to docs/CUSTOM_SERVERS.md index 25d649160c..79d71c1194 100644 --- a/CUSTOM_SERVERS.md +++ b/docs/CUSTOM_SERVERS.md @@ -20,7 +20,7 @@ server. After entering the server name and path, hit the back button twice to e We strongly encourage you to configure your server to use SSL for secure communication via HTTPS - this is required for launching as a new region in the Regions API due to requirements in Android and iOS. -If you want to test a server without SSL enabled, you'll need to build your own version of this app with an edited [`onebusaway-android/src/main/res/xml/network_security_config.xml`](onebusaway-android/src/main/res/xml/network_security_config.xml) file to add an exception for your server. This is an Android restriction for plain text HTTP communication - see https://developer.android.com/training/articles/security-config for details. +If you want to test a server without SSL enabled, you'll need to build your own version of this app with an edited [`onebusaway-android/src/main/res/xml/network_security_config.xml`](../onebusaway-android/src/main/res/xml/network_security_config.xml) file to add an exception for your server. This is an Android restriction for plain text HTTP communication - see https://developer.android.com/training/articles/security-config for details. ### OneBusAway API Server diff --git a/DESTINATION_REMINDERS.md b/docs/DESTINATION_REMINDERS.md similarity index 100% rename from DESTINATION_REMINDERS.md rename to docs/DESTINATION_REMINDERS.md diff --git a/FAQ.md b/docs/FAQ.md similarity index 98% rename from FAQ.md rename to docs/FAQ.md index 596123fe6f..d278bafbff 100644 --- a/FAQ.md +++ b/docs/FAQ.md @@ -28,7 +28,7 @@ Please be sure to tap on the star next to the stop name, not the route name (see ### Why does OneBusAway Android need photo and other permissions? -See the [Permissions explained](PERMISSIONS.md) page. +See the [Permissions explained](../PRIVACY.md) page. ### I can see bus stops on the map, but the map itself is gray with no street names. What's going on? diff --git a/ISSUE_REPORTING.md b/docs/ISSUE_REPORTING.md similarity index 100% rename from ISSUE_REPORTING.md rename to docs/ISSUE_REPORTING.md diff --git a/REBRANDING.md b/docs/REBRANDING.md similarity index 100% rename from REBRANDING.md rename to docs/REBRANDING.md diff --git a/SYSTEM_ARCHITECTURE.md b/docs/SYSTEM_ARCHITECTURE.md similarity index 100% rename from SYSTEM_ARCHITECTURE.md rename to docs/SYSTEM_ARCHITECTURE.md diff --git a/TROUBLESHOOTING.md b/docs/TROUBLESHOOTING.md similarity index 92% rename from TROUBLESHOOTING.md rename to docs/TROUBLESHOOTING.md index 68f437150c..040278c5da 100644 --- a/TROUBLESHOOTING.md +++ b/docs/TROUBLESHOOTING.md @@ -17,7 +17,7 @@ Open the Android SDK Manager and make sure the following are installed: * Android SDK Tools * Android SDK Platform-tools * Android SDK Build-tools -* Under the currently used SDK version (see `compileSdkVersion` in [`onebusaway-android/build.gradle`](onebusaway-android/build.gradle)) +* Under the currently used SDK version (see `compileSdk` in [`onebusaway-android/build.gradle.kts`](../onebusaway-android/build.gradle.kts)) * SDK Platform * Google APIs * Extras diff --git a/onebusaway-android/flavors/README.md b/onebusaway-android/flavors/README.md index 80c012e951..a213b15bde 100644 --- a/onebusaway-android/flavors/README.md +++ b/onebusaway-android/flavors/README.md @@ -103,7 +103,7 @@ Use [Android Asset Studio](http://romannurik.github.io/AndroidAssetStudio/icons- ### Step 4: Add Firebase Configuration (Optional) -Add your app's Firebase client info to `google-services.json`. See `REBRANDING.md` for detailed instructions. +Add your app's Firebase client info to `google-services.json`. See `docs/REBRANDING.md` for detailed instructions. **Note on API key security:** Firebase API keys in `google-services.json` are safe to commit to version control. Unlike server-side API keys, these client-side keys are designed to be embedded in apps and are protected by: - Package name restrictions (the key only works for your specific app ID) diff --git a/onebusaway-android/src/androidTest/java/org/onebusaway/android/nav/test/NavigationTest.java b/onebusaway-android/src/androidTest/java/org/onebusaway/android/nav/test/NavigationTest.java index ff9d695435..55388f997c 100644 --- a/onebusaway-android/src/androidTest/java/org/onebusaway/android/nav/test/NavigationTest.java +++ b/onebusaway-android/src/androidTest/java/org/onebusaway/android/nav/test/NavigationTest.java @@ -48,7 +48,7 @@ * Loads previously recorded trips (GPS data) and replays them through the NavigationServiceProvider * via the NavigationSimulation class. * - *

For creating new test methods - see the file DESTINATION_REMINDERS.md + *

For creating new test methods - see the file docs/DESTINATION_REMINDERS.md */ @RunWith(AndroidJUnit4.class) public class NavigationTest extends ObaTestCase { diff --git a/onebusaway-android/src/main/java/org/onebusaway/android/ui/compose/theme/ObaTheme.kt b/onebusaway-android/src/main/java/org/onebusaway/android/ui/compose/theme/ObaTheme.kt index 52c9678898..3c5269e845 100644 --- a/onebusaway-android/src/main/java/org/onebusaway/android/ui/compose/theme/ObaTheme.kt +++ b/onebusaway-android/src/main/java/org/onebusaway/android/ui/compose/theme/ObaTheme.kt @@ -29,7 +29,7 @@ import org.onebusaway.android.R * * Colors are read via [colorResource] instead of being duplicated as Kotlin constants so there is * a single source of truth: night mode switches automatically with the resource configuration, - * and white-label brand flavors that override colors.xml (see REBRANDING.md) are respected + * and white-label brand flavors that override colors.xml (see docs/REBRANDING.md) are respected * without any Compose-side changes. Slots not defined in colors.xml fall back to the Material 3 * baseline for the current light/dark mode. */