Example #1
0
 private void ButtonSwitch_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         Task.Run(() => SnakeBarMessage(I18N.GetString("PleaseWait")));
         if (V2Ray.IsRunning())
         {
             Task.Run(() => V2Ray.Stop());
         }
         else
         {
             Task.Run(() => V2Ray.Start());
         }
         Task.Run(() => UpgradeStatus(true));
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, name,
                         MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
Example #2
0
 private void UpgradeStatus(bool isWait)
 {
     Dispatcher.Invoke(new Action(() =>
     {
         buttonSwitch.IsEnabled = false;
         buttonRoute.IsEnabled  = false;
         buttonNode.IsEnabled   = false;
         buttonListen.IsEnabled = false;
         labelStatus.Content    = $"{I18N.GetString("Waiting")}";
         labelStatus.Foreground = labelUpgrade.Foreground;
     }));
     if (isWait)
     {
         Task.Delay(2000).Wait();
     }
     Dispatcher.Invoke(new Action(() =>
     {
         var isRunning        = V2Ray.IsRunning();
         var isUsingRoute     = V2Ray.IsUsingRoute();
         var isListenHostOnly = V2Ray.IsListenHostOnly();
         if (isRunning)
         {
             buttonSwitch.Content = I18N.GetString("Stop");
         }
         else
         {
             buttonSwitch.Content = I18N.GetString("Start");
         }
         if (isUsingRoute)
         {
             buttonRoute.Content = I18N.GetString("Global");
         }
         else
         {
             buttonRoute.Content = I18N.GetString("Route");
         }
         if (isListenHostOnly)
         {
             buttonListen.Content = I18N.GetString("AllowAny");
         }
         else
         {
             buttonListen.Content = I18N.GetString("HostOnly");
         }
         if (isRunning)
         {
             if (isUsingRoute && isListenHostOnly)
             {
                 labelStatus.Content = $"{I18N.GetString("RunningStatus")}: " +
                                       $"{I18N.GetString("Route")}, {I18N.GetString("HostOnly")}";
                 labelStatus.Foreground = Brushes.DarkCyan;
             }
             else if (isUsingRoute && !isListenHostOnly)
             {
                 labelStatus.Content = $"{I18N.GetString("RunningStatus")}: " +
                                       $"{I18N.GetString("Route")}, {I18N.GetString("AllowAny")}";
                 labelStatus.Foreground = Brushes.DarkCyan;
             }
             else if (!isUsingRoute && isListenHostOnly)
             {
                 labelStatus.Content = $"{I18N.GetString("RunningStatus")}: " +
                                       $"{I18N.GetString("Global")}, {I18N.GetString("HostOnly")}";
                 labelStatus.Foreground = Brushes.DeepPink;
             }
             else
             {
                 labelStatus.Content = $"{I18N.GetString("RunningStatus")}: " +
                                       $"{I18N.GetString("Global")}, {I18N.GetString("AllowAny")}";
                 labelStatus.Foreground = Brushes.DeepPink;
             }
         }
         else
         {
             labelStatus.Content = $"{I18N.GetString("RunningStatus")}: " +
                                   $"{I18N.GetString("Stoped")}";
             labelStatus.Foreground = labelUpgrade.Foreground;
         }
         buttonSwitch.IsEnabled = true;
         buttonRoute.IsEnabled  = true;
         buttonNode.IsEnabled   = true;
         buttonListen.IsEnabled = true;
     }));
 }