use of com.android.repository.api.LocalPackage in project android by JetBrains.
the class SdkBuildToolsTooLowErrorHandler method getQuickFixHyperlinks.
@NotNull
public List<NotificationHyperlink> getQuickFixHyperlinks(@NotNull String minimumVersion, @NotNull Project project, @Nullable Module module) {
List<NotificationHyperlink> hyperlinks = new ArrayList<>();
boolean buildToolInstalled = false;
AndroidSdkHandler sdkHandler = null;
AndroidSdkData androidSdkData = AndroidSdks.getInstance().tryToChooseAndroidSdk();
if (androidSdkData != null) {
sdkHandler = androidSdkData.getSdkHandler();
}
if (sdkHandler != null) {
ProgressIndicator progress = new StudioLoggerProgressIndicator(SdkBuildToolsTooLowErrorHandler.class);
RepositoryPackages packages = sdkHandler.getSdkManager(progress).getPackages();
LocalPackage buildTool = packages.getLocalPackages().get(getBuildToolsPath(parseRevision(minimumVersion)));
buildToolInstalled = buildTool != null;
}
if (module != null) {
VirtualFile buildFile = getGradleBuildFile(module);
AndroidPluginInfo androidPluginInfo = AndroidPluginInfo.find(project);
if (!buildToolInstalled) {
if (androidPluginInfo != null && androidPluginInfo.isExperimental()) {
hyperlinks.add(new InstallBuildToolsHyperlink(minimumVersion, null));
} else {
hyperlinks.add(new InstallBuildToolsHyperlink(minimumVersion, buildFile));
}
} else if (buildFile != null && androidPluginInfo != null && !androidPluginInfo.isExperimental()) {
hyperlinks.add(new FixBuildToolsVersionHyperlink(buildFile, minimumVersion));
}
if (buildFile != null) {
hyperlinks.add(new OpenFileHyperlink(buildFile.getPath()));
}
}
return hyperlinks;
}
use of com.android.repository.api.LocalPackage in project android by JetBrains.
the class PatchInstallerFactoryTest method cantHandleLinuxUninstallWithPatcher.
@Test
public void cantHandleLinuxUninstallWithPatcher() {
LocalPackage p = new FakeLocalPackage("foo");
myRepositoryPackages.setLocalPkgInfos(ImmutableList.of(p, PATCHER_4));
assertFalse(myInstallerFactory.canHandlePackage(p, myRepoManager, myFileOp));
}
use of com.android.repository.api.LocalPackage in project android by JetBrains.
the class SdkMergerTest method getSdkFingerprint.
private String getSdkFingerprint(File sdk) {
StringBuilder s = new StringBuilder();
RepoManager sdkManager = AndroidSdkHandler.getInstance(sdk).getSdkManager(new StudioLoggerProgressIndicator(getClass()));
for (LocalPackage p : Sets.newTreeSet(sdkManager.getPackages().getLocalPackages().values())) {
s.append(p.getPath());
s.append(',');
s.append(p.getVersion());
s.append('\n');
}
return s.toString();
}
use of com.android.repository.api.LocalPackage in project android by JetBrains.
the class PatchInstallerUtilTest method getDependantPatcher.
@Test
public void getDependantPatcher() throws Exception {
LocalPackage target = new FakeLocalPackage("patcher;v2");
List<LocalPackage> local = ImmutableList.of(new FakeLocalPackage("patcher;v1"), target, new FakeLocalPackage("patcher;v3"));
FakeRemotePackage update = new FakeRemotePackage("p");
List<RemotePackage> remote = ImmutableList.of(update, new FakeRemotePackage("patcher;v4"));
update.setDependencies(ImmutableList.of(new FakeDependency(target.getPath())));
RepositoryPackages packages = new RepositoryPackages(local, remote);
FakeRepoManager mgr = new FakeRepoManager(new File("/sdk"), packages);
LocalPackage patcher = PatchInstallerUtil.getDependantPatcher(update, mgr);
assertEquals(target, patcher);
}
use of com.android.repository.api.LocalPackage in project android by JetBrains.
the class PatchInstallerUtilTest method dependantPatcherNotInstalled.
@Test
public void dependantPatcherNotInstalled() throws Exception {
FakeLocalPackage target = new FakeLocalPackage("patcher;v2");
List<LocalPackage> local = ImmutableList.of(new FakeLocalPackage("patcher;v1"), new FakeLocalPackage("patcher;v3"));
FakeRemotePackage update = new FakeRemotePackage("p");
List<RemotePackage> remote = ImmutableList.of(update, new FakeRemotePackage("patcher;v4"));
update.setDependencies(ImmutableList.of(new FakeDependency(target.getPath())));
RepositoryPackages packages = new RepositoryPackages(local, remote);
FakeRepoManager mgr = new FakeRepoManager(new File("/sdk"), packages);
LocalPackage patcher = PatchInstallerUtil.getDependantPatcher(update, mgr);
assertNull(patcher);
}
Aggregations