private void ButtonStartShell_Click(object sender, RoutedEventArgs e)
        {
            ProcessStartInfo info = new ProcessStartInfo
            {
                WorkingDirectory = AdbConstants.toolsPath,
                FileName         = "cmd",
                UseShellExecute  = false,
                Verb             = "runas",
            };

            if (SystemHelper.IsWin10)
            {
                var result = BoxHelper.ShowChoiceDialog("Notice", "msgShellChoiceTip", "Powershell", "CMD");
                switch (result)
                {
                case ChoiceResult.BtnRight:
                    break;

                case ChoiceResult.BtnLeft:
                    info.FileName = "powershell.exe";
                    break;

                case ChoiceResult.BtnCancel:
                    return;
                }
            }
            Process.Start(info);
        }
Exemple #2
0
        private bool Login()
        {
            var am = App.Current.AccountManager;

            try
            {
                am.Init();
                am.AutoLogin();
                return(true);
            }
            catch (Exception ex) { Logger.Warn(this, "Auto login failed", ex); }
            App.Current.Dispatcher.Invoke(() =>
            {
                new LoginWindow(am)
                {
                    Owner = App.Current.MainWindow
                }.ShowDialog();
            });
            bool accountOk = (am.Current?.IsActivated == true && am.Current?.IsPaid == true);

            if (!accountOk)
            {
                var result = BoxHelper.ShowChoiceDialog("Warrning", "msgNotActivated", "btnExitSoftware", "btnGotoPay");
                if (result == ChoiceResult.BtnRight)
                {
                    Process.Start(App.Current.Resources["urlDvWebsite"].ToString());
                }
            }
            return(accountOk);
        }
        public void ActivateShizukuManager(DeviceBasicInfo targetDevice)
        {
            bool fixAndroidO = false;

            if (new DeviceBuildPropGetter(targetDevice.Serial).GetAndroidVersion() >= new Version("8.0.0"))
            {
                var result = BoxHelper.ShowChoiceDialog("msgNotice", "msgFixAndroidO", "btnDoNotOpen", "btnOpen");
                switch (result)
                {
                case ChoiceResult.BtnCancel:
                    return;

                case ChoiceResult.BtnLeft:
                    fixAndroidO = false;
                    break;

                case ChoiceResult.BtnRight:
                    fixAndroidO = true;
                    break;
                }
            }
            var args = new ShScriptExecuterArgs()
            {
                DevBasicInfo = targetDevice, FixAndroidOAdb = fixAndroidO
            };
            /*开始操作*/
            ShizukuManagerActivator activator = new ShizukuManagerActivator();

            activator.Init(args);
            activator.RunAsync();
            BoxHelper.ShowLoadingDialog(activator);
        }
Exemple #4
0
        public override bool Check(DeviceBasicInfo targetDevice)
        {
            Logger.Debug(this, "android version checking");
            Version result = new Version(1, 0);

            Task.Run(() =>
            {
                Thread.Sleep(1000);
                result = new DeviceBuildPropGetter(targetDevice.Serial).GetAndroidVersion();
                BoxHelper.CloseLoadingDialog();
            });
            BoxHelper.ShowLoadingDialog();
            Logger.Debug(this, $"Min{version} Device{result}");
            if (result == null)
            {
                var fmt = App.Current.Resources["msgAndroidVersionCheckFailedFormat"].ToString();
                return(BoxHelper.ShowChoiceDialog(
                           "Warning", String.Format(fmt, version.ToString(3)),
                           "btnCancel", "btnContinue").ToBool());
            }
            if (result < version)
            {
                string tooLowFmt = App.Current.Resources["msgAndroidVersionTooLowFmt"].ToString();
                string msg       = String.Format(tooLowFmt, version.ToString(3));
                BoxHelper.ShowMessageDialog("Warning", msg);
                return(false);
            }
            return(true);
        }
Exemple #5
0
 public override bool Check(DeviceBasicInfo tragetDevice)
 {
     if (!((MainWindow)App.Current.MainWindow).DevInfoPanel.CurrentDeviceIsRoot)
     {
         return(BoxHelper.ShowChoiceDialog("Warning", "warrningNeedRootAccess").ToBool());
     }
     return(true);
 }
            public bool?ShowChoiceBox(Context context, string title, string msg, string btnLeft = null, string btnRight = null)
            {
                bool?result = null;

                App.Current.Dispatcher.Invoke(() =>
                {
                    result = BoxHelper.ShowChoiceDialog(title, msg, btnLeft, btnRight).ToBool();
                });
                return(result);
            }
Exemple #7
0
        public override bool Check(DeviceBasicInfo targetDevice)
        {
            var users = new UserManager(targetDevice).GetUsers();

            Logger.Info(this, users.Length);
            if (users.Length > 0)
            {
                return(BoxHelper.ShowChoiceDialog("Warning",
                                                  "msgMaybeHaveOtherUser",
                                                  "btnCancel", "btnIHaveDeletedAllUser").ToBool());
            }
            return(true);
        }
        private void ButtonRebootToSnapdragon9008_Click(object sender, RoutedEventArgs e)
        {
            bool _needToContinue = BoxHelper.ShowChoiceDialog("msgNotice",
                                                              UIHelper.GetString("msgNoticeForRebootToEdlLine1") + "\n" +
                                                              UIHelper.GetString("msgNoticeForRebootToEdlLine2") + "\n" +
                                                              UIHelper.GetString("msgNoticeForRebootToEdlLine3"),
                                                              "btnCancel",
                                                              "btnContinue").ToBool();

            if (!_needToContinue)
            {
                return;
            }
            DeviceRebooter.RebootAsync(_currentDevInfo, RebootOptions.Snapdragon9008);
        }
 public void ShutdownApp(Context ctx)
 {
     App.Current.Dispatcher.Invoke(() =>
     {
         var fmt           = App.Current.Resources["msgRequestShutdownAppFormat"].ToString();
         string msg        = String.Format(fmt, ctx.GetType().Name);
         bool userIsAccept = BoxHelper.ShowChoiceDialog("Notice", msg, "btnDeny", "btnAccept").ToBool();
         if (userIsAccept)
         {
             Application.Current.Shutdown();
         }
         else
         {
             throw new UserDeniedException();
         }
     });
 }
 public void RestartApp(Context ctx)
 {
     App.Current.Dispatcher.Invoke(() =>
     {
         var fmt           = App.Current.Resources["msgRequestRestartAppFormat"].ToString();
         string msg        = String.Format(fmt, ctx.GetType().Name);
         bool userIsAccept = BoxHelper.ShowChoiceDialog("Notice", msg, "btnDeny", "btnAccept").ToBool();
         if (userIsAccept)
         {
             Application.Current.Shutdown();
             Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location);
         }
         else
         {
             throw new UserDeniedException();
         }
     });
 }
        private void ButtonRelockMi_Click(object sender, RoutedEventArgs e)
        {
            if (!BoxHelper.ShowChoiceDialog("Warning", "msgRelockWarning").ToBool())
            {
                return;
            }
            if (!BoxHelper.ShowChoiceDialog("Warning", "msgRelockWarningAgain").ToBool())
            {
                return;
            }
            var oemRelocker = new OemRelocker();

            oemRelocker.Init(new Basic.FlowFramework.FlowArgs()
            {
                DevBasicInfo = _currentDeviceInfo
            });
            oemRelocker.RunAsync();
            BoxHelper.ShowLoadingDialog(oemRelocker);
        }
 public void RestartAppAsAdmin(Context ctx)
 {
     App.Current.Dispatcher.Invoke(() =>
     {
         var fmt           = App.Current.Resources["msgRequestRestartAppAsAdminFormat"].ToString();
         string msg        = String.Format(fmt, ctx.GetType().Name);
         bool userIsAccept = BoxHelper.ShowChoiceDialog("Notice", msg, "btnDeny", "btnAccept").ToBool();
         if (userIsAccept)
         {
             ProcessStartInfo startInfo = new ProcessStartInfo("..\\AutumnBox-秋之盒.exe");
             startInfo.Arguments        = $"-tryadmin -waitatmb";
             Logger.Debug(this, startInfo.FileName + "  " + startInfo.Arguments);
             Process.Start(startInfo);
             Application.Current.Shutdown();
         }
         else
         {
             throw new UserDeniedException();
         }
     });
 }
Exemple #13
0
        private void ButtonVirtualBtnHide_Click(object sender, RoutedEventArgs e)
        {
            var choiceResult = BoxHelper.ShowChoiceDialog("PleaseSelected",
                                                          "msgVirtualButtonHider",
                                                          "btnHide",
                                                          "btnUnhide");

            if (choiceResult == ChoiceResult.BtnCancel)
            {
                return;
            }
            var args = new VirtualButtonHiderArgs()
            {
                DevBasicInfo = _currentDevInfo,
                IsHide       = (choiceResult == ChoiceResult.BtnRight),
            };
            VirtualButtonHider hider = new VirtualButtonHider();

            hider.Init(args);
            hider.RunAsync();
            BoxHelper.ShowLoadingDialog(hider);
        }
 private void RegisterEvent()
 {
     DevicesPanel.SelectionChanged += (s, e) =>
     {
         if (this.DevicesPanel.CurrentSelectDevice.State == DeviceState.None)//如果没选择
         {
             Reset();
         }
         else
         {
             Refresh(this.DevicesPanel.CurrentSelectDevice);
         }
     };
     FunctionFlowBase.AnyFinished    += FlowFinished;
     AdbHelper.AdbServerStartsFailed += (s, e) =>
     {
         DevicesMonitor.Stop();
         bool _continue = true;
         Dispatcher.Invoke(() =>
         {
             _continue = BoxHelper.ShowChoiceDialog("msgWarning",
                                                    "msgStartAdbServerFail",
                                                    "btnExit", "btnIHaveCloseOtherPhoneHelper")
                         .ToBool();
         });
         if (!_continue)
         {
             Close();
         }
         else
         {
             Task.Run(() =>
             {
                 Thread.Sleep(3000);
                 App.Current.Dispatcher.Invoke(DevicesMonitor.Begin);
             });
         }
     };
 }
Exemple #15
0
        public void Load()
        {
#if PAID_VERSION
            App.Current.Dispatcher.Invoke(() =>
            {
                loadingWindowApi.SetProgress(10);
                loadingWindowApi.SetTip(App.Current.Resources["ldmsgLoginAccount"].ToString());
            });
            if (Login() == false)
            {
                App.Current.Dispatcher.Invoke(() => App.Current.Shutdown(1));
            }
#endif
            //如果设置在启动时打开调试窗口
            if (Settings.Default.ShowDebuggingWindowNextLaunch)
            {
                //打开调试窗口
                App.Current.Dispatcher.Invoke(() =>
                {
                    new DebugWindow().Show();
                });
            }
            PrintInfo();
            //启动ADB服务
            App.Current.Dispatcher.Invoke(() =>
            {
                loadingWindowApi.SetProgress(30);
                loadingWindowApi.SetTip(App.Current.Resources["ldmsgStartAdb"].ToString());
            });

            bool success  = false;
            bool tryAgain = true;
            while (!success)
            {
                Logger.Info(this, "Try to start adb server ");
                success = AdbHelper.StartServer();
                Logger.Info(this, success ? "adb server starts success" : "adb server starts failed...");
                if (!success)
                {
                    App.Current.Dispatcher.Invoke(() =>
                    {
                        tryAgain = BoxHelper.ShowChoiceDialog(
                            "msgWarning",
                            "msgStartAdbServerFail",
                            "btnExit", "btnIHaveCloseOtherPhoneHelper").ToBool();
                    });
                }
                if (tryAgain)
                {
                    Thread.Sleep(2000);
                }
                else
                {
                    App.Current.Dispatcher.Invoke(() =>
                    {
                        App.Current.Shutdown(App.HAVE_OTHER_PROCESS);
                    });
                }
            }
            App.Current.Dispatcher.Invoke(() =>
            {
                //初始化主窗口
                App.Current.MainWindow = new MainWindow();
                //初始化拓展模块及其API框架
                loadingWindowApi.SetProgress(60);
                loadingWindowApi.SetTip(App.Current.Resources["ldmsgLoadingExtensions"].ToString());
            });
            OpenFrameworkManager.LoadApi();
            App.Current.OpenFrameworkManager.ReloadAllScript();
            App.Current.OpenFrameworkManager.LoadAllExtension();

            //启动设备拔插监听器
            App.Current.Dispatcher.Invoke(() =>
            {
                loadingWindowApi.SetProgress(80);
                loadingWindowApi.SetTip(App.Current.Resources["ldmsgStartDeviceMonitor"].ToString());
            });
            DevicesMonitor.Begin();

            //加载完成,启动主界面
            App.Current.Dispatcher.Invoke(() =>
            {
                loadingWindowApi.SetProgress(100);
                loadingWindowApi.Finish();
                App.Current.MainWindow.Show();
            });
        }
Exemple #16
0
 public override bool Check(DeviceBasicInfo tragetDevice)
 {
     return(BoxHelper.ShowChoiceDialog("titleMustRead", MsgKey).ToBool());
 }