private void UpdatePickedApp(AppPackageSetting app, BindableProperty pickedAppProperty, IList <InstalledApplicationInfo> installedApplications) { InstalledApplicationInfo pickedApp = this.GetValue(pickedAppProperty) as InstalledApplicationInfo; // If we already have something set, don't do anything if (pickedApp != null) { return; } // See if we can find the app in AppSettings for this property string appId; string packageName; AppSettings.GetAppPackageInfo(app, out appId, out packageName); if (string.IsNullOrEmpty(appId) || string.IsNullOrEmpty(packageName)) { // no app set in settings return; } // Try to find the app in the list. InstalledApplicationInfo installedApplicationInfo = installedApplications.FirstOrDefault((info) => (appId == info.AppId) && (packageName == info.PackageName)); if (installedApplicationInfo != null) { this.SetValue(pickedAppProperty, installedApplicationInfo); return; } // Couldn't find a matching app. Just leave us as null - we won't overwrite the previous setting // even if the presses "save" }
private async Task LaunchApp(AppPackageSetting app) { string appId; string packageName; if (app == AppPackageSetting.ExperienceApp && AppSettings.StopAllAppsBeforeExperienceLaunch) { await this.StopAllAppsImpl(); } AppSettings.GetAppPackageInfo(app, out appId, out packageName); if (!string.IsNullOrEmpty(appId) && !string.IsNullOrEmpty(packageName) && this.activeDevice != null) { await this.activeDevice.LaunchApplicationAsync(appId, packageName); } }
private static string AppIdKey(AppPackageSetting app) { return(appPackage + app.ToString() + "AppId"); }
private static string AppPackageNameKey(AppPackageSetting app) { return(appPackage + app.ToString() + "PackageName"); }
public static void SetAppPackageInfo(AppPackageSetting app, string appId, string packageName) { SetLocalSetting(appId, AppIdKey(app)); SetLocalSetting(packageName, AppPackageNameKey(app)); }
public static void GetAppPackageInfo(AppPackageSetting app, out string appId, out string packageName) { GetLocalSetting(out appId, null, AppIdKey(app)); GetLocalSetting(out packageName, null, AppPackageNameKey(app)); }