/*
* Copyright (C) 2013 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.android.sdklib.repository.local;
import com.android.SdkConstants;
import com.android.sdklib.AndroidVersion;
import com.android.sdklib.internal.repository.IDescription;
import com.android.sdklib.io.MockFileOp;
import com.android.sdklib.repository.FullRevision;
import com.android.sdklib.repository.MajorRevision;
import com.android.sdklib.repository.NoPreviewRevision;
import com.android.sdklib.repository.descriptors.IPkgDesc;
import com.android.sdklib.repository.descriptors.IdDisplay;
import com.android.sdklib.repository.descriptors.PkgDesc;
import com.android.sdklib.repository.descriptors.PkgType;
import com.android.sdklib.repository.remote.RemotePkgInfo;
import com.google.common.collect.Multimap;
import com.google.common.collect.TreeMultimap;
import java.io.File;
import java.util.Arrays;
import junit.framework.TestCase;
public class UpdateTest extends TestCase {
private MockFileOp mFOp;
private LocalSdk mLS;
private Multimap<PkgType, RemotePkgInfo> mRemotePkgs;
private IDescription mSource;
@Override
protected void setUp() {
mFOp = new MockFileOp();
mLS = new LocalSdk(mFOp);
mRemotePkgs = TreeMultimap.create();
mSource = new IDescription() {
@Override
public String getShortDescription() {
return "source";
}
@Override
public String getLongDescription() {
return "mock sdk repository source";
}
};
mLS.setLocation(new File("/sdk"));
}
public final void testComputeUpdates_Tools() throws Exception {
addLocalTool("22.3.4", "18");
addRemoteTool(new FullRevision(23), new FullRevision(19));
addRemoteTool(new FullRevision(23, 0, 1, 2), new FullRevision(19));
addLocalPlatformTool("1.0.2");
addRemotePlatformTool(new FullRevision(1, 0, 3));
addRemotePlatformTool(new FullRevision(2, 0, 4, 5));
addLocalBuildTool("18.0.0");
addLocalBuildTool("19.0.0");
addRemoteBuildTool(new FullRevision(18, 0, 1));
addRemoteBuildTool(new FullRevision(19, 1, 2));
LocalPkgInfo[] allLocalPkgs = mLS.getPkgsInfos(PkgType.PKG_ALL);
UpdateResult result = Update.computeUpdates(allLocalPkgs, mRemotePkgs);
assertNotNull(result);
assertEquals(
"[" +
"<LocalToolPkgInfo <PkgDesc Type=tools FullRev=22.3.4 MinPlatToolsRev=18.0.0> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=tools FullRev=23.0.0 MinPlatToolsRev=19.0.0>>>\n" +
"<LocalPlatformToolPkgInfo <PkgDesc Type=platform_tools FullRev=1.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform_tools FullRev=1.0.3>>>\n" +
"<LocalBuildToolPkgInfo <PkgDesc Type=build_tools FullRev=18.0.0>>\n" +
"<LocalBuildToolPkgInfo <PkgDesc Type=build_tools FullRev=19.0.0>>" +
"]",
Arrays.toString(allLocalPkgs).replace(", ", "\n"));
assertEquals(
"[" +
"<LocalToolPkgInfo <PkgDesc Type=tools FullRev=22.3.4 MinPlatToolsRev=18.0.0> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=tools FullRev=23.0.0 MinPlatToolsRev=19.0.0>>>\n" +
"<LocalPlatformToolPkgInfo <PkgDesc Type=platform_tools FullRev=1.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform_tools FullRev=1.0.3>>>" +
"]",
result.getUpdatedPkgs().toString().replace(", ", "\n"));
assertEquals(
"[" +
"<RemotePkgInfo Source:source <PkgDesc Type=tools FullRev=23.0.1 rc2 MinPlatToolsRev=19.0.0>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=platform_tools FullRev=2.0.4 rc5>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=build_tools FullRev=18.0.1>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=build_tools FullRev=19.1.2>>" +
"]",
result.getNewPkgs().toString().replace(", ", "\n"));
}
public final void testComputeUpdates_DocExtras() throws Exception {
final AndroidVersion api18 = new AndroidVersion("18");
final AndroidVersion api19 = new AndroidVersion("19");
final IdDisplay vendor = new IdDisplay("android", "The Android");
addLocalDoc (api18, "1");
addRemoteDoc(api18, new MajorRevision(2));
addRemoteDoc(api19, new MajorRevision(3));
addLocalExtra("18.0.1", vendor, "support");
addLocalExtra("18.0.2", vendor, "compat");
addRemoteExtra(new NoPreviewRevision(18, 3, 4), vendor, "support", "The Support Lib");
addRemoteExtra(new NoPreviewRevision(18, 5, 6), vendor, "compat", "The Compat Lib");
addRemoteExtra(new NoPreviewRevision(19, 7, 8), vendor, "whatever", "The Whatever Lib");
LocalPkgInfo[] allLocalPkgs = mLS.getPkgsInfos(PkgType.PKG_ALL);
UpdateResult result = Update.computeUpdates(allLocalPkgs, mRemotePkgs);
assertNotNull(result);
assertEquals(
"[" +
"<LocalDocPkgInfo <PkgDesc Type=doc Android=API 18 MajorRev=1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=doc Android=API 19 MajorRev=3>>>\n" +
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.5.6>>>\n" +
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.0.1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.3.4>>>" +
"]",
Arrays.toString(allLocalPkgs).replace(", ", "\n"));
assertEquals(
"[" +
"<LocalDocPkgInfo <PkgDesc Type=doc Android=API 18 MajorRev=1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=doc Android=API 19 MajorRev=3>>>\n" +
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.5.6>>>\n" +
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.0.1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.3.4>>>" +
"]",
result.getUpdatedPkgs().toString().replace(", ", "\n"));
assertEquals(
"[" +
"<RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=whatever FullRev=19.7.8>>" +
"]",
result.getNewPkgs().toString().replace(", ", "\n"));
}
public final void testComputeUpdates_Platforms() throws Exception {
final AndroidVersion api18 = new AndroidVersion("18");
final AndroidVersion api19 = new AndroidVersion("19");
final IdDisplay tagDefault = new IdDisplay("default", "Default");
final IdDisplay tag1 = new IdDisplay("tag-1", "Tag 1");
final IdDisplay tag2 = new IdDisplay("tag-2", "Tag 2");
addLocalPlatform (api18, "2", "22.1.2");
addLocalSource (api18, "3");
addLocalSample (api18, "4", "22.1.2");
addLocalSysImg (api18, "5", null, "eabi");
addLocalSysImg (api18, "6", tag1, "eabi");
addRemotePlatform(api18, new MajorRevision(12), new FullRevision(22));
addRemoteSource (api18, new MajorRevision(13));
addRemoteSample (api18, new MajorRevision(14), new FullRevision(22));
addRemoteSysImg (api18, new MajorRevision(15), tagDefault, "eabi");
addRemoteSysImg (api18, new MajorRevision(16), tag1, "eabi");
addRemotePlatform(api19, new MajorRevision(22), new FullRevision(23));
addRemoteSource (api19, new MajorRevision(23));
addRemoteSample (api19, new MajorRevision(24), new FullRevision(23));
addRemoteSysImg (api19, new MajorRevision(25), tagDefault, "eabi");
addRemoteSysImg (api19, new MajorRevision(26), tag1, "eabi");
addRemoteSysImg (api19, new MajorRevision(27), tag2, "eabi");
LocalPkgInfo[] allLocalPkgs = mLS.getPkgsInfos(PkgType.PKG_ALL);
UpdateResult result = Update.computeUpdates(allLocalPkgs, mRemotePkgs);
assertNotNull(result);
assertEquals(
"[" +
"<LocalPlatformPkgInfo <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=2 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=12 MinToolsRev=22.0.0>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=5> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=15>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=6> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=16>>>\n" +
"<LocalSamplePkgInfo <PkgDesc Type=sample Android=API 18 MajorRev=4 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sample Android=API 18 MajorRev=14 MinToolsRev=22.0.0>>>\n" +
"<LocalSourcePkgInfo <PkgDesc Type=source Android=API 18 MajorRev=3> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=source Android=API 18 MajorRev=13>>>" +
"]",
Arrays.toString(allLocalPkgs).replace(", ", "\n"));
assertEquals(
"[" +
"<LocalPlatformPkgInfo <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=2 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=12 MinToolsRev=22.0.0>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=5> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=15>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=6> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=16>>>\n" +
"<LocalSamplePkgInfo <PkgDesc Type=sample Android=API 18 MajorRev=4 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sample Android=API 18 MajorRev=14 MinToolsRev=22.0.0>>>\n" +
"<LocalSourcePkgInfo <PkgDesc Type=source Android=API 18 MajorRev=3> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=source Android=API 18 MajorRev=13>>>" +
"]",
result.getUpdatedPkgs().toString().replace(", ", "\n"));
assertEquals(
"[" +
"<RemotePkgInfo Source:source <PkgDesc Type=platform Android=API 19 Path=android-19 MajorRev=22 MinToolsRev=23.0.0>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 19 Tag=default [Default] Path=eabi MajorRev=25>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 19 Tag=tag-1 [Tag 1] Path=eabi MajorRev=26>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 19 Tag=tag-2 [Tag 2] Path=eabi MajorRev=27>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=sample Android=API 19 MajorRev=24 MinToolsRev=23.0.0>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=source Android=API 19 MajorRev=23>>" +
"]",
result.getNewPkgs().toString().replace(", ", "\n"));
}
public final void testComputeUpdates_Addons() throws Exception {
final AndroidVersion api18 = new AndroidVersion("18");
final AndroidVersion api19 = new AndroidVersion("19");
final IdDisplay vendor1 = new IdDisplay("android", "The Android");
final IdDisplay name1 = new IdDisplay("cool_addon", "The Add-on");
final IdDisplay vendor2 = new IdDisplay("vendor2", "Vendor Too");
final IdDisplay name2 = new IdDisplay("addon-2", "Add-on Too");
addLocalAddOn (api18, "7", vendor1, name1);
addLocalAddonSysImg (api18, "8", vendor1, name1, "abi32");
addLocalAddonSysImg (api18, "9", vendor1, name1, "abi64"); // no update
addRemoteAddOn (api18, new MajorRevision(17), vendor1, name1);
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor1, name1, "abi32");
addRemoteAddonSysImg(api18, new MajorRevision(19), vendor1, name1, "abi96"); //wrong abi
// these remote sys-img do not match the right vendor/name.
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor2, name1, "abi64");
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor1, name2, "abi64");
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor2, name2, "abi64");
addRemoteAddOn (api19, new MajorRevision(27), vendor1, name1);
addRemoteAddonSysImg(api19, new MajorRevision(28), vendor1, name1, "abi32");
addRemoteAddonSysImg(api19, new MajorRevision(29), vendor1, name1, "abi64");
LocalPkgInfo[] allLocalPkgs = mLS.getPkgsInfos(PkgType.PKG_ALL);
UpdateResult result = Update.computeUpdates(allLocalPkgs, mRemotePkgs);
assertNotNull(result);
assertEquals(
"[" +
"<LocalAddonPkgInfo <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=7> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=17>>>\n" +
"<LocalAddonSysImgPkgInfo <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=8> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=18>>>\n" +
"<LocalAddonSysImgPkgInfo <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi64 MajorRev=9>>" +
"]",
Arrays.toString(allLocalPkgs).replace(", ", "\n"));
assertEquals(
"[" +
"<LocalAddonPkgInfo <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=7> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=17>>>\n" +
"<LocalAddonSysImgPkgInfo <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=8> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=18>>>" +
"]",
result.getUpdatedPkgs().toString().replace(", ", "\n"));
assertEquals(
"[" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon Android=API 19 Vendor=android [The Android] Path=The Android:The Add-on:19 MajorRev=27>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=addon-2 [Add-on Too] Path=abi64 MajorRev=18>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi96 MajorRev=19>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=vendor2 [Vendor Too] Tag=addon-2 [Add-on Too] Path=abi64 MajorRev=18>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=vendor2 [Vendor Too] Tag=cool_addon [The Add-on] Path=abi64 MajorRev=18>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 19 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=28>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 19 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi64 MajorRev=29>>" +
"]",
result.getNewPkgs().toString().replace(", ", "\n"));
}
// --- all of the above at the same time
public final void testComputeUpdates_All() throws Exception {
final AndroidVersion api18 = new AndroidVersion("18");
final AndroidVersion api19 = new AndroidVersion("19");
final IdDisplay tagDefault = new IdDisplay("default", "Default");
final IdDisplay tag1 = new IdDisplay("tag-1", "Tag 1");
final IdDisplay tag2 = new IdDisplay("tag-2", "Tag 2");
final IdDisplay vendor = new IdDisplay("android", "The Android");
final IdDisplay vendor1 = new IdDisplay("android", "The Android");
final IdDisplay name1 = new IdDisplay("cool_addon", "The Add-on");
final IdDisplay vendor2 = new IdDisplay("vendor2", "Vendor Too");
final IdDisplay name2 = new IdDisplay("addon-2", "Add-on Too");
//---
addLocalTool("22.3.4", "18");
addRemoteTool(new FullRevision(23), new FullRevision(19));
addRemoteTool(new FullRevision(23, 0, 1, 2), new FullRevision(19));
addLocalPlatformTool("1.0.2");
addRemotePlatformTool(new FullRevision(1, 0, 3));
addRemotePlatformTool(new FullRevision(2, 0, 4, 5));
addLocalBuildTool("18.0.0");
addLocalBuildTool("19.0.0");
addRemoteBuildTool(new FullRevision(18, 0, 1));
addRemoteBuildTool(new FullRevision(19, 1, 2));
//---
addLocalDoc (api18, "1");
addRemoteDoc(api18, new MajorRevision(2));
addRemoteDoc(api19, new MajorRevision(3));
addLocalExtra("18.0.1", vendor, "support");
addLocalExtra("18.0.2", vendor, "compat");
addRemoteExtra(new NoPreviewRevision(18, 3, 4), vendor, "support", "The Support Lib");
addRemoteExtra(new NoPreviewRevision(18, 5, 6), vendor, "compat", "The Compat Lib");
addRemoteExtra(new NoPreviewRevision(19, 7, 8), vendor, "whatever", "The Whatever Lib");
//---
addLocalPlatform (api18, "2", "22.1.2");
addLocalSource (api18, "3");
addLocalSample (api18, "4", "22.1.2");
addLocalSysImg (api18, "5", null, "eabi");
addLocalSysImg (api18, "6", tag1, "eabi");
addRemotePlatform(api18, new MajorRevision(12), new FullRevision(22));
addRemoteSource (api18, new MajorRevision(13));
addRemoteSample (api18, new MajorRevision(14), new FullRevision(22));
addRemoteSysImg (api18, new MajorRevision(15), tagDefault, "eabi");
addRemoteSysImg (api18, new MajorRevision(16), tag1, "eabi");
addRemotePlatform(api19, new MajorRevision(22), new FullRevision(23));
addRemoteSource (api19, new MajorRevision(23));
addRemoteSample (api19, new MajorRevision(24), new FullRevision(23));
addRemoteSysImg (api19, new MajorRevision(25), tagDefault, "eabi");
addRemoteSysImg (api19, new MajorRevision(26), tag1, "eabi");
addRemoteSysImg (api19, new MajorRevision(27), tag2, "eabi");
//---
addLocalAddOn (api18, "7", vendor1, name1);
addLocalAddonSysImg (api18, "8", vendor1, name1, "abi32");
addLocalAddonSysImg (api18, "9", vendor1, name1, "abi64"); // no update
addRemoteAddOn (api18, new MajorRevision(17), vendor1, name1);
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor1, name1, "abi32");
addRemoteAddonSysImg(api18, new MajorRevision(19), vendor1, name1, "abi96"); //wrong abi
// these remote sys-img do not match the right vendor/name.
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor2, name1, "abi64");
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor1, name2, "abi64");
addRemoteAddonSysImg(api18, new MajorRevision(18), vendor2, name2, "abi64");
addRemoteAddOn (api19, new MajorRevision(27), vendor1, name1);
addRemoteAddonSysImg(api19, new MajorRevision(28), vendor1, name1, "abi32");
addRemoteAddonSysImg(api19, new MajorRevision(29), vendor1, name1, "abi64");
//---
LocalPkgInfo[] allLocalPkgs = mLS.getPkgsInfos(PkgType.PKG_ALL);
UpdateResult result = Update.computeUpdates(allLocalPkgs, mRemotePkgs);
assertNotNull(result);
assertEquals(
"[" +
"<LocalToolPkgInfo <PkgDesc Type=tools FullRev=22.3.4 MinPlatToolsRev=18.0.0> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=tools FullRev=23.0.0 MinPlatToolsRev=19.0.0>>>\n" +
"<LocalPlatformToolPkgInfo <PkgDesc Type=platform_tools FullRev=1.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform_tools FullRev=1.0.3>>>\n" +
"<LocalBuildToolPkgInfo <PkgDesc Type=build_tools FullRev=18.0.0>>\n" +
"<LocalBuildToolPkgInfo <PkgDesc Type=build_tools FullRev=19.0.0>>\n" +
//---
"<LocalDocPkgInfo <PkgDesc Type=doc Android=API 18 MajorRev=1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=doc Android=API 19 MajorRev=3>>>\n" +
//---
"<LocalPlatformPkgInfo <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=2 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=12 MinToolsRev=22.0.0>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=5> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=15>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=6> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=16>>>\n" +
//---
"<LocalAddonPkgInfo <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=7> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=17>>>\n" +
"<LocalAddonSysImgPkgInfo <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=8> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=18>>>\n" +
"<LocalAddonSysImgPkgInfo <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi64 MajorRev=9>>\n" +
//---
"<LocalSamplePkgInfo <PkgDesc Type=sample Android=API 18 MajorRev=4 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sample Android=API 18 MajorRev=14 MinToolsRev=22.0.0>>>\n" +
"<LocalSourcePkgInfo <PkgDesc Type=source Android=API 18 MajorRev=3> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=source Android=API 18 MajorRev=13>>>\n" +
//---
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.5.6>>>\n" +
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.0.1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.3.4>>>" +
"]",
Arrays.toString(allLocalPkgs).replace(", ", "\n"));
assertEquals(
"[" +
"<LocalToolPkgInfo <PkgDesc Type=tools FullRev=22.3.4 MinPlatToolsRev=18.0.0> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=tools FullRev=23.0.0 MinPlatToolsRev=19.0.0>>>\n" +
"<LocalPlatformToolPkgInfo <PkgDesc Type=platform_tools FullRev=1.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform_tools FullRev=1.0.3>>>\n" +
//---
"<LocalDocPkgInfo <PkgDesc Type=doc Android=API 18 MajorRev=1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=doc Android=API 19 MajorRev=3>>>\n" +
//---
"<LocalPlatformPkgInfo <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=2 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=platform Android=API 18 Path=android-18 MajorRev=12 MinToolsRev=22.0.0>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=5> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=default [Default] Path=eabi MajorRev=15>>>\n" +
"<LocalSysImgPkgInfo <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=6> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 18 Tag=tag-1 [Tag 1] Path=eabi MajorRev=16>>>\n" +
//---
"<LocalAddonPkgInfo <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=7> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon Android=API 18 Vendor=android [The Android] Path=The Android:The Add-on:18 MajorRev=17>>>\n" +
"<LocalAddonSysImgPkgInfo <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=8> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=18>>>\n" +
//---
"<LocalSamplePkgInfo <PkgDesc Type=sample Android=API 18 MajorRev=4 MinToolsRev=22.1.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=sample Android=API 18 MajorRev=14 MinToolsRev=22.0.0>>>\n" +
"<LocalSourcePkgInfo <PkgDesc Type=source Android=API 18 MajorRev=3> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=source Android=API 18 MajorRev=13>>>\n" +
//---
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.0.2> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=compat FullRev=18.5.6>>>\n" +
"<LocalExtraPkgInfo <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.0.1> " +
"Updated by: <RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=support FullRev=18.3.4>>>" +
"]",
result.getUpdatedPkgs().toString().replace(", ", "\n"));
assertEquals(
"[" +
"<RemotePkgInfo Source:source <PkgDesc Type=tools FullRev=23.0.1 rc2 MinPlatToolsRev=19.0.0>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=platform_tools FullRev=2.0.4 rc5>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=build_tools FullRev=18.0.1>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=build_tools FullRev=19.1.2>>\n" +
//---
"<RemotePkgInfo Source:source <PkgDesc Type=platform Android=API 19 Path=android-19 MajorRev=22 MinToolsRev=23.0.0>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 19 Tag=default [Default] Path=eabi MajorRev=25>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 19 Tag=tag-1 [Tag 1] Path=eabi MajorRev=26>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=sys_image Android=API 19 Tag=tag-2 [Tag 2] Path=eabi MajorRev=27>>\n" +
//---
"<RemotePkgInfo Source:source <PkgDesc Type=addon Android=API 19 Vendor=android [The Android] Path=The Android:The Add-on:19 MajorRev=27>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=addon-2 [Add-on Too] Path=abi64 MajorRev=18>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi96 MajorRev=19>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=vendor2 [Vendor Too] Tag=addon-2 [Add-on Too] Path=abi64 MajorRev=18>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 18 Vendor=vendor2 [Vendor Too] Tag=cool_addon [The Add-on] Path=abi64 MajorRev=18>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 19 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi32 MajorRev=28>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=addon_sys_image Android=API 19 Vendor=android [The Android] Tag=cool_addon [The Add-on] Path=abi64 MajorRev=29>>\n" +
//---
"<RemotePkgInfo Source:source <PkgDesc Type=sample Android=API 19 MajorRev=24 MinToolsRev=23.0.0>>\n" +
"<RemotePkgInfo Source:source <PkgDesc Type=source Android=API 19 MajorRev=23>>\n" +
//---
"<RemotePkgInfo Source:source <PkgDesc Type=extra Vendor=android [The Android] Path=whatever FullRev=19.7.8>>" +
"]",
result.getNewPkgs().toString().replace(", ", "\n"));
}
//---
private void addLocalTool(String fullRev, String minPlatToolsRev) {
mFOp.recordExistingFolder("/sdk/tools");
mFOp.recordExistingFile("/sdk/tools/source.properties",
"Pkg.License=Terms and Conditions\n" +
"Archive.Os=WINDOWS\n" +
"Pkg.Revision=" + fullRev + "\n" +
"Platform.MinPlatformToolsRev=" + minPlatToolsRev + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Arch=ANY\n" +
"Pkg.SourceUrl=https\\://example.com/repository-8.xml");
mFOp.recordExistingFile("/sdk/tools/" + SdkConstants.androidCmdName(), "placeholder");
mFOp.recordExistingFile("/sdk/tools/" + SdkConstants.FN_EMULATOR, "placeholder");
}
private void addLocalPlatformTool(String fullRev) {
mFOp.recordExistingFolder("/sdk/platform-tools");
mFOp.recordExistingFile("/sdk/platform-tools/source.properties",
"Pkg.License=Terms and Conditions\n" +
"Archive.Os=WINDOWS\n" +
"Pkg.Revision=" + fullRev + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Arch=ANY\n" +
"Pkg.SourceUrl=https\\://example.com/repository-8.xml");
}
private void addLocalDoc(AndroidVersion version, String majorRev) {
mFOp.recordExistingFolder("/sdk/docs");
mFOp.recordExistingFile("/sdk/docs/source.properties",
"Pkg.License=Terms and Conditions\n" +
"Archive.Os=ANY\n" +
"AndroidVersion.ApiLevel=" + version.getApiString() + "\n" +
"Pkg.Revision=" + majorRev + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Arch=ANY\n" +
"Pkg.SourceUrl=https\\://example.com/repository-8.xml");
mFOp.recordExistingFile("/sdk/docs/index.html", "placeholder");
}
private void addLocalBuildTool(String fullRev) {
mFOp.recordExistingFolder("/sdk/build-tools");
mFOp.recordExistingFolder("/sdk/build-tools/" + fullRev);
mFOp.recordExistingFile("/sdk/build-tools/" + fullRev + "/source.properties",
"Pkg.License=Terms and Conditions\n" +
"Archive.Os=WINDOWS\n" +
"Pkg.Revision=" + fullRev + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Arch=ANY\n" +
"Pkg.SourceUrl=https\\://example.com/repository-8.xml");
}
private void addLocalExtra(String fullRev, IdDisplay vendor, String path) {
mFOp.recordExistingFolder("/sdk/extras");
mFOp.recordExistingFolder("/sdk/extras/" + vendor.getId());
mFOp.recordExistingFolder("/sdk/extras/" + vendor.getId() + "/" + path);
mFOp.recordExistingFile("/sdk/extras/" + vendor.getId() + "/" + path + "/source.properties",
"Extra.NameDisplay=Android Support Library\n" +
"Extra.VendorDisplay=" + vendor.getDisplay() + "\n" +
"Extra.VendorId=" + vendor.getId() + "\n" +
"Extra.Path=" + path + "\n" +
"Extra.OldPaths=compatibility\n" +
"Archive.Os=ANY\n" +
"Pkg.Revision=" + fullRev + "\n" +
"Archive.Arch=ANY\n");
}
private void addLocalSource(AndroidVersion version, String majorRev) {
String api = version.getApiString();
mFOp.recordExistingFolder("/sdk/sources");
mFOp.recordExistingFolder("/sdk/sources/android-" + api);
mFOp.recordExistingFile("/sdk/sources/android-" + api + "/source.properties",
"Archive.Os=ANY\n" +
"AndroidVersion.ApiLevel=" + api + "\n" +
"AndroidVersion.CodeName=\n" +
"Pkg.Revision=" + majorRev + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Arch=ANY\n");
}
private void addLocalSample(AndroidVersion version, String majorRev, String minToolsRev) {
String api = version.getApiString();
mFOp.recordExistingFolder("/sdk/samples");
mFOp.recordExistingFolder("/sdk/samples/android-" + api);
mFOp.recordExistingFile("/sdk/samples/android-" + api + "/source.properties",
"Archive.Os=ANY\n" +
"AndroidVersion.ApiLevel=" + api + "\n" +
"AndroidVersion.CodeName=\n" +
"Pkg.Revision=" + majorRev + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Platform.MinToolsRev=" + minToolsRev + "\n" +
"Archive.Arch=ANY\n");
}
private void addLocalSysImg(AndroidVersion version, String majorRev, IdDisplay tag, String abi) {
String api = version.getApiString();
String tagDir = (tag == null ? "" : "/" + tag.getId());
mFOp.recordExistingFolder("/sdk/system-images");
mFOp.recordExistingFolder("/sdk/system-images/android-" + api + tagDir);
mFOp.recordExistingFolder("/sdk/system-images/android-" + api + tagDir + "/" + abi);
mFOp.recordExistingFile ("/sdk/system-images/android-" + api + tagDir + "/" + abi +"/source.properties",
"SystemImage.Abi=" + abi + "\n" +
(tag == null ? "" : ("SystemImage.TagId=" + tag.getId())) + "\n" +
(tag == null ? "" : ("SystemImage.TagDisplay=" + tag.getDisplay())) + "\n" +
"Pkg.Revision=" + majorRev + "\n" +
"AndroidVersion.ApiLevel=" + api + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Os=ANY\n" +
"Archive.Arch=ANY\n");
}
private void addLocalAddonSysImg(AndroidVersion version, String majorRev, IdDisplay vendor, IdDisplay tag, String abi) {
String api = version.getApiString();
String addon_dir = "addon-" + vendor.getId() + "-" + tag.getId();
mFOp.recordExistingFolder("/sdk/system-images");
mFOp.recordExistingFolder("/sdk/system-images/" + addon_dir);
mFOp.recordExistingFolder("/sdk/system-images/" + addon_dir + "/" + abi);
mFOp.recordExistingFile ("/sdk/system-images/" + addon_dir + "/" + abi + "/source.properties",
"SystemImage.Abi=" + abi + "\n" +
"SystemImage.TagId=" + tag.getId() + "\n" +
"SystemImage.TagDisplay=" + tag.getDisplay() + "\n" +
"Addon.VendorId=" + vendor.getId() + "\n" +
"Addon.VendorDisplay=" + vendor.getDisplay() + "\n" +
"Pkg.Revision=" + majorRev + "\n" +
"AndroidVersion.ApiLevel=" + api + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Os=ANY\n" +
"Archive.Arch=ANY\n");
}
private void addLocalPlatform(AndroidVersion version, String majorRev, String minToolsRev) {
String api = version.getApiString();
mFOp.recordExistingFolder("/sdk/platforms");
mFOp.recordExistingFolder("/sdk/platforms/android-" + api);
mFOp.recordExistingFile("/sdk/platforms/android-" + api + "/android.jar");
mFOp.recordExistingFile("/sdk/platforms/android-" + api + "/framework.aidl");
mFOp.recordExistingFile("/sdk/platforms/android-" + api + "/source.properties",
"Pkg.Revision=" + majorRev + "\n" +
"AndroidVersion.ApiLevel=" + api + "\n" +
"AndroidVersion.ApiLevel=18\n" +
"Layoutlib.Api=10\n" +
"Layoutlib.Revision=1\n" +
"Platform.MinToolsRev=" + minToolsRev + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Os=ANY\n" +
"Archive.Arch=ANY\n");
mFOp.recordExistingFile("/sdk/platforms/android-" + api + "/sdk.properties",
"sdk.ant.templates.revision=1\n" +
"sdk.skin.default=WVGA800\n");
mFOp.recordExistingFile("/sdk/platforms/android-" + api + "/build.prop",
"ro.build.id=JB_MR2\n" +
"ro.build.display.id=sdk-eng 4.3 JB_MR2 819563 test-keys\n" +
"ro.build.version.incremental=819563\n" +
"ro.build.version.sdk=" + api + "\n" +
"ro.build.version.codename=REL\n" +
"ro.build.version.release=4.3\n" +
"ro.build.date=Tue Sep 10 18:43:31 UTC 2013\n" +
"ro.build.date.utc=1378838611\n" +
"ro.build.type=eng\n" +
"ro.build.tags=test-keys\n" +
"ro.product.model=sdk\n" +
"ro.product.name=sdk\n" +
"ro.product.board=\n" +
"ro.product.cpu.abi=armeabi-v7a\n" +
"ro.product.cpu.abi2=armeabi\n" +
"ro.product.locale.language=en\n" +
"ro.product.locale.region=US\n" +
"ro.wifi.channels=\n" +
"ro.board.platform=\n" +
"# ro.build.product is obsolete; use ro.product.device\n" +
"# Do not try to parse ro.build.description or .fingerprint\n" +
"ro.build.description=sdk-eng 4.3 JB_MR2 819563 test-keys\n" +
"ro.build.fingerprint=generic/sdk/generic:4.3/JB_MR2/819563:eng/test-keys\n" +
"ro.build.characteristics=default\n" +
"rild.libpath=/system/lib/libreference-ril.so\n" +
"rild.libargs=-d /dev/ttyS0\n" +
"ro.config.notification_sound=OnTheHunt.ogg\n" +
"ro.config.alarm_alert=Alarm_Classic.ogg\n" +
"ro.kernel.android.checkjni=1\n" +
"xmpp.auto-presence=true\n" +
"ro.config.nocheckin=yes\n" +
"net.bt.name=Android\n" +
"dalvik.vm.stack-trace-file=/data/anr/traces.txt\n" +
"ro.build.user=generic\n" +
"ro.build.host=generic\n" +
"ro.product.brand=generic\n" +
"ro.product.manufacturer=generic\n" +
"ro.product.device=generic\n" +
"ro.build.product=generic\n");
}
private void addLocalAddOn(AndroidVersion version, String majorRev, IdDisplay vendor, IdDisplay name) {
String api = version.getApiString();
String addon_dir = "addon-" + vendor.getId() + "-" + name;
mFOp.recordExistingFolder("/sdk/add-ons");
mFOp.recordExistingFolder("/sdk/add-ons/" + addon_dir);
mFOp.recordExistingFile("/sdk/add-ons/" + addon_dir + "/source.properties",
"Pkg.Revision=" + majorRev + "\n" +
"Addon.VendorId=" + vendor.getId() + "\n" +
"Addon.VendorDisplay=" + vendor.getDisplay() + "\n" +
"Addon.NameId=" + name.getId() + "\n" +
"Addon.NameDisplay=" + name.getDisplay() + "\n" +
"AndroidVersion.ApiLevel=" + api + "\n" +
"Pkg.LicenseRef=android-sdk-license\n" +
"Archive.Os=ANY\n" +
"Archive.Arch=ANY\n");
mFOp.recordExistingFile("/sdk/add-ons/" + addon_dir + "/manifest.ini",
"Pkg.Revision=" + majorRev + "\n" +
"name=" + name.getDisplay() + "\n" +
"name-id=" + name.getId() + "\n" +
"vendor=" + vendor.getDisplay() + "\n" +
"vendor-id=" + vendor.getId() + "\n" +
"api=" + api + "\n" +
"libraries=com.foo.lib1;com.blah.lib2\n" +
"com.foo.lib1=foo.jar;API for Foo\n" +
"com.blah.lib2=blah.jar;API for Blah\n");
}
//---
private void addRemoteTool(FullRevision revision, FullRevision minPlatformToolsRev) {
IPkgDesc d = PkgDesc.Builder.newTool(revision, minPlatformToolsRev).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemotePlatformTool(FullRevision revision) {
IPkgDesc d = PkgDesc.Builder.newPlatformTool(revision).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteDoc(AndroidVersion version, MajorRevision revision) {
IPkgDesc d = PkgDesc.Builder.newDoc(version, revision).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteBuildTool(FullRevision revision) {
IPkgDesc d = PkgDesc.Builder.newBuildTool(revision).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteExtra(NoPreviewRevision revision,
IdDisplay vendor,
String path,
String name) {
IPkgDesc d = PkgDesc.Builder.newExtra(vendor, path, name, null, revision).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteSource(AndroidVersion version, MajorRevision revision) {
IPkgDesc d = PkgDesc.Builder.newSource(version, revision).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteSample(AndroidVersion version,
MajorRevision revision,
FullRevision minToolsRev) {
IPkgDesc d = PkgDesc.Builder.newSample(version, revision, minToolsRev).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteSysImg(AndroidVersion version,
MajorRevision revision,
IdDisplay tag,
String abi) {
IPkgDesc d = PkgDesc.Builder.newSysImg(version, tag, abi, revision).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteAddonSysImg(AndroidVersion version,
MajorRevision revision,
IdDisplay vendor,
IdDisplay tag,
String abi) {
IPkgDesc d = PkgDesc.Builder.newAddonSysImg(version, vendor, tag, abi, revision).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemotePlatform(AndroidVersion version,
MajorRevision revision,
FullRevision minToolsRev) {
IPkgDesc d = PkgDesc.Builder.newPlatform(version, revision, minToolsRev).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
private void addRemoteAddOn(AndroidVersion version,
MajorRevision revision,
IdDisplay vendor,
IdDisplay name) {
IPkgDesc d = PkgDesc.Builder.newAddon(version, revision, vendor, name).create();
RemotePkgInfo r = new RemotePkgInfo(d, mSource);
mRemotePkgs.put(d.getType(), r);
}
}