summaryrefslogtreecommitdiff
path: root/rockwork/NotificationsPage.qml
blob: 9802b05dae33915dbc0d2308bb2107a0ca13668e (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
import QtQuick 2.4
import QtQuick.Layouts 1.1
import Ubuntu.Components 1.3
import RockWork 1.0

Page {
    id: root
    title: i18n.tr("Notifications")

    property var pebble: null

    ColumnLayout {
        anchors.fill: parent
        anchors.topMargin: units.gu(1)

        Item {
            Layout.fillWidth: true
            implicitHeight: infoLabel.height

            Label {
                id: infoLabel
                anchors {
                    left: parent.left
                    right: parent.right
                    margins: units.gu(2)
                }

                wrapMode: Text.WordWrap
                text: i18n.tr("Entries here will be added as notifications appear on the phone. Selected notifications will be shown on your Pebble smartwatch.")
            }
        }


        ListView {
            Layout.fillWidth: true
            Layout.fillHeight: true
            clip: true
            model: root.pebble.notifications

            delegate: ListItem {
                ListItemLayout {
                    title.text: model.name

                    UbuntuShape {
                        SlotsLayout.position: SlotsLayout.Leading;
                        height: units.gu(5)
                        width: height
                        backgroundColor: {
                            // Add some hacks for known icons
                            switch (model.icon) {
                            case "calendar":
                                return UbuntuColors.orange;
                            case "settings":
                                return "grey";
                            case "dialog-question-symbolic":
                                return UbuntuColors.red;
                            case "alarm-clock":
                                return UbuntuColors.purple;
                            case "gpm-battery-050":
                                return UbuntuColors.green;
                            }
                            return "black"
                        }
                        source: Image {
                            height: parent.height
                            width: parent.width
                            source: model.icon.indexOf("/") === 0 ? "file://" + model.icon : ""
                        }
                        Icon {
                            anchors.fill: parent
                            anchors.margins: units.gu(.5)
                            name: model.icon.indexOf("/") !== 0 ? model.icon : ""
                            color: "white"
                        }
                    }

                    Switch {
                        checked: model.enabled
                        SlotsLayout.position: SlotsLayout.Trailing;
                        onClicked: {
                            root.pebble.setNotificationFilter(model.name, checked)
                        }
                    }
                }
            }
        }
    }
}