protected override void Run() { if (!MonoDroidFramework.EnsureSdksInstalled()) { return; } var proj = DefaultUploadToDeviceHandler.GetActiveExecutableMonoDroidProject(); var configSel = IdeApp.Workspace.ActiveConfiguration; OperationHandler createApk = delegate { using (var monitor = new MonoDevelop.Ide.ProgressMonitoring.MessageDialogProgressMonitor()) { MonoDroidUtility.SignAndCopy(monitor, proj, configSel); } }; if (proj.NeedsBuilding(configSel)) { IdeApp.ProjectOperations.Build(proj).Completed += createApk; } else { createApk(null); } }
protected override void Run() { if (!MonoDroidFramework.EnsureSdksInstalled()) { return; } MonoDroidFramework.Toolbox.StartAvdManager(); }
//may block while it's showing a GUI. project MUST be built before calling this public static MonoDroidUploadOperation SignAndUpload(IProgressMonitor monitor, MonoDroidProject project, ConfigurationSelector configSel, bool forceReplace, ref AndroidDevice device) { var conf = project.GetConfiguration(configSel); var opMon = new AggregatedOperationMonitor(monitor); InvokeSynch(() => MonoDroidFramework.EnsureSdksInstalled()); IAsyncOperation signOp = null; if (project.PackageNeedsSigning(configSel)) { ClearUploadFlags(conf); signOp = project.SignPackage(configSel); opMon.AddOperation(signOp); } if (device == null) { device = InvokeSynch(() => ChooseDevice(null)); } if (device == null) { opMon.Dispose(); return(null); } if (!device.IsEmulator && MonoDroidFramework.CheckTrial()) { opMon.Dispose(); return(null); } //copture the device for a later anonymous method AndroidDevice dev = device; bool replaceIfExists = forceReplace || !GetUploadFlag(conf, device); var uploadOp = Upload(device, conf.ApkSignedPath, conf.PackageName, signOp, replaceIfExists); opMon.AddOperation(uploadOp); uploadOp.Completed += delegate(IAsyncOperation op) { if (op.Success) { SetUploadFlag(conf, dev); } opMon.Dispose(); }; return(uploadOp); }
protected override void Run(object dataItem) { if (!MonoDroidFramework.EnsureSdksInstalled()) { return; } var proj = DefaultUploadToDeviceHandler.GetActiveExecutableMonoDroidProject(); var conf = (MonoDroidProjectConfiguration)proj.GetConfiguration(IdeApp.Workspace.ActiveConfiguration); var device = MonoDroidUtility.ChooseDevice(null); if (device != null) { proj.SetDeviceTarget(conf, device.ID); } }
public static IAsyncOperation Sign(IProgressMonitor monitor, MonoDroidProject project, ConfigurationSelector configSel) { var conf = project.GetConfiguration(configSel); var opMon = new AggregatedOperationMonitor(monitor); InvokeSynch(() => MonoDroidFramework.EnsureSdksInstalled()); IAsyncOperation signOp = null; if (project.PackageNeedsSigning(configSel)) { ClearUploadFlags(conf); signOp = project.SignPackage(configSel); signOp.Completed += delegate { opMon.Dispose(); }; return(signOp); } return(Core.Execution.NullProcessAsyncOperation.Success); }
protected override void Run() { if (!MonoDroidFramework.EnsureSdksInstalled()) { return; } var configSel = IdeApp.Workspace.ActiveConfiguration; var proj = GetActiveExecutableMonoDroidProject(); OperationHandler upload = delegate { using (var monitor = new MonoDevelop.Ide.ProgressMonitoring.MessageDialogProgressMonitor()) { AndroidDevice device = null; var conf = (MonoDroidProjectConfiguration)proj.GetConfiguration(configSel); var deviceId = proj.GetDeviceTarget(conf); if (deviceId != null) { device = MonoDroidFramework.DeviceManager.GetDevice(deviceId); } if (device == null) { proj.SetDeviceTarget(conf, null); } MonoDroidUtility.SignAndUpload(monitor, proj, configSel, true, ref device); } }; if (proj.NeedsBuilding(configSel)) { IdeApp.ProjectOperations.Build(proj).Completed += upload; } else { upload(null); } }
protected override void Run() { if (!MonoDroidFramework.EnsureSdksInstalled()) { return; } // TODO: We may should check the current build profile and // show a warning if we are in a debug mode. var configSel = IdeApp.Workspace.ActiveConfiguration; var proj = DefaultUploadToDeviceHandler.GetActiveExecutableMonoDroidProject(); var conf = proj.GetConfiguration(configSel); OperationHandler signOp = delegate { using (var monitor = new MonoDevelop.Ide.ProgressMonitoring.MessageDialogProgressMonitor()) { var dlg = new MonoDevelop.MonoDroid.Gui.MonoDroidPublishDialog() { ApkPath = conf.ApkPath, BaseDirectory = proj.BaseDirectory }; if (MessageService.ShowCustomDialog(dlg) == (int)Gtk.ResponseType.Ok) { MonoDroidUtility.PublishPackage(monitor, proj, configSel, dlg.SigningOptions, conf.ApkPath, dlg.DestinationApkPath, dlg.CreateNewKey, dlg.DName, dlg.KeyValidity * 365); } }; }; if (proj.NeedsBuilding(configSel)) { IdeApp.ProjectOperations.Build(proj).Completed += signOp; } else { signOp(null); } }