Esempio n. 1
0
        public IEnumerable <Avd> ListAvds()
        {
            var r = new List <Avd>();

            var lines = run("list", "avd");

            var str = string.Join("\n", lines);

            var matches = rxListAvds.Matches(str);

            if (matches != null && matches.Count > 0)
            {
                foreach (Match m in matches)
                {
                    var a = new Avd
                    {
                        Name    = m.Groups?["name"]?.Value,
                        Device  = m.Groups?["device"]?.Value,
                        Path    = m.Groups?["path"]?.Value,
                        Target  = m.Groups?["target"]?.Value,
                        BasedOn = m.Groups?["basedon"]?.Value
                    };

                    if (!string.IsNullOrWhiteSpace(a.Name))
                    {
                        r.Add(a);
                    }
                }
            }

            return(r);
        }
Esempio n. 2
0
        public static IEnumerable <Avd> ListAvdsFromFiles()
        {
            var folder = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile), ".android", "avd");

            if (Directory.Exists(folder))
            {
                var files = Directory.EnumerateFiles(folder, "*.ini", SearchOption.TopDirectoryOnly);

                foreach (var file in files)
                {
                    Avd avd = default;

                    try
                    {
                        var ini = Avd.ParseIni(file);

                        if (ini.TryGetValue("path", out var avdPath))
                        {
                            if (Directory.Exists(avdPath))
                            {
                                avd = Avd.From(avdPath);
                            }
                        }
                    }
                    catch { }

                    if (avd != null)
                    {
                        yield return(avd);
                    }
                }
            }
        }
 /// <summary>
 /// Default ctor
 /// </summary>
 internal OfflineEmulatorDeviceItem(Avd avd)
 {
     this.avd = avd;
     ReloadIcon();
     SetName(avd.Name);
     SetSerial(avd.Name);
     SetPlatform(GetPlatform(avd));
     SetCpuAbi(avd.Config.AbiType);
 }
Esempio n. 4
0
        public IEnumerable <Avd> ListAvds()
        {
            var r = new List <Avd>();

            var lines = run("list", "avd");

            var str = string.Join("\n", lines);

            var matches = rxListAvds.Matches(str);

            if (matches != null && matches.Count > 0)
            {
                foreach (Match m in matches)
                {
                    var path = m.Groups?["path"]?.Value;

                    if (!string.IsNullOrEmpty(path) && Directory.Exists(path))
                    {
                        var avd = Avd.From(path);

                        var parsedName = m.Groups?["name"]?.Value;
                        if (string.IsNullOrEmpty(avd.Name) && !string.IsNullOrEmpty(parsedName))
                        {
                            avd.Name = parsedName;
                        }

                        var parsedDevice = m.Groups?["device"]?.Value;
                        if (string.IsNullOrEmpty(avd.Device) && !string.IsNullOrEmpty(parsedDevice))
                        {
                            avd.Device = parsedDevice;
                        }

                        var parsedTarget = m.Groups?["target"]?.Value;
                        if (string.IsNullOrEmpty(avd.Target) && !string.IsNullOrEmpty(parsedTarget))
                        {
                            avd.Target = parsedTarget;
                        }

                        var parsedBasedOn = m.Groups?["basedon"]?.Value;
                        if (string.IsNullOrEmpty(avd.BasedOn) && !string.IsNullOrEmpty(parsedBasedOn))
                        {
                            avd.BasedOn = parsedBasedOn;
                        }

                        r.Add(avd);
                    }
                }
            }

            return(r);
        }
Esempio n. 5
0
            public static Avd From(string avdPath)
            {
                try
                {
                    var avdIniFile    = System.IO.Path.Combine(avdPath, "..", System.IO.Path.GetFileNameWithoutExtension(avdPath) + ".ini");
                    var configIniFile = System.IO.Path.Combine(avdPath, "config.ini");

                    if (File.Exists(avdIniFile))
                    {
                        var avdIni = ParseIni(avdIniFile);

                        if (File.Exists(configIniFile))
                        {
                            var configIni = ParseIni(configIniFile);

                            var avd = new Avd();
                            avd.Name = System.IO.Path.GetFileNameWithoutExtension(avdIniFile);
                            avd.Path = avdPath;
                            if (avdIni.TryGetValue("target", out var avdTarget))
                            {
                                avd.Target = avdTarget;
                            }
                            if (configIni.TryGetValue("hw.device.name", out var avdDevice))
                            {
                                avd.Device = avdDevice;
                            }
                            if (configIni.TryGetValue("image.sysdir.1", out var avdBasedOn))
                            {
                                avd.SdkId = avdBasedOn?.Trim('\\', '/')?.Replace('\\', ';')?.Replace('/', ';');
                            }

                            return(avd);
                        }
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }

                return(null);
            }
Esempio n. 6
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public StartAvdControl(Avd avd)
     : base(string.Format("Starting {0}", avd.Name))
 {
     this.avd           = avd;
     CloseButtonVisible = true;
 }
Esempio n. 7
0
 public AvdEventArgs(Avd avd)
 {
     this.avd = avd;
 }
        /// <summary>
        /// Gets a human readable platform name
        /// </summary>
        private static string GetPlatform(Avd avd)
        {
            var framework = Frameworks.Instance.FirstOrDefault(x => x.Descriptor.Target == avd.Target);

            return((framework != null) ? framework.ToString() : avd.Target);
        }
Esempio n. 9
0
 /// <summary>
 /// Default ctor
 /// </summary>
 public EditAvdControl(Avd avd)
 {
     this.avd = avd;
     InitializeComponent();
 }