Proyectos de Subversion Iphone Microlearning - Nuevo Interface

Rev

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

Rev 11 Rev 17
Línea 10... Línea 10...
10
import PDFKit
10
import PDFKit
11
import Network
11
import Network
12
import Alamofire
12
import Alamofire
13
import SwiftyJSON
13
import SwiftyJSON
14
import TTGSnackbar
14
import TTGSnackbar
15
import NavigationStack
-
 
-
 
15
 
Línea 16... Línea 16...
16
 
16
 
-
 
17
 
Línea 17... Línea 18...
17
 
18
struct PdfViewerView: View {
18
struct PdfViewerView: View {
-
 
19
    
-
 
20
    @State private var backToGallery : Bool = false
-
 
21
    
-
 
22
    @State private var isCompleted : Bool = false
19
    @EnvironmentObject private var appNavigation : AppNavigation
23
    @State private var url : URL? = nil
20
    
-
 
21
    private var appData = AppData.sharedInstance
Línea 24... Línea -...
24
    
-
 
25
    private var slideModel : SlideModel
-
 
26
    private var slideTitle : String
-
 
27
    
-
 
28
   
-
 
29
    
22
    private var slideModel : SlideModel
30
    
23
    private var slideTitle : String
-
 
24
    private var url : URL?
-
 
25
    
-
 
26
    init()
31
 
27
    {
32
    
28
        print("urlExternalDownloaded : \(appData.urlExternalDownloaded)")
Línea 33... Línea 29...
33
    init(slideUuid : String)
29
        self.url = URL(string: appData.urlExternalDownloaded)
34
    {
30
        
35
        let slideDao = SlideDao.sharedInstance
31
        let slideDao = SlideDao.sharedInstance
36
        self.slideModel = slideDao.selectByUuid(uuid: slideUuid)
32
        self.slideModel = slideDao.selectByUuid(uuid: appData.slideUuidActive)
37
 
33
 
Línea 38... Línea -...
38
        if self.slideModel.name.count > Constants.APP_BAR_TITLE_MAX_LENGTH {
-
 
39
            slideTitle = String(Array(self.slideModel.name)[0...Constants.APP_BAR_TITLE_MAX_LENGTH]) + "..."
-
 
40
        } else {
-
 
Línea 41... Línea -...
41
            slideTitle = self.slideModel.name
-
 
Línea 42... Línea 34...
42
        }
34
        if self.slideModel.name.count > Constants.APP_BAR_TITLE_MAX_LENGTH {
Línea 43... Línea 35...
43
        
35
            slideTitle = String(Array(self.slideModel.name)[0...Constants.APP_BAR_TITLE_MAX_LENGTH]) + "..."
44
        
36
        } else {
45
 
-
 
46
        
-
 
47
        //print("Viewer PDF: \(slideModel.file) ")
-
 
48
        
-
 
49
        //self.url = URL(string: slideModel.file)
-
 
50
 
-
 
51
 
-
 
52
 
-
 
53
    }
-
 
54
    
37
            slideTitle = self.slideModel.name
55
    var body: some View {
38
        }
-
 
39
        
-
 
40
        
-
 
41
        
-
 
42
 
-
 
43
 
-
 
44
 
-
 
45
    }
-
 
46
    
-
 
47
    var body: some View {
-
 
48
        VStack(spacing: 0) {
56
        VStack(spacing: 0) {
49
            HStack {
57
            PopView(
50
                Button(action: {
-
 
51
                    
58
                destination: .root,
52
                    if self.url != nil {
Línea 59... Línea 53...
59
                isActive: self.$backToGallery,
53
                        do {
Línea 91... Línea 85...
91
            .background(Color("color_app_bar_background"))
85
            .background(Color("color_app_bar_background"))
92
            .edgesIgnoringSafeArea(.top)
86
            .edgesIgnoringSafeArea(.top)
93
            .frame(height: 50)
87
            .frame(height: 50)
94
            Divider()
88
            Divider()
Línea 95... Línea -...
95
 
-
 
-
 
89
 
96
            if self.url != nil {
90
 
Línea 97... Línea 91...
97
                GeometryReader { geometry in
91
                GeometryReader { geometry in
98
                
92
                
99
                    PDFKitRepresentedView(url!)
93
                    PDFKitRepresentedView(url!)
100
                    .frame(
94
                    .frame(
101
                        width: geometry.size.width,
95
                        width: geometry.size.width,
102
                        height: geometry.size.height,
-
 
-
 
96
                        height: geometry.size.height,
Línea 103... Línea 97...
103
                        alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
97
                        alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
104
                    .border(/*@START_MENU_TOKEN@*/Color.black/*@END_MENU_TOKEN@*/, width: /*@START_MENU_TOKEN@*/1/*@END_MENU_TOKEN@*/)
-
 
105
                    
98
   
Línea 106... Línea 99...
106
                }
99
                    
Línea 107... Línea -...
107
            }
-
 
108
                
-
 
109
            
-
 
110
            Spacer()
-
 
111
 
-
 
112
           
-
 
113
        }.onAppear {
-
 
114
            let appDao = AppDao.sharedInstance
-
 
115
            let appData = appDao.selectOne()
-
 
116
            let headerSecurity = HeaderSecurity()
-
 
117
            
-
 
118
            
-
 
119
            let headerAccept = HTTPHeader(name : Constants.HTTP_HEADER_ACCEPT, value: Constants.HTTP_HEADER_ACCEPT_VALUE)
-
 
120
            
-
 
121
            let headerRand = HTTPHeader(name : Constants.HTTP_HEADER_SECURITY_RAND, value: String(headerSecurity.rand))
-
 
122
            
-
 
123
            let headerToken = HTTPHeader(name : Constants.HTTP_HEADER_SECURITY_TOKEN, value: appData.deviceUuid)
-
 
124
            
-
 
125
            let headerCreated = HTTPHeader(name : Constants.HTTP_HEADER_SECURITY_CREATED, value: String(headerSecurity.created))
-
 
126
            
-
 
127
            let headerSecret = HTTPHeader(name : Constants.HTTP_HEADER_SECURITY_SECRET, value: headerSecurity.secret)
-
 
128
            
-
 
129
            
-
 
130
            var headers = HTTPHeaders()
-
 
131
            headers.add(headerAccept)
-
 
132
            headers.add(headerRand)
-
 
133
            headers.add(headerToken)
-
 
134
            headers.add(headerCreated)
-
 
135
            headers.add(headerSecret)
-
 
136
            
-
 
137
            
-
 
138
            /*
-
 
139
                Constants.HTTP_HEADER_ACCEPT: Constants.HTTP_HEADER_ACCEPT_VALUE,
-
 
140
                Constants.HTTP_HEADER_SECURITY_RAND: String(headerSecurity.rand),
-
 
141
                Constants.HTTP_HEADER_SECURITY_TOKEN: appData.deviceUuid,
-
 
142
                Constants.HTTP_HEADER_SECURITY_CREATED: String(headerSecurity.created) ,
-
 
143
                Constants.HTTP_HEADER_SECURITY_SECRET: headerSecurity.secret,
-
 
144
            ]*/
-
 
145
            /*
-
 
146
            let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory)
-
 
147
            */
-
 
148
            /*
-
 
149
            let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory, in: .userDomainMask)
-
 
150
                    
-
 
151
            
-
 
152
            let destination: DownloadRequest.DownloadFileDestination
-
 
153
            
-
 
154
    
-
 
155
            print("Download")
-
 
156
            AF.download(
-
 
157
                url!,
-
 
158
                method: .get,
-
 
159
                encoding: JSONEncoding.default,
-
 
160
                headers: headers, to: destination).downloadProgress(closure: { (progress) in
-
 
161
            //progress closure
-
 
162
        }).response(completionHandler: { (DefaultDownloadResponse) in
-
 
163
            //here you able to access the DefaultDownloadResponse
-
 
164
            //result closure
-
 
165
        })*/
-
 
166
            
-
 
167
            /*
-
 
168
                Constants.HTTP_HEADER_ACCEPT: Constants.HTTP_HEADER_ACCEPT_VALUE,
-
 
169
                Constants.HTTP_HEADER_SECURITY_RAND: String(headerSecurity.rand),
-
 
170
                Constants.HTTP_HEADER_SECURITY_TOKEN: appData.deviceUuid,
-
 
171
                Constants.HTTP_HEADER_SECURITY_CREATED: String(headerSecurity.created) ,
-
 
172
                Constants.HTTP_HEADER_SECURITY_SECRET: headerSecurity.secret,
-
 
173
            ]*/
-
 
174
            
-
 
175
            //AF.download()
-
 
176
                /*
-
 
177
                .downloadProgress { progress in
-
 
178
                    print("Download Progress: \(progress.fractionCompleted)")
-
 
179
                }
-
 
180
                .responseData { response in
-
 
181
                    do {
-
 
182
                        try response.result.value?.write(to: File.getPath(filename: "_cr"))
-
 
183
                    } catch {
-
 
184
                        print("oops !")
-
 
185
                    }
-
 
186
                }*/
-
 
187
            
-
 
188
            
-
 
189
            
-
 
190
            let destination = DownloadRequest.suggestedDownloadDestination(for: .documentDirectory)
-
 
191
             
-
 
192
            print("download")
-
 
193
            AF.download(
-
 
194
                URL(string: slideModel.file)!,
-
 
195
                method: .get,
-
 
196
                encoding: JSONEncoding.default,
-
 
197
                headers: headers).downloadProgress(closure: { (progress) in
-
 
198
                        print(progress.completedUnitCount)
-
 
199
                    }).responseData { (response) in
-
 
200
                        
-
 
201
                        self.url = response.fileURL
-
 
202
                        
-
 
203
                        //print("fileURL = \(fileURL)")
-
 
204
                        
-
 
205
                        /*
-
 
206
                        let destiUrl = responce.destiUrl? ""
-
 
207
                        print(destiUrl!)
-
 
208
                        */
-
 
209
                        /*
-
 
210
                        let newUrl = destiUrl?.deletingPathExtension().appendingPathExtension("zip")
-
 
211
                        do {
-
 
212
                            try FileManager.default.copyItem(at: destiUrl!, to: newUrl!)
-
 
213
             
-
 
214
                            let unzipDirectory = try Zip.quickUnzipFile(newUrl!)
-
 
215
                            print(unzipDirectory.absoluteString)
100
                }
216
                       }
101
           
217
                        catch let error as NSError{
102
            
Línea 218... Línea 103...
218
                            print(error)
103
            Spacer()
219
                        }*/
104
 
220
                }
105
           
221
        }
106
        }
222
    }
107
    }