Skip to content

Commit

Permalink
Merged in epic/IOS-536-app-redesign-signup-staging (pull request #110)
Browse files Browse the repository at this point in the history
Epic/IOS-536 app redesign signup staging

Approved-by: Aleksandr Mykhailenko
  • Loading branch information
jurajhilje committed Sep 8, 2020
2 parents 54321d1 + e1d980f commit 47d6e97
Show file tree
Hide file tree
Showing 292 changed files with 11,861 additions and 4,361 deletions.
6 changes: 0 additions & 6 deletions .swiftlint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,6 @@ excluded:
- Pods
- IVPNClient/Utilities/Pinger/PingManager

line_length:
warning: 150
error: 200
ignores_function_declarations: true
ignores_comments: true
ignores_urls: true
function_body_length:
warning: 300
error: 500
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

All notable changes to this project will be documented in this file.

## 2.0.0 - [Unreleased, Public beta]

[NEW] New design
[NEW] Interactive map
[NEW] Switch servers, MultiHop, protocols and toggle AntiTracker directly on the main screen
[NEW] Dedicated account screen
[IMPROVED] Search and sort on the servers list

Feedback and support:
[email protected]

## 1.19.1 - 2020-07-01

[FIXED] App crashing on iOS 12 devices
Expand Down
368 changes: 248 additions & 120 deletions IVPNClient.xcodeproj/project.pbxproj

Large diffs are not rendered by default.

57 changes: 30 additions & 27 deletions IVPNClient/AppDelegate.swift
Original file line number Diff line number Diff line change
@@ -1,9 +1,24 @@
//
// AppDelegate.swift
// IVPN Client
// IVPN iOS app
// https://github.com/ivpn/ios-app
//
// Created by Fedir Nepyyvoda on 9/29/16.
// Copyright © 2016 IVPN. All rights reserved.
// Created by Fedir Nepyyvoda on 2016-09-29.
// Copyright (c) 2020 Privatus Limited.
//
// This file is part of the IVPN iOS app.
//
// The IVPN iOS app is free software: you can redistribute it and/or
// modify it under the terms of the GNU General Public License as published by the Free
// Software Foundation, either version 3 of the License, or (at your option) any later version.
//
// The IVPN iOS app is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
// details.
//
// You should have received a copy of the GNU General Public License
// along with the IVPN iOS app. If not, see <https://www.gnu.org/licenses/>.
//

import UIKit
Expand All @@ -19,12 +34,6 @@ class AppDelegate: UIResponder {

// MARK: - Methods -

private func setRootViewController() {
if let window = window {
window.rootViewController = NavigationManager.getMainViewController()
}
}

private func evaluateFirstRun() {
if UserDefaults.standard.object(forKey: "FirstInstall") == nil {
KeyChain.clearAll()
Expand All @@ -50,17 +59,6 @@ class AppDelegate: UIResponder {
}
}

private func loadServerList() {
ApiService.shared.getServersList(storeInCache: true) { result in
switch result {
case .success(let serverList):
Application.shared.serverList = serverList
default:
break
}
}
}

private func evaluateUITests() {
// When running the application for UI Testing we need to remove all the stored data so we can start testing the clear app
// It is impossible to access the KeyChain from the UI test itself as the test runs in different process
Expand Down Expand Up @@ -119,25 +117,25 @@ class AppDelegate: UIResponder {

switch endpoint {
case Config.urlTypeConnect:
DispatchQueue.delay(0.75, closure: {
DispatchQueue.delay(0.75) {
if UserDefaults.shared.networkProtectionEnabled {
Application.shared.connectionManager.resetRulesAndConnectShortcut(closeApp: true)
return
}
Application.shared.connectionManager.connectShortcut(closeApp: true)
})
}
case Config.urlTypeDisconnect:
DispatchQueue.delay(0.75, closure: {
DispatchQueue.delay(0.75) {
if UserDefaults.shared.networkProtectionEnabled {
Application.shared.connectionManager.resetRulesAndDisconnectShortcut(closeApp: true)
return
}
Application.shared.connectionManager.disconnectShortcut(closeApp: true)
})
}
case Config.urlTypeLogin:
if let topViewController = UIApplication.topViewController() {
if #available(iOS 13.0, *) {
topViewController.present(NavigationManager.getLoginViewController(modalPresentationStyle: .automatic), animated: true, completion: nil)
topViewController.present(NavigationManager.getLoginViewController(), animated: true, completion: nil)
} else {
topViewController.present(NavigationManager.getLoginViewController(), animated: true, completion: nil)
}
Expand All @@ -160,7 +158,6 @@ extension AppDelegate: UIApplicationDelegate {
evaluateUITests()
evaluateFirstRun()
registerUserDefaults()
setRootViewController()
finishIncompletePurchases()
createLogFiles()
resetLastPingTimestamp()
Expand All @@ -170,7 +167,9 @@ extension AppDelegate: UIApplicationDelegate {

func applicationDidBecomeActive(_ application: UIApplication) {
if let mainViewController = UIApplication.topViewController() as? MainViewController {
mainViewController.refreshServiceStatus()
if let controlPanelViewController = mainViewController.floatingPanel.contentViewController as? ControlPanelViewController {
controlPanelViewController.refreshServiceStatus()
}
}

if UserDefaults.shared.networkProtectionEnabled {
Expand All @@ -180,6 +179,10 @@ extension AppDelegate: UIApplicationDelegate {

func applicationWillEnterForeground(_ application: UIApplication) {
NetworkManager.shared.stopMonitoring()

if let topViewController = UIApplication.topViewController() as? MainViewController {
topViewController.refreshUI()
}
}

func application(_ application: UIApplication, performActionFor shortcutItem: UIApplicationShortcutItem, completionHandler: @escaping (Bool) -> Void) {
Expand Down
6 changes: 3 additions & 3 deletions IVPNClient/Assets.xcassets/Contents.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
"author" : "xcode",
"version" : 1
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "alert-info-dark-navy.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "icon-alert-dark-yellow.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"filename" : "icon-arrow-left.pdf",
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"filename" : "icon-arrow-left-gray-dark.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"filename" : "icon-arrow-right.pdf",
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"filename" : "icon-arrow-right-gray-dark.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
Binary file not shown.
22 changes: 22 additions & 0 deletions IVPNClient/Assets.xcassets/icon-crosshair.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"filename" : "icon-crosshair.pdf",
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"filename" : "icon-crosshair-dark-mode.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
Binary file not shown.
12 changes: 12 additions & 0 deletions IVPNClient/Assets.xcassets/icon-info-2.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "icon-info-2.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.
12 changes: 12 additions & 0 deletions IVPNClient/Assets.xcassets/icon-map-pin.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "icon-map-pin.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.
Binary file not shown.
12 changes: 12 additions & 0 deletions IVPNClient/Assets.xcassets/icon-server.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "icon-server.pdf"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.
12 changes: 12 additions & 0 deletions IVPNClient/Assets.xcassets/icon-settings-2.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "icon-settings-2.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
22 changes: 22 additions & 0 deletions IVPNClient/Assets.xcassets/icon-settings.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "icon-settings.pdf"
},
{
"idiom" : "universal",
"filename" : "icon-settings-dark.pdf",
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
]
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.
Binary file not shown.
22 changes: 22 additions & 0 deletions IVPNClient/Assets.xcassets/icon-shuffle.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"filename" : "icon-shuffle.pdf",
"idiom" : "universal"
},
{
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
],
"filename" : "icon-shuffle-dark.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
Binary file not shown.
22 changes: 22 additions & 0 deletions IVPNClient/Assets.xcassets/icon-user.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
{
"images" : [
{
"idiom" : "universal",
"filename" : "icon-user.pdf"
},
{
"idiom" : "universal",
"filename" : "icon-user-dark.pdf",
"appearances" : [
{
"appearance" : "luminosity",
"value" : "dark"
}
]
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
Binary file not shown.
Binary file not shown.
12 changes: 12 additions & 0 deletions IVPNClient/Assets.xcassets/icon-wifi-off.imageset/Contents.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"images" : [
{
"filename" : "icon-wifi-off.pdf",
"idiom" : "universal"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}
Binary file not shown.
Loading

0 comments on commit 47d6e97

Please sign in to comment.