Ejemplo n.º 1
0
        private async Task<AppData> LoadModernAndLegacyAppData(Windows.ApplicationModel.Package item, StorageFolder saveLogoLocation)
        {
            AppData data = new AppData();
            try
            {
                data.FamilyName = item.Id.FamilyName;

                if (familyNameAppData.ContainsKey(data.FamilyName))
                {
                    familyNameAppData[data.FamilyName].PackageId = item.Id.FullName; //Refresh package id.

                    data.PackageId = "";
                    return data;
                }

                IReadOnlyList<Windows.ApplicationModel.Core.AppListEntry> x = await item.GetAppListEntriesAsync();

                if ((x == null) || (x.Count == 0))
                    return null;

                data.DisplayName = (x.First().DisplayInfo.DisplayName);

                data.PackageId = item.Id.FullName;
                data.PackageRootFolder = item.InstalledLocation.Path;

                data.IsLegacyApp = data.PackageRootFolder[data.PackageRootFolder.Length - 1] == '}';

                data.PackageDataFolder = await GetDataFolder(data);

                if ((await saveLogoLocation.TryGetItemAsync(data.FamilyName + ".png")) == null)
                {
                    WriteableBitmap bmp = null;
                    try
                    {
                        var stream = await x.First().DisplayInfo.GetLogo(new Size(50, 50)).OpenReadAsync();
                        BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);
                        bmp = new WriteableBitmap((int)decoder.PixelWidth, (int)decoder.PixelHeight);
                        bmp.SetSource(stream);

                        await bmp.SaveAsync(saveLogoLocation, data.FamilyName + ".png");
                    }
                    catch { }
                }

                data.LogoPath = System.IO.Path.Combine(saveLogoLocation.Path, data.FamilyName + ".png");

                try
                {
                    if (data.IsLegacyApp)
                        data.Publisher = await TryGetPublisherName_Legacy(item);
                    else
                        data.Publisher = await TryGetPublisherName_Modern(item);
                }
                catch { }

                return data;
            }
            catch { }

            return null;
        }
Ejemplo n.º 2
0
        private async Task <AppData> LoadModernAndLegacyAppData(Windows.ApplicationModel.Package item, StorageFolder saveLogoLocation)
        {
            AppData data = new AppData();

            try
            {
                data.FamilyName = item.Id.FamilyName;

                if (familyNameAppData.ContainsKey(data.FamilyName))
                {
                    familyNameAppData[data.FamilyName].PackageId = item.Id.FullName; //Refresh package id.

                    data.PackageId = "";
                    return(data);
                }

                //
                // Сводка:
                //     Перечисляет упакованные приложения на устройстве. Возвращаются только упакованные
                //     приложения, зарегистрированные для текущего пользователя.
                //
                // Возврат:
                //     Список упакованных приложений вместе с их отображаемым именем, описанием и логотипом.
                IReadOnlyList <Windows.ApplicationModel.Core.AppListEntry> x = await item.GetAppListEntriesAsync();

                if ((x == null) || (x.Count == 0))
                {
                    return(null);
                }

                data.DisplayName = (x.First().DisplayInfo.DisplayName);

                data.PackageId         = item.Id.FullName;
                data.PackageRootFolder = item.InstalledLocation.Path;

                data.IsLegacyApp = data.PackageRootFolder[data.PackageRootFolder.Length - 1] == '}';

                data.PackageDataFolder = await GetDataFolder(data);

                if ((await saveLogoLocation.TryGetItemAsync(data.FamilyName + ".png")) == null)
                {
                    WriteableBitmap bmp = null;
                    try
                    {
                        var stream = await x.First().DisplayInfo.GetLogo(new Size(50, 50)).OpenReadAsync();

                        BitmapDecoder decoder = await BitmapDecoder.CreateAsync(stream);

                        bmp = new WriteableBitmap((int)decoder.PixelWidth, (int)decoder.PixelHeight);
                        bmp.SetSource(stream);

                        //await bmp.SaveAsync(saveLogoLocation, data.FamilyName + ".png");
                    }
                    catch { }
                }

                data.LogoPath = System.IO.Path.Combine(saveLogoLocation.Path, data.FamilyName + ".png");

                try
                {
                    if (data.IsLegacyApp)
                    {
                        data.Publisher = await TryGetPublisherName_Legacy(item);
                    }
                    else
                    {
                        data.Publisher = await TryGetPublisherName_Modern(item);
                    }
                }
                catch { }

                return(data);
            }
            catch { }

            return(null);
        }