Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 8 | Rev 17 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 1
//
2
//  CapsuleInProgressView.swift
3
//  twogetskills
4
//
5
//  Created by Efrain Yanez Recanatini on 7/27/22.
6
//
7
 
8
import SwiftUI
9
import HTMLEntities
10
 
11
struct MyCapsuleInProgressView: View {
12
 
13
    @EnvironmentObject var appNavigation : AppNavigation
11 efrain 14
    private let appDao = AppDao.sharedInstance
1 efrain 15
 
16
    private var capsuleModel : CapsuleModel
17
    private var capsuleTitle : String
18
 
19
    init(capsuleUuid: String)
20
    {
21
        let capsuleDao = CapsuleDao.sharedInstance
22
        capsuleModel = capsuleDao.selectByUuid(uuid: capsuleUuid)
23
 
24
        if capsuleModel.uuid.isEmpty {
25
            self.capsuleTitle = Config.LANG_MY_CAPSULES_INPROGRESS_NOT_AVAILABLE
26
        } else {
27
 
28
            if  capsuleModel.name.count > Constants.CAPSULE_TITLE_MAX_LENGTH {
29
                self.capsuleTitle =  String(Array(capsuleModel.name)[0...Constants.CAPSULE_TITLE_MAX_LENGTH]) + "..."
30
            }  else {
31
                self.capsuleTitle = capsuleModel.name
32
            }
33
 
34
 
35
        }
36
 
37
 
38
 
39
    }
40
 
41
    var body: some View {
42
        Group {
43
            HStack {
44
                VStack(spacing: 0) {
45
                    HStack {
46
 
47
 
48
 
49
                        Text(Config.LANG_MY_CAPSULES_INPROGRESS_TITLE)
50
                            .font(Font.custom(Config.FONT_NAME_BOLD, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_TITLE))
51
                            .foregroundColor(Color("color_capsule_inprogress_foreground_title"))
52
 
53
                        Spacer()
54
                    }
55
                    .padding(.top, 16)
56
                    .padding(.leading, 16)
57
 
58
                    HStack {
59
                        Text(self.capsuleTitle)
60
                            .font(Font.custom(Config.FONT_NAME_BOLD, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_CAPSULE_NAME))
61
                            .foregroundColor(Color("color_capsule_inprogress_foreground_capsule_name"))
62
 
63
                            .padding(.leading, 4)
64
                            .padding(.trailing, 4)
65
                        Spacer()
66
                    }
67
                    .padding(.top, 10)
68
                    .padding(.leading, 16)
69
 
70
                    HStack {
71
                        ProgressBar(
72
                            value: self.capsuleModel.progress,
73
                            maxValue: 100,
74
                            backgroundColor: Color("color_capsule_inprogress_progress_bar_background"),
75
                            foregroundColor: Color("color_capsule_inprogress_progress_bar_foreground")
76
 
77
                        )
78
                        .frame(height: 6)
79
                        .padding(10)
80
 
81
                        Text( String(format: "%.1f", self.capsuleModel.progress) + "%")
82
                            .font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_PROGRESS_LABEL ))
83
                            .foregroundColor(Color("color_capsule_inprogress_progress_label"))
84
                            .padding(5)
85
                    }
86
                    .padding(.leading, 10)
87
                    .padding(.trailing, 10)
88
 
89
                    Spacer()
90
 
91
                    if !self.capsuleModel.uuid.isEmpty {
92
 
93
                        HStack {
94
                            Button(action: {
11 efrain 95
                                var appData = appDao.selectOne()
1 efrain 96
                                appData.topicUuidActive = capsuleModel.topicUuid
97
                                appData.capsuleUuidActive = capsuleModel.uuid
98
                                appData.slideUuidActive = ""
99
 
11 efrain 100
                                print("update query : 16")
101
                                appDao.update(model: appData)
102
 
1 efrain 103
                                withAnimation {
11 efrain 104
                                    appNavigation.subPageSource = .mycapsules
8 efrain 105
                                    appNavigation.subpageActive = .slides
1 efrain 106
                                }
107
 
108
 
109
                            }, label: {
110
                                Text(Config.LANG_MY_CAPSULES_INPROGRESS_BUTTON_CONTINUE)
111
                                    .font(Font.custom(Config.FONT_NAME_REGULAR, size: Config.FONT_SIZE_MY_CAPSULES_INPROGRESS_BUTTON))
112
                                    .foregroundColor(Color("color_capsule_inprogress_button_foreground"))
113
                                    .padding(.vertical, 5)
114
                                    .padding(.horizontal, 10)
115
 
116
                            })
117
                            .background(Color("color_capsule_inprogress_button_background"))
118
                            .cornerRadius(3)
119
                            .overlay(
120
                                RoundedRectangle(cornerRadius: 3)
121
                                    .stroke(Color("color_capsule_inprogress_button_border"), lineWidth:1)
122
                            )
123
 
124
 
125
 
126
                            Spacer()
127
 
128
 
129
                        }
130
                        .padding(.leading, 16)
131
                        .padding(.bottom, 10)
132
                    }
133
 
134
 
135
                }
136
                Group {
137
                    if self.capsuleModel.image.isEmpty {
138
 
139
 
140
                        Image(uiImage: UIImage(named: "logo") ?? UIImage())
141
                            .resizable()
142
                            .resizable()
143
                            .aspectRatio(contentMode: .fit)
144
 
145
 
146
 
147
                    } else {
148
                        CustomAsyncImage(
149
                            url: URL(string: self.capsuleModel.image)!,
150
                            placeholder: { Text(Config.LANG_COMMON_LOADING).font(.footnote).foregroundColor(.black)},
151
                            image: {
152
                                Image(uiImage: $0).resizable()
153
 
154
 
155
                            }
156
                        )
157
                    }
158
                } . frame(width: 93, height: 140, alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
159
                    .background(Color("color_window_background"))
160
                    .padding(.top, 16)
161
                    .padding(.bottom, 16)
162
                    .padding(.trailing, 16)
163
 
164
            }
165
        }
166
        .frame(width: UIScreen.main.bounds.width - 32, height: 151)
167
        .background(Color("color_capsule_inprogress_background"))
168
        .cornerRadius(8)
169
        .overlay(
170
            RoundedRectangle(cornerRadius: 8)
171
                .stroke(Color("color_capsule_comment_rating_image_border"), lineWidth:1)
172
        )
173
        .shadow(color: Color("color_capsule_inprogress_shadow"), radius:4, x: 5, y: 5)
174
 
175
 
176
    }
177
}
178
 
179
struct MyCapsuleInProgressView_Previews: PreviewProvider {
180
    static var previews: some View {
181
        MyCapsuleInProgressView(capsuleUuid: "C123")
182
    }
183
}