@@ -44,6 +44,11 @@ export class EditComponent implements OnInit {
4444 public lastCoinbaseVerifyMode : number = 1 ;
4545 public lastFallbackCoinbaseVerifyMode : number = 1 ;
4646
47+ // WiFi scan
48+ public apActive = false ;
49+ public wifiScanning = false ;
50+ public wifiScanResults : { ssid : string ; rssi : number ; authmode : number } [ ] = [ ] ;
51+
4752 toggleCoinbaseVerify ( enabled : boolean , controlName : string , lastRef : 'lastCoinbaseVerifyMode' | 'lastFallbackCoinbaseVerifyMode' ) {
4853 const ctrl = this . form . controls [ controlName ] ;
4954 if ( enabled ) {
@@ -105,6 +110,7 @@ export class EditComponent implements OnInit {
105110 this . originalSettings [ "poolMode" ] = info . poolMode ?? 0 ;
106111
107112 this . otpEnabled = ! ! info . otp ;
113+ this . apActive = ! ! info . apActive ;
108114 this . hasCanExtension = ! ! info . can . hasExtension ;
109115
110116 this . asicModel = info . asicModel ;
@@ -666,4 +672,45 @@ export class EditComponent implements OnInit {
666672 }
667673 }
668674
675+ public scanWifi ( dialog : TemplateRef < any > ) : void {
676+ if ( this . wifiScanning ) return ;
677+ this . wifiScanning = true ;
678+ this . systemService . scanWifi ( ) . subscribe ( {
679+ next : ( response ) => {
680+ const byStrength : { [ ssid : string ] : { ssid : string ; rssi : number ; authmode : number } } = { } ;
681+ for ( const n of response . networks || [ ] ) {
682+ if ( ! n . ssid ) continue ;
683+ if ( ! byStrength [ n . ssid ] || n . rssi > byStrength [ n . ssid ] . rssi ) {
684+ byStrength [ n . ssid ] = n ;
685+ }
686+ }
687+ this . wifiScanResults = Object . values ( byStrength ) . sort ( ( a , b ) => b . rssi - a . rssi ) ;
688+ this . wifiScanning = false ;
689+ this . dialogRef = this . dialogService . open ( dialog , { closeOnBackdropClick : true } ) ;
690+ } ,
691+ error : ( ) => {
692+ this . wifiScanning = false ;
693+ this . toastrService . danger (
694+ this . translate . instant ( 'SETTINGS.WIFI_SCAN_FAILED' ) ,
695+ this . translate . instant ( 'COMMON.ERROR' )
696+ ) ;
697+ }
698+ } ) ;
699+ }
700+
701+ public selectWifiNetwork ( ssid : string ) : void {
702+ this . form . patchValue ( { ssid } ) ;
703+ this . form . markAsDirty ( ) ;
704+ if ( this . dialogRef ) {
705+ this . dialogRef . close ( ) ;
706+ }
707+ }
708+
709+ public wifiSignalStrength ( rssi : number ) : string {
710+ if ( rssi >= - 50 ) return 'excellent' ;
711+ if ( rssi >= - 60 ) return 'good' ;
712+ if ( rssi >= - 70 ) return 'fair' ;
713+ return 'weak' ;
714+ }
715+
669716}
0 commit comments