Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

Rev 17 | Rev 21 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 17 Rev 19
Línea 24... Línea 24...
24
    @State private var showGlobalAlert : Bool = false
24
    @State private var showGlobalAlert : Bool = false
25
    @State private var titleGlobalAlert : String = ""
25
    @State private var titleGlobalAlert : String = ""
26
    @State private var messageGlobalAlert : String = ""
26
    @State private var messageGlobalAlert : String = ""
Línea 27... Línea -...
27
    
-
 
28
    
-
 
29
    @State private var isDownloadInProgress = false
-
 
-
 
27
    
Línea 30... Línea 28...
30
    @State private var isDownloadCompleted = false
28
    
31
    @State private var bytesDownloaded : Int64 = 0
29
 
Línea 78... Línea 76...
78
           // let buttonY = (geometry.size.height - 80) / 2
76
           // let buttonY = (geometry.size.height - 80) / 2
Línea 79... Línea 77...
79
            
77
            
Línea 80... Línea 78...
80
            let buttonY = (geometry.size.height - 100) / 2
78
            let buttonY = (geometry.size.height - 100) / 2
81
          
-
 
82
            ZStack {
-
 
83
                if self.isDownloadInProgress {
-
 
84
                    VStack {
-
 
85
                        ProgressView()
-
 
86
                        .progressViewStyle(CircularProgressViewStyle(tint: Color("color_progress_view_foreground")))
79
          
87
                        .scaleEffect(3, anchor: .center).zIndex(100000)
-
 
88
                        
-
 
89
                        Text(String( self.bytesDownloaded) + " bytes descargados").zIndex(100000)
-
 
Línea 90... Línea 80...
90
                    }.background(Color("color_filter_background"))
80
            ZStack {
91
                }
81
 
92
                
82
                
Línea 191... Línea 181...
191
                let snackbar = TTGSnackbar(message: "Por implementar", duration: .long)
181
                let snackbar = TTGSnackbar(message: "Por implementar", duration: .long)
192
                snackbar.show()
182
                snackbar.show()
193
                break;
183
                break;
Línea 194... Línea 184...
194
            
184
            
195
            default :
185
            default :
196
                downloadFile();
186
                appNavigation.pageActive = .download
197
                break;
187
                break;
Línea 198... Línea 188...
198
        }
188
        }
Línea 199... Línea -...
199
        
-
 
200
        
-
 
201
        
-
 
202
    }
-
 
203
    
-
 
204
    private func downloadFile()
-
 
205
    {
-
 
206
        if networkMonitor.status == .disconnected {
-
 
207
        
-
 
208
            self.titleGlobalAlert = Config.LANG_ERROR_NETWORK_TITLE
-
 
209
            self.messageGlobalAlert = Config.LANG_ERROR_NETWORK_MESSAGE_LONG
-
 
210
            self.showGlobalAlert  = true
-
 
211
            return
-
 
212
        }
-
 
213
        
-
 
214
        guard let url = URL(string: viewModel.slide.file) else {
-
 
215
            return
-
 
216
        }
-
 
217
        
-
 
218
        let arrayFullFilename = viewModel.slide.file.split(separator: "/")
-
 
219
        let filename  = String(arrayFullFilename[arrayFullFilename.count - 1])
-
 
220
 
-
 
221
        
-
 
222
 
-
 
223
        let headerSecurity = HeaderSecurity()
-
 
224
        
-
 
225
        let headers: HTTPHeaders = [
-
 
226
            .init(name: Constants.HTTP_HEADER_SECURITY_TOKEN, value: appData.deviceUuid),
-
 
227
            .init(name: Constants.HTTP_HEADER_SECURITY_SECRET, value: headerSecurity.secret),
-
 
228
            .init(name: Constants.HTTP_HEADER_SECURITY_CREATED, value: String(headerSecurity.created)),
-
 
229
            .init(name: Constants.HTTP_HEADER_SECURITY_RAND, value: String(headerSecurity.rand)),
-
 
230
            .accept(Constants.HTTP_HEADER_ACCEPT)
-
 
231
        ]
-
 
232
        
-
 
233
        AF.request(url, method: .get, headers: headers)
-
 
234
        .downloadProgress(closure : { (progress) in
-
 
235
            self.isDownloadInProgress = true
-
 
236
            self.bytesDownloaded = progress.completedUnitCount
-
 
237
            
-
 
238
        })
-
 
239
        .responseData{ (response) in
-
 
240
            self.isDownloadInProgress = false
-
 
241
                        
-
 
242
            if let data = response.data {
-
 
243
             let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
-
 
244
                let resourceURL = documentsURL.appendingPathComponent(filename)
-
 
245
                do {
-
 
246
                    try data.write(to: resourceURL)
-
 
247
 
-
 
248
                    appData.urlExternalDownloaded = resourceURL.absoluteString
-
 
249
                    appData.save()
-
 
250
 
-
 
251
                    switch self.viewModel.slide.type
-
 
252
                    {
-
 
253
                        case  Constants.SLIDE_TYPE_VIDEO  :
-
 
254
                           // AppDelegate.orientationLock = UIInterfaceOrientationMask.landscapeLeft
-
 
255
                           //UIDevice.current.setValue(UIInterfaceOrientation.landscapeLeft.rawValue, forKey: "orientation")
-
 
256
                          //UIViewController.attemptRotationToDeviceOrientation()
-
 
257
                            
-
 
258
                            
-
 
259
                            self.appNavigation.pageActive = .videoplayer
-
 
260
                            break
-
 
261
                   
-
 
262
                        case Constants.SLIDE_TYPE_AUDIO :
-
 
263
                           self.appNavigation.pageActive = .videoplayer
-
 
264
                            break
-
 
265
                       
-
 
266
                        default :
-
 
267
                            self.appNavigation.pageActive = .pdfviewer
-
 
268
                            break
-
 
269
                    }
-
 
270
                } catch {
-
 
271
                    self.titleGlobalAlert = Config.LANG_ERROR_COMMUNICATION_TITLE
-
 
272
                    self.messageGlobalAlert = Config.LANG_ERROR_COMMUNICATION_MESSAGE
-
 
273
                    self.showGlobalAlert  = true
-
 
274
                }
189
        
275
               
190
        
Línea 276... Línea 191...
276
            }
191
        
277
        }
192
    }
278
    }
193