org.uiautomation.ios.server.DeviceStore Maven / Gradle / Ivy
The newest version!
/*
* Copyright 2012-2013 eBay Software Foundation and ios-driver committers
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
* or implied. See the License for the specific language governing permissions and limitations under
* the License.
*/
package org.uiautomation.ios.server;
import com.google.common.collect.ImmutableList;
import org.libimobiledevice.ios.driver.binding.DeviceDetectionCallback;
import org.libimobiledevice.ios.driver.binding.DeviceInfo;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.logging.Logger;
public class DeviceStore implements DeviceDetectionCallback {
private static final Logger log = Logger.getLogger(DeviceStore.class.getName());
private final List reals = new CopyOnWriteArrayList();
private final List sims = new CopyOnWriteArrayList();
@Override
public void onAdded(String uuid) {
DeviceInfo info = new DeviceInfo(uuid);
RealDevice d = new RealDevice(info);
log.info("new device detected (" + uuid + ")" + info.getDeviceName());
reals.add(d);
}
@Override
public void onRemoved(String uuid) {
for (RealDevice d : reals) {
if (d.getUuid().equals(uuid)) {
log.info("Removing " + uuid + " for the devices pool");
reals.remove(d);
}
}
log.warning("device " + uuid + " has been unplugged, but was never there ?");
}
/**
* @return immutable copy of the currently available devices.
*/
public List getDevices() {
List all = new ArrayList();
all.addAll(reals);
all.addAll(sims);
return ImmutableList.copyOf(all);
}
public List getRealDevices() {
return reals;
}
public List getSimulatorDevices() {
return sims;
}
public void add(SimulatorDevice simulatorDevice) {
sims.add(simulatorDevice);
}
}