diff --git a/.github/workflows/gradle_build.yml b/.github/workflows/gradle_build.yml new file mode 100644 index 0000000..9523766 --- /dev/null +++ b/.github/workflows/gradle_build.yml @@ -0,0 +1,51 @@ +name: Build APK + +on: + push: + branches: [ master, dev, ci-cd ] + pull_request: + branches: [ master, dev ] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Configure SSH for private submodules + uses: webfactory/ssh-agent@v0.9.0 + with: + ssh-private-key: ${{ secrets.SSH_PRIVATE_KEY }} + + - name: Checkout code + uses: actions/checkout@v4 + with: + submodules: recursive + repository: Botts-Innovative-Research/osh-android + + - name: Setup Java + uses: actions/setup-java@v4 + with: + java-version: '17' + distribution: 'zulu' + + - name: Setup Android SDK + uses: android-actions/setup-android@v3 + with: + packages: '' + + - name: Build APK + run: | + chmod +x ./gradlew + ./gradlew build -x test -x osgi -x lintDebug -x javadoc + + - name: Upload APK artifact + uses: actions/upload-artifact@v4 + with: + name: osh-android-APK + path: sensorhub-android-app/build/outputs/apk/debug/sensorhub-android-app-debug.apk + + - name: Create GitHub Release + if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') + uses: softprops/action-gh-release@v2 + with: + files: app/build/outputs/apk/basic/release/*.apk + generate_release_notes: true \ No newline at end of file diff --git a/.gitmodules b/.gitmodules index 437f68a..189cbdf 100644 --- a/.gitmodules +++ b/.gitmodules @@ -6,6 +6,3 @@ path = submodules/osh-core url = git@github.com:kalynstricklin/osh-core.git branch = update-moduleutils -[submodule "submodules/botts-addons"] - path = submodules/botts-addons - url = git@github.com:Botts-Innovative-Research/botts-addons.git diff --git a/sensorhub-android-app/res/values-de/strings.xml b/sensorhub-android-app/res/values-de/strings.xml index 1b20577..a82915f 100644 --- a/sensorhub-android-app/res/values-de/strings.xml +++ b/sensorhub-android-app/res/values-de/strings.xml @@ -416,4 +416,25 @@ Port muss eine Zahl sein Port muss zwischen 1 und 65535 liegen + + Lizenzschlüssel erforderlich + Der Garmin Health SDK-Lizenzschlüssel ist nicht konfiguriert. Fügen Sie ihn in gradle.properties hinzu. + Garmin SDK-Fehler + Garmin Health SDK konnte nicht initialisiert werden: %s + Scan fehlgeschlagen + Garmin-Geräte-Scan fehlgeschlagen (Fehler %d) + Suche nach Garmin-Geräten… + Stellen Sie sicher, dass Ihr Garmin-Gerät in der Nähe und im Kopplungsmodus ist. + %d Garmin-Gerät(e) gefunden + Kopplungs-Zeitüberschreitung + Authentifizierung ist abgelaufen. Bitte versuchen Sie es erneut. + Kopplung… + Kopplung mit %s.\nBitte bestätigen Sie auf Ihrem Garmin-Gerät, wenn Sie dazu aufgefordert werden. + Erfolgreich gekoppelt + Gekoppelt mit %s + Kopplung fehlgeschlagen + Kopplung fehlgeschlagen: %s + Stopp + Weiter suchen… + IP-Adresse konnte nicht ermittelt werden diff --git a/sensorhub-android-app/res/values-es/strings.xml b/sensorhub-android-app/res/values-es/strings.xml index 22acc99..0b24dcf 100644 --- a/sensorhub-android-app/res/values-es/strings.xml +++ b/sensorhub-android-app/res/values-es/strings.xml @@ -184,4 +184,24 @@ El puerto debe estar entre 1 y 65535 + Clave de licencia requerida + La clave de licencia del SDK de Garmin Health no está configurada. Agréguela a gradle.properties. + Error del SDK de Garmin + Error al inicializar el SDK de Garmin Health: %s + Escaneo fallido + El escaneo del dispositivo Garmin falló (error %d) + Buscando dispositivos Garmin… + Asegúrese de que su dispositivo Garmin esté cerca y en modo de emparejamiento. + Se encontraron %d dispositivo(s) Garmin + Tiempo de emparejamiento agotado + La autenticación expiró. Por favor, intente de nuevo. + Emparejando… + Emparejando con %s.\nConfirme en su dispositivo Garmin si se le solicita. + Emparejado exitosamente + Emparejado con %s + Emparejamiento fallido + Error al emparejar: %s + Detener + Seguir buscando… + No se pudo obtener la dirección IP diff --git a/sensorhub-android-app/res/values-fr/strings.xml b/sensorhub-android-app/res/values-fr/strings.xml index 85716bf..bd2ec43 100644 --- a/sensorhub-android-app/res/values-fr/strings.xml +++ b/sensorhub-android-app/res/values-fr/strings.xml @@ -416,4 +416,25 @@ Le port doit être un nombre Le port doit être compris entre 1 et 65535 + + Clé de licence requise + La clé de licence du SDK Garmin Health n\'est pas configurée. Ajoutez-la dans gradle.properties. + Erreur du SDK Garmin + Échec de l\'initialisation du SDK Garmin Health : %s + Échec du scan + Le scan de l\'appareil Garmin a échoué (erreur %d) + Recherche d\'appareils Garmin… + Assurez-vous que votre appareil Garmin est à proximité et en mode d\'appairage. + %d appareil(s) Garmin trouvé(s) + Délai d\'appairage expiré + L\'authentification a expiré. Veuillez réessayer. + Appairage… + Appairage avec %s.\nVeuillez confirmer sur votre appareil Garmin si demandé. + Appairage réussi + Appairé avec %s + Échec de l\'appairage + Échec de l\'appairage : %s + Arrêter + Continuer la recherche… + Impossible d\'obtenir l\'adresse IP \ No newline at end of file diff --git a/sensorhub-android-app/res/values-it/strings.xml b/sensorhub-android-app/res/values-it/strings.xml index 52da53b..205bc21 100644 --- a/sensorhub-android-app/res/values-it/strings.xml +++ b/sensorhub-android-app/res/values-it/strings.xml @@ -416,4 +416,25 @@ La porta deve essere un numero La porta deve essere compresa tra 1 e 65535 + + Chiave di licenza richiesta + La chiave di licenza del SDK Garmin Health non è configurata. Aggiungila in gradle.properties. + Errore SDK Garmin + Inizializzazione SDK Garmin Health fallita: %s + Scansione fallita + Scansione dispositivo Garmin fallita (errore %d) + Ricerca dispositivi Garmin… + Assicurati che il dispositivo Garmin sia vicino e in modalità di associazione. + Trovati %d dispositivo/i Garmin + Timeout associazione + L\'autenticazione è scaduta. Riprova. + Associazione… + Associazione con %s.\nConferma sul dispositivo Garmin se richiesto. + Associazione riuscita + Associato con %s + Associazione fallita + Associazione fallita: %s + Ferma + Continua la ricerca… + Impossibile ottenere l\'indirizzo IP diff --git a/sensorhub-android-app/res/values-pt/strings.xml b/sensorhub-android-app/res/values-pt/strings.xml index 78e5adb..6deacaa 100644 --- a/sensorhub-android-app/res/values-pt/strings.xml +++ b/sensorhub-android-app/res/values-pt/strings.xml @@ -416,4 +416,25 @@ A porta deve ser um número A porta deve estar entre 1 e 65535 + + Chave de licença necessária + A chave de licença do SDK Garmin Health não está configurada. Adicione-a em gradle.properties. + Erro do SDK Garmin + Falha ao inicializar o SDK Garmin Health: %s + Falha na varredura + Varredura do dispositivo Garmin falhou (erro %d) + Procurando dispositivos Garmin… + Certifique-se de que o dispositivo Garmin está próximo e em modo de emparelhamento. + Encontrado(s) %d dispositivo(s) Garmin + Tempo de emparelhamento esgotado + A autenticação expirou. Por favor, tente novamente. + Emparelhando… + Emparelhando com %s.\nConfirme no seu dispositivo Garmin se solicitado. + Emparelhado com sucesso + Emparelhado com %s + Falha no emparelhamento + Falha ao emparelhar: %s + Parar + Continuar procurando… + Não foi possível obter o endereço IP diff --git a/sensorhub-android-app/res/values-zh-rTW/strings.xml b/sensorhub-android-app/res/values-zh-rTW/strings.xml index 2210e79..f1f8e12 100644 --- a/sensorhub-android-app/res/values-zh-rTW/strings.xml +++ b/sensorhub-android-app/res/values-zh-rTW/strings.xml @@ -40,7 +40,6 @@ 啟用 SOS 服務 啟用連線系統服務 啟用探索服務 - 執行名稱 啟用加速度計資料串流 啟用陀螺儀資料串流 @@ -62,7 +61,6 @@ 啟用 FLIR One 熱像儀資料串流(透過 USB 連接時) 啟用 STE RadPager 資料串流(感測器須在啟動時透過藍牙 LE 連接) 啟用範本驅動程式串流 - Stream biometric data from the Garmin Wearable Sensor @@ -250,4 +248,25 @@ 連接埠應為數字 連接埠應介於 1 到 65535 之間 + + 需要授權金鑰 + Garmin Health SDK 授權金鑰尚未配置。請將其新增至 gradle.properties。 + Garmin SDK 錯誤 + 無法初始化 Garmin Health SDK:%s + 掃描失敗 + Garmin 裝置掃描失敗(錯誤碼 %d) + 正在掃描 Garmin 裝置… + 請確認 Garmin 裝置在附近且處於配對模式。 + 找到 %d 個 Garmin 裝置 + 配對逾時 + 認證逾時,請重試。 + 配對中… + 正在與 %s 配對。\n如有提示,請在 Garmin 裝置上確認。 + 配對成功 + 已與 %s 配對 + 配對失敗 + 配對失敗:%s + 停止 + 繼續掃描… + 無法取得 IP 位址 diff --git a/sensorhub-android-app/res/values/strings.xml b/sensorhub-android-app/res/values/strings.xml index aebba8f..b757e81 100644 --- a/sensorhub-android-app/res/values/strings.xml +++ b/sensorhub-android-app/res/values/strings.xml @@ -423,4 +423,20 @@ Garmin Health SDK license key is not configured. Add it to gradle.properties. Garmin SDK Error Failed to initialize Garmin Health SDK: %s + Scan Failed + Garmin device scan failed (error %d) + Scanning for Garmin Devices… + Make sure your Garmin device is nearby and in pairing mode. + Found %d Garmin Device(s) + Pairing Timeout + Authentication timed out. Please try again. + Pairing… + Pairing with %s.\nPlease confirm on your Garmin device if prompted. + Paired Successfully + Paired with %s + Pairing Failed + Failed to pair: %s + Stop + Keep scanning… + Unable to get IP Address diff --git a/sensorhub-android-app/src/org/sensorhub/android/MainActivity.java b/sensorhub-android-app/src/org/sensorhub/android/MainActivity.java index b0b27f2..2d1fed8 100644 --- a/sensorhub-android-app/src/org/sensorhub/android/MainActivity.java +++ b/sensorhub-android-app/src/org/sensorhub/android/MainActivity.java @@ -39,11 +39,9 @@ import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.app.Fragment; -import android.content.pm.PackageManager; import android.location.LocationManager; import android.location.LocationProvider; -import com.botts.impl.sensor.garmin.GarminConfig; import com.botts.impl.service.discovery.DiscoveryService; import com.botts.impl.service.discovery.DiscoveryServiceConfig; import com.google.android.material.appbar.MaterialToolbar; @@ -137,23 +135,6 @@ public class MainActivity extends AppCompatActivity implements SensorHubServiceP private TextView toolbarTitle; private BroadcastReceiver broadcastReceiver; - enum Sensors { - Android, - TruPulse, - TruPulseSim, - Angel, - FlirOne, - DJIDrone, - ProxySensor, - BLELocation, - Meshtastic, - PolarHRMonitor, - Kestrel, - Wardriving, - Controller, - Template - } - private final ServiceConnection sConn = new ServiceConnection() { public void onServiceConnected(ComponentName className, IBinder service) @@ -475,19 +456,6 @@ public boolean verify(String arg0, SSLSession arg1) { sensorhubConfig.add(kestrelConfig); } - // Garmin sensor - if (prefs.getBoolean("garmin_enabled", false)) { - GarminConfig garminConfig = new GarminConfig(); - garminConfig.id = "GARMIN"; - garminConfig.name = "Garmin [" + deviceName + "]"; - garminConfig.autoStart = true; - garminConfig.lastUpdated = ANDROID_SENSORS_LAST_UPDATED; - garminConfig.deviceAddress = prefs.getString("garmin_device_address", ""); - garminConfig.sdkLicenseKey = BuildConfig.GARMIN_SDK_KEY; - - sensorhubConfig.add(garminConfig); - } - // Controller if (prefs.getBoolean("controller_enabled", false)) { ControllerConfig controllerConfig = new ControllerConfig(); diff --git a/sensorhub-android-lib/build.gradle b/sensorhub-android-lib/build.gradle index d53b422..64f9aa0 100644 --- a/sensorhub-android-lib/build.gradle +++ b/sensorhub-android-lib/build.gradle @@ -9,7 +9,7 @@ dependencies { api project(':sensorhub-driver-angelsensor') api project(':sensorhub-driver-android') api project(':sensorhub-driver-kestrel') - api project(':sensorhub-android-garmin') +// api project(':sensorhub-android-garmin') // api project(':sensorhub-driver-flirone') // api project(':sensorhub-client-consys-okhttp') // api project(':sensorhub-android-flirone') diff --git a/settings.gradle b/settings.gradle index d9ac7b4..23bd0d4 100644 --- a/settings.gradle +++ b/settings.gradle @@ -31,9 +31,7 @@ def repos = [ 'sensors/weather/sensorhub-driver-kestrel', 'sensors/health/sensorhub-driver-angelsensor', 'processing/sensorhub-process-vecmath', - 'processing/sensorhub-process-geoloc' - ], - 'botts-addons' : [ + 'processing/sensorhub-process-geoloc', 'services/sensorhub-service-discovery' ] ] diff --git a/submodules/botts-addons b/submodules/botts-addons deleted file mode 160000 index 7271af1..0000000 --- a/submodules/botts-addons +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 7271af1a739256a4170e5281f62efea0a57b41dc diff --git a/submodules/osh-addons b/submodules/osh-addons index 029d323..a7bc58a 160000 --- a/submodules/osh-addons +++ b/submodules/osh-addons @@ -1 +1 @@ -Subproject commit 029d3235e45bf3fe91b2ef619ab53fec7f7fc03e +Subproject commit a7bc58af4afce56385f117597e302ad37220f2ee diff --git a/submodules/osh-core b/submodules/osh-core index e2935bf..a413b4d 160000 --- a/submodules/osh-core +++ b/submodules/osh-core @@ -1 +1 @@ -Subproject commit e2935bf3554ffec84ed5fb929782b8a389b7e3c0 +Subproject commit a413b4d19c5ec00d6bdef84305d9dd9992bc1a15