コード例 #1
0
 public DeviceDetails()
 {
     InitializeComponent();
     this.ExportTile.Click += (sender, e) =>
     {
         var          dialog = new FolderBrowserDialog();
         DialogResult result = dialog.ShowDialog();
         try
         {
             AdbTools.KillAdb();
             File.WriteAllText(string.Format("{0}\\{1}.txt", dialog.SelectedPath, "build-prop"), buildprop.Text);
             using (Toast toast = new Toast("build.prop exported"))
             {
                 toast.Show();
             }
         }
         catch (Exception ex)
         {
             using (Toast toast = new Toast(string.Format("Error:{0}", ex.Message)))
             {
                 toast.Show();
             }
         }
     };
 }
コード例 #2
0
        private void Form1_Load(object sender, EventArgs e)
        {
            logTools.OnError += LogTools_OnError;
            logTools.OnInfo  += LogTools_OnInfo;

            configMgr.PCRRegion = PCRRegion.Taiwan;

            AdbTools.GetInstance().ConnectToMumuAdbServer();


            var es = EmptyScript.GetInstance();

            CaptureMumu();
            var unit     = PCRUnit.FromUnitName("妹弓", 3);
            var unitList = new List <PCRUnit>()
            {
                unit
            };

            //var isok = es.IsBattleSceneUnitUBReady(viewportMat, viewportRect, 1);
            //es.GetBattleSceneUnitsStatus(viewportMat, viewportRect);
            //es.SelectBattleTeam(viewportMat, viewportRect, unitList);
            //var units = es.GetBattleTeamInfo(viewportMat, viewportRect);
            //es.SelectBattleTeam(viewportMat, viewportRect, units);
            RunScript();
            //var r = es.GetBattleLeftTime(viewportMat, viewportRect);
        }
コード例 #3
0
        public static void ExecutePull(object parameter)
        {
            FiveTextCommandParameters parameters = (FiveTextCommandParameters)parameter;

            Context = parameters.Context;
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork += async(sender, args) =>
            {
                await Context.Dispatcher.InvokeAsync(async() =>
                {
                    _adb           = new AdbTools(Context);
                    String[] paths = new string[4];
                    if (!string.IsNullOrEmpty(parameters.Text2))
                    {
                        paths[0] = parameters.Text2;
                    }
                    if (!string.IsNullOrEmpty(parameters.Text3))
                    {
                        paths[1] = parameters.Text3;
                    }
                    if (!string.IsNullOrEmpty(parameters.Text4))
                    {
                        paths[2] = parameters.Text4;
                    }
                    if (!string.IsNullOrEmpty(parameters.Text5))
                    {
                        paths[3] = parameters.Text5;
                    }
                    await _adb.Pull(parameters.Text, parameters.Bool, paths, parameters.Target);
                });
            };
            worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
            worker.RunWorkerAsync();
        }
コード例 #4
0
        public static void Execute(object parameter)
        {
            ExecuteCommandParameters parameters = parameter as ExecuteCommandParameters;

            if (parameters != null)
            {
                Context = parameters.Context;
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += async(sender, args) =>
                {
                    await Context.Dispatcher.InvokeAsync(async() =>
                    {
                        _adb     = new AdbTools(Context);
                        var cmds = new List <string>
                        {
                            parameters.Text,
                            parameters.Text2,
                            parameters.Text3,
                            parameters.Text4,
                            parameters.Text5,
                            parameters.Text6,
                            parameters.Text7,
                            parameters.Text8,
                            parameters.Text9,
                            parameters.Text10
                        };
                        await _adb.Execute(cmds.ToArray <string>(), parameters.Bool, parameters.Target);
                    });
                };
                worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
                worker.RunWorkerAsync();
            }
        }
コード例 #5
0
        public static void ExecuteRoot(object parameter)
        {
            var parameters = (RootParameters)parameter;

            Context = parameters.Context;
            AdbTools         adb    = new AdbTools(Context);
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork += async(sender, args) =>
            {
                await parameters.Window.Dispatcher.InvokeAsync(async() =>
                {
                    if (parameters.SuperSU || parameters.SuperUser)
                    {
                        if (ConnectionChecker.IsConnectedToInternet)
                        {
                            var controller = await parameters.Window.ShowProgressAsync("Please wait", "Downloading...", false, new MetroDialogSettings()
                            {
                                AnimateShow = true, AnimateHide = true, ColorScheme = MetroDialogColorScheme.Theme
                            });
                            if (parameters.SuperUser)
                            {
                                await DownloadFile("http://www.file.appsapk.com/download/Superuser.apk", "Superuser.apk", parameters.Window, controller);
                                if (File.Exists("Superuser.apk"))
                                {
                                    await adb.Root(parameters.CreateNoWindow, parameters.Target);
                                }
                                else
                                {
                                    await parameters.Window.ShowMessageAsync("Unknown error", null);
                                }
                            }
                            if (parameters.SuperSU)
                            {
                                await DownloadFile("http://www.file.appsapk.com/download/SuperSU.apk", "Superuser.apk", parameters.Window, controller);
                                if (File.Exists("Superuser.apk"))
                                {
                                    await adb.Root(parameters.CreateNoWindow, parameters.Target);
                                }
                                else
                                {
                                    await parameters.Window.ShowMessageAsync("Unknown error", null);
                                }
                            }
                        }
                        else
                        {
                            await parameters.Window.ShowMessageAsync("Error", "You must have an internet connection.");
                        }
                    }
                    else
                    {
                        await parameters.Window.ShowMessageAsync("Error", "You must select app");
                    }
                });
            };
            worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
            worker.RunWorkerAsync();
        }
コード例 #6
0
        public static void ExecutePrepare(object parameter)
        {
            Context = (TextBlock)parameter;
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork += async(sender, args) =>
            {
                await Context.Dispatcher.InvokeAsync(() => { _adb = new AdbTools(Context); });

                await Task.Run(async() => await _adb.Prepare());
            };
            worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
            worker.RunWorkerAsync();
        }
コード例 #7
0
 public async static void ExecuteKillAdb(object parameter)
 {
     await Task.Factory.StartNew(async() =>
     {
         AdbTools.KillAdb();
         var temp = parameter as TextBlock;
         if (temp != null)
         {
             await
             temp.Dispatcher.InvokeAsync(() => temp.Text = "ADB KILLED");
         }
         temp = null;
     });
 }
コード例 #8
0
        public static void ExecuteRebootBootloader(object parameter)
        {
            SingleCommandParameters parameters = (SingleCommandParameters)parameter;

            Context = parameters.Context;
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork += async(sender, args) =>
            {
                await Context.Dispatcher.InvokeAsync(() => { _adb = new AdbTools(Context); });

                await Task.Run(async() => await _adb.RebootBootloader(parameters.Bool, parameters.Target));
            };
            worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
            worker.RunWorkerAsync();
        }
コード例 #9
0
 public MainWindow()
 {
     InitializeComponent();
     _viewModel       = ((ViewModelLocator)Application.Current.Resources["Locator"]).Main;
     this.DataContext = _viewModel;
     this.Logo.HeaderSubtitle.Text = "HOME";
     this.Loaded += delegate
     {
         RefreshAdb.Command.Execute(this.AdbDevices);
         RefreshFastboot.Command.Execute(this.FastbootDevices);
     };
     this.Closing += delegate
     {
         _viewModel.Cleanup();
         FastbootTools.Kill();
         AdbTools.KillAdb();
     };
     this.Closed += delegate { Application.Current.Shutdown(0); };
 }
コード例 #10
0
        public static void ExecutePush(object parameter)
        {
            ThreeTextCommandParameters parameters = (ThreeTextCommandParameters)parameter;

            Context = parameters.Context;
            BackgroundWorker worker = new BackgroundWorker();

            worker.DoWork += async(sender, args) =>
            {
                await Context.Dispatcher.InvokeAsync(() => { _adb = new AdbTools(Context); });

                await
                Task.Run(
                    async() =>
                    await _adb.Push(parameters.Text.Split(','), parameters.Text2, parameters.Bool, parameters.Target));
            };
            worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
            worker.RunWorkerAsync();
        }
コード例 #11
0
        public static void ExecuteRemoteDisconnect(object parameter)
        {
            SingleCommandParameters parameters = parameter as SingleCommandParameters;

            if (parameters != null)
            {
                Context = parameters.Context;
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += async(sender, args) =>
                {
                    await Context.Dispatcher.InvokeAsync(async() =>
                    {
                        _adb = new AdbTools(Context);
                        await _adb.RemoteDisconnect(parameters.Bool);
                    });
                };
                worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
                worker.RunWorkerAsync();
            }
        }
コード例 #12
0
        public static void ExecuteListDevices(object parameter)
        {
            UIParameters parameters = (UIParameters)parameter;

            if (parameters != null)
            {
                Context = parameters.Context;
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += async(sender, args) =>
                {
                    await Context.Dispatcher.InvokeAsync(async() =>
                    {
                        _adb = new AdbTools(Context);
                        await _adb.ListDevices(parameters.Context2, parameters.Bool);
                    });
                };
                worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
                worker.RunWorkerAsync();
            }
        }
コード例 #13
0
        public static void ExecuteBackup(object parameter)
        {
            BackupParameters parameters = parameter as BackupParameters;

            if (parameters != null)
            {
                Context = parameters.Context;
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += async(sender, args) =>
                {
                    await Context.Dispatcher.InvokeAsync(async() =>
                    {
                        _adb = new AdbTools(Context);
                        if (parameters.Context2.SelectedIndex == 0)
                        {
                            await _adb.Backup(parameters.Text, parameters.Text2, AdbBackupMode.All, parameters.Bool, parameters.Target);
                        }
                        if (parameters.Context2.SelectedIndex == 1)
                        {
                            await _adb.Backup(parameters.Text, parameters.Text2, AdbBackupMode.Apps, parameters.Bool, parameters.Target);
                        }
                        if (parameters.Context2.SelectedIndex == 2)
                        {
                            await _adb.Backup(parameters.Text, parameters.Text2, AdbBackupMode.SystemApps, parameters.Bool, parameters.Target);
                        }
                        if (parameters.Context2.SelectedIndex == 3)
                        {
                            await _adb.Backup(parameters.Text, parameters.Text2, AdbBackupMode.AppsWithoutSystemApps, parameters.Bool, parameters.Target);
                        }
                        if (parameters.Context2.SelectedIndex == 4)
                        {
                            await _adb.Backup(parameters.Text, parameters.Text2, AdbBackupMode.SDCard, parameters.Bool, parameters.Target);
                        }
                    });
                };
                worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
                worker.RunWorkerAsync();
            }
        }
コード例 #14
0
        public static void ExecuteSingleCommand(object parameter)
        {
            TwoCommandParameters parameters = parameter as TwoCommandParameters;

            if (parameters != null)
            {
                Context = parameters.Context;
                BackgroundWorker worker = new BackgroundWorker();
                worker.DoWork += async(sender, args) =>
                {
                    await Context.Dispatcher.InvokeAsync(async() =>
                    {
                        _adb     = new AdbTools(Context);
                        var cmds = new string[1];
                        cmds[0]  = parameters.Text;
                        await _adb.Execute(cmds, parameters.Bool, parameters.Target);
                    });
                };
                worker.RunWorkerCompleted += (sender, args) => worker.Dispose();
                worker.RunWorkerAsync();
            }
        }