Overhauled UI (WIP)
Overhauled UI (left side navigation bar, device information, search, background, text colors) for a cleaner and more modern-looking interface. Removed no longer used resources. Adjusted layout and visibility of certain panels and controls for a cleaner interface. TODO: - Finish the full UI overhaul. - Fix MainForm Designer so it doesn't override the changes.
This commit is contained in:
@@ -181,6 +181,11 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="ADB.cs" />
|
<Compile Include="ADB.cs" />
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
</Compile>
|
||||||
<Compile Include="RoundButton.cs">
|
<Compile Include="RoundButton.cs">
|
||||||
<SubType>Component</SubType>
|
<SubType>Component</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -266,14 +271,9 @@
|
|||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="Properties\Resources.resx">
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
<Generator>PublicResXFileCodeGenerator</Generator>
|
<Generator>PublicResXFileCodeGenerator</Generator>
|
||||||
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
<Compile Include="Properties\Resources.Designer.cs">
|
|
||||||
<AutoGen>True</AutoGen>
|
|
||||||
<DependentUpon>Resources.resx</DependentUpon>
|
|
||||||
<DesignTime>True</DesignTime>
|
|
||||||
</Compile>
|
|
||||||
<EmbeddedResource Include="QuestForm.resx">
|
<EmbeddedResource Include="QuestForm.resx">
|
||||||
<DependentUpon>QuestForm.cs</DependentUpon>
|
<DependentUpon>QuestForm.cs</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
@@ -317,8 +317,6 @@
|
|||||||
<Content Include="changelog.txt" />
|
<Content Include="changelog.txt" />
|
||||||
<Content Include="icon.ico" />
|
<Content Include="icon.ico" />
|
||||||
<Content Include="ChangelogHistory.txt" />
|
<Content Include="ChangelogHistory.txt" />
|
||||||
<Content Include="Resources\pattern_cubes.png" />
|
|
||||||
<Content Include="Resources\pattern_herringbone.png" />
|
|
||||||
<None Include="Resources\battery.png" />
|
<None Include="Resources\battery.png" />
|
||||||
<None Include="Resources\ajax-loader.gif" />
|
<None Include="Resources\ajax-loader.gif" />
|
||||||
<None Include="Resources\SearchGlass.PNG" />
|
<None Include="Resources\SearchGlass.PNG" />
|
||||||
|
|||||||
@@ -33,7 +33,7 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="FontStyle" serializeAs="String">
|
<setting name="FontStyle" serializeAs="String">
|
||||||
<value>Microsoft Sans Serif, 11.25pt</value>
|
<value>Microsoft Sans Serif, 9pt</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="BackPicturePath" serializeAs="String">
|
<setting name="BackPicturePath" serializeAs="String">
|
||||||
<value />
|
<value />
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
<value>False</value>
|
<value>False</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="FontColor" serializeAs="String">
|
<setting name="FontColor" serializeAs="String">
|
||||||
<value>White</value>
|
<value>DarkGray</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="ComboBoxColor" serializeAs="String">
|
<setting name="ComboBoxColor" serializeAs="String">
|
||||||
<value>25, 25, 25</value>
|
<value>25, 25, 25</value>
|
||||||
@@ -147,10 +147,10 @@
|
|||||||
<value>25, 25, 25</value>
|
<value>25, 25, 25</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="ButtonColor" serializeAs="String">
|
<setting name="ButtonColor" serializeAs="String">
|
||||||
<value>Black</value>
|
<value>32, 35, 45</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="BackColor" serializeAs="String">
|
<setting name="BackColor" serializeAs="String">
|
||||||
<value>1, 1, 1</value>
|
<value>31, 34, 42</value>
|
||||||
</setting>
|
</setting>
|
||||||
<setting name="AppPackages" serializeAs="String">
|
<setting name="AppPackages" serializeAs="String">
|
||||||
<value />
|
<value />
|
||||||
|
|||||||
1
DonorsListView.Designer.cs
generated
1
DonorsListView.Designer.cs
generated
@@ -112,7 +112,6 @@ namespace AndroidSideloader
|
|||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
this.panel1.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
this.panel1.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||||
this.panel1.BackgroundImage = global::AndroidSideloader.Properties.Resources.pattern_cubes;
|
|
||||||
this.panel1.Controls.Add(this.skip_forever);
|
this.panel1.Controls.Add(this.skip_forever);
|
||||||
this.panel1.Controls.Add(this.SkipButton);
|
this.panel1.Controls.Add(this.SkipButton);
|
||||||
this.panel1.Controls.Add(this.DonateButton);
|
this.panel1.Controls.Add(this.DonateButton);
|
||||||
|
|||||||
524
MainForm.Designer.cs
generated
524
MainForm.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
421
MainForm.cs
421
MainForm.cs
@@ -9,6 +9,7 @@ using System.Collections.Generic;
|
|||||||
using System.ComponentModel;
|
using System.ComponentModel;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Drawing;
|
using System.Drawing;
|
||||||
|
using System.Drawing.Drawing2D;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Net;
|
using System.Net;
|
||||||
@@ -19,6 +20,7 @@ using System.Text.RegularExpressions;
|
|||||||
using System.Threading;
|
using System.Threading;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace AndroidSideloader
|
namespace AndroidSideloader
|
||||||
{
|
{
|
||||||
@@ -49,6 +51,14 @@ namespace AndroidSideloader
|
|||||||
public static string currremotesimple = "";
|
public static string currremotesimple = "";
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
private const int EM_SETMARGINS = 0xD3;
|
||||||
|
private const int EC_LEFTMARGIN = 0x0001;
|
||||||
|
private const int EC_RIGHTMARGIN = 0x0002;
|
||||||
|
[DllImport("user32.dll", CharSet = CharSet.Auto)]
|
||||||
|
private static extern IntPtr SendMessage(IntPtr hWnd, int msg, IntPtr wParam, IntPtr lParam);
|
||||||
|
private string freeSpaceText = "";
|
||||||
|
private string freeSpaceTextDetailed = "";
|
||||||
|
private int _questStorageProgress = 0;
|
||||||
private bool _trailerPlayerInitialized; // player.html created and loaded
|
private bool _trailerPlayerInitialized; // player.html created and loaded
|
||||||
private bool _trailerHtmlLoaded; // initial navigation completed
|
private bool _trailerHtmlLoaded; // initial navigation completed
|
||||||
private static readonly Dictionary<string, string> _videoIdCache = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); // per game cache
|
private static readonly Dictionary<string, string> _videoIdCache = new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase); // per game cache
|
||||||
@@ -78,24 +88,70 @@ namespace AndroidSideloader
|
|||||||
InitializeTimeReferences();
|
InitializeTimeReferences();
|
||||||
CheckCommandLineArguments();
|
CheckCommandLineArguments();
|
||||||
|
|
||||||
// Initialize debounce timer for search
|
CreateSearchIcon();
|
||||||
_debounceTimer = new System.Windows.Forms.Timer
|
searchTextBox.HandleCreated += (s, e) => ApplySearchTextMargins();
|
||||||
{
|
|
||||||
Interval = 100, // 100ms delay for fast response
|
|
||||||
Enabled = false
|
|
||||||
};
|
|
||||||
_debounceTimer.Tick += async (sender, e) => await RunSearch();
|
|
||||||
|
|
||||||
|
_debounceTimer = new System.Windows.Forms.Timer { Interval = 100, Enabled = false };
|
||||||
|
_debounceTimer.Tick += async (sender, e) => await RunSearch();
|
||||||
gamesQueListBox.DataSource = gamesQueueList;
|
gamesQueListBox.DataSource = gamesQueueList;
|
||||||
SetCurrentLogPath();
|
SetCurrentLogPath();
|
||||||
StartTimers();
|
StartTimers();
|
||||||
|
|
||||||
lvwColumnSorter = new ListViewColumnSorter();
|
lvwColumnSorter = new ListViewColumnSorter();
|
||||||
gamesListView.ListViewItemSorter = lvwColumnSorter;
|
gamesListView.ListViewItemSorter = lvwColumnSorter;
|
||||||
|
|
||||||
if (searchTextBox.Visible)
|
if (searchTextBox.Visible) { _ = searchTextBox.Focus(); }
|
||||||
|
|
||||||
|
this.questInfoPanel.MouseEnter += this.QuestInfoHoverEnter;
|
||||||
|
this.questInfoPanel.MouseLeave += this.QuestInfoHoverLeave;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CreateSearchIcon()
|
||||||
|
{
|
||||||
|
if (this.searchIconPictureBox == null)
|
||||||
{
|
{
|
||||||
_ = searchTextBox.Focus();
|
this.searchIconPictureBox = new PictureBox
|
||||||
|
{
|
||||||
|
Name = "searchIconPictureBox",
|
||||||
|
SizeMode = PictureBoxSizeMode.Zoom,
|
||||||
|
Size = new Size(16, 16),
|
||||||
|
BackColor = searchTextBox.BackColor, // blend with textbox
|
||||||
|
TabStop = false,
|
||||||
|
Enabled = false // let clicks go to the textbox
|
||||||
|
};
|
||||||
|
|
||||||
|
this.searchIconPictureBox.Image = Properties.Resources.SearchGlass;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parent the icon to the same container as the textbox
|
||||||
|
var host = searchTextBox.Parent ?? this;
|
||||||
|
if (this.searchIconPictureBox.Parent != host)
|
||||||
|
{
|
||||||
|
host.Controls.Add(this.searchIconPictureBox);
|
||||||
|
this.searchIconPictureBox.BringToFront();
|
||||||
|
}
|
||||||
|
|
||||||
|
// 6px left padding inside the textbox area
|
||||||
|
int leftInset = 6;
|
||||||
|
var pt = new Point(
|
||||||
|
searchTextBox.Left + leftInset,
|
||||||
|
searchTextBox.Top + (searchTextBox.Height - searchIconPictureBox.Height) / 2
|
||||||
|
);
|
||||||
|
searchIconPictureBox.Location = pt;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ApplySearchTextMargins()
|
||||||
|
{
|
||||||
|
if (searchTextBox == null) return;
|
||||||
|
|
||||||
|
// icon width + left inset + small gap
|
||||||
|
int leftInset = 6;
|
||||||
|
int leftMarginPixels = (searchIconPictureBox?.Width ?? 16) + leftInset + 2;
|
||||||
|
int rightMarginPixels = 2;
|
||||||
|
|
||||||
|
if (searchTextBox.IsHandleCreated)
|
||||||
|
{
|
||||||
|
int lParam = (rightMarginPixels << 16) | (leftMarginPixels & 0xFFFF);
|
||||||
|
SendMessage(searchTextBox.Handle, EM_SETMARGINS, (IntPtr)(EC_LEFTMARGIN | EC_RIGHTMARGIN), (IntPtr)lParam);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -215,10 +271,39 @@ namespace AndroidSideloader
|
|||||||
public static bool updatesNotified = false;
|
public static bool updatesNotified = false;
|
||||||
public static string backupFolder;
|
public static string backupFolder;
|
||||||
|
|
||||||
|
private static void KillAdbProcesses()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foreach (var p in Process.GetProcessesByName("adb"))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if (!p.HasExited)
|
||||||
|
{
|
||||||
|
p.Kill();
|
||||||
|
p.WaitForExit(3000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.Log($"Failed to kill adb process (PID {p.Id}): {ex.Message}", LogLevel.WARNING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.Log($"Error enumerating adb processes: {ex.Message}", LogLevel.WARNING);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private async void Form1_Load(object sender, EventArgs e)
|
private async void Form1_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
_ = Logger.Log("Starting AndroidSideloader Application");
|
_ = Logger.Log("Starting AndroidSideloader Application");
|
||||||
|
|
||||||
|
// Hard kill any lingering adb.exe instances to avoid port/handle conflicts
|
||||||
|
KillAdbProcesses();
|
||||||
|
|
||||||
// Show the form immediately
|
// Show the form immediately
|
||||||
this.Show();
|
this.Show();
|
||||||
Application.DoEvents();
|
Application.DoEvents();
|
||||||
@@ -601,8 +686,10 @@ namespace AndroidSideloader
|
|||||||
remotesList.Size = System.Drawing.Size.Empty;
|
remotesList.Size = System.Drawing.Size.Empty;
|
||||||
_ = Logger.Log($"Using Offline Mode");
|
_ = Logger.Log($"Using Offline Mode");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
changeTitlebarToDevice();
|
||||||
|
UpdateQuestInfoPanel();
|
||||||
|
}
|
||||||
|
|
||||||
private void timer_Tick(object sender, EventArgs e)
|
private void timer_Tick(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -720,7 +807,6 @@ namespace AndroidSideloader
|
|||||||
|
|
||||||
public async Task<int> CheckForDevice()
|
public async Task<int> CheckForDevice()
|
||||||
{
|
{
|
||||||
|
|
||||||
Devices.Clear();
|
Devices.Clear();
|
||||||
string output = string.Empty;
|
string output = string.Empty;
|
||||||
string error = string.Empty;
|
string error = string.Empty;
|
||||||
@@ -731,7 +817,6 @@ namespace AndroidSideloader
|
|||||||
output = ADB.RunAdbCommandToString("devices").Output;
|
output = ADB.RunAdbCommandToString("devices").Output;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
t1.Start();
|
t1.Start();
|
||||||
|
|
||||||
while (t1.IsAlive)
|
while (t1.IsAlive)
|
||||||
@@ -758,8 +843,6 @@ namespace AndroidSideloader
|
|||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if (devicesComboBox.Items.Count > 0)
|
if (devicesComboBox.Items.Count > 0)
|
||||||
{
|
{
|
||||||
devicesComboBox.SelectedIndex = 0;
|
devicesComboBox.SelectedIndex = 0;
|
||||||
@@ -770,6 +853,9 @@ namespace AndroidSideloader
|
|||||||
battery = Utilities.StringUtilities.RemoveEverythingAfterFirst(battery, "\n");
|
battery = Utilities.StringUtilities.RemoveEverythingAfterFirst(battery, "\n");
|
||||||
battery = Utilities.StringUtilities.KeepOnlyNumbers(battery);
|
battery = Utilities.StringUtilities.KeepOnlyNumbers(battery);
|
||||||
batteryLabel.Text = battery + "%";
|
batteryLabel.Text = battery + "%";
|
||||||
|
|
||||||
|
UpdateQuestInfoPanel();
|
||||||
|
|
||||||
return devicesComboBox.SelectedIndex;
|
return devicesComboBox.SelectedIndex;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -778,7 +864,6 @@ namespace AndroidSideloader
|
|||||||
_ = await CheckForDevice();
|
_ = await CheckForDevice();
|
||||||
|
|
||||||
changeTitlebarToDevice();
|
changeTitlebarToDevice();
|
||||||
|
|
||||||
showAvailableSpace();
|
showAvailableSpace();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -894,6 +979,8 @@ namespace AndroidSideloader
|
|||||||
}
|
}
|
||||||
|
|
||||||
diskLabel.Invoke(() => { diskLabel.Text = AvailableSpace; });
|
diskLabel.Invoke(() => { diskLabel.Text = AvailableSpace; });
|
||||||
|
|
||||||
|
UpdateQuestInfoPanel();
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -2543,26 +2630,66 @@ namespace AndroidSideloader
|
|||||||
|
|
||||||
private void deviceDropContainer_Click(object sender, EventArgs e)
|
private void deviceDropContainer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ShowSubMenu(deviceDropContainer);
|
ToggleContainer(deviceDropContainer, deviceDrop);
|
||||||
deviceDrop.Text = (deviceDrop.Text == "▼ DEVICE ▼") ? "▶ DEVICE ◀" : "▼ DEVICE ▼";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sideloadContainer_Click(object sender, EventArgs e)
|
private void sideloadContainer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ShowSubMenu(sideloadContainer);
|
ToggleContainer(sideloadContainer, sideloadDrop);
|
||||||
sideloadDrop.Text = (sideloadDrop.Text == "▼ SIDELOAD ▼") ? "▶ SIDELOAD ◀" : "▼ SIDELOAD ▼";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void installedAppsMenuContainer_Click(object sender, EventArgs e)
|
private void installedAppsMenuContainer_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ShowSubMenu(installedAppsMenuContainer);
|
ToggleContainer(installedAppsMenuContainer, installedAppsMenu);
|
||||||
installedAppsMenu.Text = (installedAppsMenu.Text == "▼ INSTALLED APPS ▼") ? "▶ INSTALLED APPS ◀" : "▼ INSTALLED APPS ▼";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void backupDrop_Click(object sender, EventArgs e)
|
private void backupDrop_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
ShowSubMenu(backupContainer);
|
ToggleContainer(backupContainer, backupDrop);
|
||||||
backupDrop.Text = (backupDrop.Text == "▼ BACKUP / RESTORE ▼") ? "▶ BACKUP / RESTORE ◀" : "▼ BACKUP / RESTORE ▼";
|
}
|
||||||
|
|
||||||
|
private void otherDrop_Click(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
ToggleContainer(otherContainer, otherDrop);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ToggleContainer(Panel containerToToggle, Button dropButton)
|
||||||
|
{
|
||||||
|
// Collapse all other containers
|
||||||
|
CollapseAllContainers(containerToToggle);
|
||||||
|
|
||||||
|
// Toggle the clicked container
|
||||||
|
bool isExpanding = !containerToToggle.Visible;
|
||||||
|
containerToToggle.Visible = isExpanding;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CollapseAllContainers(Panel exceptThis = null)
|
||||||
|
{
|
||||||
|
var containers = new[]
|
||||||
|
{
|
||||||
|
deviceDropContainer,
|
||||||
|
sideloadContainer,
|
||||||
|
installedAppsMenuContainer,
|
||||||
|
backupContainer,
|
||||||
|
otherContainer
|
||||||
|
};
|
||||||
|
|
||||||
|
var buttons = new[]
|
||||||
|
{
|
||||||
|
deviceDrop,
|
||||||
|
sideloadDrop,
|
||||||
|
installedAppsMenu,
|
||||||
|
backupDrop,
|
||||||
|
otherDrop
|
||||||
|
};
|
||||||
|
|
||||||
|
for (int i = 0; i < containers.Length; i++)
|
||||||
|
{
|
||||||
|
if (containers[i] != exceptThis && containers[i].Visible)
|
||||||
|
{
|
||||||
|
containers[i].Visible = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void settingsButton_Click(object sender, EventArgs e)
|
private void settingsButton_Click(object sender, EventArgs e)
|
||||||
@@ -3594,12 +3721,6 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void otherDrop_Click(object sender, EventArgs e)
|
|
||||||
{
|
|
||||||
ShowSubMenu(otherContainer);
|
|
||||||
otherDrop.Text = (otherDrop.Text == "▼ OTHER ▼") ? "▶ OTHER ◀" : "▼ OTHER ▼";
|
|
||||||
}
|
|
||||||
|
|
||||||
private void gamesQueListBox_MouseClick(object sender, MouseEventArgs e)
|
private void gamesQueListBox_MouseClick(object sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
if (gamesQueListBox.SelectedIndex == 0 && gamesQueueList.Count == 1)
|
if (gamesQueListBox.SelectedIndex == 0 && gamesQueueList.Count == 1)
|
||||||
@@ -3839,7 +3960,7 @@ Please visit our Telegram (https://t.me/VRPirates) or Discord (https://discord.g
|
|||||||
string searchTerm = searchTextBox.Text;
|
string searchTerm = searchTextBox.Text;
|
||||||
|
|
||||||
// Ignore placeholder text
|
// Ignore placeholder text
|
||||||
if (searchTerm == "Search" || string.IsNullOrWhiteSpace(searchTerm))
|
if (searchTerm == "Search..." || string.IsNullOrWhiteSpace(searchTerm))
|
||||||
{
|
{
|
||||||
RestoreFullList();
|
RestoreFullList();
|
||||||
return;
|
return;
|
||||||
@@ -4232,7 +4353,7 @@ function onYouTubeIframeAPIReady() {
|
|||||||
|
|
||||||
private void searchTextBox_Enter(object sender, EventArgs e)
|
private void searchTextBox_Enter(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
if (searchTextBox.Text == "Search" && searchTextBox.ForeColor == Color.Gray)
|
if (searchTextBox.Text == "Search..." && searchTextBox.ForeColor == Color.LightGray)
|
||||||
{
|
{
|
||||||
searchTextBox.Text = "";
|
searchTextBox.Text = "";
|
||||||
searchTextBox.ForeColor = Color.White;
|
searchTextBox.ForeColor = Color.White;
|
||||||
@@ -4243,8 +4364,8 @@ function onYouTubeIframeAPIReady() {
|
|||||||
{
|
{
|
||||||
if (string.IsNullOrWhiteSpace(searchTextBox.Text))
|
if (string.IsNullOrWhiteSpace(searchTextBox.Text))
|
||||||
{
|
{
|
||||||
searchTextBox.Text = "Search";
|
searchTextBox.Text = "Search...";
|
||||||
searchTextBox.ForeColor = Color.Gray;
|
searchTextBox.ForeColor = Color.LightGray;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (searchTextBox.Visible)
|
if (searchTextBox.Visible)
|
||||||
@@ -4759,6 +4880,238 @@ function onYouTubeIframeAPIReady() {
|
|||||||
initListView(false);
|
initListView(false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public async void UpdateQuestInfoPanel()
|
||||||
|
{
|
||||||
|
// Check if device is actually connected by checking Devices list
|
||||||
|
bool hasDevice = Devices != null && Devices.Count > 0 && !Devices.Contains("unauthorized");
|
||||||
|
|
||||||
|
if ((!settings.NodeviceMode && hasDevice) || DeviceConnected)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
ADB.DeviceID = GetDeviceID();
|
||||||
|
|
||||||
|
// Get device model
|
||||||
|
string deviceModel = ADB.RunAdbCommandToString("shell getprop ro.product.model").Output.Trim();
|
||||||
|
if (string.IsNullOrEmpty(deviceModel))
|
||||||
|
{
|
||||||
|
deviceModel = "Device";
|
||||||
|
}
|
||||||
|
|
||||||
|
// Get storage info
|
||||||
|
string storageOutput = ADB.RunAdbCommandToString("shell df /sdcard").Output;
|
||||||
|
string[] lines = storageOutput.Split('\n');
|
||||||
|
|
||||||
|
long totalSpace = 0;
|
||||||
|
long usedSpace = 0;
|
||||||
|
long freeSpace = 0;
|
||||||
|
|
||||||
|
|
||||||
|
if (lines.Length > 1)
|
||||||
|
{
|
||||||
|
string[] parts = lines[1].Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
|
||||||
|
if (parts.Length >= 4)
|
||||||
|
{
|
||||||
|
if (long.TryParse(parts[1], out totalSpace) &&
|
||||||
|
long.TryParse(parts[2], out usedSpace) &&
|
||||||
|
long.TryParse(parts[3], out freeSpace))
|
||||||
|
{
|
||||||
|
totalSpace = totalSpace / 1024; // Convert to MB
|
||||||
|
usedSpace = usedSpace / 1024;
|
||||||
|
freeSpace = freeSpace / 1024;
|
||||||
|
|
||||||
|
// Format free space display
|
||||||
|
if (freeSpace > 1024)
|
||||||
|
{
|
||||||
|
freeSpaceText = $"{(freeSpace / 1024.0):F2} GB AVAILABLE";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
freeSpaceText = $"{freeSpace} MB AVAILABLE";
|
||||||
|
}
|
||||||
|
|
||||||
|
freeSpaceTextDetailed = $"{(usedSpace / 1024.0):F0} GB OF {(totalSpace / 1024.0):F0} GB USED";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Calculate storage percentage used
|
||||||
|
int storagePercentUsed = totalSpace > 0 ? (int)((usedSpace * 100) / totalSpace) : 0;
|
||||||
|
|
||||||
|
// Update UI on main thread
|
||||||
|
questInfoPanel.Invoke(() =>
|
||||||
|
{
|
||||||
|
questInfoLabel.Text = deviceModel;
|
||||||
|
diskLabel.Text = freeSpaceText;
|
||||||
|
|
||||||
|
// Update custom progress bar
|
||||||
|
SetQuestStorageProgress(storagePercentUsed);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.Log($"Unable to update quest info panel: {ex.Message}", LogLevel.ERROR);
|
||||||
|
questInfoPanel.Invoke(() =>
|
||||||
|
{
|
||||||
|
questInfoLabel.Text = "Device Info Unavailable";
|
||||||
|
SetQuestStorageProgress(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
questInfoPanel.Invoke(() =>
|
||||||
|
{
|
||||||
|
questInfoLabel.Text = "No Device Connected";
|
||||||
|
SetQuestStorageProgress(0);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine visibility based on device existence
|
||||||
|
bool showQuestInfo = ((!settings.NodeviceMode && hasDevice) || DeviceConnected);
|
||||||
|
|
||||||
|
// Toggle visibility atomically on UI thread
|
||||||
|
questInfoPanel.Invoke(() =>
|
||||||
|
{
|
||||||
|
questStorageProgressBar.Visible = showQuestInfo;
|
||||||
|
batteryLevImg.Visible = showQuestInfo;
|
||||||
|
batteryLabel.Visible = showQuestInfo;
|
||||||
|
questInfoLabel.Visible = showQuestInfo;
|
||||||
|
diskLabel.Visible = showQuestInfo;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
private void QuestInfoHoverEnter(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Only react when device info is shown
|
||||||
|
if (!questStorageProgressBar.Visible) return;
|
||||||
|
|
||||||
|
diskLabel.Text = freeSpaceTextDetailed;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Restore the original baseline text ("XX GB FREE")
|
||||||
|
private void QuestInfoHoverLeave(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
// Only react when device info is shown
|
||||||
|
if (!questStorageProgressBar.Visible) return;
|
||||||
|
|
||||||
|
// Ignore leave fired when moving between child controls inside the container
|
||||||
|
var panel = questInfoPanel;
|
||||||
|
var mouse = panel.PointToClient(MousePosition);
|
||||||
|
if (panel.ClientRectangle.Contains(mouse)) return;
|
||||||
|
|
||||||
|
diskLabel.Text = freeSpaceText;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void questStorageProgressBar_Paint(object sender, PaintEventArgs e)
|
||||||
|
{
|
||||||
|
var g = e.Graphics;
|
||||||
|
g.SmoothingMode = SmoothingMode.AntiAlias;
|
||||||
|
g.PixelOffsetMode = PixelOffsetMode.HighQuality;
|
||||||
|
g.Clear(questStorageProgressBar.BackColor);
|
||||||
|
|
||||||
|
int w = questStorageProgressBar.ClientSize.Width;
|
||||||
|
int h = questStorageProgressBar.ClientSize.Height;
|
||||||
|
if (w <= 0 || h <= 0) return;
|
||||||
|
|
||||||
|
// Rounded rectangle parameters (outer + fill share the same geometry).
|
||||||
|
int radius = 10;
|
||||||
|
Color bgColor = Color.FromArgb(28, 32, 38);
|
||||||
|
Color borderColor = Color.FromArgb(60, 65, 75);
|
||||||
|
|
||||||
|
// Modern fill gradient (adjust as desired)
|
||||||
|
Color progressStart = Color.FromArgb(43, 160, 140);
|
||||||
|
Color progressEnd = Color.FromArgb(30, 110, 95);
|
||||||
|
|
||||||
|
// Build the rounded outer path (used for background and clipping).
|
||||||
|
var outer = new RoundedRectangleF(w, h, radius);
|
||||||
|
|
||||||
|
// Paint background
|
||||||
|
using (var bgBrush = new SolidBrush(bgColor))
|
||||||
|
using (var borderPen = new Pen(borderColor, 1f))
|
||||||
|
{
|
||||||
|
g.FillPath(bgBrush, outer.Path);
|
||||||
|
g.DrawPath(borderPen, outer.Path);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Progress fraction and width
|
||||||
|
float p = Math.Max(0f, Math.Min(1f, _questStorageProgress / 100f));
|
||||||
|
int progressWidth = Math.Max(0, (int)(w * p));
|
||||||
|
if (progressWidth <= 0) return;
|
||||||
|
|
||||||
|
// Near-full rounding behavior:
|
||||||
|
// As progress approaches 100%, progressively include the outer right-rounded corners.
|
||||||
|
// Threshold start at 97%. At 97% -> straight cut; at 100% -> fully rounded outer corners.
|
||||||
|
float t = 0f;
|
||||||
|
if (p > 0.97f)
|
||||||
|
{
|
||||||
|
t = Math.Min(1f, (p - 0.97f) / 0.03f); // 0..1 over last 3%
|
||||||
|
}
|
||||||
|
|
||||||
|
// Build a clipping region for the fill: intersection of outer rounded rect with
|
||||||
|
// the left rectangular portion [0..progressWidth]
|
||||||
|
// plus a progressive right-cap region that extends into the rounded corners
|
||||||
|
// with width up to 2*radius, scaled by t.
|
||||||
|
Region fillClip = new Region(new Rectangle(0, 0, progressWidth, h));
|
||||||
|
if (t > 0f)
|
||||||
|
{
|
||||||
|
int capWidth = (int)(t * (2 * radius));
|
||||||
|
if (capWidth > 0)
|
||||||
|
{
|
||||||
|
// This rectangle sits inside the area of the right rounded corners,
|
||||||
|
// so union-ing it with the rectangular clip allows the fill to
|
||||||
|
// progressively "wrap" into the curvature.
|
||||||
|
var rightCapRect = new Rectangle(w - (2 * radius), 0, capWidth, h);
|
||||||
|
fillClip.Union(rightCapRect);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Region prevClip = g.Clip;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Final fill region = outer rounded path ∩ fillClip
|
||||||
|
using (var outerRegion = new Region(outer.Path))
|
||||||
|
{
|
||||||
|
outerRegion.Intersect(fillClip);
|
||||||
|
g.SetClip(outerRegion, CombineMode.Replace);
|
||||||
|
|
||||||
|
using (var progressBrush = new LinearGradientBrush(
|
||||||
|
new Rectangle(0, 0, Math.Max(1, progressWidth), h),
|
||||||
|
progressStart,
|
||||||
|
progressEnd,
|
||||||
|
LinearGradientMode.Horizontal))
|
||||||
|
{
|
||||||
|
// Fill the outer path; clipping ensures the fill grows left to right,
|
||||||
|
// stays fully flush to the outer geometry, and never exceeds it.
|
||||||
|
g.FillPath(progressBrush, outer.Path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// Restore clip and re-stroke border to keep outline crisp
|
||||||
|
g.Clip = prevClip;
|
||||||
|
using (var borderPen = new Pen(borderColor, 1f))
|
||||||
|
{
|
||||||
|
g.DrawPath(borderPen, outer.Path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void SetQuestStorageProgress(int percentage)
|
||||||
|
{
|
||||||
|
_questStorageProgress = Math.Max(0, Math.Min(100, percentage));
|
||||||
|
|
||||||
|
if (questStorageProgressBar.InvokeRequired)
|
||||||
|
{
|
||||||
|
questStorageProgressBar.Invoke(new Action(() => questStorageProgressBar.Invalidate()));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
questStorageProgressBar.Invalidate();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class ControlExtensions
|
public static class ControlExtensions
|
||||||
|
|||||||
@@ -180,16 +180,10 @@
|
|||||||
<metadata name="listApkButton_Tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="listApkButton_Tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>955, 17</value>
|
<value>955, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="speedLabel_Tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>798, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="etaLabel_Tooltip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>428, 56</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="favoriteGame.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="favoriteGame.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>855, 95</value>
|
<value>855, 95</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
<value>134</value>
|
<value>159</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
</root>
|
</root>
|
||||||
1
NewApps.Designer.cs
generated
1
NewApps.Designer.cs
generated
@@ -126,7 +126,6 @@ namespace AndroidSideloader
|
|||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||||
this.BackgroundImage = global::AndroidSideloader.Properties.Resources.pattern_cubes;
|
|
||||||
this.ClientSize = new System.Drawing.Size(313, 248);
|
this.ClientSize = new System.Drawing.Size(313, 248);
|
||||||
this.ControlBox = false;
|
this.ControlBox = false;
|
||||||
this.Controls.Add(this.NewAppsButton);
|
this.Controls.Add(this.NewAppsButton);
|
||||||
|
|||||||
60
Properties/Resources.Designer.cs
generated
60
Properties/Resources.Designer.cs
generated
@@ -1,10 +1,10 @@
|
|||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
// <auto-generated>
|
// <auto-generated>
|
||||||
// Dieser Code wurde von einem Tool generiert.
|
// This code was generated by a tool.
|
||||||
// Laufzeitversion:4.0.30319.42000
|
// Runtime Version:4.0.30319.42000
|
||||||
//
|
//
|
||||||
// Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
// der Code erneut generiert wird.
|
// the code is regenerated.
|
||||||
// </auto-generated>
|
// </auto-generated>
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
@@ -13,12 +13,12 @@ namespace AndroidSideloader.Properties {
|
|||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Eine stark typisierte Ressourcenklasse zum Suchen von lokalisierten Zeichenfolgen usw.
|
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
// Diese Klasse wurde von der StronglyTypedResourceBuilder automatisch generiert
|
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||||
// -Klasse über ein Tool wie ResGen oder Visual Studio automatisch generiert.
|
// class via a tool like ResGen or Visual Studio.
|
||||||
// Um einen Member hinzuzufügen oder zu entfernen, bearbeiten Sie die .ResX-Datei und führen dann ResGen
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
// mit der /str-Option erneut aus, oder Sie erstellen Ihr VS-Projekt neu.
|
// with the /str option, or rebuild your VS project.
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "18.0.0.0")]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
@@ -33,7 +33,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Gibt die zwischengespeicherte ResourceManager-Instanz zurück, die von dieser Klasse verwendet wird.
|
/// Returns the cached ResourceManager instance used by this class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
public static global::System.Resources.ResourceManager ResourceManager {
|
public static global::System.Resources.ResourceManager ResourceManager {
|
||||||
@@ -47,8 +47,8 @@ namespace AndroidSideloader.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Überschreibt die CurrentUICulture-Eigenschaft des aktuellen Threads für alle
|
/// Overrides the current thread's CurrentUICulture property for all
|
||||||
/// Ressourcenzuordnungen, die diese stark typisierte Ressourcenklasse verwenden.
|
/// resource lookups using this strongly typed resource class.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
public static global::System.Globalization.CultureInfo Culture {
|
public static global::System.Globalization.CultureInfo Culture {
|
||||||
@@ -61,7 +61,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static System.Drawing.Bitmap ajax_loader {
|
public static System.Drawing.Bitmap ajax_loader {
|
||||||
get {
|
get {
|
||||||
@@ -71,7 +71,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static System.Drawing.Bitmap battery {
|
public static System.Drawing.Bitmap battery {
|
||||||
get {
|
get {
|
||||||
@@ -81,37 +81,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
|
||||||
public static System.Drawing.Bitmap Pattern {
|
|
||||||
get {
|
|
||||||
object obj = ResourceManager.GetObject("Pattern", resourceCulture);
|
|
||||||
return ((System.Drawing.Bitmap)(obj));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
|
||||||
/// </summary>
|
|
||||||
public static System.Drawing.Bitmap pattern_cubes {
|
|
||||||
get {
|
|
||||||
object obj = ResourceManager.GetObject("pattern_cubes", resourceCulture);
|
|
||||||
return ((System.Drawing.Bitmap)(obj));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
|
||||||
/// </summary>
|
|
||||||
public static System.Drawing.Bitmap pattern_herringbone {
|
|
||||||
get {
|
|
||||||
object obj = ResourceManager.GetObject("pattern_herringbone", resourceCulture);
|
|
||||||
return ((System.Drawing.Bitmap)(obj));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
|
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static System.Drawing.Bitmap SearchGlass {
|
public static System.Drawing.Bitmap SearchGlass {
|
||||||
get {
|
get {
|
||||||
|
|||||||
@@ -127,13 +127,4 @@
|
|||||||
<data name="SearchGlass" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="SearchGlass" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\SearchGlass.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\SearchGlass.PNG;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Pattern" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\Pattern.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="pattern_cubes" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\pattern_cubes.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="pattern_herringbone" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\pattern_herringbone.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
</root>
|
</root>
|
||||||
10
Properties/Settings.Designer.cs
generated
10
Properties/Settings.Designer.cs
generated
@@ -12,7 +12,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
|
|
||||||
|
|
||||||
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.10.0.0")]
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.14.0.0")]
|
||||||
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
@@ -109,7 +109,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 11.25pt")]
|
[global::System.Configuration.DefaultSettingValueAttribute("Microsoft Sans Serif, 9pt")]
|
||||||
public global::System.Drawing.Font FontStyle {
|
public global::System.Drawing.Font FontStyle {
|
||||||
get {
|
get {
|
||||||
return ((global::System.Drawing.Font)(this["FontStyle"]));
|
return ((global::System.Drawing.Font)(this["FontStyle"]));
|
||||||
@@ -516,7 +516,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("White")]
|
[global::System.Configuration.DefaultSettingValueAttribute("DarkGray")]
|
||||||
public global::System.Drawing.Color FontColor {
|
public global::System.Drawing.Color FontColor {
|
||||||
get {
|
get {
|
||||||
return ((global::System.Drawing.Color)(this["FontColor"]));
|
return ((global::System.Drawing.Color)(this["FontColor"]));
|
||||||
@@ -564,7 +564,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("Black")]
|
[global::System.Configuration.DefaultSettingValueAttribute("32, 35, 45")]
|
||||||
public global::System.Drawing.Color ButtonColor {
|
public global::System.Drawing.Color ButtonColor {
|
||||||
get {
|
get {
|
||||||
return ((global::System.Drawing.Color)(this["ButtonColor"]));
|
return ((global::System.Drawing.Color)(this["ButtonColor"]));
|
||||||
@@ -576,7 +576,7 @@ namespace AndroidSideloader.Properties {
|
|||||||
|
|
||||||
[global::System.Configuration.UserScopedSettingAttribute()]
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
[global::System.Configuration.DefaultSettingValueAttribute("1, 1, 1")]
|
[global::System.Configuration.DefaultSettingValueAttribute("31, 34, 42")]
|
||||||
public global::System.Drawing.Color BackColor {
|
public global::System.Drawing.Color BackColor {
|
||||||
get {
|
get {
|
||||||
return ((global::System.Drawing.Color)(this["BackColor"]));
|
return ((global::System.Drawing.Color)(this["BackColor"]));
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<Value Profile="(Default)">True</Value>
|
<Value Profile="(Default)">True</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="FontStyle" Type="System.Drawing.Font" Scope="User">
|
<Setting Name="FontStyle" Type="System.Drawing.Font" Scope="User">
|
||||||
<Value Profile="(Default)">Microsoft Sans Serif, 11.25pt</Value>
|
<Value Profile="(Default)">Microsoft Sans Serif, 9pt</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="BackPicturePath" Type="System.String" Scope="User">
|
<Setting Name="BackPicturePath" Type="System.String" Scope="User">
|
||||||
<Value Profile="(Default)" />
|
<Value Profile="(Default)" />
|
||||||
@@ -126,7 +126,7 @@
|
|||||||
<Value Profile="(Default)">False</Value>
|
<Value Profile="(Default)">False</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="FontColor" Type="System.Drawing.Color" Scope="User">
|
<Setting Name="FontColor" Type="System.Drawing.Color" Scope="User">
|
||||||
<Value Profile="(Default)">White</Value>
|
<Value Profile="(Default)">DarkGray</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="ComboBoxColor" Type="System.Drawing.Color" Scope="User">
|
<Setting Name="ComboBoxColor" Type="System.Drawing.Color" Scope="User">
|
||||||
<Value Profile="(Default)">25, 25, 25</Value>
|
<Value Profile="(Default)">25, 25, 25</Value>
|
||||||
@@ -138,10 +138,10 @@
|
|||||||
<Value Profile="(Default)">25, 25, 25</Value>
|
<Value Profile="(Default)">25, 25, 25</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="ButtonColor" Type="System.Drawing.Color" Scope="User">
|
<Setting Name="ButtonColor" Type="System.Drawing.Color" Scope="User">
|
||||||
<Value Profile="(Default)">Black</Value>
|
<Value Profile="(Default)">32, 35, 45</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="BackColor" Type="System.Drawing.Color" Scope="User">
|
<Setting Name="BackColor" Type="System.Drawing.Color" Scope="User">
|
||||||
<Value Profile="(Default)">1, 1, 1</Value>
|
<Value Profile="(Default)">31, 34, 42</Value>
|
||||||
</Setting>
|
</Setting>
|
||||||
<Setting Name="AppPackages" Type="System.String" Scope="User">
|
<Setting Name="AppPackages" Type="System.String" Scope="User">
|
||||||
<Value Profile="(Default)" />
|
<Value Profile="(Default)" />
|
||||||
|
|||||||
1
QuestForm.Designer.cs
generated
1
QuestForm.Designer.cs
generated
@@ -375,7 +375,6 @@ namespace AndroidSideloader
|
|||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(45)))), ((int)(((byte)(45)))), ((int)(((byte)(45)))));
|
||||||
this.BackgroundImage = global::AndroidSideloader.Properties.Resources.pattern_cubes;
|
|
||||||
this.ClientSize = new System.Drawing.Size(309, 486);
|
this.ClientSize = new System.Drawing.Size(309, 486);
|
||||||
this.Controls.Add(this.label3);
|
this.Controls.Add(this.label3);
|
||||||
this.Controls.Add(this.btnApplyUsername);
|
this.Controls.Add(this.btnApplyUsername);
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 3.4 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 398 B |
Binary file not shown.
|
Before Width: | Height: | Size: 96 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 476 B |
1
UpdateForm.Designer.cs
generated
1
UpdateForm.Designer.cs
generated
@@ -44,7 +44,6 @@ namespace AndroidSideloader
|
|||||||
// panel1
|
// panel1
|
||||||
//
|
//
|
||||||
this.panel1.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
this.panel1.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||||
this.panel1.BackgroundImage = global::AndroidSideloader.Properties.Resources.pattern_cubes;
|
|
||||||
this.panel1.Controls.Add(this.YesUpdate);
|
this.panel1.Controls.Add(this.YesUpdate);
|
||||||
this.panel1.Controls.Add(this.panel3);
|
this.panel1.Controls.Add(this.panel3);
|
||||||
this.panel1.Controls.Add(this.UpdateVerLabel);
|
this.panel1.Controls.Add(this.UpdateVerLabel);
|
||||||
|
|||||||
1
UsernameForm.Designer.cs
generated
1
UsernameForm.Designer.cs
generated
@@ -72,7 +72,6 @@
|
|||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
this.BackColor = global::AndroidSideloader.Properties.Settings.Default.BackColor;
|
||||||
this.BackgroundImage = global::AndroidSideloader.Properties.Resources.pattern_cubes;
|
|
||||||
this.ClientSize = new System.Drawing.Size(443, 100);
|
this.ClientSize = new System.Drawing.Size(443, 100);
|
||||||
this.Controls.Add(this.button1);
|
this.Controls.Add(this.button1);
|
||||||
this.Controls.Add(this.textBox1);
|
this.Controls.Add(this.textBox1);
|
||||||
|
|||||||
Reference in New Issue
Block a user