annotate Simoleon/SubscriptionPaywall.swift @ 150:6eac99e99b96

Add error handling to read json function
author Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
date Thu, 19 Aug 2021 19:12:56 +0100
parents fd19def1ce3f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
1 //
42
d25b02d439d4 Minor updates subscription and legal requirements
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 30
diff changeset
2 // SubscriptionPaywall.swift
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
3 // Simoleon
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
4 //
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 22/07/2021.
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
6 //
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
7
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
8 import SwiftUI
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
9
42
d25b02d439d4 Minor updates subscription and legal requirements
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 30
diff changeset
10 struct SubscriptionPaywall: View {
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
11 @Binding var showingSubscriptionPaywall: Bool
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
12
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
13 var body: some View {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
14 NavigationView {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
15 ScrollView {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
16 VStack(alignment: .leading, spacing: 20) {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
17 HStack {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
18 Spacer()
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
19 VStack {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
20 Image("Subscription")
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
21 .resizable()
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
22 .aspectRatio(contentMode: .fit)
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
23 .frame(width: 100, height: 100)
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
24 .cornerRadius(25)
75
b6f8661300f2 Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 69
diff changeset
25 .padding(.top)
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
26
65
4082787b33e5 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 62
diff changeset
27 Text("Unlock All Access")
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
28 .font(.title)
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
29 .fontWeight(.semibold)
140
fd19def1ce3f Fix alignment problem in Russian
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 75
diff changeset
30 .fixedSize(horizontal: false, vertical: true)
fd19def1ce3f Fix alignment problem in Russian
Dennis Concepcion Martin <dennisconcepcionmartin@gmail.com>
parents: 75
diff changeset
31 .multilineTextAlignment(.center)
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
32 .padding(.top)
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
33 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
34
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
35 Spacer()
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
36 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
37
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
38 Divider()
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
39
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
40 SubscriptionFeature(
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
41 symbol: "star.circle.fill",
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
42 colour: Color(.systemYellow),
65
4082787b33e5 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 62
diff changeset
43 title: "Favorite Forex Pairs",
68
aa451ca55e48 Fixes minor bugs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 65
diff changeset
44 description: "Save any currency pair to access them quickly."
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
45 )
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
46
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
47 SubscriptionFeature(
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
48 symbol: "flag.circle.fill",
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
49 colour: Color(.systemRed),
65
4082787b33e5 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 62
diff changeset
50 title: "Over 170 Currencies",
4082787b33e5 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 62
diff changeset
51 description: "Access almost every currency of the world."
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
52 )
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
53
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
54 SubscriptionFeature(
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
55 symbol: "icloud.circle.fill",
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
56 colour: Color(.systemBlue),
65
4082787b33e5 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 62
diff changeset
57 title: "Everything is Up-to-date",
53
b0bce2c8e4a9 Refactor UK spelling to US
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 47
diff changeset
58 description: "Your settings and favorite currencies in all your devices."
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
59 )
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
60
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
61 SubscriptionFeature(
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
62 symbol: "bitcoinsign.circle.fill",
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
63 colour: Color(.systemOrange),
65
4082787b33e5 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 62
diff changeset
64 title: "Cryptos and Commodities",
4082787b33e5 Minor UI updates
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 62
diff changeset
65 description: "Convert currency between cryptos, gold, and silver."
46
ce4eb7416b41 Add SubscriptionFeatureRow
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 42
diff changeset
66 )
30
f76d0e26c178 Add localisation
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 29
diff changeset
67
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
68 Spacer()
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
69 SubscribeButton(showingSubscriptionPaywall: $showingSubscriptionPaywall)
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
70 HStack {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
71 Spacer()
57
838099ff1e02 Remove privacy policy and terms of use
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 53
diff changeset
72 RestoreButton(showingSubscriptionPaywall: $showingSubscriptionPaywall)
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
73 Spacer()
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
74 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
75 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
76 .padding(.bottom)
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
77 .padding(.horizontal, 40)
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
78 }
75
b6f8661300f2 Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 69
diff changeset
79 .navigationBarTitleDisplayMode(.inline)
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
80 .toolbar {
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
81 ToolbarItem(placement: .cancellationAction) {
29
c52966834f83 Add localised strings
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 28
diff changeset
82 Button(action: { showingSubscriptionPaywall = false }) {
62
c7b6249ab745 uncomment localized texts
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 57
diff changeset
83 Text("Cancel")
29
c52966834f83 Add localised strings
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 28
diff changeset
84 }
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
85 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
86 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
87 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
88 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
89 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
90
42
d25b02d439d4 Minor updates subscription and legal requirements
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 30
diff changeset
91 struct SubscriptionPaywall_Previews: PreviewProvider {
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
92 static var previews: some View {
75
b6f8661300f2 Added isLocked to CurrencyPairs
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents: 69
diff changeset
93 SubscriptionPaywall(showingSubscriptionPaywall: .constant(true))
28
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
94 }
4f862c618b44 Implemented RevenueCat
Dennis Concepción Martín <dennisconcepcionmartin@gmail.com>
parents:
diff changeset
95 }