예제 #1
0
        public Task OnVpnStateChanged(VpnStateChangedEventArgs e)
        {
            if (e.State.Status == VpnStatus.Connected && _proxy.Enabled() && !_modalShown)
            {
                _modalShown = true;
                _dialogs.ShowWarning(Translation.Get("Dialogs_Proxy_msg_ProxyDetected"));
            }

            if (e.State.Status == VpnStatus.Disconnected)
            {
                _modalShown = false;
            }

            return(Task.CompletedTask);
        }
예제 #2
0
        private void HandleNoServersAvailable(IReadOnlyCollection <Server> candidates, Profile profile)
        {
            if (profile.ProfileType == ProfileType.Custom)
            {
                HandleNoCustomServerAvailable(candidates.FirstOrDefault());
                return;
            }

            if ((profile.Features.IsSecureCore() || profile.IsPredefined && _appSettings.SecureCore) &&
                _userStorage.User().MaxTier < ServerTiers.Plus)
            {
                _modals.Show <ScUpsellModalViewModel>();
                return;
            }

            if (!string.IsNullOrEmpty(profile.CountryCode))
            {
                HandleNoCountryServersAvailable(candidates);
                return;
            }

            if (!candidates.Any())
            {
                _dialogs.ShowWarning(StringResources.Get("Profiles_msg_NoServersAvailable"));
                return;
            }

            var userTierServers = candidates.UpToTierServers(_userStorage.User().MaxTier);

            if (!userTierServers.Any())
            {
                if (candidates.BasicServers().Any())
                {
                    _modals.Show <UpsellModalViewModel>();
                    return;
                }

                if (candidates.PlusServers().Any())
                {
                    _modals.Show <PlusUpsellModalViewModel>();
                    return;
                }
            }

            if (!candidates.OnlineServers().Any())
            {
                _dialogs.ShowWarning(StringResources.Get("Profiles_msg_AllServersOffline"));
                return;
            }

            _modals.Show <NoServerDueTierUpsellModalViewModel>();
        }
예제 #3
0
 private void ShowBlockedTrafficModal()
 {
     _dialogs.ShowWarning(StringResources.Get("Dialogs_P2PBlocked_msg_Blocked"));
 }
예제 #4
0
 private void ShowBlockedTrafficModal()
 {
     _dialogs.ShowWarning(Translation.Get("Dialogs_P2PBlocked_msg_Blocked"));
 }