public void UpdateAppCache() { Dictionary <string, UwpFunc.AppInfo> AppInfos = new Dictionary <string, UwpFunc.AppInfo>(); IEnumerable <Windows.ApplicationModel.Package> packages = (IEnumerable <Windows.ApplicationModel.Package>)packageManager.FindPackages(); foreach (var package in packages) { string appSID = AppPackageToSid(package.Id.FamilyName).ToLower(); UwpFunc.AppInfo info = GetInfo(package, appSID); if (info != null) { if (!AppInfos.ContainsKey(appSID)) { AppInfos.Add(appSID, info); } /* * UwpFunc.AppInfo old_info; * if (AppInfos.TryGetValue(appSID, out old_info)) * AppLog.Debug("Warning an app with the SID: {0} is already listed", appSID); */ } } AppInfosBySidLock.EnterWriteLock(); AppInfosBySid = AppInfos; AppInfosBySidLock.ExitWriteLock(); FullListFetched = true; }
public UwpFunc.AppInfo GetAppPkgBySid(string SID) { UwpFunc.AppInfo AppContainer = null; if (AppPackages.Count == 0 || (!AppPackages.TryGetValue(SID, out AppContainer) && (DateTime.Now - LastAppReload).TotalMilliseconds > 250)) { AppPackages = App.client.GetAllAppPkgs(true); AppPackages.TryGetValue(SID, out AppContainer); } return(AppContainer); }
public UwpFunc.AppInfo GetAppPkgBySid(string SID) { if (UwpFunc.IsWindows7OrLower || SID == null) { return(null); } UwpFunc.AppInfo AppContainer = null; if (AppPackages.Count == 0 || (!AppPackages.TryGetValue(SID, out AppContainer) && (DateTime.Now - LastAppReload).TotalMilliseconds > 250)) { LoadAppPkgs(); AppPackages.TryGetValue(SID, out AppContainer); } return(AppContainer); }
public UwpFunc.AppInfo GetAppInfoBySid(string sid) { UwpFunc.AppInfo info = null; AppInfosBySidLock.EnterReadLock(); AppInfosBySid.TryGetValue(sid, out info); AppInfosBySidLock.ExitReadLock(); if (info != null) { return(info); } string appPackageID = SidToAppPackage(sid); if (appPackageID == null || appPackageID.Length == 0) { return(null); } IEnumerable <Windows.ApplicationModel.Package> packages; try { packages = packageManager.FindPackages(appPackageID); } catch { return(null); } foreach (var package in packages) { info = GetInfo(package, sid); if (info != null) { AppInfosBySidLock.EnterWriteLock(); if (!AppInfosBySid.ContainsKey(sid)) { AppInfosBySid.Add(sid, info); } AppInfosBySidLock.ExitWriteLock(); break; } } return(info); }
public bool LoadAppPkgs(bool bWithPackageDetails = false) { AppPackages.Clear(); LastAppReload = DateTime.Now; if (UwpFunc.IsWindows7OrLower) { return(false); } var watch = System.Diagnostics.Stopwatch.StartNew(); var AppContainers = GetAppContainers(); foreach (var AppContainer in AppContainers) { string SID = AppContainer.appContainerSid.ToString(); if (AppPackages.ContainsKey(SID)) { continue; } UwpFunc.AppInfo AppInfo = new UwpFunc.AppInfo(); AppInfo.ID = AppContainer.appContainerName; AppInfo.SID = SID; AppInfo.Name = AppContainer.displayName; if (bWithPackageDetails) { var AppInfo2 = App.engine?.PkgMgr?.GetAppInfoByID(AppInfo.ID); AppInfo.Logo = AppInfo2?.Logo; } AppPackages.Add(SID, AppInfo); } watch.Stop(); var elapsedMs = watch.ElapsedMilliseconds; AppLog.Debug("LoadAppPkgs took: " + elapsedMs + "ms"); return(true); }
protected byte[] PutAppInfo(UwpFunc.AppInfo info) { return(PutXmlObj(info)); }