@@ -25,10 +25,8 @@ export class AndroidController {
25
25
26
26
public static async getAllDevices ( verbose : boolean = false ) : Promise < Map < string , Array < IDevice > > > {
27
27
AndroidController . checkAndroid ( ) ;
28
+ // this should be always first.
28
29
const runningDevices = AndroidController . parseRunningDevicesList ( verbose ) ;
29
- if ( AndroidController . _emulatorIds . size === 0 ) {
30
- AndroidController . loadEmulatorsIds ( ) ;
31
- }
32
30
const devices : Map < string , Array < IDevice > > = new Map < string , Array < IDevice > > ( ) ;
33
31
await AndroidController . parseEmulators ( runningDevices , devices ) ;
34
32
await AndroidController . parseRealDevices ( runningDevices , devices ) ;
@@ -422,10 +420,6 @@ export class AndroidController {
422
420
emulator . apiLevel = apiLevel [ 0 ] ;
423
421
}
424
422
425
- if ( emulator && ! emulator . token && AndroidController . _emulatorIds . has ( emulator . apiLevel ) ) {
426
- emulator . token = AndroidController . _emulatorIds . get ( emulator . apiLevel )
427
- }
428
-
429
423
if ( emulator && emulator . name && emulator . apiLevel ) {
430
424
if ( ! emulators . has ( emulator . name ) ) {
431
425
emulators . set ( emulator . name , new Array < IDevice > ( ) ) ;
@@ -434,6 +428,7 @@ export class AndroidController {
434
428
}
435
429
} ) ;
436
430
431
+ const busyTokens = new Array ( ) ;
437
432
runningDevices . forEach ( async ( dev ) => {
438
433
if ( dev . type === DeviceType . EMULATOR ) {
439
434
try {
@@ -459,6 +454,7 @@ export class AndroidController {
459
454
if ( avdInfo . includes ( k ) ) {
460
455
v [ 0 ] . status = Status . BOOTED ;
461
456
v [ 0 ] . token = dev . token ;
457
+ busyTokens . push ( dev . token ) ;
462
458
}
463
459
} )
464
460
} catch ( error ) {
@@ -467,6 +463,20 @@ export class AndroidController {
467
463
}
468
464
} ) ;
469
465
466
+ if ( busyTokens . length === 0 ) {
467
+ busyTokens . push ( 5544 ) ;
468
+ }
469
+ emulators . forEach ( ( devices , key , map ) => {
470
+ devices . forEach ( device => {
471
+ if ( ! device . token ) {
472
+ const lastToken = Math . max ( ...busyTokens )
473
+ const token = lastToken % 2 === 0 ? lastToken + 2 : lastToken + 1 ;
474
+ device . token = token . toString ( ) ;
475
+ busyTokens . push ( token ) ;
476
+ }
477
+ } ) ;
478
+ } ) ;
479
+
470
480
if ( verbose ) {
471
481
console . log ( "Avds lAist: " , info ) ;
472
482
console . log ( "Parsed emulators: " , emulators ) ;
@@ -533,27 +543,27 @@ export class AndroidController {
533
543
return AndroidController . _emulatorIds . get ( platformVersion . toString ( ) ) ;
534
544
}
535
545
536
- private static loadEmulatorsIds ( ) {
537
- AndroidController . _emulatorIds . set ( "4.2" , "5554" ) ;
538
- AndroidController . _emulatorIds . set ( "4.3" , "5556" ) ;
539
- AndroidController . _emulatorIds . set ( "4.4" , "5558" ) ;
540
- AndroidController . _emulatorIds . set ( "5.0" , "5560" ) ;
541
- AndroidController . _emulatorIds . set ( "5.1" , "5562" ) ;
542
- AndroidController . _emulatorIds . set ( "6" , "5564" ) ;
543
- AndroidController . _emulatorIds . set ( "6." , "5564" ) ;
544
- AndroidController . _emulatorIds . set ( "6.0" , "5564" ) ;
545
- AndroidController . _emulatorIds . set ( "7" , "5566" ) ;
546
- AndroidController . _emulatorIds . set ( "7." , "5566" ) ;
547
- AndroidController . _emulatorIds . set ( "7.0" , "5566" ) ;
548
- AndroidController . _emulatorIds . set ( "7.1" , "5568" ) ;
549
- AndroidController . _emulatorIds . set ( "7.1.1" , "5570" ) ;
550
- AndroidController . _emulatorIds . set ( "8" , "5572" ) ;
551
- AndroidController . _emulatorIds . set ( "8." , "5572" ) ;
552
- AndroidController . _emulatorIds . set ( "8.0" , "5572" ) ;
553
- AndroidController . _emulatorIds . set ( "26" , "5572" ) ;
554
- AndroidController . _emulatorIds . set ( "27" , "5574" ) ;
555
- AndroidController . _emulatorIds . set ( "8.1" , "5574" ) ;
556
- }
546
+ // private static loadEmulatorsIds() {
547
+ // AndroidController._emulatorIds.set("4.2", "5554");
548
+ // AndroidController._emulatorIds.set("4.3", "5556");
549
+ // AndroidController._emulatorIds.set("4.4", "5558");
550
+ // AndroidController._emulatorIds.set("5.0", "5560");
551
+ // AndroidController._emulatorIds.set("5.1", "5562");
552
+ // AndroidController._emulatorIds.set("6", "5564");
553
+ // AndroidController._emulatorIds.set("6.", "5564");
554
+ // AndroidController._emulatorIds.set("6.0", "5564");
555
+ // AndroidController._emulatorIds.set("7", "5566");
556
+ // AndroidController._emulatorIds.set("7.", "5566");
557
+ // AndroidController._emulatorIds.set("7.0", "5566");
558
+ // AndroidController._emulatorIds.set("7.1", "5568");
559
+ // AndroidController._emulatorIds.set("7.1.1", "5570");
560
+ // AndroidController._emulatorIds.set("8", "5572");
561
+ // AndroidController._emulatorIds.set("8.", "5572");
562
+ // AndroidController._emulatorIds.set("8.0", "5572");
563
+ // AndroidController._emulatorIds.set("26", "5572");
564
+ // AndroidController._emulatorIds.set("27", "5574");
565
+ // AndroidController._emulatorIds.set("8.1", "5574");
566
+ // }
557
567
558
568
private static sendKeyCommand = ( token , key ) => {
559
569
return `${ AndroidController . ADB } -s ${ token } shell input keyevent ${ key } ` ;
0 commit comments