public void onBeforeDeploy(@Observes BeforeDeploy event, AndroidDevice androidDevice) { if (event.getDeployableContainer().getConfigurationClass() != AndroidContainerConfiguration.class) { return; } AndroidDeviceRegister register = androidDeviceRegister.get(); if (register.contains(androidDevice)) { AndroidDeviceMetadata metadata = register.getMetadata(androidDevice); metadata.addDeploymentName(event.getDeployment().getName()); register.put(androidDevice, metadata); } else { throw new IllegalStateException("It seems you are trying to deploy deployment to device which is not ready yet. " + "This should never happen."); } AndroidApplicationManager androidApplicationManager = new AndroidApplicationManager(androidDevice, androidSDK.get()); this.androidApplicationManager.set(androidApplicationManager); }
public void onAndroidDeviceReady(@Observes AndroidDeviceReady event, Container container) { if (!androidDeviceRegister.get().contains(event.getDevice())) { AndroidDeviceMetadata metadata = new AndroidDeviceMetadata(); metadata.setContainerQualifier(container.getName()); androidDeviceRegister.get().put(event.getDevice(), metadata); } } }
public void shutdownEmulator(@Observes AndroidContainerStop event) throws AndroidExecutionException { AndroidDevice device = androidDevice.get(); AndroidContainerConfiguration configuration = this.configuration.get(); androidDeviceRegister.get().remove(device); if (device != null && device.isEmulator() && !device.getAlreadyRuns()) { logger.log(Level.INFO, "Stopping Android emulator of AVD name {0}.", configuration.getAvdName()); CountDownWatch countdown = new CountDownWatch(configuration.getEmulatorShutdownTimeoutInSeconds(), TimeUnit.SECONDS); logger.info("Waiting " + countdown.timeout() + " seconds for emulator " + device.getAvdName() + " to be disconnected and shutdown."); Spacelift.task(device, EmulatorShutdownTask.class).countdown(countdown).execute().await(); logger.info("Device " + device.getAvdName() + " on port " + device.getConsolePort() + " was disconnected in " + countdown.timeElapsed() + " seconds."); if (configuration.isAVDGenerated()) { androidVirtualDeviceDelete.fire(new AndroidVirtualDeviceDelete()); } androidEmulatorShuttedDown.fire(new AndroidEmulatorShuttedDown(device)); } }