/// <summary> /// Returns information about all available applications supplemented with badge counter data and flag indicates /// whether app was installed by current user or not. /// </summary> /// <param name="applicationListCb">Delegate to call on every application retrieval.</param> public async void GetAppList(AddAppToListDelegate applicationListCb) { var myCert = PackageManager.GetPackage(Application.Current.ApplicationInfo.PackageId)? .Certificates[CertificateType.Author].Signer; IEnumerable <ApplicationInfo> installedApplications = await ApplicationManager.GetInstalledApplicationsAsync(); foreach (ApplicationInfo tizenAppInfo in installedApplications) { if (tizenAppInfo.IsNoDisplay) { continue; } Package pkg; try { pkg = PackageManager.GetPackage(tizenAppInfo.PackageId); } catch (Exception e) { Debug.WriteLine($"Error getting application {tizenAppInfo.ApplicationId} information: {e.Message}"); continue; } var appSignerCert = pkg?.Certificates[CertificateType.Author].Signer; if (appSignerCert == null) { continue; } bool isEnabled = appSignerCert.Equals(myCert); var appInfo = new AppInfo( appName: tizenAppInfo.Label, appId: tizenAppInfo.ApplicationId, isAvailable: isEnabled, badgeCounter: 0); try { Badge badge = BadgeControl.Find(appInfo.AppId); if (badge != null) { appInfo.BadgeCounter = Convert.ToDouble(badge.Count); } } catch (Exception e) { Debug.WriteLine($"Error getting badge for {appInfo.AppId}: {e.Message}"); } applicationListCb(appInfo); } }
/// <summary> /// Returns information about all available applications which are selectable from application menu. /// </summary> /// <param name="applicationListCb">Delegate to call on every application retrieval.</param> public async void GetAppList(AddAppToListDelegate applicationListCb) { IEnumerable <ApplicationInfo> installedApplications = await ApplicationManager.GetInstalledApplicationsAsync(); foreach (ApplicationInfo app in installedApplications) { if (!app.IsNoDisplay) { applicationListCb(new AppInfo(app.Label, app.ApplicationId)); } } }
/// <summary> /// Obtains application list. /// </summary> /// <param name="applicationListCb">Delegate called on every obtained application.</param> public static void GetAppList(AddAppToListDelegate applicationListCb) { DependencyService.Get <IAppListService>().GetAppList(applicationListCb); }