package com.developerphil.adbidea.compatibility; import com.android.ddmlib.IDevice; import com.android.sdklib.AndroidVersion; import com.android.sdklib.IAndroidTarget; import com.android.tools.idea.run.AndroidDevice; import com.android.tools.idea.run.LaunchCompatibility; import org.joor.Reflect; import java.util.EnumSet; // Up until android studio 2.0 preview 8 public class CanRunOnDeviceCompatBefore2_0 extends BackwardCompatibleGetter<LaunchCompatibility> { private final AndroidVersion myMinSdkVersion; private final IAndroidTarget myProjectTarget; private final EnumSet<IDevice.HardwareFeature> myRequiredHardwareFeatures; private final IDevice device; public CanRunOnDeviceCompatBefore2_0(AndroidVersion myMinSdkVersion, IAndroidTarget myProjectTarget, EnumSet<IDevice.HardwareFeature> myRequiredHardwareFeatures, IDevice device) { this.myMinSdkVersion = myMinSdkVersion; this.myProjectTarget = myProjectTarget; this.myRequiredHardwareFeatures = myRequiredHardwareFeatures; this.device = device; } @Override // Android studio 1.5+ protected LaunchCompatibility getCurrentImplementation() throws Throwable { AndroidDevice androidDevice = Reflect.on("com.android.tools.idea.run.ConnectedAndroidDevice").create(device, null).get(); return Reflect.on(LaunchCompatibility.class).call("canRunOnDevice", myMinSdkVersion, myProjectTarget, myRequiredHardwareFeatures, androidDevice, null).get(); } @Override // Android Studio 1.4- protected LaunchCompatibility getPreviousImplementation() { return Reflect.on(LaunchCompatibility.class).call("canRunOnDevice", myMinSdkVersion, myProjectTarget, myRequiredHardwareFeatures, device, null).get(); } }