private void uninstallToolStripButton_Click(object sender, EventArgs e) { if (this.packagesList.SelectedItems.Count == 1) { ApkPackageListViewItem lvi = packagesList.SelectedItems[0] as ApkPackageListViewItem; if (lvi != null && lvi.ApkInformation != null && !string.IsNullOrEmpty(lvi.ApkInformation.Package)) { InstallDialog install = new InstallDialog((IPluginHost)this.ParentForm, InstallDialog.InstallMode.Uninstall, lvi.ApkInformation); if (install.ShowDialog(this) == DialogResult.OK) { RemoveListViewItem(packagesList.Items, lvi); } /*string package = lvi.ApkInformation.Package; * string name = string.IsNullOrEmpty ( lvi.ApkInformation.Label ) ? lvi.ApkInformation.Package : lvi.ApkInformation.Label; * * if ( CommandRunner.Instance.UninstallApk ( package ) ) { * try { * RemoveListViewItem ( packagesList.Items, lvi ); * TaskDialog.MessageBox ( "Uninstall Complete", string.Format ( "Successfully uninstalled {0}", name ), * string.Empty, TaskDialogButtons.OK, SysIcons.Information ); * } catch ( Exception ex ) { * Console.WriteLine ( "[{0}] {1}", this.GetType ( ).Name, ex.ToString ( ) ); * * TaskDialog.MessageBox ( "Uninstall Error", string.Format ( Properties.Resources.UninstallErrorMessage, name ), * ex.Message, TaskDialogButtons.OK, SysIcons.Error ); * } * } else { * TaskDialog.MessageBox ( "Install Error", string.Format ( Properties.Resources.UninstallErrorMessage, name ), * Properties.Resources.UninstallErrorGenericMessage, TaskDialogButtons.OK, SysIcons.Error ); * }*/ } } }
public async Task RunAsync() { var apks = CommandRunner.Instance.GetInstalledPackagesApkInformation( ); this.LogDebug("Initializing APK Cache"); foreach (var item in apks) { var lvi = new ApkPackageListViewItem(item); // cant uninstall if we dont know the package if (string.IsNullOrEmpty(lvi.ApkInformation.Package)) { continue; } string keyName = lvi.ApkInformation.DevicePath; if (keyName.StartsWith("/")) { keyName = keyName.Substring(1); } keyName = keyName.Replace("/", "."); if (!Program.SystemIcons.ContainsKey(keyName)) { // get apk and extract the app icon var img = CommandRunner.Instance.GetLocalApkIconImage(item.LocalApk); if (img == null) { img = DroidExplorer.Resources.Images.package32; } else { using (System.IO.MemoryStream stream = new System.IO.MemoryStream()) { string fileName = System.IO.Path.Combine(System.IO.Path.Combine(CommandRunner.Settings.UserDataDirectory, Cache.APK_IMAGE_CACHE), string.Format("{0}.png", keyName)); img.Save(stream, ImageFormat.Png); stream.Position = 0; using (System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write)) { byte[] buffer = new byte[2048]; int readBytes = 0; while ((readBytes = await stream.ReadAsync(buffer, 0, buffer.Length)) != 0) { await fs.WriteAsync(buffer, 0, readBytes); } } } } //SystemImageListHost.Instance.AddFileTypeImage ( keyName, img, img ); } } }
private void BuildListView( ) { try { if (this.InvokeRequired) { this.Invoke(new SetControlVisibleDelegate(SetControlVisible), new object[] { loadingPanel, true }); this.Invoke(new DroidExplorer.UI.GenericDelegate(packagesList.Items.Clear)); } else { SetControlVisible(loadingPanel, true); packagesList.Items.Clear( ); } List <DroidExplorer.Core.AaptBrandingCommandResult> apks = CommandRunner.Instance.GetInstalledPackagesApkInformation( ); foreach (var item in apks) { ApkPackageListViewItem lvi = new ApkPackageListViewItem(item); // cant uninstall if we dont know the package if (string.IsNullOrEmpty(lvi.ApkInformation.Package)) { continue; } string keyName = lvi.ApkInformation.DevicePath; if (keyName.StartsWith("/")) { keyName = keyName.Substring(1); } keyName = keyName.Replace("/", "."); if (!Program.SystemIcons.ContainsKey(keyName)) { // get apk and extract the app icon Image img = CommandRunner.Instance.GetLocalApkIconImage(item.LocalApk); if (img == null) { img = DroidExplorer.Resources.Images.package32; } else { using (System.IO.MemoryStream stream = new System.IO.MemoryStream( )) { string fileName = System.IO.Path.Combine(System.IO.Path.Combine(CommandRunner.Settings.UserDataDirectory, Cache.APK_IMAGE_CACHE), string.Format("{0}.png", keyName)); img.Save(stream, ImageFormat.Png); stream.Position = 0; using (System.IO.FileStream fs = new System.IO.FileStream(fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write)) { byte[] buffer = new byte[2048]; int readBytes = 0; while ((readBytes = stream.Read(buffer, 0, buffer.Length)) != 0) { fs.Write(buffer, 0, readBytes); } } } } SystemImageListHost.Instance.AddFileTypeImage(keyName, img, img); } if (this.InvokeRequired) { this.Invoke(new SetListViewItemImageIndexDelegate(this.SetListViewItemImageIndex), new object[] { lvi, Program.SystemIcons[keyName] }); this.Invoke(new AddListViewItemDelegate(this.AddListViewItem), new object[] { packagesList, lvi }); } else { SetListViewItemImageIndex(lvi, Program.SystemIcons[keyName]); AddListViewItem(packagesList, lvi); } } } catch (Exception ex) { this.LogError(ex.Message, ex); } finally { if (this.InvokeRequired) { this.Invoke(new SetControlVisibleDelegate(SetControlVisible), new object[] { loadingPanel, false }); } else { SetControlVisible(loadingPanel, false); } } }