/* * Copyright (C) 2012 The Android Open Source Project * * 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 com.motorola.studio.android.emulator.device; import java.util.ArrayList; import java.util.List; import org.eclipse.sequoyah.device.common.utilities.exception.SequoyahException; import org.eclipse.sequoyah.device.framework.DevicePlugin; import org.eclipse.sequoyah.device.framework.factory.InstanceRegistry; import org.eclipse.sequoyah.device.framework.manager.InstanceManager; import org.eclipse.sequoyah.device.framework.model.IInstance; import org.eclipse.ui.IStartup; import com.motorola.studio.android.common.log.StudioLogger; import com.motorola.studio.android.emulator.device.refresh.InstancesListRefresh; /** * This startup intent to iterate over the list of Android Emulator instances and change the emulator ID * due the change of the plugin ids for the 1.3.0 release * */ public class SequoyahInstanceBackward implements IStartup { /* * (non-Javadoc) * @see org.eclipse.ui.IStartup#earlyStartup() */ public void earlyStartup() { boolean refreshNeeded = false; List<IInstance> instances = new ArrayList<IInstance>(InstanceRegistry.getInstance().getInstances()); for (IInstance oldInstance : instances) { if (oldInstance.getDeviceTypeId().equals( "com.motorola.studio.android.emulator.device.androidDevice")) { try { InstanceRegistry.getInstance().addInstance( InstanceManager.createInstance(oldInstance.getName(), "com.motorola.studio.android.emulator.androidDevice", DevicePlugin.SEQUOYAH_STATUS_OFF, oldInstance.getProperties())); InstanceRegistry.getInstance().removeInstance(oldInstance); } catch (SequoyahException e) { StudioLogger.error( SequoyahInstanceBackward.class, "An error ocurred trying to backward old instance: " + oldInstance.getName(), e); } refreshNeeded = true; } } if (refreshNeeded) { InstancesListRefresh.refresh(); } } }