@@ -204,7 +204,7 @@ private void setupSosService() {
204204 sosSensor .addMeasurement (sosMeasurementRisk );
205205 if (!Config .isSosBroadcastEnabled (this ))
206206 assumeDefaultsForSosSensorIfNeeded ();
207- sosService = new SosService (this , sosSensor ,Config .isSosBroadcastEnabled (this )?prefs .getString (Config .PREFS_SOS_URL ,null ):null , prefs .getBoolean (Config .PREFS_BROADCAST ,true ) || prefs .getBoolean (Config .PREFS_SEND_TO_SOS ,true ), Config .isIpcBroadcastEnabled (this ));
207+ sosService = new SosService (this , sosSensor ,Config .isSosBroadcastEnabled (this )?prefs .getString (Config .PREFS_SOS_URL ,null ):null ,prefs . getString ( Config . PREFS_SOS_USERNAME , null ), prefs . getString ( Config . PREFS_SOS_PASSWORD , null ), prefs .getBoolean (Config .PREFS_BROADCAST ,true ) || prefs .getBoolean (Config .PREFS_SEND_TO_SOS ,true ), Config .isIpcBroadcastEnabled (this ));
208208 prefChangeListener = (prefs1 , key ) -> {
209209 if (sosService != null ) {
210210 boolean resetSosSensor = false ;
@@ -214,6 +214,12 @@ private void setupSosService() {
214214 } else if (Config .PREFS_SOS_URL .equalsIgnoreCase (key )) {
215215 sosService .setSosServerUrl (prefs1 .getString (key , null ));
216216 resetSosSensor = true ;
217+ } else if (Config .PREFS_SOS_USERNAME .equalsIgnoreCase (key )) {
218+ sosService .setSosServerUsername (prefs1 .getString (key , null ));
219+ resetSosSensor = true ;
220+ } else if (Config .PREFS_SOS_PASSWORD .equalsIgnoreCase (key )) {
221+ sosService .setSosServerPassword (prefs1 .getString (key , null ));
222+ resetSosSensor = true ;
217223 } else if (Config .PREFS_UUID .equalsIgnoreCase (key ))
218224 resetSosSensor = true ;
219225 else if (Config .PREFS_BROADCAST .equalsIgnoreCase (key ) && (sosService != null ))
@@ -603,21 +609,25 @@ public void onEWDataProcessed(final DataPoint dp) {
603609 listener .onEWDataProcessed (dp , indicators );
604610 if (geoPackageRecorder != null )
605611 geoPackageRecorder .onEWDataProcessed (dp ,indicators );
606- if ((sosSensor != null ) && sosSensor .isReadyToSendResults () && (System .currentTimeMillis () > nextSosReportTime ) && (dp .getSpaceTime () != null )) {
607- nextSosReportTime = System .currentTimeMillis () + SOS_REPORT_RATE ;
608- SpaceTime spaceTime = dp .getSpaceTime ();
609- sosMeasurementTime .setValue (spaceTime .getTime ());
610- sosMeasurementLocation .setLocation (spaceTime .getLatitude (),spaceTime .getLongitude (),spaceTime .getAltitude ());
611- sosMeasurementRisk .setValue (ewRisk *100f );
612- GNSSEWValues values = dp .getAverageMeasurements ();
613- if (values == null ) {
614- sosMeasurementCn0 .setValue (0d );
615- sosMeasurementAgc .setValue (0d );
616- } else {
617- sosMeasurementCn0 .setValue (values .getCn0 ());
618- sosMeasurementAgc .setValue (values .getAgc ());
612+ if ((sosSensor != null ) && sosSensor .isReadyToSendResults () && (System .currentTimeMillis () > nextSosReportTime )) {
613+ if ((sosMeasurementTime != null ) && (sosMeasurementLocation != null ) && (sosMeasurementRisk != null ) && (sosMeasurementCn0 != null ) && (sosMeasurementAgc != null )) {
614+ final SpaceTime spaceTime = dp .getSpaceTime ();
615+ if (spaceTime != null ) {
616+ nextSosReportTime = System .currentTimeMillis () + SOS_REPORT_RATE ;
617+ sosMeasurementTime .setValue (spaceTime .getTime ());
618+ sosMeasurementLocation .setLocation (spaceTime .getLatitude (), spaceTime .getLongitude (), spaceTime .getAltitude ());
619+ sosMeasurementRisk .setValue (ewRisk * 100f );
620+ GNSSEWValues values = dp .getAverageMeasurements ();
621+ if (values == null ) {
622+ sosMeasurementCn0 .setValue (0d );
623+ sosMeasurementAgc .setValue (0d );
624+ } else {
625+ sosMeasurementCn0 .setValue (values .getCn0 ());
626+ sosMeasurementAgc .setValue (values .getAgc ());
627+ }
628+ sosService .broadcastSensorReadings ();
629+ }
619630 }
620- sosService .broadcastSensorReadings ();
621631 }
622632 }
623633 }
0 commit comments