diff --git a/adbGUI/Forms/BackupRestore.cs b/adbGUI/Forms/BackupRestore.cs index f859cd4..b33c9ae 100644 --- a/adbGUI/Forms/BackupRestore.cs +++ b/adbGUI/Forms/BackupRestore.cs @@ -3,10 +3,10 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Globalization; using System.Windows.Forms; - using Methods; public partial class BackupRestore : Form { @@ -40,10 +40,9 @@ private void Btn_BackupStart_Click(object sender, EventArgs e) const string all = " -all"; var system = " -system"; - - if (cbo_BackupPackage.Checked == false) + if (!cbo_BackupPackage.Checked) { - if (txt_BackupPathTo.Text == "") + if (txt_BackupPathTo.Text?.Length == 0) { MessageBox.Show(@"Please select a destination!", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); @@ -62,11 +61,35 @@ private void Btn_BackupStart_Click(object sender, EventArgs e) { var package = cbx_BackupPackage.SelectedItem.ToString(); - if (txt_BackupPathTo.Text == "") + if (txt_BackupPathTo.Text?.Length == 0) + { MessageBox.Show(@"Please select a destination!", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } else + { _adb.StartProcessing("adb backup -apk " + package + name, _formMethods.SelectedDevice()); + } + } + } + + private void Btn_RestoreBrowse_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = @" .ab|*.ab"; + + if (openFileDialog.ShowDialog() == DialogResult.OK) txt_RestorePath.Text = openFileDialog.FileName; + } + + private void Btn_RestoreStart_Click(object sender, EventArgs e) + { + if (txt_RestorePath.Text?.Length == 0) + { + MessageBox.Show(@"Please select a file!", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + else + { + _adb.StartProcessing("adb restore \"" + txt_RestorePath.Text + "\"", _formMethods.SelectedDevice()); } } @@ -91,7 +114,7 @@ private void Cbo_BackupPackage_CheckedChanged(object sender, EventArgs e) if (!string.IsNullOrEmpty(output)) { - foreach (var item in output.Split(new[] {"\n"}, StringSplitOptions.RemoveEmptyEntries)) + foreach (var item in output.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries)) cbx_BackupPackage.Items.Add(item.Remove(0, 8)); cbx_BackupPackage.Sorted = true; @@ -112,21 +135,5 @@ private void Cbo_BackupPackage_CheckedChanged(object sender, EventArgs e) label8.Visible = false; } } - - private void Btn_RestoreStart_Click(object sender, EventArgs e) - { - if (txt_RestorePath.Text == "") - MessageBox.Show(@"Please select a file!", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); - else - _adb.StartProcessing("adb restore \"" + txt_RestorePath.Text + "\"", _formMethods.SelectedDevice()); - } - - private void Btn_RestoreBrowse_Click(object sender, EventArgs e) - { - openFileDialog.FileName = ""; - openFileDialog.Filter = @" .ab|*.ab"; - - if (openFileDialog.ShowDialog() == DialogResult.OK) txt_RestorePath.Text = openFileDialog.FileName; - } } } \ No newline at end of file diff --git a/adbGUI/Forms/Credits.resx b/adbGUI/Forms/Credits.resx index fcce381..938bda0 100644 --- a/adbGUI/Forms/Credits.resx +++ b/adbGUI/Forms/Credits.resx @@ -124,6 +124,6 @@ Elegant Themes: http://www.flaticon.com/authors/elegant-themes Freepik: http://www.freepik.com Dave Gandy: http://www.flaticon.com/authors/dave-gandy -Version at 06/04/2018 +Version at 29/05/2019 \ No newline at end of file diff --git a/adbGUI/Forms/Density.cs b/adbGUI/Forms/Density.cs index 81669a9..cc4b834 100644 --- a/adbGUI/Forms/Density.cs +++ b/adbGUI/Forms/Density.cs @@ -3,9 +3,9 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Windows.Forms; - using Methods; public partial class Density : Form { @@ -26,20 +26,11 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData) return true; } - private void Btn_showDpi_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb shell wm density", _formMethods.SelectedDevice()); - } + private void Btn_resetDpi_Click(object sender, EventArgs e) => _adb.StartProcessing("adb shell wm density reset", _formMethods.SelectedDevice()); - private void Btn_setDpi_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb shell wm density " + txt_phoneDpi.Text, _formMethods.SelectedDevice()); - } + private void Btn_setDpi_Click(object sender, EventArgs e) => _adb.StartProcessing("adb shell wm density " + txt_phoneDpi.Text, _formMethods.SelectedDevice()); - private void Btn_resetDpi_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb shell wm density reset", _formMethods.SelectedDevice()); - } + private void Btn_showDpi_Click(object sender, EventArgs e) => _adb.StartProcessing("adb shell wm density", _formMethods.SelectedDevice()); private void DpiChange_KeyDown(object sender, KeyEventArgs e) { diff --git a/adbGUI/Forms/FileOps.cs b/adbGUI/Forms/FileOps.cs index 27580ad..ef903d6 100644 --- a/adbGUI/Forms/FileOps.cs +++ b/adbGUI/Forms/FileOps.cs @@ -3,9 +3,9 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Windows.Forms; - using Methods; public partial class FileOps : Form { @@ -19,6 +19,34 @@ public FileOps(CmdProcess adbFrm, FormMethods formMethodsFrm) _formMethods = formMethodsFrm; } + private void Btn_FileOpsPullBrowse_Click(object sender, EventArgs e) + { + folderBrowserDialog.Description = @"Where should the file be saved?"; + + if (folderBrowserDialog.ShowDialog() == DialogResult.OK) + txt_FileOpsPullTo.Text = folderBrowserDialog.SelectedPath; + } + + private void Btn_FileOpsPullList_Click(object sender, EventArgs e) + { + var path = txt_FileOpsPullFrom.Text; + _adb.StartProcessing("adb shell ls -la " + path + " -F", _formMethods.SelectedDevice()); + } + + private void Btn_FileOpsPullPull_Click(object sender, EventArgs e) + { + if (txt_FileOpsPullTo.Text?.Length == 0 || txt_FileOpsPullFrom.Text?.Length == 0) + { + MessageBox.Show(@"Please select a file and chose destination!", @"Error", MessageBoxButtons.OK, + MessageBoxIcon.Error); + } + else + { + var s = "adb pull \"" + txt_FileOpsPullFrom.Text + "\" \"" + txt_FileOpsPullTo.Text + "\""; + _adb.StartProcessing(s, _formMethods.SelectedDevice()); + } + } + private void Btn_FileOpsPushBrowse_Click(object sender, EventArgs e) { openFileDialog.FileName = " "; //This is not a normal whitespace. ALT + 255 @@ -29,23 +57,13 @@ private void Btn_FileOpsPushBrowse_Click(object sender, EventArgs e) if (openFileDialog.ShowDialog() != DialogResult.OK) return; if (openFileDialog.SafeFileName == " ") //This is not a normal whitespace. ALT + 255 + { txt_FileOpsPushTo.Text = openFileDialog.FileName.Remove(openFileDialog.FileName.Length - 2, 2); - else - txt_FileOpsPushFrom.Text = openFileDialog.FileName; - } - - private void Btn_FileOpsPushPush_Click(object sender, EventArgs e) - { - if (txt_FileOpsPushTo.Text == "" || txt_FileOpsPushFrom.Text == "") - { - MessageBox.Show(@"Please select a file and chose destination!", @"Error", MessageBoxButtons.OK, - MessageBoxIcon.Error); } else { - var s = "adb push \"" + txt_FileOpsPushFrom.Text + "\"" + " \"" + txt_FileOpsPushTo.Text + "\""; - _adb.StartProcessing(s, _formMethods.SelectedDevice()); + txt_FileOpsPushFrom.Text = openFileDialog.FileName; } } @@ -55,32 +73,18 @@ private void Btn_FileOpsPushList_Click(object sender, EventArgs e) _adb.StartProcessing("adb shell ls -la " + path + " -F", _formMethods.SelectedDevice()); } - private void Btn_FileOpsPullBrowse_Click(object sender, EventArgs e) - { - folderBrowserDialog.Description = @"Where should the file be saved?"; - - if (folderBrowserDialog.ShowDialog() == DialogResult.OK) - txt_FileOpsPullTo.Text = folderBrowserDialog.SelectedPath; - } - - private void Btn_FileOpsPullPull_Click(object sender, EventArgs e) + private void Btn_FileOpsPushPush_Click(object sender, EventArgs e) { - if (txt_FileOpsPullTo.Text == "" || txt_FileOpsPullFrom.Text == "") + if (txt_FileOpsPushTo.Text?.Length == 0 || txt_FileOpsPushFrom.Text?.Length == 0) { MessageBox.Show(@"Please select a file and chose destination!", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { - var s = "adb pull \"" + txt_FileOpsPullFrom.Text + "\"" + " \"" + txt_FileOpsPullTo.Text + "\""; + var s = "adb push \"" + txt_FileOpsPushFrom.Text + "\" \"" + txt_FileOpsPushTo.Text + "\""; _adb.StartProcessing(s, _formMethods.SelectedDevice()); } } - - private void Btn_FileOpsPullList_Click(object sender, EventArgs e) - { - var path = txt_FileOpsPullFrom.Text; - _adb.StartProcessing("adb shell ls -la " + path + " -F", _formMethods.SelectedDevice()); - } } } \ No newline at end of file diff --git a/adbGUI/Forms/InstallUninstall.cs b/adbGUI/Forms/InstallUninstall.cs index afb247e..21d00ed 100644 --- a/adbGUI/Forms/InstallUninstall.cs +++ b/adbGUI/Forms/InstallUninstall.cs @@ -3,9 +3,9 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Windows.Forms; - using Methods; public partial class InstallUninstall : Form { @@ -20,6 +20,17 @@ public InstallUninstall(CmdProcess adbFrm, FormMethods formMethodsFrm) _formMethods = formMethodsFrm; } + private void Btn_InstallUninstallBrowse_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.CheckFileExists = true; + openFileDialog.CheckPathExists = true; + openFileDialog.Filter = @" .apk|*.apk"; + + if (openFileDialog.ShowDialog() == DialogResult.OK) + txt_InstallUninstallPackageInstall.Text = openFileDialog.FileName; + } + private void Btn_InstallUninstallInstall_Click(object sender, EventArgs e) { var s = "\"" + txt_InstallUninstallPackageInstall.Text + "\""; @@ -36,15 +47,13 @@ private void Btn_InstallUninstallInstall_Click(object sender, EventArgs e) } } - private void Btn_InstallUninstallBrowse_Click(object sender, EventArgs e) + private void Btn_InstallUninstallRefreshApps_Click(object sender, EventArgs e) { - openFileDialog.FileName = ""; - openFileDialog.CheckFileExists = true; - openFileDialog.CheckPathExists = true; - openFileDialog.Filter = @" .apk|*.apk"; - - if (openFileDialog.ShowDialog() == DialogResult.OK) - txt_InstallUninstallPackageInstall.Text = openFileDialog.FileName; + groupBox1.Enabled = false; + groupBox3.Enabled = false; + RefreshInstalledApps(); + groupBox1.Enabled = true; + groupBox3.Enabled = true; } private void Btn_InstallUninstallUninstall_Click(object sender, EventArgs e) @@ -56,15 +65,6 @@ private void Btn_InstallUninstallUninstall_Click(object sender, EventArgs e) RefreshInstalledApps(); } - private void Btn_InstallUninstallRefreshApps_Click(object sender, EventArgs e) - { - groupBox1.Enabled = false; - groupBox3.Enabled = false; - RefreshInstalledApps(); - groupBox1.Enabled = true; - groupBox3.Enabled = true; - } - private void RefreshInstalledApps() { cbx_InstallUninstallPackageUninstall.Items.Clear(); @@ -76,7 +76,7 @@ private void RefreshInstalledApps() if (!string.IsNullOrEmpty(output)) { - foreach (var item in output.Split(new[] {"\n"}, StringSplitOptions.RemoveEmptyEntries)) + foreach (var item in output.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries)) cbx_InstallUninstallPackageUninstall.Items.Add(item.Remove(0, 8)); cbx_InstallUninstallPackageUninstall.Sorted = true; @@ -85,7 +85,6 @@ private void RefreshInstalledApps() cbx_InstallUninstallPackageUninstall.SelectedIndex = 0; } - cbx_InstallUninstallPackageUninstall.Enabled = true; } } diff --git a/adbGUI/Forms/LogcatAdvanced.cs b/adbGUI/Forms/LogcatAdvanced.cs index 352d091..3cab49a 100644 --- a/adbGUI/Forms/LogcatAdvanced.cs +++ b/adbGUI/Forms/LogcatAdvanced.cs @@ -3,11 +3,11 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Diagnostics; using System.Threading; using System.Windows.Forms; - using Methods; public partial class LogcatAdvanced : Form, IDisposable { @@ -40,13 +40,31 @@ public LogcatAdvanced(CmdProcess adbFrm, FormMethods formMethodsFrm) GC.SuppressFinalize(this); } - private void AltAdb_CommandExecutionStarted() { - BeginInvoke((MethodInvoker) delegate + _ = BeginInvoke((MethodInvoker)delegate + { + if (FormMethods.AlwaysClearConsole()) _lOut.rtb_console.Clear(); + }); + } + + private void Btn_LogcatAdvancedClearBuffers_Click(object sender, EventArgs e) + { + var alternativeBuffers = GetAlternativeBufferString(); + + if (!string.IsNullOrEmpty(alternativeBuffers)) + _adb.StartProcessing("adb logcat" + alternativeBuffers + " -c", _formMethods.SelectedDevice()); + } + + private void Btn_LogcatAdvancedNewBufferSize_Click(object sender, EventArgs e) => _adb.StartProcessing("adb logcat -g", _formMethods.SelectedDevice()); + + private void Btn_LogcatAdvancedSetBufferSize_Click(object sender, EventArgs e) + { + if (!string.IsNullOrEmpty(txt_LogcatAdvancedBufferSize.Text)) { - if (FormMethods.AlwaysClearConsole()) _lOut.rtb_console.Clear(); - }); + _adb.StartProcessing("adb logcat -G " + txt_LogcatAdvancedBufferSize.Text.Trim(), + _formMethods.SelectedDevice()); + } } private void Btn_LogcatAdvancedStart_Click(object sender, EventArgs e) @@ -61,7 +79,6 @@ private void Btn_LogcatAdvancedStart_Click(object sender, EventArgs e) var outputFormat = GetOutputFormat(); var outputFilter = GetOutputFilter(); - if (cbo_LogcatAdvancedSeparateWindow.Checked) { _lOut.Show(); @@ -79,26 +96,18 @@ private void Btn_LogcatAdvancedStart_Click(object sender, EventArgs e) } } - private void GetProcess_OutputDataReceived(object sender, DataReceivedEventArgs e) + private void Btn_LogcatAdvancedStatistics_Click(object sender, EventArgs e) { - try + if (cbo_LogcatAdvancedSeparateWindow.Checked) { - BeginInvoke((MethodInvoker) delegate { _lOut.rtb_console.AppendText(e.Data + Environment.NewLine); }); + _lOut.Show(); + + _altAdb.StartProcessing("adb logcat -S", _formMethods.SelectedDevice()); } - catch (Exception ex) + else { - MessageBox.Show(ex.Message); + _adb.StartProcessing("adb logcat -S", _formMethods.SelectedDevice()); } - - Thread.Sleep(3); - } - - private void Btn_LogcatAdvancedClearBuffers_Click(object sender, EventArgs e) - { - var alternativeBuffers = GetAlternativeBufferString(); - - if (!string.IsNullOrEmpty(alternativeBuffers)) - _adb.StartProcessing("adb logcat" + alternativeBuffers + " -c", _formMethods.SelectedDevice()); } private void Btn_LogcatAdvancedStop_Click(object sender, EventArgs e) @@ -109,28 +118,6 @@ private void Btn_LogcatAdvancedStop_Click(object sender, EventArgs e) _adb.StopProcessing(); } - private void Btn_LogcatAdvancedNewBufferSize_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb logcat -g", _formMethods.SelectedDevice()); - } - - private void Btn_LogcatAdvancedSetBufferSize_Click(object sender, EventArgs e) - { - if (!string.IsNullOrEmpty(txt_LogcatAdvancedBufferSize.Text)) - _adb.StartProcessing("adb logcat -G " + txt_LogcatAdvancedBufferSize.Text.Trim(), - _formMethods.SelectedDevice()); - } - - private void Txt_LogcatAdvancedRecentNumberOfLines_KeyDown(object sender, KeyEventArgs e) - { - txt_LogcatAdvancedQuitAfterNumberLines.Clear(); - } - - private void Txt_LogcatAdvancedQuitAfterNumberLines_KeyDown(object sender, KeyEventArgs e) - { - txt_LogcatAdvancedRecentNumberOfLines.Clear(); - } - private void Cbo_LogcatAdvancedAlternativeBuffersAll_CheckedChanged(object sender, EventArgs e) { if (cbo_LogcatAdvancedAlternativeBuffersAll.Checked) @@ -180,11 +167,6 @@ private void Cbo_LogcatAdvancedAlternativeBuffersDefault_CheckedChanged(object s } } - private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - Process.Start(linkLabel1.Text); - } - private string GetAlternativeBufferString() { var alternativeBuffers = ""; @@ -200,29 +182,6 @@ private string GetAlternativeBufferString() return alternativeBuffers; } - private string GetRegularExpressionString() - { - var regEx = ""; - - if (string.IsNullOrEmpty(txt_LogcatAdvancedRegularExpressions.Text.Trim())) return regEx; - if (txt_LogcatAdvancedRegularExpressions.Text.Contains("|")) - regEx = " -e \"" + txt_LogcatAdvancedRegularExpressions.Text.Trim() + "\""; - else - regEx = " -e " + txt_LogcatAdvancedRegularExpressions.Text.Trim(); - - return regEx; - } - - private string GetQuitAfterNumberOfLines() - { - var countNumber = ""; - - if (!string.IsNullOrEmpty(txt_LogcatAdvancedQuitAfterNumberLines.Text.Trim())) - countNumber = " -m " + txt_LogcatAdvancedQuitAfterNumberLines.Text.Trim(); - - return countNumber; - } - private string GetBypassRegEx() { var bypassRegEx = ""; @@ -233,36 +192,6 @@ private string GetBypassRegEx() return bypassRegEx; } - private string GetPidFilter() - { - var pidFilter = ""; - - if (!string.IsNullOrEmpty(txt_LogcatAdvancedPidFilter.Text.Trim())) - pidFilter = " --pid=" + txt_LogcatAdvancedPidFilter.Text.Trim(); - - return pidFilter; - } - - private string GetRecentNumberOfLines() - { - var recentNumberOfLines = ""; - - if (!string.IsNullOrEmpty(txt_LogcatAdvancedRecentNumberOfLines.Text.Trim())) - recentNumberOfLines = " -t " + txt_LogcatAdvancedRecentNumberOfLines.Text.Trim(); - - return recentNumberOfLines; - } - - private string GetSpecifiedTime() - { - var specifiedTime = ""; - - if (!string.IsNullOrEmpty(txt_LogcatAdvancedSpecifiedTime.Text.Trim())) - specifiedTime = " -T \"" + txt_LogcatAdvancedSpecifiedTime.Text.Trim() + "\""; - - return specifiedTime; - } - private string GetOutputFilter() { var outputFilter = ""; @@ -272,22 +201,16 @@ private string GetOutputFilter() if (opt_LogcatAdvancedFilterVerbose.Checked) outputFilter += " *:V"; - else if (opt_LogcatAdvancedFilterDebug.Checked) outputFilter += " *:D"; - else if (opt_LogcatAdvancedFilterInfo.Checked) outputFilter += " *:I"; - else if (opt_LogcatAdvancedFilterWarning.Checked) outputFilter += " *:W"; - else if (opt_LogcatAdvancedFilterError.Checked) outputFilter += " *:E"; - else if (opt_LogcatAdvancedFilterFatal.Checked) outputFilter += " *:F"; - else if (opt_LogcatAdvancedFilterSilent.Checked) outputFilter += " *:S"; return outputFilter; @@ -316,24 +239,78 @@ private string GetOutputFormat() return opt_LogcatAdvancedOutputFormatBrief.Checked ? " -v brief" : ""; } - private void Btn_LogcatAdvancedStatistics_Click(object sender, EventArgs e) + private string GetPidFilter() { - if (cbo_LogcatAdvancedSeparateWindow.Checked) - { - _lOut.Show(); + var pidFilter = ""; - _altAdb.StartProcessing("adb logcat -S", _formMethods.SelectedDevice()); + if (!string.IsNullOrEmpty(txt_LogcatAdvancedPidFilter.Text.Trim())) + pidFilter = " --pid=" + txt_LogcatAdvancedPidFilter.Text.Trim(); + + return pidFilter; + } + + private void GetProcess_OutputDataReceived(object sender, DataReceivedEventArgs e) + { + try + { + BeginInvoke((MethodInvoker)delegate { _lOut.rtb_console.AppendText(e.Data + Environment.NewLine); }); } - else + catch (Exception ex) { - _adb.StartProcessing("adb logcat -S", _formMethods.SelectedDevice()); + MessageBox.Show(ex.Message); } + + Thread.Sleep(3); + } + + private string GetQuitAfterNumberOfLines() + { + var countNumber = ""; + + if (!string.IsNullOrEmpty(txt_LogcatAdvancedQuitAfterNumberLines.Text.Trim())) + countNumber = " -m " + txt_LogcatAdvancedQuitAfterNumberLines.Text.Trim(); + + return countNumber; + } + + private string GetRecentNumberOfLines() + { + var recentNumberOfLines = ""; + + if (!string.IsNullOrEmpty(txt_LogcatAdvancedRecentNumberOfLines.Text.Trim())) + recentNumberOfLines = " -t " + txt_LogcatAdvancedRecentNumberOfLines.Text.Trim(); + + return recentNumberOfLines; + } + + private string GetRegularExpressionString() + { + const string regEx = ""; + + if (string.IsNullOrEmpty(txt_LogcatAdvancedRegularExpressions.Text.Trim())) return regEx; + return (txt_LogcatAdvancedRegularExpressions.Text.Contains("|")) ? " -e \"" + txt_LogcatAdvancedRegularExpressions.Text.Trim() + "\"" : " -e " + txt_LogcatAdvancedRegularExpressions.Text.Trim(); + } + + private string GetSpecifiedTime() + { + var specifiedTime = ""; + + if (!string.IsNullOrEmpty(txt_LogcatAdvancedSpecifiedTime.Text.Trim())) + specifiedTime = " -T \"" + txt_LogcatAdvancedSpecifiedTime.Text.Trim() + "\""; + + return specifiedTime; } + private void LinkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) => Process.Start(linkLabel1.Text); + private void LogcatAdvanced_FormClosing(object sender, FormClosingEventArgs e) { _lOut.Close(); _altAdb.GetProcess.Close(); } + + private void Txt_LogcatAdvancedQuitAfterNumberLines_KeyDown(object sender, KeyEventArgs e) => txt_LogcatAdvancedRecentNumberOfLines.Clear(); + + private void Txt_LogcatAdvancedRecentNumberOfLines_KeyDown(object sender, KeyEventArgs e) => txt_LogcatAdvancedQuitAfterNumberLines.Clear(); } } \ No newline at end of file diff --git a/adbGUI/Forms/MainForm.cs b/adbGUI/Forms/MainForm.cs index 4994ecc..8a4b8d6 100644 --- a/adbGUI/Forms/MainForm.cs +++ b/adbGUI/Forms/MainForm.cs @@ -3,13 +3,13 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Diagnostics; using System.Globalization; using System.Text.RegularExpressions; using System.Threading; using System.Windows.Forms; - using Methods; public partial class MainForm : Form, IDisposable { @@ -32,7 +32,7 @@ public MainForm() // pass formMethods the created Form this _formMethods = new FormMethods(this); - _cmdProcess.GetProcess.Start(); + _ = _cmdProcess.GetProcess.Start(); // Begin and cancel so the RichTextBox will stay clean. Otherwise it will start in line 2. _cmdProcess.GetProcess.BeginOutputReadLine(); @@ -48,7 +48,7 @@ public MainForm() rtb_console.Clear(); _cmdProcess.CommandExecutionStarted += CommandExecutionStarted; - _cmdProcess.ClearConsole += () => { rtb_console.Clear(); }; + _cmdProcess.ClearConsole += () => rtb_console.Clear(); // Select custom command control cbx_customCommand.Select(); @@ -56,6 +56,7 @@ public MainForm() // Start the watcher which fires if adb devices changed AdbDeviceWatcher.DeviceChanged += DwAdb_DeviceChanged; AdbDeviceWatcher.StartDeviceWatcher(); + Text = "ADBGUI build at 03/06/2019"; } public new void Dispose() @@ -69,25 +70,21 @@ public MainForm() protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { - if (keyData != Keys.Escape) return base.ProcessCmdKey(ref msg, keyData); - _cmdProcess.StopProcessing(); - return true; - } + if (keyData != Keys.Escape) + { + return base.ProcessCmdKey(ref msg, keyData); + } - private void CommandExecutionStarted() - { - BeginInvoke((MethodInvoker) delegate { rtb_console.Clear(); }); + _ = _cmdProcess.StopProcessing(); + return true; } - private void DwAdb_DeviceChanged(AdbDeviceList e) + private void AppendReceivedData(object sender, DataReceivedEventArgs e) { try { - BeginInvoke((MethodInvoker) delegate - { - _formMethods.RefreshAdbSerialsInCombobox(e.GetDevicesList); - txt_DevicesAdb.Text = e.GetDevicesRaw.ToUpper().TrimEnd(); - }); + _ = BeginInvoke((MethodInvoker)delegate { rtb_console.AppendText(e.Data + Environment.NewLine); }); + Thread.Sleep(2); } catch (Exception ex) { @@ -95,18 +92,15 @@ private void DwAdb_DeviceChanged(AdbDeviceList e) } } - private void Btn_consoleStop_Click(object sender, EventArgs e) - { - _cmdProcess.StopProcessing(); - } + private void Btn_consoleStop_Click(object sender, EventArgs e) => _ = _cmdProcess.StopProcessing(); private void Btn_executeCommand_Click(object sender, EventArgs e) { - var command = cbx_customCommand.Text; + string command = cbx_customCommand.Text; if (!string.IsNullOrEmpty(command)) { - cbx_customCommand.Items.Add(command); + _ = cbx_customCommand.Items.Add(command); _cmdProcess.StartProcessing(command, _formMethods.SelectedDevice()); } @@ -116,12 +110,25 @@ private void Btn_executeCommand_Click(object sender, EventArgs e) } } - private void AppendReceivedData(object sender, DataReceivedEventArgs e) + private void Cbx_customCommand_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Return) + { + btn_executeCommand.PerformClick(); + } + } + + private void CommandExecutionStarted() => _ = BeginInvoke((MethodInvoker)delegate { rtb_console.Clear(); }); + + private void DwAdb_DeviceChanged(AdbDeviceList e) { try { - BeginInvoke((MethodInvoker) delegate { rtb_console.AppendText(e.Data + Environment.NewLine); }); - Thread.Sleep(2); + _ = BeginInvoke((MethodInvoker)delegate + { + _formMethods.RefreshAdbSerialsInCombobox(e.GetDevicesList); + txt_DevicesAdb.Text = e.GetDevicesRaw.ToUpper().TrimEnd(); + }); } catch (Exception ex) { @@ -129,16 +136,15 @@ private void AppendReceivedData(object sender, DataReceivedEventArgs e) } } + private void MainForm_FormClosed(object sender, FormClosedEventArgs e) => FormMethods.KillServer(); + private void MainForm_Load(object sender, EventArgs e) { trv_commandTreeView.ExpandAll(); trv_commandTreeView.SelectedNode = trv_commandTreeView.Nodes[0]; } - private void Rtb_console_Resize(object sender, EventArgs e) - { - rtb_console.ScrollToCaret(); - } + private void Rtb_console_Resize(object sender, EventArgs e) => rtb_console.ScrollToCaret(); private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) { @@ -147,11 +153,17 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) { string tag; - if (string.IsNullOrEmpty(tag = trv_commandTreeView.SelectedNode.Tag.ToString())) return; + if (string.IsNullOrEmpty(tag = trv_commandTreeView.SelectedNode.Tag.ToString())) + { + return; + } + if (tag.StartsWith("adb ") || tag.StartsWith("fastboot ")) + { _cmdProcess.StartProcessing(tag, _formMethods.SelectedDevice()); - + } else if (tag.StartsWith("#")) + { switch (tag) { case "#prop": @@ -166,15 +178,17 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) .Replace(' ', '_').Replace(':', '.'); saveFileDialog.Filter = @"PNG Image(.png)|*.png"; if (saveFileDialog.ShowDialog() == DialogResult.OK) + { _cmdProcess.StartProcessing( "adb shell screencap -p > " + saveFileDialog.FileName, _formMethods.SelectedDevice()); + } } break; case "#screenrecord": - if (_screenRecord == null || _screenRecord.IsDisposed) + if (_screenRecord?.IsDisposed != false) { _screenRecord = new ScreenRecord(_cmdProcess, _formMethods); _screenRecord.Show(); @@ -187,7 +201,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#spoofmac": - if (_spoofMac == null || _spoofMac.IsDisposed) + if (_spoofMac?.IsDisposed != false) { _spoofMac = new SpoofMac(_cmdProcess, _formMethods); _spoofMac.Show(); @@ -200,7 +214,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#resolution": - if (_resolutionChange == null || _resolutionChange.IsDisposed) + if (_resolutionChange?.IsDisposed != false) { _resolutionChange = new ResolutionChange(_cmdProcess, _formMethods); _resolutionChange.Show(); @@ -213,7 +227,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#density": - if (_densityChange == null || _densityChange.IsDisposed) + if (_densityChange?.IsDisposed != false) { _densityChange = new Density(_cmdProcess, _formMethods); _densityChange.Show(); @@ -226,7 +240,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#files": - if (_fileOps == null || _fileOps.IsDisposed) + if (_fileOps?.IsDisposed != false) { _fileOps = new FileOps(_cmdProcess, _formMethods); _fileOps.Show(); @@ -239,7 +253,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#installuninstall": - if (_installUninstall == null || _installUninstall.IsDisposed) + if (_installUninstall?.IsDisposed != false) { _installUninstall = new InstallUninstall(_cmdProcess, _formMethods); _installUninstall.Show(); @@ -252,7 +266,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#sideload": - if (_sideLoad == null || _sideLoad.IsDisposed) + if (_sideLoad?.IsDisposed != false) { _sideLoad = new Sideload(_cmdProcess, _formMethods); _sideLoad.Show(); @@ -265,7 +279,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#backuprestore": - if (_backupRestore == null || _backupRestore.IsDisposed) + if (_backupRestore?.IsDisposed != false) { _backupRestore = new BackupRestore(_cmdProcess, _formMethods); _backupRestore.Show(); @@ -278,7 +292,7 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) break; case "#logcatadvanced": - if (_logcatAdvanced == null || _logcatAdvanced.IsDisposed) + if (_logcatAdvanced?.IsDisposed != false) { _logcatAdvanced = new LogcatAdvanced(_cmdProcess, _formMethods); _logcatAdvanced.Show(); @@ -293,9 +307,11 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) case "#credits": new Credits().ShowDialog(); break; + default: throw new ArgumentOutOfRangeException(); } + } } catch (Exception ex) { @@ -303,35 +319,21 @@ private void Trv_commandTreeView_DoubleClick(object sender, EventArgs e) } } - private void Cbx_customCommand_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.Return) btn_executeCommand.PerformClick(); - } + private void Tsb_AdbRoot_Click(object sender, EventArgs e) => _cmdProcess.StartProcessing("adb root", _formMethods.SelectedDevice()); - private void MainForm_FormClosed(object sender, FormClosedEventArgs e) - { - // Kill the process - // todo rename Forms - try - { - //adb.StopProcessing(); - _cmdProcess.GetProcess.Kill(); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); - } - } + private void Tsb_AdbUnroot_Click(object sender, EventArgs e) => _cmdProcess.StartProcessing("adb unroot", _formMethods.SelectedDevice()); + + private void Tsb_KillServer_Click(object sender, EventArgs e) => FormMethods.KillServer(); private void Tsb_OpenShell_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(_formMethods.SelectedDevice())) { - var serial = ""; + string serial = ""; serial += "-s " + _formMethods.SelectedDevice() + " "; - using (var process = new Process + using (Process process = new Process { StartInfo = new ProcessStartInfo { @@ -340,7 +342,7 @@ private void Tsb_OpenShell_Click(object sender, EventArgs e) } }) { - process.Start(); + _ = process.Start(); } } else @@ -350,39 +352,6 @@ private void Tsb_OpenShell_Click(object sender, EventArgs e) } } - private void Tsm_WirelessConnect_Click(object sender, EventArgs e) - { - var r = new Regex(@"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}$"); - - var ipadress = tst_IpAdress.Text; - - if (r.Match(ipadress).Success) - _cmdProcess.StartProcessing("adb connect " + ipadress, ""); - else - MessageBox.Show(@"Please enter a valid IP adress", @"Error", MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - - private void Tsm_WirelessDisconnect_Click(object sender, EventArgs e) - { - _cmdProcess.StartProcessing("adb disconnect", ""); - } - - private void Tsb_KillServer_Click(object sender, EventArgs e) - { - FormMethods.KillServer(); - } - - private void Tsb_AdbRoot_Click(object sender, EventArgs e) - { - _cmdProcess.StartProcessing("adb root", _formMethods.SelectedDevice()); - } - - private void Tsb_AdbUnroot_Click(object sender, EventArgs e) - { - _cmdProcess.StartProcessing("adb unroot", _formMethods.SelectedDevice()); - } - private void Tsb_Power_Click(object sender, EventArgs e) { switch (sender.ToString()) @@ -390,27 +359,53 @@ private void Tsb_Power_Click(object sender, EventArgs e) case "Reboot Normal": _cmdProcess.StartProcessing("adb reboot", _formMethods.SelectedDevice()); break; + case "Reboot Recovery": _cmdProcess.StartProcessing("adb reboot recovery", _formMethods.SelectedDevice()); break; + case "Reboot Bootloader": _cmdProcess.StartProcessing("adb reboot bootloader", _formMethods.SelectedDevice()); break; + case "Reboot Fastboot": _cmdProcess.StartProcessing("adb reboot fastboot", _formMethods.SelectedDevice()); break; + case "Sideload Mode": _cmdProcess.StartProcessing("adb reboot sideload", _formMethods.SelectedDevice()); break; + case "Shutdown": _cmdProcess.StartProcessing("adb shell reboot -p", _formMethods.SelectedDevice()); break; + case "Sleep": _cmdProcess.StartProcessing("adb shell input keyevent POWER", _formMethods.SelectedDevice()); break; + default: throw new ArgumentOutOfRangeException(); } } + + private void Tsm_WirelessConnect_Click(object sender, EventArgs e) + { + Regex r = new Regex(@"^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{1,5}$"); + + string ipadress = tst_IpAdress.Text; + + if (r.Match(ipadress).Success) + { + _cmdProcess.StartProcessing("adb connect " + ipadress, ""); + } + else + { + MessageBox.Show(@"Please enter a valid IP adress", @"Error", MessageBoxButtons.OK, + MessageBoxIcon.Information); + } + } + + private void Tsm_WirelessDisconnect_Click(object sender, EventArgs e) => _cmdProcess.StartProcessing("adb disconnect", ""); } } \ No newline at end of file diff --git a/adbGUI/Forms/ResolutionChange.cs b/adbGUI/Forms/ResolutionChange.cs index 38a5553..73cfa74 100644 --- a/adbGUI/Forms/ResolutionChange.cs +++ b/adbGUI/Forms/ResolutionChange.cs @@ -3,9 +3,9 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Windows.Forms; - using Methods; public partial class ResolutionChange : Form { @@ -26,20 +26,11 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData) return true; } - private void Btn_ResolutionChangeSet_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb shell wm size " + txt_phoneResolution.Text, _formMethods.SelectedDevice()); - } + private void Btn_ResolutionChangeReset_Click(object sender, EventArgs e) => _adb.StartProcessing("adb shell wm size reset", _formMethods.SelectedDevice()); - private void Btn_ResolutionChangeReset_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb shell wm size reset", _formMethods.SelectedDevice()); - } + private void Btn_ResolutionChangeSet_Click(object sender, EventArgs e) => _adb.StartProcessing("adb shell wm size " + txt_phoneResolution.Text, _formMethods.SelectedDevice()); - private void Btn_ResolutionChangeShow_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb shell wm size", _formMethods.SelectedDevice()); - } + private void Btn_ResolutionChangeShow_Click(object sender, EventArgs e) => _adb.StartProcessing("adb shell wm size", _formMethods.SelectedDevice()); private void Txt_phoneResolution_KeyDown(object sender, KeyEventArgs e) { diff --git a/adbGUI/Forms/ScreenRecord.cs b/adbGUI/Forms/ScreenRecord.cs index 45b903c..47605ca 100644 --- a/adbGUI/Forms/ScreenRecord.cs +++ b/adbGUI/Forms/ScreenRecord.cs @@ -3,9 +3,9 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Windows.Forms; - using Methods; public partial class ScreenRecord : Form { @@ -27,16 +27,6 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData) return true; } - private void Trb_screenRecord_Scroll(object sender, EventArgs e) - { - lbl_screenRecordSeconds.Text = trb_screenRecordTimeLimit.Value.ToString(); - } - - private void Cbo_ScreenRecordCustomResolution_CheckedChanged(object sender, EventArgs e) - { - txt_screenRecordResolution.Enabled = cbo_ScreenRecordCustomResolution.Checked; - } - private void Btn_screenRecordStart_Click(object sender, EventArgs e) { var size = ""; @@ -52,7 +42,6 @@ private void Btn_screenRecordStart_Click(object sender, EventArgs e) if (txt_ScreenRecordBitrate.Text != "") bitrate = " --bit-rate " + txt_ScreenRecordBitrate.Text + " "; - saveFileDialog.FileName = "record"; saveFileDialog.Filter = @"Video File (*.mp4)|*.mp4"; @@ -76,6 +65,8 @@ private void Btn_SreenRecordAbort_Click(object sender, EventArgs e) _adb.StopProcessing(); } + private void Cbo_ScreenRecordCustomResolution_CheckedChanged(object sender, EventArgs e) => txt_screenRecordResolution.Enabled = cbo_ScreenRecordCustomResolution.Checked; + private void Timer_Tick(object sender, EventArgs e) { if (_time > 1) @@ -89,5 +80,7 @@ private void Timer_Tick(object sender, EventArgs e) btn_screenRecordStart.Text = @"Start"; } } + + private void Trb_screenRecord_Scroll(object sender, EventArgs e) => lbl_screenRecordSeconds.Text = trb_screenRecordTimeLimit.Value.ToString(); } } \ No newline at end of file diff --git a/adbGUI/Forms/SetProp.cs b/adbGUI/Forms/SetProp.cs index 63ad191..b84a360 100644 --- a/adbGUI/Forms/SetProp.cs +++ b/adbGUI/Forms/SetProp.cs @@ -3,9 +3,9 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Windows.Forms; - using Methods; public partial class SetProp : Form { diff --git a/adbGUI/Forms/Sideload.cs b/adbGUI/Forms/Sideload.cs index c7bdaad..e6c6556 100644 --- a/adbGUI/Forms/Sideload.cs +++ b/adbGUI/Forms/Sideload.cs @@ -3,9 +3,9 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Windows.Forms; - using Methods; public partial class Sideload : Form { @@ -20,6 +20,14 @@ public Sideload(CmdProcess adbFrm, FormMethods formMethodsFrm) _formMethods = formMethodsFrm; } + private void Btn_SideloadBrowse_Click(object sender, EventArgs e) + { + openFileDialog.FileName = ""; + openFileDialog.Filter = @" .zip|*.zip"; + + if (openFileDialog.ShowDialog() == DialogResult.OK) txt_SideloadPath.Text = openFileDialog.FileName; + } + private void Btn_SideloadStart_Click(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txt_SideloadPath.Text)) @@ -32,13 +40,5 @@ private void Btn_SideloadStart_Click(object sender, EventArgs e) MessageBox.Show(@"Please select a file!", @"Error", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - - private void Btn_SideloadBrowse_Click(object sender, EventArgs e) - { - openFileDialog.FileName = ""; - openFileDialog.Filter = @" .zip|*.zip"; - - if (openFileDialog.ShowDialog() == DialogResult.OK) txt_SideloadPath.Text = openFileDialog.FileName; - } } } \ No newline at end of file diff --git a/adbGUI/Forms/SpoofMac.cs b/adbGUI/Forms/SpoofMac.cs index 11e53e5..ca0c1c1 100644 --- a/adbGUI/Forms/SpoofMac.cs +++ b/adbGUI/Forms/SpoofMac.cs @@ -3,10 +3,10 @@ namespace adbGUI.Forms { + using Methods; using System; using System.Text.RegularExpressions; using System.Windows.Forms; - using Methods; public partial class SpoofMac : Form { @@ -27,6 +27,11 @@ protected override bool ProcessCmdKey(ref Message msg, Keys keyData) return true; } + private void Btn_SpoofMacReset_Click(object sender, EventArgs e) + { + _adb.StartProcessing("adb shell su root ifconfig wlan0 down", _formMethods.SelectedDevice()); + } + private void Btn_SpoofMacSet_Click(object sender, EventArgs e) { var s = txt_SpoofMacAdress.Text; @@ -39,11 +44,6 @@ private void Btn_SpoofMacSet_Click(object sender, EventArgs e) MessageBox.Show(@"Please enter a valid MAC address", @"Error"); } - private void Btn_SpoofMacReset_Click(object sender, EventArgs e) - { - _adb.StartProcessing("adb shell su root ifconfig wlan0 down", _formMethods.SelectedDevice()); - } - private void Btn_SpoofMacShow_Click(object sender, EventArgs e) { _adb.StartProcessing("adb shell su root cat /sys/class/net/wlan0/address", _formMethods.SelectedDevice()); diff --git a/adbGUI/Methods/AdbDeviceWatcher.cs b/adbGUI/Methods/AdbDeviceWatcher.cs index b65ae40..014e69a 100644 --- a/adbGUI/Methods/AdbDeviceWatcher.cs +++ b/adbGUI/Methods/AdbDeviceWatcher.cs @@ -10,57 +10,25 @@ namespace adbGUI.Methods public static class AdbDeviceWatcher { - public delegate void DeviceChangedHandler(AdbDeviceList e); + private static string _devicesRawNew; private static string _devicesRawOld; - private static string _devicesRawNew; + private static Thread _tr; - private static int _connectedDevices; + public delegate void DeviceChangedHandler(AdbDeviceList e); - private static Thread _tr; public static event DeviceChangedHandler DeviceChanged; + public static int ConnectedAdbDevices { get; private set; } + public static void StartDeviceWatcher() { - _tr = new Thread(Watcher) - { - IsBackground = true - }; + _tr = new Thread(Watcher) { IsBackground = true }; _tr.Start(); } - private static void Watcher() - { - while (true) - { - if (DeviceChanged != null) - { - _devicesRawNew = StartProcessingGetDevices("adb devices -l"); - - if (_devicesRawNew != _devicesRawOld) - { - _devicesRawOld = _devicesRawNew; - - var dl = new AdbDeviceList - { - GetDevicesRaw = _devicesRawNew, - GetDevicesList = ParseDevicesL(_devicesRawNew) - }; - - _connectedDevices = dl.GetDevicesList.Count; - - DeviceChanged?.Invoke(dl); - } - } - - Thread.Sleep(750); - } - - // ReSharper disable once FunctionNeverReturns - } - private static List ParseDevicesL(string input) { var listofserials = new List(); @@ -72,9 +40,11 @@ private static List ParseDevicesL(string input) { var line = s.ReadLine(); - if (line != null && (line.StartsWith("List") || line.StartsWith("\r\n") || line.Trim() == "" || - line.StartsWith("*"))) + if (line != null && (line.StartsWith("List") || line.StartsWith("\r\n") || line.Trim()?.Length == 0 + || line.StartsWith("*"))) + { continue; + } if (line != null && line.IndexOf(' ') != -1) listofserials.Add(line.Substring(0, line.IndexOf(' '))); @@ -84,11 +54,6 @@ private static List ParseDevicesL(string input) return listofserials; } - public static int GetConnectedAdbDevices() - { - return _connectedDevices; - } - private static string StartProcessingGetDevices(string command) { using (var process2 = new Process @@ -105,10 +70,40 @@ private static string StartProcessingGetDevices(string command) } }) { - process2.Start(); + _ = process2.Start(); return process2.StandardOutput.ReadToEnd(); } } + + private static void Watcher() + { + while (true) + { + if (DeviceChanged != null) + { + _devicesRawNew = StartProcessingGetDevices("adb devices -l"); + + if (_devicesRawNew != _devicesRawOld) + { + _devicesRawOld = _devicesRawNew; + + var dl = new AdbDeviceList + { + GetDevicesRaw = _devicesRawNew, + GetDevicesList = ParseDevicesL(_devicesRawNew) + }; + + ConnectedAdbDevices = dl.GetDevicesList.Count; + + DeviceChanged?.Invoke(dl); + } + } + + Thread.Sleep(750); + } + + // ReSharper disable once FunctionNeverReturns + } } } \ No newline at end of file diff --git a/adbGUI/Methods/CheckAndDownloadDependencies.cs b/adbGUI/Methods/CheckAndDownloadDependencies.cs index 8db196a..16b2367 100644 --- a/adbGUI/Methods/CheckAndDownloadDependencies.cs +++ b/adbGUI/Methods/CheckAndDownloadDependencies.cs @@ -19,9 +19,15 @@ public static class CheckAndDownloadDependencies private static readonly string[] StrFiles = {"adb.exe", "AdbWinApi.dll", "AdbWinUsbApi.dll", "fastboot.exe", "libwinpthread-1.dll"}; + private delegate void ExtractionCompletedHandler(); + + private static event ExtractionCompletedHandler ExtractionCompleted; + + private static bool CheckIfFilesExist => StrFiles?.All(File.Exists) == true; + public static void Start() { - if (CheckIfFilesExist()) return; + if (CheckIfFilesExist) return; var dialogResult = MessageBox.Show( @"Enviroment Variables not set and files missing. Should all dependencies be downloaded and extracted?", @@ -40,29 +46,57 @@ public static void Start() } break; + case DialogResult.No: Environment.Exit(0); break; + case DialogResult.None: break; + case DialogResult.OK: break; + case DialogResult.Cancel: break; + case DialogResult.Abort: break; + case DialogResult.Retry: break; + case DialogResult.Ignore: break; + default: - throw new ArgumentOutOfRangeException(); + throw new ArgumentOutOfRangeException("Err"); } } - private static bool CheckIfFilesExist() + private static void DependenciesChecker_ExtractionCompleted() { - return StrFiles != null && StrFiles.All(File.Exists); + string extractedFilesPath = Path.GetTempPath() + "platform-tools"; + if (extractedFilesPath != null) + { + foreach (var item in StrFiles) + { + try + { + File.Copy(extractedFilesPath + "\\" + item, item); + } + catch (Exception ex) + { + MessageBox.Show(ex.Message); + } + } + } + + ExtractionCompleted -= DependenciesChecker_ExtractionCompleted; + + MessageBox.Show(@"Files downloaded, decompressed and moved successfully", @"Completed", + MessageBoxButtons.OK, + MessageBoxIcon.Information); } private static void DownloadFiles() @@ -71,20 +105,12 @@ private static void DownloadFiles() using (var wc = new WebClient()) { wc.DownloadFileCompleted += Wc_DownloadFileCompleted; - wc.DownloadFileTaskAsync( + _ = wc.DownloadFileTaskAsync( new Uri("https://dl.google.com/android/repository/platform-tools-latest-windows.zip"), DownloadToTempPath); } } - private static void Wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) - { - var tr = new Thread(ExtractFiles); - tr.Start(); - } - - private static event ExtractionCompletedHandler ExtractionCompleted; - private static void ExtractFiles() { if (Directory.Exists(Path.GetTempPath() + "platform-tools")) @@ -95,28 +121,6 @@ private static void ExtractFiles() ExtractionCompleted?.Invoke(); } - private static void DependenciesChecker_ExtractionCompleted() - { - var extractedFilesPath = Path.GetTempPath() + "platform-tools"; - - - foreach (var item in StrFiles) - try - { - File.Copy(extractedFilesPath + "\\" + item, item); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message); - } - - ExtractionCompleted -= DependenciesChecker_ExtractionCompleted; - - MessageBox.Show(@"Files downloaded, decompressed and moved successfully", @"Completed", - MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - - private delegate void ExtractionCompletedHandler(); + private static void Wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) => new Thread(ExtractFiles).Start(); } } \ No newline at end of file diff --git a/adbGUI/Methods/CmdProcess.cs b/adbGUI/Methods/CmdProcess.cs index da6b462..8031899 100644 --- a/adbGUI/Methods/CmdProcess.cs +++ b/adbGUI/Methods/CmdProcess.cs @@ -12,20 +12,25 @@ namespace adbGUI.Methods { public class CmdProcess : IDisposable { + // Thanks to Vitaliy Fedorchenko + private const int CtrlCEvent = 0; + + public CmdProcess() => GetProcess.EnableRaisingEvents = true; + public delegate void ClearConsoleHandler(); public delegate void CommandExecutionStartedHandler(); public delegate void CommandExecutionStoppedHandler(); - // Thanks to Vitaliy Fedorchenko - private const int CtrlCEvent = 0; + // Delegate type to be used as the Handler Routine for SCCH + private delegate bool ConsoleCtrlDelegate(uint ctrlType); + public event ClearConsoleHandler ClearConsole; - public CmdProcess() - { - GetProcess.EnableRaisingEvents = true; - } + public event CommandExecutionStartedHandler CommandExecutionStarted; + + public event CommandExecutionStoppedHandler CommandExecutionStopped; public Process GetProcess { get; } = new Process { @@ -44,37 +49,62 @@ public CmdProcess() } }; - public void Dispose() + public static string StartProcessingInThread(string command, string serialnumber) { - GetProcess?.Dispose(); - GC.SuppressFinalize(this); - } + if (command.StartsWith("adb")) + { + if (AdbDeviceWatcher.ConnectedAdbDevices > 0 || command.EndsWith("help") || + command.EndsWith("version") || command.StartsWith("adb connect") || + command.StartsWith("adb disconnect")) + { + string output = ""; - [DllImport("kernel32.dll")] - internal static extern bool GenerateConsoleCtrlEvent(uint dwCtrlEvent, uint dwProcessGroupId); + Thread t = new Thread(() => output = StartProcessingReadToEnd(command, serialnumber)) { IsBackground = true }; - [DllImport("kernel32.dll", SetLastError = true)] - internal static extern bool AttachConsole(uint dwProcessId); + t.Start(); - [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)] - internal static extern bool FreeConsole(); + while (t.IsAlive) + { + Application.DoEvents(); + } - [DllImport("kernel32.dll")] - private static extern bool SetConsoleCtrlHandler(ConsoleCtrlDelegate handlerRoutine, bool add); + return output; + } + else + { + return null; + } + } - public event CommandExecutionStartedHandler CommandExecutionStarted; + { + string output = ""; - public event CommandExecutionStoppedHandler CommandExecutionStopped; + Thread t = new Thread(() => output = StartProcessingReadToEnd(command, serialnumber)) { IsBackground = true }; - public event ClearConsoleHandler ClearConsole; + t.Start(); + + while (t.IsAlive) + { + Application.DoEvents(); + } + + return output; + } + } + + public void Dispose() + { + GetProcess?.Dispose(); + GC.SuppressFinalize(this); + } public void StartProcessing(string command, string serialnumber) { if (command.StartsWith("adb")) { - if (AdbDeviceWatcher.GetConnectedAdbDevices() > 0 || command.EndsWith("help") || - command.EndsWith("version") || command.StartsWith("adb connect") || - command.StartsWith("adb disconnect")) + if (AdbDeviceWatcher.ConnectedAdbDevices > 0 || command.EndsWith("help") + || command.EndsWith("version") || command.StartsWith("adb connect") + || command.StartsWith("adb disconnect")) { StopProcessing(); Thread.Sleep(50); @@ -87,12 +117,10 @@ public void StartProcessing(string command, string serialnumber) @"Error - No Device Found", MessageBoxButtons.OK, MessageBoxIcon.Error); } } - else if (command.StartsWith("cls")) { ClearConsole?.Invoke(); } - else { StopProcessing(); @@ -104,11 +132,18 @@ public void StartProcessing(string command, string serialnumber) public bool StopProcessing() { - if (!AttachConsole((uint) GetProcess.Id)) return false; + if (!AttachConsole((uint)GetProcess.Id)) + { + return false; + } + SetConsoleCtrlHandler(null, true); try { - if (!GenerateConsoleCtrlEvent(CtrlCEvent, 0)) return false; + if (!GenerateConsoleCtrlEvent(CtrlCEvent, 0)) + { + return false; + } } finally { @@ -119,50 +154,64 @@ public bool StopProcessing() return true; } - public static string StartProcessingInThread(string command, string serialnumber) - { - if (command.StartsWith("adb")) - if (AdbDeviceWatcher.GetConnectedAdbDevices() > 0 || command.EndsWith("help") || - command.EndsWith("version") || command.StartsWith("adb connect") || - command.StartsWith("adb disconnect")) - { - var output = ""; + [DllImport("kernel32.dll", SetLastError = true)] + internal static extern bool AttachConsole(uint dwProcessId); - var t = new Thread(() => { output = StartProcessingReadToEnd(command, serialnumber); }) - { - IsBackground = true - }; + [DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)] + internal static extern bool FreeConsole(); - t.Start(); + [DllImport("kernel32.dll")] + internal static extern bool GenerateConsoleCtrlEvent(uint dwCtrlEvent, uint dwProcessGroupId); - while (t.IsAlive) Application.DoEvents(); + private static string CommandParser(string command, string serialnumber) + { + if (command.StartsWith("adb ")) + { + command = command.Remove(0, 4); - return output; + if (command.Contains("shell")) + { + command = command.Remove(0, 5); + command = "exec-out" + command; } - else + + if (command.StartsWith("logcat")) { - return null; + command = "exec-out " + command; } - { - var output = ""; + string serial = ""; - var t = new Thread(() => { output = StartProcessingReadToEnd(command, serialnumber); }) + if (!string.IsNullOrEmpty(serialnumber)) + { + serial += "-s " + serialnumber + " "; + } + else { - IsBackground = true - }; + serial = ""; + } - t.Start(); + return "adb " + serial + command; + } - while (t.IsAlive) Application.DoEvents(); + if (!command.StartsWith("fastboot ")) + { + return command; + } - return output; + { + command = command.Remove(0, 9); + + return "fastboot " + command; } } + [DllImport("kernel32.dll")] + private static extern bool SetConsoleCtrlHandler(ConsoleCtrlDelegate handlerRoutine, bool add); + private static string StartProcessingReadToEnd(string command, string serialnumber) { - var process2 = new Process + Process process2 = new Process { StartInfo = new ProcessStartInfo { @@ -176,48 +225,9 @@ private static string StartProcessingReadToEnd(string command, string serialnumb } }; - process2.Start(); + _ = process2.Start(); return process2.StandardOutput.ReadToEnd(); } - - private static string CommandParser(string command, string serialnumber) - { - if (command.StartsWith("adb ")) - { - command = command.Remove(0, 4); - - if (command.Contains("shell")) - { - command = command.Remove(0, 5); - command = "exec-out" + command; - } - - if (command.StartsWith("logcat")) command = "exec-out " + command; - - var serial = ""; - - if (!string.IsNullOrEmpty(serialnumber)) - serial += "-s " + serialnumber + " "; - else - serial = ""; - - var fullcommand = "adb " + serial + command; - - return fullcommand; - } - - if (!command.StartsWith("fastboot ")) return command; - { - command = command.Remove(0, 9); - - var fullcommand = "fastboot " + command; - - return fullcommand; - } - } - - // Delegate type to be used as the Handler Routine for SCCH - private delegate bool ConsoleCtrlDelegate(uint ctrlType); } } \ No newline at end of file diff --git a/adbGUI/Methods/FormMethods.cs b/adbGUI/Methods/FormMethods.cs index 95197d4..3db4a1e 100644 --- a/adbGUI/Methods/FormMethods.cs +++ b/adbGUI/Methods/FormMethods.cs @@ -1,11 +1,11 @@ // This is an open source non-commercial project. Dear PVS-Studio, please check it. // PVS-Studio Static Code Analyzer for C, C++ and C#: http://www.viva64.com +using adbGUI.Forms; using System; using System.Collections.Generic; using System.Diagnostics; using System.Windows.Forms; -using adbGUI.Forms; namespace adbGUI.Methods { @@ -20,24 +20,9 @@ public FormMethods(MainForm f) _frm = f; } - public void Dispose() - { - _adb?.Dispose(); - GC.SuppressFinalize(this); - } - - public string SelectedDevice() - { - return _frm.tsc_ConnectedDevices.Items.Count == 0 ? "" : _frm.tsc_ConnectedDevices.SelectedItem.ToString(); - } - - public void RefreshAdbSerialsInCombobox(List devices) + public static bool AlwaysClearConsole() { - _frm.tsc_ConnectedDevices.Items.Clear(); - - foreach (var item in devices) _frm.tsc_ConnectedDevices.Items.Add(item); - - _frm.tsc_ConnectedDevices.SelectedIndex = _frm.tsc_ConnectedDevices.Items.Count - 1; + return true; } public static void KillServer() @@ -52,9 +37,23 @@ public static void KillServer() } } - public static bool AlwaysClearConsole() + public void Dispose() { - return true; + _adb?.Dispose(); + GC.SuppressFinalize(this); } + + public void RefreshAdbSerialsInCombobox(List devices) + { + _frm.tsc_ConnectedDevices.Items.Clear(); + + foreach (var item in devices) _frm.tsc_ConnectedDevices.Items.Add(item); + + _frm.tsc_ConnectedDevices.SelectedIndex = _frm.tsc_ConnectedDevices.Items.Count - 1; + } + + public string SelectedDevice() => _frm.tsc_ConnectedDevices.Items.Count == 0 + ? string.Empty + : _frm.tsc_ConnectedDevices.SelectedItem.ToString(); } } \ No newline at end of file diff --git a/adbGUI/Program.cs b/adbGUI/Program.cs index 2ad744f..8322718 100644 --- a/adbGUI/Program.cs +++ b/adbGUI/Program.cs @@ -3,10 +3,10 @@ namespace adbGUI { - using System; - using System.Windows.Forms; using Forms; using Methods; + using System; + using System.Windows.Forms; internal static class Program { diff --git a/adbGUI/Properties/AssemblyInfo.cs b/adbGUI/Properties/AssemblyInfo.cs index 806ad47..01b998d 100644 --- a/adbGUI/Properties/AssemblyInfo.cs +++ b/adbGUI/Properties/AssemblyInfo.cs @@ -4,7 +4,7 @@ using System.Reflection; using System.Runtime.InteropServices; -// Allgemeine Informationen über eine Assembly werden über die folgenden +// Allgemeine Informationen über eine Assembly werden über die folgenden // Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern, // die mit einer Assembly verknüpft sind. [assembly: AssemblyTitle("adbGUI")] @@ -16,8 +16,8 @@ [assembly: AssemblyTrademark("")] [assembly: AssemblyCulture("")] -// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar -// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von +// Durch Festlegen von ComVisible auf "false" werden die Typen in dieser Assembly unsichtbar +// für COM-Komponenten. Wenn Sie auf einen Typ in dieser Assembly von // COM zugreifen müssen, legen Sie das ComVisible-Attribut für diesen Typ auf "true" fest. [assembly: ComVisible(false)] @@ -27,11 +27,11 @@ // Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten: // // Hauptversion -// Nebenversion +// Nebenversion // Buildnummer // Revision // -// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern +// Sie können alle Werte angeben oder die standardmäßigen Build- und Revisionsnummern // übernehmen, indem Sie "*" eingeben: // [assembly: AssemblyVersion("1.0.*")] [assembly: AssemblyVersion("2.0.0.1")]