Skip to content

Commit 396ec5f

Browse files
authored
Merge pull request #155 from mega6453/mega_scrcpy
scrcpy improvements
2 parents 105ef06 + df903ce commit 396ec5f

File tree

8 files changed

+261
-70
lines changed

8 files changed

+261
-70
lines changed

Appium Wizard/Object Spy.cs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,20 @@ private async void Object_Spy_Load(object sender, EventArgs e)
3939
{
4040
if (isAndroid)
4141
{
42-
sessionId = AndroidAPIMethods.GetSessionID(port);
42+
string messageTitle = "Object Spy - " + deviceName;
43+
CommonProgress commonProgress = new CommonProgress();
44+
commonProgress.Owner = this;
45+
commonProgress.Show();
46+
commonProgress.UpdateStepLabel(messageTitle, "Please wait while fetching screen...", 5);
47+
await Task.Run(() => {
48+
sessionId = AndroidAPIMethods.GetSessionID(port);
49+
});
50+
commonProgress.UpdateStepLabel(messageTitle, "Please wait while fetching screen...", 15);
4351
if (!sessionId.Equals("nosession"))
4452
{
4553
UDIDSessionId[udid] = sessionId;
4654
}
55+
commonProgress.Close();
4756
}
4857
await FetchScreen();
4958
}
@@ -258,7 +267,7 @@ private async Task FetchScreen()
258267
CommonProgress commonProgress = new CommonProgress();
259268
commonProgress.Owner = this;
260269
commonProgress.Show();
261-
commonProgress.UpdateStepLabel("Object Spy", "Please wait while fetching screen...", 25);
270+
commonProgress.UpdateStepLabel(messageTitle, "Please wait while fetching screen...", 25);
262271
pictureBox1.Size = new Size(width, height);
263272
string url = "http://localhost:" + port;
264273
await Task.Run(() => {
@@ -294,7 +303,9 @@ await Task.Run(() => {
294303
}
295304
else
296305
{
297-
xmlContent = iOSAPIMethods.GetPageSource(port, sessionId);
306+
var result = iOSAPIMethods.GetPageSource(port, sessionId);
307+
xmlContent = result.Item1;
308+
sessionId = result.Item2;
298309
}
299310
});
300311

Appium Wizard/OpenDevice.cs

Lines changed: 33 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -619,48 +619,58 @@ await Task.Run(() =>
619619
try
620620
{
621621
string message = "Please wait while setting up screen mirroring...";
622-
commonProgress.UpdateStepLabel(title, message, 10);
623622
try
624623
{
625624
MainScreen.udidScreenDensity[udid] = AndroidMethods.GetInstance().GetScreenDensity(udid);
626625
}
627626
catch (Exception)
628627
{
629628
}
630-
commonProgress.UpdateStepLabel(title, message, 20);
631-
AndroidMethods.GetInstance().UninstallOtherInstrumentationApps(udid);
632-
commonProgress.UpdateStepLabel(title, message, 30);
633-
bool isUIAutomatorInstalled = AndroidMethods.GetInstance().isUIAutomatorInstalled(udid, true, 10000);
634-
Logger.Info("isUIAutomatorInstalled : " + isUIAutomatorInstalled);
635-
if (!isUIAutomatorInstalled)
636-
{
637-
commonProgress.UpdateStepLabel(title, message, 40);
638-
AndroidMethods.GetInstance().InstallUIAutomator(udid);
639-
commonProgress.UpdateStepLabel(title, message, 45);
640-
}
641-
commonProgress.UpdateStepLabel(title, message, 50);
629+
commonProgress.UpdateStepLabel(title, message, 5);
642630
proxyPort = AndroidMethods.GetInstance().GetForwardedPort(udid, 6790);
643631
if (proxyPort == -1)
644632
{
645-
commonProgress.UpdateStepLabel(title, message, 55);
633+
commonProgress.UpdateStepLabel(title, message, 10);
646634
proxyPort = Common.GetFreePort(8221, 8299);
647635
AndroidMethods.GetInstance().StartAndroidProxyServer(proxyPort, 6790, udid);
648636
}
649-
commonProgress.UpdateStepLabel(title, message, 60);
650-
bool isRunning = AndroidMethods.GetInstance().IsUIAutomatorRunning(udid);
651-
if (!isRunning)
637+
screenServerPort = AndroidMethods.GetInstance().GetForwardedPort(udid, 7810);
638+
if (screenServerPort == -1)
652639
{
653-
commonProgress.UpdateStepLabel(title, message, 70);
654-
AndroidAsyncMethods.GetInstance().StartUIAutomatorServer(udid);
655-
Task.Delay(1000);
640+
commonProgress.UpdateStepLabel(title, message, 15);
641+
screenServerPort = Common.GetFreePort(8221, 8299);
642+
AndroidMethods.GetInstance().StartAndroidProxyServer(screenServerPort, 7810, udid);
656643
}
657-
commonProgress.UpdateStepLabel(title, message, 80);
644+
commonProgress.UpdateStepLabel(title, message, 20);
658645
UIAutomatorSessionId = AndroidAPIMethods.GetSessionID(proxyPort);
659646
if (UIAutomatorSessionId.Equals("nosession"))
660647
{
661-
commonProgress.UpdateStepLabel(title, message, 90);
662-
UIAutomatorSessionId = AndroidAPIMethods.CreateSession(proxyPort);
648+
commonProgress.UpdateStepLabel(title, message, 30);
649+
bool isUIAutomatorInstalled = AndroidMethods.GetInstance().isUIAutomatorInstalled(udid, true, 10000);
650+
Logger.Info("isUIAutomatorInstalled : " + isUIAutomatorInstalled);
651+
if (!isUIAutomatorInstalled)
652+
{
653+
commonProgress.UpdateStepLabel(title, message, 40);
654+
AndroidMethods.GetInstance().InstallUIAutomator(udid);
655+
commonProgress.UpdateStepLabel(title, message, 50);
656+
}
657+
commonProgress.UpdateStepLabel(title, message, 60);
658+
bool isRunning = AndroidMethods.GetInstance().IsUIAutomatorRunning(udid);
659+
if (!isRunning)
660+
{
661+
commonProgress.UpdateStepLabel(title, message, 70);
662+
AndroidAsyncMethods.GetInstance().StartUIAutomatorServer(udid);
663+
Task.Delay(1000);
664+
}
665+
commonProgress.UpdateStepLabel(title, message, 80);
666+
UIAutomatorSessionId = AndroidAPIMethods.GetSessionID(proxyPort);
667+
if (UIAutomatorSessionId.Equals("nosession"))
668+
{
669+
UIAutomatorSessionId = AndroidAPIMethods.CreateSession(proxyPort);
670+
}
663671
}
672+
commonProgress.UpdateStepLabel(title, message, 90);
673+
664674
}
665675
catch (Exception e)
666676
{

Appium Wizard/ScreenControl.cs

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,16 @@ public ScreenControl(string os, string Version, string udid, int width, int heig
5252
this.deviceModel = deviceModel;
5353
this.useScrcpy = useScrcpy;
5454
udidScreenControl.Add(udid, this);
55+
this.screenPort = screenPort;
56+
if (devicePorts.ContainsKey(udid))
57+
{
58+
devicePorts[udid] = new Tuple<int, int>(screenPort, proxyPort);
59+
}
60+
else
61+
{
62+
devicePorts.Add(udid, new Tuple<int, int>(screenPort, proxyPort));
63+
}
64+
5565
if (OSType.Equals("Android"))
5666
{
5767
screenDensity = (int)AndroidMethods.GetInstance().GetScreenDensity(udid);
@@ -70,15 +80,6 @@ public ScreenControl(string os, string Version, string udid, int width, int heig
7080
else
7181
{
7282
tempSessionId = session;
73-
this.screenPort = screenPort;
74-
if (devicePorts.ContainsKey(udid))
75-
{
76-
devicePorts[udid] = new Tuple<int, int>(screenPort, proxyPort);
77-
}
78-
else
79-
{
80-
devicePorts.Add(udid, new Tuple<int, int>(screenPort, proxyPort));
81-
}
8283
URL = "http://" + IPAddress + ":" + proxyPort;
8384
ScreenWebView = new WebView2();
8485
if (deviceSessionId.ContainsKey(udid))

Appium Wizard/TestRunner.Designer.cs

Lines changed: 29 additions & 15 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)