Welcome to mirror list, hosted at ThFree Co, Russian Federation.

Widget.swift « Widget - github.com/nextcloud/ios.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fe301a39baabb2040def2e6e104964c7a906db2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
//
//  NextcloudWidget.swift
//  NextcloudWidget
//
//  Created by Marino Faggiana on 20/08/22.
//  Copyright © 2022 Marino Faggiana. All rights reserved.
//
//  Author Marino Faggiana <marino.faggiana@nextcloud.com>
//
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License, or
//  (at your option) any later version.
//
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
//

import WidgetKit
import SwiftUI

@main
struct NextcloudWidgetBundle: WidgetBundle {

    @WidgetBundleBuilder
    var body: some Widget {
        DashboardWidget()
        FilesWidget()
        ToolbarWidget()
        LockscreenWidget()
    }
}

struct DashboardWidget: Widget {
    let kind: String = "DashboardWidget"

    var body: some WidgetConfiguration {
        IntentConfiguration(kind: kind, intent: DashboardIntent.self, provider: DashboardWidgetProvider()) { entry in
            DashboardWidgetView(entry: entry)
        }
        .supportedFamilies([.systemLarge])
        .configurationDisplayName("Dashboard")
        .description(NSLocalizedString("_description_dashboardwidget_", comment: ""))
    }
}

struct FilesWidget: Widget {
    let kind: String = "FilesWidget"

    var body: some WidgetConfiguration {
        StaticConfiguration(kind: kind, provider: FilesWidgetProvider()) { entry in
            FilesWidgetView(entry: entry)
        }
        .supportedFamilies([.systemLarge])
        .configurationDisplayName("Files")
        .description(NSLocalizedString("_description_fileswidget_", comment: ""))
    }
}

struct ToolbarWidget: Widget {
    let kind: String = "ToolbarWidget"

    var body: some WidgetConfiguration {
        StaticConfiguration(kind: kind, provider: ToolbarWidgetProvider()) { entry in
            ToolbarWidgetView(entry: entry)
        }
        .supportedFamilies([.systemMedium])
        .configurationDisplayName("Toolbar")
        .description(NSLocalizedString("_description_toolbarwidget_", comment: ""))
    }
}

struct LockscreenWidget: Widget {
    let kind: String = "LockscreenWidget"

    var body: some WidgetConfiguration {
        if #available(iOSApplicationExtension 16.0, *) {
            return StaticConfiguration(kind: kind, provider: LockscreenWidgetProvider()) { entry in
                LockscreenWidgetView(entry: entry)
            }
            .supportedFamilies([.accessoryRectangular, .accessoryCircular])
            .configurationDisplayName(NSLocalizedString("_title_lockscreenwidget_", comment: ""))
            .description(NSLocalizedString("_description_lockscreenwidget_", comment: ""))
        } else {
            return EmptyWidgetConfiguration()
        }
    }
}