Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 8 | Ir a la última revisión | | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  ProgressView.swift
3
//  twogetskills
4
//
5
//  Created by Efrain Yanez Recanatini on 5/5/22.
6
//
7
 
8
import Foundation
9
import SwiftUI
10
 
11
struct MyProgressView: View {
12
 
13
    @ObservedObject private var viewModel = ProgressViewModel()
14
 
15
    init()
16
    {
17
        viewModel.load()
18
    }
19
 
20
    var body: some View {
21
 
22
        GeometryReader { geometry in
23
            VStack(spacing: 0) {
24
                HStack {
25
                    Image("logo")
26
                    .resizable()
27
                    .frame(width: 32, height: 32, alignment: .center)
28
                    .aspectRatio(contentMode: .fit)
29
                    .foregroundColor(Color("color_app_bar_foreground"))
30
                    .padding(.leading, 16)
31
 
32
 
33
                    Text(Config.LANG_TAB_BAR_BUTTON_PROGRESS)
34
                    .font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_APP_BAR_HEAD1 ))
35
                    .foregroundColor(Color("color_app_bar_foreground"))
36
                    .padding(.leading, 4)
37
 
38
                    Spacer()
39
 
40
 
41
                }
42
                .background(Color("color_app_bar_background"))
43
                .edgesIgnoringSafeArea(.top)
44
                .frame(height: 50)
45
                Divider()
46
 
47
 
48
                HStack {
49
                    Text("Cápsulas")
50
                        .font(.title3)
51
                        .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
52
                        .foregroundColor(Color("color_app_bar_foreground"))
53
                    Spacer()
54
                }.padding([.top], 10)
55
                .padding(.horizontal, 10)
56
 
57
 
58
                HStack {
59
                    Spacer()
60
 
61
 
62
                    PieChartView(
63
                        values:[viewModel.percentajeCapsuleIncomplete, viewModel.percentajeCapsuleComplete],
64
                        names: ["", ""],
65
                        formatter: {value in String(format: "%.2f%%", value)},
66
                        colors: [
67
                            .gray,
68
                            Color("color_app_bar_foreground")
69
                        ],
70
                        backgroundColor: Color("color_window_background"),
71
                        widthFraction: 0.75,
72
                        innerRadiusFraction: 0.60,
73
                        chartSize : 250,
74
                        total : viewModel.percentajeCapsuleComplete
75
                    )
76
                    .frame(width: 190, height: 190,  alignment: .center)
77
 
78
                    Spacer()
79
                }
80
 
81
 
82
 
83
                HStack {
84
                    Spacer()
85
                    VStack {
86
                        Text(String(viewModel.capsuleTotal))
87
                            .font(.subheadline)
88
                            .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
89
                            .foregroundColor(Color("color_textview"))
90
 
91
                        Text("Total")
92
                            .font(.subheadline)
93
                            .foregroundColor(.gray)
94
                    }
95
                    VStack {
96
                        Text(String(viewModel.capsuleTotalStarted))
97
                            .font(.subheadline)
98
                            .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
99
                            .foregroundColor(Color("color_textview"))
100
 
101
                        Text("Iniciadas")
102
                            .font(.subheadline)
103
                            .foregroundColor(.gray)
104
                    }
105
                    VStack {
106
                        Text(String(viewModel.capsuleTotalForStart))
107
                            .font(.subheadline)
108
                            .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
109
                            .foregroundColor(Color("color_textview"))
110
 
111
                        Text("Por realizar")
112
                            .font(.subheadline)
113
                            .foregroundColor(.gray)
114
                    }
115
                    VStack {
116
                        Text(String(viewModel.capsuleTotalCompleted))
117
                            .font(.subheadline)
118
                            .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
119
                            .foregroundColor(Color("color_textview"))
120
 
121
                        Text("Completadas")
122
                            .font(.subheadline)
123
                            .foregroundColor(.gray)
124
                    }
125
                    Spacer()
126
 
127
                }.padding([.top], 5)
128
 
129
                HStack {
130
                    Text("Retorno")
131
                        .fontWeight(/*@START_MENU_TOKEN@*/.bold/*@END_MENU_TOKEN@*/)
132
                        .font(.title3)
133
                        .foregroundColor(Color("color_textview"))
134
                    Spacer()
135
                }.padding([.top], 5)
136
                .padding(.horizontal, 10)
137
 
138
                HStack {
139
                    Spacer()
140
 
141
                    PieChartView(
142
                            values:[
143
                                Double(viewModel.capsuleTotalWithoutReturning),
144
                                Double(viewModel.capsuleTotalWithReturning)
145
                            ],
146
                            names: ["", ""],
147
                            formatter: {value in String(format: "%.0f", value)},
148
                            colors: [
149
                                .gray,
150
                                Color("color_app_bar_background")
151
                            ],
152
                            backgroundColor: Color("color_window_background"),
153
                            widthFraction: 0.75,
154
                            innerRadiusFraction: 0.60,
155
                            chartSize : 250,
156
                            total : Double(viewModel.capsuleTotalWithReturning)
157
 
158
                        )
159
                        .frame(width: 190, height: 190,  alignment: .center)
160
 
161
 
162
 
163
                    Spacer()
164
                }
165
 
166
                Spacer()
167
 
168
            }.onAppear {
169
                viewModel.load()
170
            }
171
            .frame(width: geometry.size.width, height: geometry.size.height, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
172
            .background(Color("color_window_background"))
173
            .navigationTitle("Progreso")
174
            .navigationBarTitleDisplayMode(.inline)
175
            .navigationBarBackButtonHidden(true)
176
 
177
        }
178
    }
179
}
180
 
181
 
182
struct MyProgressView_Previews: PreviewProvider {
183
    static var previews: some View {
184
        MyProgressView()
185
    }
186
}
187