소스 검색

Improved Widget Files

Signed-off-by: Marino Faggiana <marino@marinofaggiana.com>
Marino Faggiana 2 년 전
부모
커밋
c4d8f64297
3개의 변경된 파일13개의 추가작업 그리고 6개의 파일을 삭제
  1. 10 4
      Widget/Files/FilesData.swift
  2. 2 1
      Widget/Files/FilesWidgetProvider.swift
  3. 1 1
      Widget/Files/FilesWidgetView.swift

+ 10 - 4
Widget/Files/FilesData.swift

@@ -24,8 +24,6 @@
 import WidgetKit
 import NextcloudKit
 
-let filesItems = 4
-
 struct FilesDataEntry: TimelineEntry {
     let date: Date
     let datas: [FilesData]
@@ -71,11 +69,19 @@ func getTitleFilesWidget() -> String {
     }
 }
 
+func getItems(displaySize: CGSize) -> Int {
+    
+    let height = Int((displaySize.height - 100) / 50)
+    return height
+}
+
 func getFilesDataEntry(isPreview: Bool, displaySize: CGSize, completion: @escaping (_ entry: FilesDataEntry) -> Void) {
 
-    let datasPlaceholder = Array(filesDatasTest[0...filesItems - 1])
+    let items = getItems(displaySize: displaySize)
+    let datasPlaceholder = Array(filesDatasTest[0...items - 1])
     let title = getTitleFilesWidget()
     
+    
     if isPreview {
         return completion(FilesDataEntry(date: Date(), datas: datasPlaceholder, isPlaceholder: true, tile: title, footerImage: "checkmark.icloud", footerText: NCBrandOptions.shared.brand + " files"))
     }
@@ -214,7 +220,7 @@ func getFilesDataEntry(isPreview: Bool, displaySize: CGSize, completion: @escapi
             }
             let data = FilesData.init(id: file.ocId, image: imageRecent, title: file.fileName, subTitle: subTitle, url: url)
             datas.append(data)
-            if datas.count == filesItems { break}
+            if datas.count == items { break}
         }
 
         if error != .success {

+ 2 - 1
Widget/Files/FilesWidgetProvider.swift

@@ -29,7 +29,8 @@ struct FilesWidgetProvider: TimelineProvider {
     typealias Entry = FilesDataEntry
 
     func placeholder(in context: Context) -> Entry {
-        let datasPlaceholder = Array(filesDatasTest[0...filesItems - 1])
+        let items = getItems(displaySize: context.displaySize)
+        let datasPlaceholder = Array(filesDatasTest[0...items - 1])
         let title = getTitleFilesWidget()
         return Entry(date: Date(), datas: datasPlaceholder, isPlaceholder: true, tile: title, footerImage: "checkmark.icloud", footerText: NCBrandOptions.shared.brand + " files")
     }

+ 1 - 1
Widget/Files/FilesWidgetView.swift

@@ -171,7 +171,7 @@ struct FilesWidgetView: View {
 
 struct FilesWidget_Previews: PreviewProvider {
     static var previews: some View {
-        let datas = Array(filesDatasTest[0...filesItems-1])
+        let datas = Array(filesDatasTest[0...5])
         let entry = FilesDataEntry(date: Date(), datas: datas, isPlaceholder: false, tile: "Good afternoon, Marino Faggiana", footerImage: "checkmark.icloud", footerText: "Nextcloud files")
         FilesWidgetView(entry: entry).previewContext(WidgetPreviewContext(family: .systemLarge))
     }