The Android App version of 5calls.org.
This project is released open source under the MIT License. See LICENSE for more details.
FiveCallsApi is used to request a list of issues from the server in MainActivity. When an issue is clicked, IssueActivity is launched for that issue, and FiveCallsApi is again used to record information back to the server. Location is set in LocationActivity and saved in SharedPreferences. A SQLite database (in DatabaseHelper) is used to store user stats, which are displayed in StatsActivity.
To run the app locally, you'll need to generate your own google-services.json
file from the Google website. It doesn't matter what services you enable because you won't be talking to the prod Google account, but you should include Analytics.
To test the app, set TESTING=true
in FiveCallsApi.java
. This makes sure that calls logged to the server are marked as test calls.
For instrumentation testing, connect a device or start an emulator, then:
cd 5calls
./gradlew connectedAndroidTest
To test snoozing notifications, change FREQUENT_NOTIFICATION_DEBUG_MODE
to true
in NotificationUtils.java
. Note that notifications
do not use exact alarms, so they may arrive a few minutes later than scheduled.
Steps to create a release:
- Ensure all strings are in strings.xml and translations are in strings-es.xml.
- Run the automated tests
- Manual testing (Note issue #130 to add more automated testing)
- Testing anything that's been touched since the last release
- If the release includes any settings or database changes:
- Do your settings and database info persist across an upgrade? (Check out the previous release branch & flash, then the lastest and flash)
- Do all pages lay out as expected in portrait and landscape? Does rotation cause crashes in any activity?
- If the release includes any UI changes:
- Accessibility testing of new UI, including:
- Use the Accessibility Scanner tool to check for contrast, touch target size, etc
- Enable TalkBack and ensure all parts of the UI can be accessed using swiping to navigate and double-tap to click.
- Accessibility testing of new UI, including:
- If the release includes any API changes:
- Do filter and search functionality still work?
- Does the app behave OK as airplane mode is toggled?
- Rev the version number and code in the app
build.gradle
. - Push to the release branch
- Build a bundle in Android Studio and upload to Play store
Issues marked "up for grabs" are available for contributors. Please add a comment to the issue when you start working on it to avoid conflicts. Feel free to add new issues to the list too -- even better if new issues have some justification or background information.
The app is published on Google Play and has a Beta channnel for testing. If you are interested in getting Beta releases and helping with user testing, reach out to @dektar to be added!
The app is also available on the Amazon App Store.
Thanks to Nick O'Neill for organizing the 5calls project.