diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index e0e24843..1bde001a 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -12,13 +12,13 @@ jobs: steps: - uses: actions/checkout@v2 with: - submodules: 'recursive' - - - name: Loading secrets - env: + submodules: "recursive" + + - name: Loading secrets + env: gservices: ${{ secrets.gservices }} mapboxtoken: ${{ secrets.mapboxtoken }} - run: | + run: | # not yet needed echo $gservices > ./app/google-services.json rm ./app/google-services.json cp ./app/google-services-example.json ./app/google-services.json @@ -31,13 +31,13 @@ jobs: mkdir -p ~/.gradle echo "MAPBOX_DOWNLOADS_TOKEN=$mapboxtoken" >>~/.gradle/gradle.properties - - name: Mock curfirmware version for CI - run: | - rm ./app/src/main/res/values/curfirmwareversion.xml - cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/ - - name: set up JDK 1.8 - uses: actions/setup-java@master - with: - java-version: 1.8 - - name: Unit tests - run: bash ./gradlew test --stacktrace + - name: Mock curfirmware version for CI + run: | + rm ./app/src/main/res/values/curfirmwareversion.xml + cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/ + - name: set up JDK 1.8 + uses: actions/setup-java@master + with: + java-version: 1.8 + - name: Unit tests + run: bash ./gradlew test --stacktrace diff --git a/README.md b/README.md index abbcbb20..eae2fd5a 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ # Meshtastic-Android -![Android CI](https://github.com/meshtastic/Meshtastic-Android/workflows/Android%20CI/badge.svg?branch=master) +[![Open in Visual Studio Code](https://open.vscode.dev/badges/open-in-vscode.svg)](https://open.vscode.dev/Meshtastic-Android) -This is a tool for using Android with open-source mesh radios. For more information see our webpage: [meshtastic.org](https://www.meshtastic.org). If you are looking for the the device side code, see [here](https://github.com/meshtastic/Meshtastic-esp32). +This is a tool for using Android with open-source mesh radios. For more information see our webpage: [meshtastic.org](https://www.meshtastic.org). If you are looking for the the device side code, see [here](https://github.com/meshtastic/Meshtastic-esp32). -This project is currently beta testing, if you have questions or feedback please [Join our discussion forum](https://meshtastic.discourse.group/). We would love to hear from you. +This project is currently beta testing, if you have questions or feedback please [Join our discussion forum](https://meshtastic.discourse.group/). We would love to hear from you. The production version of our application is here: @@ -13,63 +13,65 @@ The production version of our application is here: But if you want the beta-test app now, we'd love to have your help testing. Three steps to opt-in to the test: -1. Join [this Google group](https://groups.google.com/forum/#!forum/meshtastic-alpha-testers) with the account you use in Google Play. **Optional** - if you just want 'beta builds' +1. Join [this Google group](https://groups.google.com/forum/#!forum/meshtastic-alpha-testers) with the account you use in Google Play. **Optional** - if you just want 'beta builds' not bleeding edge alpha test builds skip to the next step. 2. Go to this [URL](https://play.google.com/apps/testing/com.geeksville.mesh) to opt-in to the alpha/beta test. 3. If you encounter any problems or have questions, [post in the forum](https://meshtastic.discourse.group/)t and we'll help. --> -We currently recommend using the Amazon [appstore](https://www.amazon.com/Geeksville-Industries-Meshtastic/dp/B08CY9394Q). If you don't already have their app on your phone you'll need to install it first. +We currently recommend using the Amazon [appstore](https://www.amazon.com/Geeksville-Industries-Meshtastic/dp/B08CY9394Q). If you don't already have their app on your phone you'll need to install it first. [![Amazon appstore link](images/amazon-fire-button.png)](https://www.amazon.com/Geeksville-Industries-Meshtastic/dp/B08CY9394Q) -However, if you must use 'raw' APKs you can get them from our [github releases](https://github.com/meshtastic/Meshtastic-Android/releases). This is not recommended because if you manually install an APK it will not automatically update. +However, if you must use 'raw' APKs you can get them from our [github releases](https://github.com/meshtastic/Meshtastic-Android/releases). This is not recommended because if you manually install an APK it will not automatically update. -**Important note about Google Play**: Our Google Play listing has been removed by google due to a recent policy change by them wrt background location accesss (which our app needs). We've [started](https://meshtastic.org/docs/software/android/location-access) +**Important note about Google Play**: Our Google Play listing has been removed by google due to a recent policy change by them wrt background location accesss (which our app needs). We've [started](https://meshtastic.org/docs/software/android/location-access) the 'appeal' process, but for now you'll need to get the app from other places. ## Build instructions -If you would like to develop this application we'd love your help! These build instructions are brief +If you would like to develop this application we'd love your help! These build instructions are brief and should be improved, please send a PR if you can. -* Use Android Studio 4.1.2 to build/debug (other versions might work but no promises) -* Use "git submodule update --init --recursive" to pull in the various submodules we depend on -* There are a few config files which you'll need to copy from templates included in the project. -Run the following commands to do so: +- Use Android Studio 4.1.2 to build/debug (other versions might work but no promises) +- Use "git submodule update --init --recursive" to pull in the various submodules we depend on +- There are a few config files which you'll need to copy from templates included in the project. + Run the following commands to do so: -``` - rm ./app/google-services.json - cp ./app/google-services-example.json ./app/google-services.json - rm ./app/src/main/res/values/mapbox-token.xml - cp ./app/special/mapbox-token.xml ./app/src/main/res/values/ - rm ./app/src/main/res/values/curfirmwareversion.xml - cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/ +```bash +rm ./app/google-services.json +cp ./app/google-services-example.json ./app/google-services.json +rm ./app/src/main/res/values/mapbox-token.xml +cp ./app/special/mapbox-token.xml ./app/src/main/res/values/ +rm ./app/src/main/res/values/curfirmwareversion.xml +cp ./app/special/curfirmwareversion.xml ./app/src/main/res/values/ ``` -* (unfortunately) you need to get a (free) mapbox developer token [here](https://docs.mapbox.com/android/maps/guides/install/) and put that token in your user gradle.properties. -``` -~/development/meshtastic/MeshUtil$ cat ~/.gradle/gradle.properties +- (unfortunately) you need to get a (free) mapbox developer token [here](https://docs.mapbox.com/android/maps/guides/install/) and put that token in your user gradle.properties. + +```bash +cat ~/.gradle/gradle.properties MAPBOX_DOWNLOADS_TOKEN=sk.yourtokenherexxx ``` -* Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone -or the emulator. Note: The emulators don't support bluetooth, so some features can not be used in -that environment. +- Now you should be able to select "Run / Run" in the IDE and it will happily start running on your phone + or the emulator. Note: The emulators don't support bluetooth, so some features can not be used in + that environment. ## Analytics setup -* analytics are included but can be disabled by the user on the settings screen +- analytics are included but can be disabled by the user on the settings screen -* on dev devices +- on dev devices -```shell +```bash adb shell setprop debug.firebase.analytics.app com.geeksville.mesh adb shell setprop log.tag.FirebaseCrashlytics DEBUG ``` for verbose logging: -```shell + +```bash adb shell setprop log.tag.FA VERBOSE ``` @@ -81,19 +83,17 @@ adb shell setprop log.tag.FA VERBOSE This project is the work of volunteers: -* @artemisoftnian: Contributed Spanish translations. -* @CycloMies: Contributed Swedish, Finnish and German translations. -* @eriktheV-king: Contributed Dutch and French translations. -* @Lgoix: Contributed tooltip for radio mode -* @Eugene: Contributed Russian translation. -* @Jinx17: Contributed Slovenian translation. -* @Konradrundfunk: Contributed German fixes. -* @Mango-sauce: Contributed Chinese translation. -* @NEKLAN: Contributed Japanese translation. -* @Ohcdh: Contributed Irish and Italian translations. -* @Slavino: Contributed Slovak translation. -* @Zone: Contributed Turkish translation. +- @artemisoftnian: Contributed Spanish translations. +- @CycloMies: Contributed Swedish, Finnish and German translations. +- @eriktheV-king: Contributed Dutch and French translations. +- @Lgoix: Contributed tooltip for radio mode +- @Eugene: Contributed Russian translation. +- @Jinx17: Contributed Slovenian translation. +- @Konradrundfunk: Contributed German fixes. +- @Mango-sauce: Contributed Chinese translation. +- @NEKLAN: Contributed Japanese translation. +- @Ohcdh: Contributed Irish and Italian translations. +- @Slavino: Contributed Slovak translation. +- @Zone: Contributed Turkish translation. Copyright 2019, Geeksville Industries, LLC. GPL V3 license - -