Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2df607bc4 | ||
|
|
a02b1f58ba | ||
|
|
57f95bca46 | ||
|
|
3dfc9c62ac | ||
|
|
4e1ed87c2d | ||
|
|
3567f5e867 | ||
|
|
4644f03941 | ||
|
|
2e216e3342 | ||
|
|
08b41bba5b | ||
|
|
08cfb48a18 | ||
|
|
94172ef873 | ||
|
|
12f8e4dc34 | ||
|
|
5d1a28d337 | ||
|
|
5574c14dda | ||
|
|
16c71bcc54 | ||
|
|
553e8d3c00 | ||
|
|
9f27d9d04a | ||
|
|
ac58839faf | ||
|
|
ca408c9e0a | ||
|
|
fa58e7dea2 | ||
|
|
527f020b85 | ||
|
|
930499d04f | ||
|
|
ead0b8d42d | ||
|
|
0872563452 | ||
|
|
bf35eb7ef2 | ||
|
|
09a8641d92 | ||
|
|
86cb713d06 | ||
|
|
54fd594cac | ||
|
|
319fb1b9c0 | ||
|
|
16607ef483 | ||
|
|
1270f1ccdb | ||
|
|
e43b3722fa | ||
|
|
9e5d61d026 | ||
|
|
94e391ddd8 | ||
|
|
abd5bb424c | ||
|
|
8719884c39 | ||
|
|
4a31840ddc | ||
|
|
306015760e | ||
|
|
78a34fdc12 | ||
|
|
4e6cf8a381 | ||
|
|
19a7874be1 | ||
|
|
40e62db93a | ||
|
|
dd3daaf473 | ||
|
|
224b82514f | ||
|
|
8ab40a00c3 | ||
|
|
5b5fca328b | ||
|
|
6dd0ea9938 | ||
|
|
8445272181 | ||
|
|
f582c9f3f4 | ||
|
|
a6922525dc | ||
|
|
70183f33cd | ||
|
|
f7ec471aaf | ||
|
|
1b0261d57d | ||
|
|
e05258785e | ||
|
|
7daa906ee2 | ||
|
|
be751e5705 | ||
|
|
216a259a9d | ||
|
|
a5eda85cca | ||
|
|
b9ea6b3e3b | ||
|
|
e33a07df36 | ||
|
|
924254011a | ||
|
|
4e60fbc1ea | ||
|
|
83807b5bac | ||
|
|
e2ff31e437 | ||
|
|
ff06558e26 | ||
|
|
705f675d1e | ||
|
|
df968543fa | ||
|
|
35acdcf892 | ||
|
|
b089011f11 | ||
|
|
c6970d4706 | ||
|
|
bcb7a28dfb | ||
|
|
41e0a23934 | ||
|
|
0f14f277d8 | ||
|
|
df96c68b89 | ||
|
|
4e01c23fab | ||
|
|
6e50823a2b | ||
|
|
05db312d73 | ||
|
|
e7a60b2fb7 | ||
|
|
f87e6c663b | ||
|
|
85e2ea5fe3 | ||
|
|
b7743d08a2 | ||
|
|
bf9d10a8a0 | ||
|
|
f06ce1b1dc | ||
|
|
0e9f3fecc1 | ||
|
|
3be81f04f9 | ||
|
|
5ca1b106b3 | ||
|
|
a19f7e157e | ||
|
|
923d220824 | ||
|
|
7086324894 | ||
|
|
ce9eb18f9e | ||
|
|
6d1cb91e43 | ||
|
|
d110a8c051 | ||
|
|
036ca74e00 | ||
|
|
7fdf47bdd2 | ||
|
|
3ed222b057 | ||
|
|
edcd7457b4 | ||
|
|
02fb802796 | ||
|
|
f409494a7f | ||
|
|
49ef9b4011 | ||
|
|
4357888f63 | ||
|
|
222b13161b | ||
|
|
e3f241087b | ||
|
|
2a2fef7a17 | ||
|
|
054bfa7f40 | ||
|
|
1aec4f3c58 | ||
|
|
5809d9820d | ||
|
|
83f48a864f | ||
|
|
cfa600df83 | ||
|
|
11c3e39225 | ||
|
|
113f2c8835 | ||
|
|
e364114124 | ||
|
|
4dd34c5109 | ||
|
|
5844a09d40 | ||
|
|
7269f37e29 | ||
|
|
4fe7c9c5d7 | ||
|
|
39f2e3c283 | ||
|
|
c3e9b2eef6 | ||
|
|
b077a7f90a | ||
|
|
2f2757f12f | ||
|
|
5b43c36646 | ||
|
|
c3a2afffb9 | ||
|
|
ad0c609a67 | ||
|
|
86df9ecce8 | ||
|
|
710ef0a73d | ||
|
|
d13a97ca44 | ||
|
|
5b8980b5ed | ||
|
|
c5ebd72db9 | ||
|
|
35674a520a | ||
|
|
feb97b7e79 | ||
|
|
6220a41bdc | ||
|
|
2f015cf1a9 | ||
|
|
959fdfb23e | ||
|
|
718365e943 | ||
|
|
7c694e0eaf | ||
|
|
82e2899f19 | ||
|
|
1a8471850f | ||
|
|
196c5980ea | ||
|
|
0f94ee4022 | ||
|
|
d75f2cb6c2 | ||
|
|
0e9933c467 | ||
|
|
1f736ca85d | ||
|
|
4bfe7fcdd8 | ||
|
|
8dbb87d126 | ||
|
|
b8ab49aea3 | ||
|
|
d295f6051c | ||
|
|
c37c920021 | ||
|
|
7381aecaf2 | ||
|
|
753506b79c | ||
|
|
b24a66dd8c | ||
|
|
34c7ac57f8 | ||
|
|
19535f995d | ||
|
|
9eb71d9cb6 | ||
|
|
9ebf2db04e | ||
|
|
6ff8505e34 | ||
|
|
212e9e4d34 | ||
|
|
2aceb2cf00 | ||
|
|
ca7f968658 | ||
|
|
7d2431bf71 | ||
|
|
8a1bdb9e5b | ||
|
|
a9e5e329e3 | ||
|
|
aae8977b53 | ||
|
|
48634a72fb | ||
|
|
fce748bac2 | ||
|
|
2f1ec59491 | ||
|
|
9f25c0791d | ||
|
|
ea5d641929 | ||
|
|
6d97d1d705 | ||
|
|
6c9128fccb | ||
|
|
372020a864 | ||
|
|
4da26468bf | ||
|
|
b94b3f77dc | ||
|
|
508f6434e3 | ||
|
|
fb9f4b1014 | ||
|
|
11f5749a86 | ||
|
|
5879e725ef | ||
|
|
30e4cf2ebe | ||
|
|
e8e5b2dbb0 | ||
|
|
95ff19205b | ||
|
|
a012324aaa | ||
|
|
2b1be36960 | ||
|
|
fb1901bb99 | ||
|
|
739062fefd | ||
|
|
a822c001df | ||
|
|
2637e40742 | ||
|
|
3b3fb35282 | ||
|
|
69f0cb57de | ||
|
|
2a9f17298f | ||
|
|
e78d5ee2aa | ||
|
|
1514aa785b | ||
|
|
a502a44766 | ||
|
|
df9b7e9a05 | ||
|
|
81f2cc76cf | ||
|
|
8168422813 | ||
|
|
028721a2b9 | ||
|
|
9c5af860d6 | ||
|
|
e614ed2353 | ||
|
|
5ebe5f5e1d | ||
|
|
f6734b1725 | ||
|
|
2765b154b4 | ||
|
|
88100cf4a5 | ||
|
|
3c7c1ad3fd | ||
|
|
957f846dc1 | ||
|
|
5a652c32e4 | ||
|
|
7585d62a3a | ||
|
|
fd13c750b0 | ||
|
|
b066490987 | ||
|
|
f67746a1c0 | ||
|
|
6d0491a25a | ||
|
|
1f315fbae7 | ||
|
|
7267a10a86 | ||
|
|
f408716149 | ||
|
|
4314599694 | ||
|
|
27379df182 | ||
|
|
504b4c909c | ||
|
|
9a3d5d1977 | ||
|
|
723918a7c9 | ||
|
|
54b936e442 | ||
|
|
c7544a72b2 | ||
|
|
2757d75341 | ||
|
|
ea5fb2cc81 | ||
|
|
fab8f04833 | ||
|
|
739e095065 | ||
|
|
efaa6373a7 | ||
|
|
fb0bc6b363 | ||
|
|
8028994c80 | ||
|
|
4a4f6e1ad2 | ||
|
|
b93942b48c | ||
|
|
c5339699f7 | ||
|
|
243cc178d9 | ||
|
|
94c3d627cd | ||
|
|
7a8afb6401 | ||
|
|
eec09c0288 | ||
|
|
2925b66e27 | ||
|
|
88faf4745c | ||
|
|
4a3dda3a13 | ||
|
|
86e3d05f19 | ||
|
|
4a5c0c1220 | ||
|
|
181a079567 | ||
|
|
d3f4bd2c73 | ||
|
|
eb0157b8c4 | ||
|
|
fce60e6085 | ||
|
|
3ebb677af7 | ||
|
|
16a5157a4d | ||
|
|
dac752f26a | ||
|
|
93403bb14a | ||
|
|
b0c0509b6a | ||
|
|
e89c4466ed | ||
|
|
47ef777ad8 | ||
|
|
14d5374bf3 | ||
|
|
cc8940d8de | ||
|
|
51f0e141d5 | ||
|
|
7f6f3aeb24 | ||
|
|
344473ddf3 | ||
|
|
d72f3d6d72 | ||
|
|
893e5c3a81 | ||
|
|
4c7dc4600d | ||
|
|
48fa12e146 | ||
|
|
7d63256ab4 | ||
|
|
c156db4747 | ||
|
|
7aa30aa319 | ||
|
|
43ae5d373c | ||
|
|
44bfcd8289 | ||
|
|
359bd16add | ||
|
|
a90284e31b | ||
|
|
bc2602e26b | ||
|
|
301f931054 | ||
|
|
486eac69e6 | ||
|
|
95c6a5d54a | ||
|
|
060fc473ba | ||
|
|
abfee1ced3 | ||
|
|
78310ee48a | ||
|
|
efd04cb4fc | ||
|
|
7f463b1950 | ||
|
|
e9b814d225 | ||
|
|
c76408e9d3 | ||
|
|
4acda5d2be | ||
|
|
6e2bd3f94d | ||
|
|
99936962f6 | ||
|
|
9bc1d142e9 | ||
|
|
ea29ff939b | ||
|
|
b884c9c79f | ||
|
|
6595b5fbd8 | ||
|
|
d300fb5812 | ||
|
|
6bb2821284 | ||
|
|
eee314a172 | ||
|
|
ff51dd7f9a | ||
|
|
143e9ce2c3 | ||
|
|
8c5e0990a6 | ||
|
|
739b836f04 | ||
|
|
096589ccb6 | ||
|
|
3a822d7b0d | ||
|
|
979e4b2373 | ||
|
|
b78a4636be | ||
|
|
06ef2efde4 | ||
|
|
bd05270c49 | ||
|
|
b815fa0e8f | ||
|
|
a451c10849 | ||
|
|
29ea938d01 | ||
|
|
e826dee3ca | ||
|
|
482861d829 | ||
|
|
9468cce587 | ||
|
|
5f2dad95d9 | ||
|
|
c62269937f | ||
|
|
9a3ef6afd9 | ||
|
|
38a5b669e5 | ||
|
|
4af62f63f8 | ||
|
|
74deb9cc69 | ||
|
|
3171e312e6 | ||
|
|
e7eb29192f | ||
|
|
a29bf04aa8 | ||
|
|
ae206b213d | ||
|
|
aaae7d25f8 | ||
|
|
0aa8350e0c | ||
|
|
d4366adcf6 | ||
|
|
6e765b1342 | ||
|
|
32b2b6c447 | ||
|
|
aff16edcce | ||
|
|
791324bbbd | ||
|
|
35556e8a9f | ||
|
|
308730309a | ||
|
|
999e6f0cd9 | ||
|
|
bbe4b73c6e | ||
|
|
4ad484f5e5 | ||
|
|
3aefd491f0 | ||
|
|
bd8ff8f625 | ||
|
|
b586357097 | ||
|
|
832364d788 | ||
|
|
f51b2e35b8 | ||
|
|
fdddb227bb | ||
|
|
9419c6a74d | ||
|
|
df8fd9cbe5 | ||
|
|
41916dfc8f | ||
|
|
75afd9ee19 | ||
|
|
fa2ed90f00 | ||
|
|
551d16d622 | ||
|
|
e7f9b265f0 | ||
|
|
5fa7e93e63 | ||
|
|
4524396cc2 | ||
|
|
b35c1b0d34 | ||
|
|
813f3dbbdc | ||
|
|
1abbd5608d | ||
|
|
6f70f7956b | ||
|
|
ed4e9b6b64 | ||
|
|
cc8daad55c | ||
|
|
7ffe60f532 | ||
|
|
92f6158ee8 | ||
|
|
f34e968672 | ||
|
|
4e84b21747 | ||
|
|
31b9d00f9f | ||
|
|
65373c76d7 | ||
|
|
5f5415c301 | ||
|
|
931db398db | ||
|
|
1fa60ab100 | ||
|
|
1995af86d3 | ||
|
|
9ef1952c3a | ||
|
|
e5679c97d3 | ||
|
|
017cc840a0 | ||
|
|
1ea99bed2d | ||
|
|
9dd6f69088 | ||
|
|
566526ad8b | ||
|
|
1dc9720ca7 | ||
|
|
839b6f19b9 | ||
|
|
53e4908b18 | ||
|
|
75fbc2a9ff | ||
|
|
45d6b093c8 | ||
|
|
de2a62f0c9 | ||
|
|
960fe45cd6 | ||
|
|
93949860ef | ||
|
|
3fc150a2d7 | ||
|
|
9584c5d609 | ||
|
|
82c78e1744 | ||
|
|
fddcb1903e | ||
|
|
78b85071f1 | ||
|
|
048f6a10cb | ||
|
|
0c4d92d110 | ||
|
|
6f663fc9aa | ||
|
|
5eda39c17c | ||
|
|
c2f0d76203 | ||
|
|
a7904f108c | ||
|
|
4049c5fe56 | ||
|
|
226acb4136 | ||
|
|
dae4e2902d | ||
|
|
672b004bf4 | ||
|
|
92e0896962 | ||
|
|
c8f431fd20 | ||
|
|
bbe52265cb | ||
|
|
fdf02a5fb9 | ||
|
|
3910628730 | ||
|
|
f1b753580b | ||
|
|
c503fd8d6d | ||
|
|
b4ac670e26 | ||
|
|
5a6c8bea8c | ||
|
|
2d312edfa0 | ||
|
|
f49918a770 | ||
|
|
d140f59d92 | ||
|
|
2d6a9f6152 | ||
|
|
06672fe892 | ||
|
|
6ac65cdad5 | ||
|
|
f6628dbe63 | ||
|
|
f6f080920b | ||
|
|
8deed7a8a9 | ||
|
|
743ae406f9 | ||
|
|
f78dc7cb0c | ||
|
|
3bdfe55054 | ||
|
|
e1b98be719 | ||
|
|
ec0c24a167 | ||
|
|
02d6fbbdab | ||
|
|
b0636902e2 | ||
|
|
cb574171bd | ||
|
|
e574029778 | ||
|
|
251421dd3e | ||
|
|
96f73f8621 | ||
|
|
6e8fe5cabe | ||
|
|
36e2f262af | ||
|
|
d5e0fcfd82 | ||
|
|
cfc028cfe9 | ||
|
|
14d6325e61 | ||
|
|
d7ecf907f4 | ||
|
|
ef5c22bb22 | ||
|
|
ad03fb4217 | ||
|
|
4796d077fd | ||
|
|
b80bb3f840 | ||
|
|
951e653e89 | ||
|
|
9643f88bdd | ||
|
|
9b636b1c5e | ||
|
|
db8c51dedd | ||
|
|
f3167d8756 | ||
|
|
6ecc52a796 | ||
|
|
70be04922e | ||
|
|
76966f2d26 | ||
|
|
7b412900b3 | ||
|
|
2313f7a23a | ||
|
|
00b7ffad02 | ||
|
|
a24924a87a | ||
|
|
b0fd0ce25f | ||
|
|
ea713976fc | ||
|
|
ca4d9b719d | ||
|
|
2a39b8d478 | ||
|
|
00fca1d1a0 | ||
|
|
f1a161333c | ||
|
|
19f3e3a9c3 | ||
|
|
2a746b41d3 | ||
|
|
ff34b9590e | ||
|
|
204436be3e | ||
|
|
80f87da940 | ||
|
|
02a497fd41 | ||
|
|
20bc3255ce | ||
|
|
d59e8c1a47 | ||
|
|
7447bde181 | ||
|
|
fdfaf4db72 | ||
|
|
11af6ffca2 | ||
|
|
ac8b58d851 | ||
|
|
2238dafb64 | ||
|
|
dfb71b7694 | ||
|
|
c28ba744df | ||
|
|
4591b8c7bf | ||
|
|
f702d544a3 | ||
|
|
165e1573ce | ||
|
|
038ad2646d | ||
|
|
f308c13f68 | ||
|
|
1c60f014f0 | ||
|
|
d532aa53d8 | ||
|
|
a427af2e98 | ||
|
|
30766e206c | ||
|
|
f49193d9e5 | ||
|
|
1ae2db1cb9 | ||
|
|
c368a4a80c | ||
|
|
1a6b7e35cc | ||
|
|
75f9ad9c5e | ||
|
|
83f1d1489e | ||
|
|
42be05f6cf | ||
|
|
6a7abc9caf | ||
|
|
35f618b462 | ||
|
|
bbd2357ce7 | ||
|
|
14431ffb8f | ||
|
|
ae9b860e51 | ||
|
|
851040bebc | ||
|
|
8f6a060bc2 | ||
|
|
d120dff06e | ||
|
|
56a4012e75 | ||
|
|
56c381e8d2 | ||
|
|
aa771a7223 | ||
|
|
63ec689978 | ||
|
|
a3d9e3eca4 | ||
|
|
1352dfa9d1 | ||
|
|
5a7862a8d2 | ||
|
|
6b72a542a3 | ||
|
|
69f02c8bec | ||
|
|
3b1b11af2d | ||
|
|
6e75dd2756 | ||
|
|
d1b9cd30b7 | ||
|
|
9cd09c0d53 | ||
|
|
20c3bbe970 | ||
|
|
1577682421 | ||
|
|
8431dc04dc | ||
|
|
9600e0605a | ||
|
|
16de79e3c1 | ||
|
|
c6935dd96d | ||
|
|
8b888af072 | ||
|
|
c688a1a446 | ||
|
|
7af97e371f | ||
|
|
80d9ff6d21 | ||
|
|
aae8ebadb0 | ||
|
|
157c601b26 | ||
|
|
a26a7cfcc0 | ||
|
|
8bff092606 | ||
|
|
049cd41c39 | ||
|
|
8d61caf8ce | ||
|
|
323203cc56 | ||
|
|
08f5f1a8aa | ||
|
|
84218cd803 | ||
|
|
f8b26e36ad | ||
|
|
00d66f728d | ||
|
|
f23d29007e | ||
|
|
a3bf76bd69 | ||
|
|
12bf445a2d | ||
|
|
70acf6dcf5 | ||
|
|
b40fc00517 | ||
|
|
f2164848b5 | ||
|
|
489ab6f049 | ||
|
|
6443bcc341 | ||
|
|
af180c5a19 | ||
|
|
56bac78b79 | ||
|
|
9198cacb8a | ||
|
|
11c8faba46 | ||
|
|
814350d722 | ||
|
|
7cdf2e1f0a | ||
|
|
79b9b6352f | ||
|
|
e42755b60e | ||
|
|
6601ba69f3 | ||
|
|
f825c36dff | ||
|
|
6fa8129971 | ||
|
|
b241b60f5f | ||
|
|
12f7f7b6ec | ||
|
|
67ff8c05b0 | ||
|
|
e81e1afde0 | ||
|
|
3f69b55aeb | ||
|
|
9d5378319e | ||
|
|
4dc76d6133 | ||
|
|
2de8673a30 | ||
|
|
3ba00cf2bb | ||
|
|
465c6b2f1d | ||
|
|
5cece111f7 | ||
|
|
b24eba38a4 | ||
|
|
dc2de0ff16 | ||
|
|
4c258f293a | ||
|
|
16f5449dd9 | ||
|
|
c7f0d60f92 | ||
|
|
177f0ebc50 | ||
|
|
1028e1c33b | ||
|
|
8cf77981fb | ||
|
|
07c4f08d08 | ||
|
|
252ec4cd67 | ||
|
|
46741f01f1 | ||
|
|
a594acf652 | ||
|
|
0666ff7840 | ||
|
|
3a934b6e72 | ||
|
|
669ae5ba23 | ||
|
|
4a4f73c91d | ||
|
|
d74abcb14b | ||
|
|
c13959d60d | ||
|
|
1f0a06e150 | ||
|
|
43367be2a5 | ||
|
|
740d6c5fb1 | ||
|
|
e80aa1f4ae | ||
|
|
dbc87b2e70 | ||
|
|
f11e1729d6 | ||
|
|
a914f1c15e | ||
|
|
5d1ee9aafb | ||
|
|
d68e2e1a58 | ||
|
|
b4934e8ca3 | ||
|
|
dc4c4bd1f2 | ||
|
|
ea8f759895 | ||
|
|
489e295f5a | ||
|
|
9861d51989 | ||
|
|
91ade8fa53 | ||
|
|
712e74d779 | ||
|
|
b5f28bb029 | ||
|
|
1528dbdeb8 | ||
|
|
426d54ad74 | ||
|
|
18f207b9c2 | ||
|
|
18d13ae4d2 | ||
|
|
63033e5df9 | ||
|
|
410caba048 | ||
|
|
6b14aa561e | ||
|
|
8a55afbbf3 | ||
|
|
825b26320b | ||
|
|
b0771bebd8 | ||
|
|
b619005968 | ||
|
|
ee8b6ee44d | ||
|
|
0e4f89c0f5 | ||
|
|
41c9f68379 | ||
|
|
08c1cf976d | ||
|
|
ba3c608ebe | ||
|
|
5248e5501f | ||
|
|
0d5ed19308 | ||
|
|
4c363d0a33 | ||
|
|
543e5431e4 | ||
|
|
39f96ab7f4 | ||
|
|
d127902914 | ||
|
|
7ad5f9663c | ||
|
|
bfa5045b03 | ||
|
|
00ab751c77 | ||
|
|
b7ba8c0e95 | ||
|
|
4a1a47537a | ||
|
|
7f8b32bf72 | ||
|
|
f5a324cba7 | ||
|
|
a42f506593 | ||
|
|
228688fc4a | ||
|
|
a40bb0fb14 | ||
|
|
8bd53cb706 | ||
|
|
bd80d9f878 | ||
|
|
8948b32a39 | ||
|
|
1a7d3ffd2a | ||
|
|
53e35007a4 | ||
|
|
53904ef117 | ||
|
|
204eb28e7f | ||
|
|
27cce2d3de | ||
|
|
949d0653c1 | ||
|
|
26691c6a69 | ||
|
|
750431d1d9 | ||
|
|
1e935dfbb1 | ||
|
|
c10f6d999c | ||
|
|
3172442d5a | ||
|
|
73dbef62b8 | ||
|
|
d521b8a71d | ||
|
|
7dc62efda3 | ||
|
|
3db1daaf6b | ||
|
|
f70c5d1802 | ||
|
|
ba344fed5c | ||
|
|
cfe1841b89 | ||
|
|
d9abdce6ca | ||
|
|
4b4ba5c567 | ||
|
|
5520ab00a6 | ||
|
|
51bb053748 | ||
|
|
8cf89de667 | ||
|
|
fde1941abf | ||
|
|
8abd88223f | ||
|
|
c89455abcd | ||
|
|
7af64e7fe5 | ||
|
|
c8e9e5c8fb | ||
|
|
ec4ff4cdce | ||
|
|
8146997ca0 | ||
|
|
a32d455e8c | ||
|
|
c193c5b9a1 | ||
|
|
bd284b765d | ||
|
|
5c8482db2c | ||
|
|
0ae38836d9 | ||
|
|
aa2d5cb619 | ||
|
|
0a1d0f0109 | ||
|
|
205ced0de1 | ||
|
|
6a693396d7 | ||
|
|
640d97a60c | ||
|
|
33f814631c | ||
|
|
2f991b204f | ||
|
|
7f962e3e6e | ||
|
|
8f47733e7d | ||
|
|
a9e2cd4724 | ||
|
|
ef5b264607 | ||
|
|
e8cc588b1c | ||
|
|
0665c651d8 | ||
|
|
8e2e409046 | ||
|
|
031e629fd9 | ||
|
|
dc21e5e215 | ||
|
|
1960df3f5e | ||
|
|
7c395cbbc0 | ||
|
|
623a4f1cc6 | ||
|
|
4f8c7299be | ||
|
|
fae46c489e | ||
|
|
019da39e09 | ||
|
|
7c7885908b | ||
|
|
0b7a8a2735 | ||
|
|
51ed1fbba4 | ||
|
|
5b1428da75 | ||
|
|
a554677e3f | ||
|
|
19ce31c33f | ||
|
|
a2178ded5d | ||
|
|
0e9d013e5f | ||
|
|
055b2310ac | ||
|
|
f242efbe66 | ||
|
|
5946ddf208 | ||
|
|
ccdd1c3302 | ||
|
|
c48548623d | ||
|
|
b074f813c9 | ||
|
|
d62da64c6f | ||
|
|
d0247d6021 | ||
|
|
4330ad00ab | ||
|
|
f7da41e13f | ||
|
|
4283d68699 | ||
|
|
bf87d968b8 | ||
|
|
8a7e9198f8 | ||
|
|
c5623b4e89 | ||
|
|
93e43eb4bb | ||
|
|
cb5198a25a | ||
|
|
5231f6afd8 | ||
|
|
e8c995bc6a | ||
|
|
419f21ad0b | ||
|
|
a42014ae3f | ||
|
|
c7c3aa72d6 | ||
|
|
d64fddeb59 | ||
|
|
99929313b3 | ||
|
|
3b5be4edf9 | ||
|
|
26b847b8fe | ||
|
|
f3c3d23cdd | ||
|
|
5138f2568d | ||
|
|
617be9d826 | ||
|
|
71d55e2b86 | ||
|
|
e8c9077b77 | ||
|
|
285e3d3b2c | ||
|
|
47f8e517c0 | ||
|
|
5d134f6153 | ||
|
|
116f595c3a | ||
|
|
44d9e9cd0a | ||
|
|
e0f0b25e92 | ||
|
|
6b98ca6507 | ||
|
|
c977bd73f4 | ||
|
|
6fc3793719 | ||
|
|
42e626566a | ||
|
|
590c76509a | ||
|
|
348c4ea0b2 | ||
|
|
356bbe9789 | ||
|
|
23f67ec0a6 | ||
|
|
820fa7478d | ||
|
|
30dd440e8e | ||
|
|
5dcf40ae63 | ||
|
|
7fcbddfbd8 | ||
|
|
8c8b1a6278 | ||
|
|
85f962ba87 | ||
|
|
fbecb464ec | ||
|
|
cdeca65f49 | ||
|
|
0cb117c253 | ||
|
|
c82ad4761d | ||
|
|
7e6ac9ed0d | ||
|
|
aef9b007f0 | ||
|
|
a4223b4664 | ||
|
|
06adfc8764 | ||
|
|
b43f367119 | ||
|
|
867c4f3103 | ||
|
|
6ab8c5142e | ||
|
|
866d9243df | ||
|
|
ac8f48e2aa | ||
|
|
f292d1fe1d | ||
|
|
86ac788821 | ||
|
|
0ef17cbb14 | ||
|
|
409f18ba3f | ||
|
|
7fb55a193e | ||
|
|
6348e2a6c2 | ||
|
|
8380e4f4f9 | ||
|
|
fab2e4e0ab | ||
|
|
7b9c974c84 | ||
|
|
fa3ea30530 | ||
|
|
3ee177f96f | ||
|
|
de48e21740 | ||
|
|
08d9fcb815 | ||
|
|
4dbc396908 | ||
|
|
709ce0b706 | ||
|
|
31dec03353 | ||
|
|
997cd955f7 | ||
|
|
dbf7faecef | ||
|
|
0d638eabbb | ||
|
|
a8c5920eac | ||
|
|
2b5d6b5d39 | ||
|
|
b93e458750 | ||
|
|
e7abb47e35 | ||
|
|
efbfa7b1e2 | ||
|
|
61151b92cb | ||
|
|
8de5269c60 | ||
|
|
4b5f588282 | ||
|
|
8e043246ec | ||
|
|
4782465828 | ||
|
|
0746687269 | ||
|
|
bffe6c46cc | ||
|
|
248abf8f46 | ||
|
|
281bc2ac22 | ||
|
|
99429f1dcf | ||
|
|
f1713546d9 | ||
|
|
5f6f5da9b0 | ||
|
|
2d7ae1d23c | ||
|
|
1ca353b72f | ||
|
|
9eb120cc79 | ||
|
|
2e67567520 | ||
|
|
d6808a7e7e | ||
|
|
4cbd5d906e | ||
|
|
fadc3325f9 | ||
|
|
b9a9494161 | ||
|
|
003be3acad | ||
|
|
8cc9377677 | ||
|
|
51eac35853 | ||
|
|
df9685b058 | ||
|
|
9d086cdcc0 | ||
|
|
f63ecc2a57 | ||
|
|
34857a2e8b | ||
|
|
c2fa31b645 | ||
|
|
05235661af | ||
|
|
01d5d87c19 | ||
|
|
d121f96e03 | ||
|
|
b7e05b14e5 | ||
|
|
abd32d7e26 | ||
|
|
280538c27b | ||
|
|
bf5493f9c1 | ||
|
|
f7d3fb6a88 | ||
|
|
4048ebf662 | ||
|
|
ffb754e3fe | ||
|
|
2bdb979e86 | ||
|
|
f945905340 | ||
|
|
639482c4a1 | ||
|
|
9ba77caf17 | ||
|
|
7efe8ed896 | ||
|
|
e70cf9f090 | ||
|
|
264fe0c904 | ||
|
|
b76559defc | ||
|
|
80f8a4650a | ||
|
|
c08554a286 | ||
|
|
926b217261 | ||
|
|
d2777868f8 | ||
|
|
2221ff8d89 | ||
|
|
5b7a6955df | ||
|
|
0b7ecbf164 | ||
|
|
20b915825a | ||
|
|
d49ac77800 | ||
|
|
12c3cf05bb | ||
|
|
e50f881297 | ||
|
|
20ab757b7c | ||
|
|
f443dc5727 | ||
|
|
c86415bc87 | ||
|
|
3354860b66 | ||
|
|
071ccd880e | ||
|
|
24d0ce3d80 | ||
|
|
d5df2472e8 | ||
|
|
db785cd9de | ||
|
|
cd9036ecd2 | ||
|
|
b7967b8100 | ||
|
|
3144b60600 | ||
|
|
352f3a31ce | ||
|
|
cf775ebf8b | ||
|
|
7a9d796a5f | ||
|
|
caed1d713d | ||
|
|
c51b2a8ff4 | ||
|
|
ad6a178c79 | ||
|
|
5908264b6b | ||
|
|
a096aebe3c | ||
|
|
de42e6a1df | ||
|
|
eb5c38f278 | ||
|
|
9231e4153d | ||
|
|
be27ec2211 | ||
|
|
d1d0622ad4 | ||
|
|
e9ad76b9c7 | ||
|
|
e84ac031a0 | ||
|
|
67399322eb | ||
|
|
ee39ebff58 | ||
|
|
f33e59ff48 | ||
|
|
f15d4e7dff | ||
|
|
00c132ec11 | ||
|
|
d8aa1f7228 | ||
|
|
f6f05358af | ||
|
|
67af47359a | ||
|
|
54c5d18145 | ||
|
|
9020ea7f85 | ||
|
|
f699827969 | ||
|
|
0ecec99eb9 | ||
|
|
89c4ccd1f5 | ||
|
|
2b9793a223 | ||
|
|
39c4af1a43 | ||
|
|
c6ddb7a6a0 | ||
|
|
e9a5fa3533 | ||
|
|
d461f3485b | ||
|
|
ae1527ac15 | ||
|
|
8a5f04dff9 | ||
|
|
aa5e2b8e5f | ||
|
|
74e43cdf4c | ||
|
|
c2320c431f | ||
|
|
7847d86ade | ||
|
|
bd5361c886 | ||
|
|
8628450a13 | ||
|
|
29cddf7155 | ||
|
|
bad0065c87 | ||
|
|
0dcb59a218 | ||
|
|
95f7c218ba | ||
|
|
5997880b08 | ||
|
|
b38b3f3380 | ||
|
|
85271cc53c | ||
|
|
e0f0cd8380 | ||
|
|
e8cab3ad8c | ||
|
|
d473c5787c | ||
|
|
52dfd698ab | ||
|
|
185b6b993d | ||
|
|
a6aeaaee07 | ||
|
|
1848e477a6 | ||
|
|
7f3479ee44 | ||
|
|
8d14a21c92 | ||
|
|
6794c114a9 | ||
|
|
c8fe0e57db | ||
|
|
c92e30c437 | ||
|
|
01d0c734d2 | ||
|
|
a02c60ced6 | ||
|
|
c07252362e | ||
|
|
1fd056afd1 | ||
|
|
65fbefc28a | ||
|
|
e4752691fc | ||
|
|
d5f50c7012 | ||
|
|
6a45f7ebf2 | ||
|
|
c8d476c05c | ||
|
|
b02a9368cc | ||
|
|
2a99242a8a | ||
|
|
6745414763 | ||
|
|
b1f789c1b8 | ||
|
|
85144b50e2 | ||
|
|
26b2405b1b | ||
|
|
24784eb8ab | ||
|
|
7739e91258 | ||
|
|
58d36b1125 | ||
|
|
185cf27b37 | ||
|
|
16275acd8e | ||
|
|
054742ea53 | ||
|
|
e3635fcc90 | ||
|
|
1d414ee842 | ||
|
|
14cf2a7fc7 | ||
|
|
dcef86bdb3 | ||
|
|
ab7d184536 | ||
|
|
82216aec45 | ||
|
|
fb8e12c356 | ||
|
|
e0c40c9a29 | ||
|
|
d63aa839e9 | ||
|
|
09da829d5d | ||
|
|
36d7feb76f | ||
|
|
5646f04717 | ||
|
|
e0e2b7be70 | ||
|
|
71a5ad183c | ||
|
|
0ceaeb8ba0 | ||
|
|
dd6e0b8977 | ||
|
|
e31e907fa0 | ||
|
|
93936c3cc4 | ||
|
|
a22a12d0b9 | ||
|
|
c6aa78cb2e | ||
|
|
79be0f9471 | ||
|
|
340d8f9d28 | ||
|
|
217f47c866 | ||
|
|
acc95f7617 | ||
|
|
283ddc7397 | ||
|
|
7fa81e8ed5 | ||
|
|
5ab94e7f2e | ||
|
|
1e89e1d436 | ||
|
|
9c78773233 | ||
|
|
9ef4de2a20 | ||
|
|
175b184035 | ||
|
|
ef5fb703cf | ||
|
|
fada7182bb | ||
|
|
496671e731 | ||
|
|
057469ff6b | ||
|
|
a80c07c4c9 | ||
|
|
9fc70926c2 | ||
|
|
82015282d7 | ||
|
|
a9157937e6 | ||
|
|
6a349e825b | ||
|
|
4b271275e9 | ||
|
|
91ddd367c1 | ||
|
|
4a9b33d52f | ||
|
|
946096f037 | ||
|
|
dd664a917a | ||
|
|
56d8042794 | ||
|
|
b2caded04a | ||
|
|
5d8ea49eaf | ||
|
|
d8cb83df35 | ||
|
|
e63b0569e1 | ||
|
|
f3de2c16d0 | ||
|
|
ea19a7d9b3 | ||
|
|
85aea67517 | ||
|
|
0f98a1dcc3 | ||
|
|
eef1e2f33b | ||
|
|
a8c33337c6 | ||
|
|
1df17edf42 | ||
|
|
575b15c4a4 | ||
|
|
35c2477a1c | ||
|
|
6295c1e16c | ||
|
|
e2758cb0b7 | ||
|
|
3c48a82c95 | ||
|
|
e0545a3b47 | ||
|
|
e00f5744ed | ||
|
|
85b9ee122b | ||
|
|
e8058cab6e | ||
|
|
ed3e3949e4 | ||
|
|
e4d084e49e | ||
|
|
f3a5d0c457 | ||
|
|
8527a3b139 | ||
|
|
1af8a6e206 | ||
|
|
5d4adfa055 | ||
|
|
1745025464 | ||
|
|
f7b3cd9537 | ||
|
|
6d73bc2a64 | ||
|
|
a492acb936 | ||
|
|
92c4b8d3fe | ||
|
|
1694df89ed | ||
|
|
55485b74aa | ||
|
|
4ba2b8403b | ||
|
|
3daf082d34 | ||
|
|
8c7eb47b77 | ||
|
|
33887dd053 | ||
|
|
694e6f78e6 | ||
|
|
adfff1f438 | ||
|
|
3a84a751a4 | ||
|
|
865e1842c5 | ||
|
|
64a1a1e4cd | ||
|
|
6d85c248a8 | ||
|
|
e10ba5c9c0 | ||
|
|
5b662d2a0d | ||
|
|
c7def78093 | ||
|
|
2c7ca8b1f7 | ||
|
|
d152c21878 | ||
|
|
de43e8d02f | ||
|
|
575ee03075 | ||
|
|
13d88196fb | ||
|
|
419a05e336 | ||
|
|
bc91277216 | ||
|
|
57b31756bb | ||
|
|
ffe812ad66 | ||
|
|
fe1e3b02eb | ||
|
|
f966dfdb79 | ||
|
|
bae6debc7d | ||
|
|
a973e5ba26 | ||
|
|
4f3803c9ef | ||
|
|
a631b58a09 | ||
|
|
636b88a4d8 | ||
|
|
3f948fb5ee | ||
|
|
5596fc1921 | ||
|
|
c2c7ceb81b | ||
|
|
0b271a47a2 | ||
|
|
cf701d0e77 | ||
|
|
442034d7ea | ||
|
|
fbf12baade | ||
|
|
bf1f020074 | ||
|
|
9916c01c03 | ||
|
|
d0d36e58a9 | ||
|
|
de35d712c5 | ||
|
|
e0200d8117 | ||
|
|
4b3d8b4a82 | ||
|
|
d658762ad3 | ||
|
|
8dbddb3146 | ||
|
|
f801295ee3 | ||
|
|
e7f7feedba | ||
|
|
35a32d9b08 | ||
|
|
a086975b27 | ||
|
|
fb60aeb14b | ||
|
|
92c1df32e1 | ||
|
|
58058f2a8b | ||
|
|
110f766bec | ||
|
|
b04ce16e4d | ||
|
|
47933010b5 | ||
|
|
ea549f6b62 | ||
|
|
157ee0ed0f | ||
|
|
661d51091d | ||
|
|
37d4cb67d9 | ||
|
|
48289f0206 | ||
|
|
d332e28104 | ||
|
|
3c423261d3 | ||
|
|
95f88db0cd | ||
|
|
d87eb377f4 | ||
|
|
b27dead77a | ||
|
|
b71808c884 | ||
|
|
5ca385bdb5 | ||
|
|
96a3575a1d | ||
|
|
df31a864b6 | ||
|
|
cd77cb161b | ||
|
|
d6823eb45a | ||
|
|
79e3b398cc | ||
|
|
3498e9fc99 | ||
|
|
06544d2b39 | ||
|
|
1cf9c3ed7b | ||
|
|
6ba56e592a | ||
|
|
96c13bba9b | ||
|
|
9915c56900 | ||
|
|
cb6b6b638d | ||
|
|
56f15d9dff | ||
|
|
2e17cdeef2 | ||
|
|
c669b75b84 | ||
|
|
313f5c154f | ||
|
|
4928939ece | ||
|
|
8284d116c2 | ||
|
|
cd21726eb9 | ||
|
|
9cbdba3e37 | ||
|
|
1267f68129 | ||
|
|
1564cf0b65 | ||
|
|
bedf370ebb | ||
|
|
0dbd901ecf | ||
|
|
9804952285 | ||
|
|
d37dc47e8f | ||
|
|
8039d9bb64 | ||
|
|
1bc5a06e66 | ||
|
|
382df51fcf | ||
|
|
26247a15a7 | ||
|
|
9d2582f72f | ||
|
|
42812d3951 | ||
|
|
005ee09ddc | ||
|
|
9da20849e5 | ||
|
|
c61074cce8 | ||
|
|
60ffdda903 | ||
|
|
6d0e4cae16 | ||
|
|
bf33ca51ef | ||
|
|
d9aefdbdde | ||
|
|
eef848439e | ||
|
|
de9cd62e9f | ||
|
|
f4cca4b124 | ||
|
|
d082710f35 | ||
|
|
70bd2d7396 | ||
|
|
a3bf2852f1 | ||
|
|
11e5e4831d | ||
|
|
b162509737 | ||
|
|
2bd60fe713 | ||
|
|
9f3eda71b6 | ||
|
|
ce06198149 | ||
|
|
12cdec9cbf | ||
|
|
b2f4334da1 | ||
|
|
4e34bcdb28 | ||
|
|
f3aed02dc8 | ||
|
|
d972fb9daa | ||
|
|
ea302d277b | ||
|
|
915d65dbaf | ||
|
|
a7b2f774d4 | ||
|
|
085a4d047c | ||
|
|
10180f7b75 | ||
|
|
b382de5c87 | ||
|
|
6d35a3d60f | ||
|
|
aa0c018a9e | ||
|
|
4306c84ae4 | ||
|
|
bdc0ad1c37 | ||
|
|
03c44ae4ff | ||
|
|
7c8fd63c84 | ||
|
|
d6ca772d88 | ||
|
|
6715944493 | ||
|
|
732d1dc046 | ||
|
|
0b74169eb3 | ||
|
|
39a8f265d0 | ||
|
|
aa0ee7514e | ||
|
|
b6effc31f4 | ||
|
|
ef53471e68 | ||
|
|
957a96f83f | ||
|
|
7fa6e8eb5d | ||
|
|
d56129ec84 | ||
|
|
332cc8bd15 | ||
|
|
b70f401417 | ||
|
|
f1546369c5 | ||
|
|
506cd9ffe1 | ||
|
|
3f401f339a | ||
|
|
4ded1bf92d | ||
|
|
32323ffc04 | ||
|
|
c23ecee501 | ||
|
|
8c5eabfb61 | ||
|
|
0e8356d482 | ||
|
|
412416e3a6 | ||
|
|
2859796d9b | ||
|
|
ab7c7932d4 | ||
|
|
3fe2a08504 | ||
|
|
c7ec0d2ccd | ||
|
|
b78f0f0741 | ||
|
|
c63ed66b44 | ||
|
|
ec1a065aa5 | ||
|
|
c15fbdfa9c | ||
|
|
277feca861 | ||
|
|
b61784a0f4 | ||
|
|
a3eb68b668 | ||
|
|
7fdc8d8d0e | ||
|
|
b9300758a5 | ||
|
|
9d6af811c7 | ||
|
|
6b7366d0e1 | ||
|
|
9ce7a90ea8 | ||
|
|
5a251429c1 | ||
|
|
d43945d4a0 | ||
|
|
c3fcf8efee | ||
|
|
ecb8ef64f0 | ||
|
|
dbf61ef3c9 | ||
|
|
e3014fe608 | ||
|
|
349bd7071c | ||
|
|
2cd4e57dba | ||
|
|
87f54bcd27 | ||
|
|
3afe55dd78 | ||
|
|
2498b6b4d9 | ||
|
|
04a3fe7650 | ||
|
|
c7e9c19a3f | ||
|
|
ebaf9e7849 | ||
|
|
bf6c4185cb | ||
|
|
124b227db8 | ||
|
|
d0e3ff6b5e | ||
|
|
c4324735b6 | ||
|
|
127d058a1b | ||
|
|
2b59671d51 | ||
|
|
78ce670fb9 | ||
|
|
9ed4373805 | ||
|
|
168e429c03 | ||
|
|
fc00b00ef2 | ||
|
|
ba00936282 | ||
|
|
7fe3842794 | ||
|
|
5d62bf4772 | ||
|
|
f467a5ce64 | ||
|
|
73e49e4347 | ||
|
|
2835788439 | ||
|
|
859f29b2b6 | ||
|
|
27821d509f | ||
|
|
f47abf94fa | ||
|
|
549ca0e063 | ||
|
|
47bc5d234d | ||
|
|
2dd14b1e3b | ||
|
|
20da46ab2e | ||
|
|
a7210f66b9 | ||
|
|
5acf98a8e3 | ||
|
|
0049ff860b | ||
|
|
55a4eb812c | ||
|
|
03a2fdbf18 | ||
|
|
16d6ebd47b | ||
|
|
649a0ba47b | ||
|
|
f4fa983bd9 | ||
|
|
273f6c25e8 | ||
|
|
adbaea06a7 | ||
|
|
79a3856691 | ||
|
|
781613fc79 | ||
|
|
c2bc16b899 | ||
|
|
fc93b92f96 | ||
|
|
a4c7cf10b3 | ||
|
|
2f82061b5e | ||
|
|
4c0fb34464 | ||
|
|
5bd860e179 | ||
|
|
39a44c6ca8 | ||
|
|
6c44dc85fa | ||
|
|
c99e8a60ad | ||
|
|
5286edaf08 | ||
|
|
b629be14a3 | ||
|
|
aa63d09939 | ||
|
|
302ff48546 | ||
|
|
e522318781 | ||
|
|
552bca0a4a | ||
|
|
37702676e5 | ||
|
|
d66645d4c3 | ||
|
|
805add56bc | ||
|
|
a2cbd05286 | ||
|
|
e115623606 | ||
|
|
b3a5eec8ea | ||
|
|
bb62de0034 | ||
|
|
31b6f62bf4 | ||
|
|
9dccbcfd2e | ||
|
|
d5bd4b9a42 | ||
|
|
0b9e2939cf | ||
|
|
19a82d78d4 | ||
|
|
7fb2952b4e | ||
|
|
47c1fe629b | ||
|
|
2660b309bb | ||
|
|
4515b50b7c | ||
|
|
8b8fecf0c7 | ||
|
|
ad147213da | ||
|
|
32e228d59b | ||
|
|
7b10abe1dd | ||
|
|
a7cd6f0004 | ||
|
|
2f2a9f87c5 | ||
|
|
6049a7b44d | ||
|
|
10ab6d0c3a | ||
|
|
f5c883decd | ||
|
|
572325e505 | ||
|
|
d5521f4b69 | ||
|
|
38a14babca | ||
|
|
1835c4bae4 | ||
|
|
4cbadb1c09 | ||
|
|
dfcf12c009 | ||
|
|
1a8aad9f00 | ||
|
|
5ee3699db6 | ||
|
|
49a3ca74b5 | ||
|
|
0279e411ea | ||
|
|
41425c3cad | ||
|
|
06d52a3062 | ||
|
|
404b4f8fa0 | ||
|
|
e0b0a35b72 | ||
|
|
908a1333b9 | ||
|
|
de7ab26f17 | ||
|
|
8bcccc9183 | ||
|
|
cfd8898191 | ||
|
|
76814e6910 | ||
|
|
d0daa5127d | ||
|
|
f2a8eb2896 | ||
|
|
22c72550aa | ||
|
|
7d20397f6c | ||
|
|
d691b0aa8b | ||
|
|
0d14203cce | ||
|
|
38129ff556 | ||
|
|
b3a8556fcb | ||
|
|
aadb592b43 | ||
|
|
514a6b40ed | ||
|
|
83ddbd5cb2 | ||
|
|
9bb9b42ce2 | ||
|
|
8cb880d65b | ||
|
|
aad92e61f2 | ||
|
|
637c01ab17 | ||
|
|
523106f96b | ||
|
|
7af026c119 | ||
|
|
54dfd00e2e | ||
|
|
f646ec3973 | ||
|
|
28c23b0e61 | ||
|
|
4a2758f1ef | ||
|
|
b2dbf35b96 | ||
|
|
2459d5b509 | ||
|
|
a142592b00 | ||
|
|
f6d42e9f52 | ||
|
|
c79e8b8c99 | ||
|
|
ece51b19d3 | ||
|
|
493636aa2f | ||
|
|
1187ace7f4 | ||
|
|
d17c289015 | ||
|
|
698e00c590 | ||
|
|
9a1a059231 | ||
|
|
3e1058e3c3 | ||
|
|
3f818e7da7 | ||
|
|
cf5248786d | ||
|
|
74cadcf8a1 | ||
|
|
d6b3b30d7d | ||
|
|
7701e2efc7 | ||
|
|
cbde4ee447 | ||
|
|
1961ca936b | ||
|
|
de3ab4b6b7 | ||
|
|
7e1bfafe72 | ||
|
|
6e01033de3 | ||
|
|
bd13c579f4 | ||
|
|
8b1d40885f | ||
|
|
d8ff55c802 | ||
|
|
edd4b6ab22 | ||
|
|
54fc866527 | ||
|
|
67cee534e5 | ||
|
|
7a4ddd6187 | ||
|
|
856718c4a0 | ||
|
|
b03a58d13c | ||
|
|
768227fa2f | ||
|
|
d20490ae24 | ||
|
|
5fb70311af | ||
|
|
49d3c5b19e | ||
|
|
d0f8f7a63d | ||
|
|
efda443584 | ||
|
|
fd9099727d | ||
|
|
a79edaef62 | ||
|
|
c5c5936584 | ||
|
|
0d3f99d157 | ||
|
|
d6f079b0fd | ||
|
|
8c60e142c0 | ||
|
|
4be5303b8b | ||
|
|
7a3e401bf9 | ||
|
|
fc92f10ea7 | ||
|
|
6397fec25f | ||
|
|
840e31e4f2 | ||
|
|
824c0f885b | ||
|
|
55420c1c6b | ||
|
|
c7374b07d8 | ||
|
|
b0e79a7b2b | ||
|
|
de6bd46a62 | ||
|
|
a3106c2cde | ||
|
|
b6f83df3d8 | ||
|
|
fa616e5216 | ||
|
|
b5679d3ace | ||
|
|
72cd51d190 | ||
|
|
bf44a9ff3d | ||
|
|
c548eba93d | ||
|
|
8ac1ec0cd9 | ||
|
|
fda9a380a9 | ||
|
|
35333ac03f | ||
|
|
527852d148 | ||
|
|
2e80f23787 | ||
|
|
21d65dfe06 | ||
|
|
37b9ae293d | ||
|
|
ebc40cc994 | ||
|
|
1e17a3c7ba | ||
|
|
1660da0e5f | ||
|
|
22d9cf5947 | ||
|
|
91da02eb12 | ||
|
|
e49d87380b | ||
|
|
1e248f1ff4 | ||
|
|
125aa1f2a6 | ||
|
|
6f1e604e40 | ||
|
|
98b14758bd | ||
|
|
759c7443bc | ||
|
|
33ae6a35d0 | ||
|
|
77985dcb03 | ||
|
|
105d2d9ad4 | ||
|
|
6ded82d7cf | ||
|
|
0b39a6675c | ||
|
|
841e642521 | ||
|
|
3ab894fd04 | ||
|
|
ab19bbeccd | ||
|
|
91ce03ab43 | ||
|
|
3a64b36741 | ||
|
|
6532d8c380 | ||
|
|
f52aa02406 | ||
|
|
5adcc84b0d | ||
|
|
0ec0dd47ab | ||
|
|
b982438245 | ||
|
|
3ab0d8665e | ||
|
|
91f86b1cc6 | ||
|
|
481afab0e3 | ||
|
|
f1a74378bf | ||
|
|
4da790dc8b | ||
|
|
ca48b54bff | ||
|
|
eb5acd8dc6 | ||
|
|
659dff8a81 | ||
|
|
8d5768881d | ||
|
|
b1f5664fa2 | ||
|
|
dd2d09cf69 | ||
|
|
ab33837177 | ||
|
|
a226200b99 | ||
|
|
785d654c5d | ||
|
|
d176ef0b09 | ||
|
|
4844458cb0 | ||
|
|
f3ab8cd5c2 | ||
|
|
fe6c246426 | ||
|
|
21d23ed9c1 | ||
|
|
248d5d265c | ||
|
|
6bfe0d6cd7 | ||
|
|
045ce8404f | ||
|
|
dbebca3907 | ||
|
|
1255404696 | ||
|
|
9ad95e731d | ||
|
|
0d9653cf83 | ||
|
|
3802cd42c9 | ||
|
|
4a170c5dbf | ||
|
|
473f5f5a8e | ||
|
|
6b400f2092 | ||
|
|
a5c70f4e6b | ||
|
|
fb67d0cf09 | ||
|
|
f1f672fe97 | ||
|
|
765a54864e | ||
|
|
8b40e5ca09 | ||
|
|
2ceea31998 | ||
|
|
c121ccbed5 | ||
|
|
0467b70cff | ||
|
|
827987770b | ||
|
|
71573b8e09 | ||
|
|
226e70ef13 | ||
|
|
bb735ef347 | ||
|
|
960d6f9c4e | ||
|
|
67bcf626a0 | ||
|
|
543892aacd | ||
|
|
bcc759a803 | ||
|
|
77fc1e07b5 | ||
|
|
153993c6c2 | ||
|
|
b853cb0724 | ||
|
|
1208f7b550 | ||
|
|
33dcfb5a1f | ||
|
|
abf779a3d7 | ||
|
|
0ad6d02e96 | ||
|
|
fe3bac4052 | ||
|
|
ad2e328b35 | ||
|
|
dfa16a1050 | ||
|
|
f6b2a9751f | ||
|
|
f4836fde97 | ||
|
|
ffe69ab906 | ||
|
|
525610de29 | ||
|
|
8e59633f1e | ||
|
|
eccf169d64 | ||
|
|
60c4481400 | ||
|
|
5ee36b0991 | ||
|
|
e5f6205575 | ||
|
|
8447a1dabc | ||
|
|
95697fcd30 | ||
|
|
22d46f0ec6 | ||
|
|
5f4d3348eb | ||
|
|
5629ac9264 | ||
|
|
43a56c2d60 | ||
|
|
153006345e | ||
|
|
ce7721be4c | ||
|
|
eee821c33a | ||
|
|
b18ad95acd | ||
|
|
37c56a62fa | ||
|
|
f43e5629d1 | ||
|
|
3131b38595 | ||
|
|
bdfcb3d9a7 | ||
|
|
34831ea8f0 | ||
|
|
f72385e6fa | ||
|
|
80bfa7a303 | ||
|
|
1369cb88ed | ||
|
|
7ff3ed5f4b | ||
|
|
4cab5a06fe | ||
|
|
80f9f18a0c | ||
|
|
27f06ac699 | ||
|
|
0dd5dc78d5 | ||
|
|
f149c27742 | ||
|
|
f5f5d42613 | ||
|
|
951d95c744 | ||
|
|
6c1f1cbe05 | ||
|
|
cc2f6735a8 | ||
|
|
dc95e56823 | ||
|
|
c9099ace51 | ||
|
|
ce59a3d2b9 | ||
|
|
bbe4e28041 | ||
|
|
6c98601637 | ||
|
|
32722d0fed | ||
|
|
a4eb387c62 | ||
|
|
e6ffb923b7 | ||
|
|
c17ab42355 | ||
|
|
d62e8a62d0 | ||
|
|
729e57896b | ||
|
|
9aa56c70e8 | ||
|
|
1d6106fbe1 | ||
|
|
328bdb88ca | ||
|
|
0fa5fa4cc8 | ||
|
|
cf79048be9 | ||
|
|
487c5fbcb3 | ||
|
|
2a52dcac8c | ||
|
|
b529d79c2e | ||
|
|
25fcee525c | ||
|
|
4f77c2a86d | ||
|
|
146ffc8961 | ||
|
|
66ca8324bb | ||
|
|
8dd4f714bb | ||
|
|
5eca3978e2 | ||
|
|
7accd12194 | ||
|
|
6d54516e19 | ||
|
|
9368d0adc1 | ||
|
|
e087aaa2ec | ||
|
|
ff616f1dc5 | ||
|
|
2a4a00dad7 | ||
|
|
eec4ed9d3f | ||
|
|
5e13086455 | ||
|
|
1cb9917ff7 | ||
|
|
9ae7301584 | ||
|
|
fcb33f6891 | ||
|
|
40f70a60a0 | ||
|
|
df1bc1eae9 | ||
|
|
89d29b3cff | ||
|
|
b1c9c3d9e0 | ||
|
|
92644a228d | ||
|
|
e3f5848fd5 | ||
|
|
b934b00714 | ||
|
|
979f233355 | ||
|
|
4ae1808c3f | ||
|
|
44c5bdbc92 | ||
|
|
b84c9037eb | ||
|
|
d705413ebc | ||
|
|
12c5849b94 | ||
|
|
0c7ee15e76 | ||
|
|
86503497ba | ||
|
|
ff22f1ddae | ||
|
|
c45716222d | ||
|
|
d4c08ee1ae | ||
|
|
e1d8c127ef | ||
|
|
2796bbff0d | ||
|
|
2bb4d219fc | ||
|
|
f3a8158ae2 | ||
|
|
4d6e28caa1 | ||
|
|
2fd28f1b34 | ||
|
|
bdd88e649c | ||
|
|
9fe7649ee3 | ||
|
|
e065b5dd1c | ||
|
|
cbb86d9ebb | ||
|
|
08eb1857f8 | ||
|
|
980655df08 | ||
|
|
6cceaefd23 | ||
|
|
2c22816da8 | ||
|
|
c75fb09c37 | ||
|
|
1a72679da6 | ||
|
|
cf71271015 | ||
|
|
2704901cf7 | ||
|
|
16e5c321df | ||
|
|
e2b20ba56d | ||
|
|
83e97aaca7 | ||
|
|
6179468e17 | ||
|
|
261c9cb13a | ||
|
|
cf299ed114 | ||
|
|
6e448f4473 | ||
|
|
dc165dc1dc | ||
|
|
0cf49113e3 | ||
|
|
c37e312d3c | ||
|
|
a78efa0770 | ||
|
|
8b970793d1 | ||
|
|
b0a5249e57 | ||
|
|
5c5642a5fa | ||
|
|
436ea083d6 | ||
|
|
0502a513b0 | ||
|
|
57edc81c5d | ||
|
|
6e8667e90a | ||
|
|
c533f01e8b | ||
|
|
b723d7006f | ||
|
|
faba3af620 | ||
|
|
9daa3aae35 | ||
|
|
7b22de48ed | ||
|
|
7808a0a9b5 | ||
|
|
cb7ef866c9 | ||
|
|
9a48960038 | ||
|
|
55b5c336c7 | ||
|
|
0b6bb9d40a | ||
|
|
dae134dfe8 | ||
|
|
5e5005d1ee | ||
|
|
fe19e783bf | ||
|
|
704587c872 | ||
|
|
6491175579 | ||
|
|
7cacb1ecf4 | ||
|
|
f324dcee52 | ||
|
|
b17af3ea33 | ||
|
|
53d0dff67c | ||
|
|
478797d5c7 | ||
|
|
b81332de95 | ||
|
|
bfd8ad1bf4 | ||
|
|
0a873d7a57 | ||
|
|
616475e448 | ||
|
|
2fc5c8b5db | ||
|
|
5976c62f60 | ||
|
|
40f53b86ee | ||
|
|
bedb9cfe8f | ||
|
|
f2fb9740a8 | ||
|
|
5eb69cfed1 | ||
|
|
05dfa1ff35 | ||
|
|
e0c4ce8412 | ||
|
|
97d6bdb29c | ||
|
|
0d5e6ebdf6 | ||
|
|
beaf8da169 | ||
|
|
144479a902 | ||
|
|
b620c64ee2 | ||
|
|
6c4141c990 | ||
|
|
496edf34f5 | ||
|
|
12f9c3da63 | ||
|
|
2335b78a60 | ||
|
|
a2c40e5dc5 | ||
|
|
f360d0c739 | ||
|
|
46c4fa2f17 | ||
|
|
178af0c18d | ||
|
|
f83bfd3d4b | ||
|
|
f01c5a96e6 | ||
|
|
55526d572a | ||
|
|
40aa5160e8 | ||
|
|
7f4171908a | ||
|
|
f0cc583a0f | ||
|
|
b6fde7fbfa | ||
|
|
0e33fc5343 | ||
|
|
bd0668bb30 | ||
|
|
887192cc41 | ||
|
|
8100ea6b9f | ||
|
|
ad5bacb249 | ||
|
|
a39a775a2d | ||
|
|
76bbf5398d | ||
|
|
40be3a25a1 | ||
|
|
ada160b20c | ||
|
|
eace4d9d2a | ||
|
|
fe2e8508ca | ||
|
|
86c506c692 | ||
|
|
6343d3e668 | ||
|
|
6ebbfa97bf | ||
|
|
c209205e9a | ||
|
|
15c7e77c4e | ||
|
|
259b08d324 | ||
|
|
7be6104115 | ||
|
|
2c3834fcc5 | ||
|
|
92cd8903fc | ||
|
|
35d9226390 | ||
|
|
b831d063ff | ||
|
|
238914a26e | ||
|
|
348d292133 | ||
|
|
c823d892a7 | ||
|
|
fe881c1607 | ||
|
|
2b45950fd3 | ||
|
|
7fd5de7489 | ||
|
|
0045565946 | ||
|
|
3ec9e8d960 | ||
|
|
796ba9bc53 | ||
|
|
99746fbce2 | ||
|
|
28cb1601d1 | ||
|
|
0de60af971 | ||
|
|
69f38ce21d | ||
|
|
decfa6daa8 | ||
|
|
be81221066 | ||
|
|
38d16e7ae3 | ||
|
|
4b061b4409 | ||
|
|
6eed7ee69e | ||
|
|
be35ea42d9 | ||
|
|
424871e122 | ||
|
|
af0f6fe698 | ||
|
|
5e33625ecb | ||
|
|
5955b513ae | ||
|
|
fff14c3cba | ||
|
|
6b42a526a4 | ||
|
|
23fe64bbab | ||
|
|
2ff69dee8a | ||
|
|
6d55dabd05 | ||
|
|
64adfd0cb9 | ||
|
|
5d0b617cdd | ||
|
|
0cd7a66df7 | ||
|
|
86b513612b | ||
|
|
016eec7bad | ||
|
|
1f68fd1a68 | ||
|
|
0bde7739a5 | ||
|
|
39860e2812 | ||
|
|
fb7e63f22c | ||
|
|
19a37a6a0b | ||
|
|
85f5e3cdbd | ||
|
|
0610b75ff6 | ||
|
|
5204fbd196 | ||
|
|
f00d236d5c | ||
|
|
269b7e0ccd | ||
|
|
1c04f90143 | ||
|
|
1d4bdfa98d | ||
|
|
f976fec578 | ||
|
|
a0bf4b455d | ||
|
|
36831ba97c | ||
|
|
74c6a62ec6 | ||
|
|
39e4359ff0 | ||
|
|
36ca3143e6 | ||
|
|
cc764f044c | ||
|
|
6ac66bc9a7 | ||
|
|
7ccaca7a93 | ||
|
|
c7e4a8fc7f | ||
|
|
18ff428cb0 | ||
|
|
d6f9a0fa3b | ||
|
|
c6cd3c7963 | ||
|
|
c092b2af51 | ||
|
|
00fdf1941d | ||
|
|
49ce0d7d85 | ||
|
|
b1b2f08a9f | ||
|
|
59fbde6664 | ||
|
|
06eee89022 | ||
|
|
927ea7fbe3 | ||
|
|
5d2cfebc55 | ||
|
|
db4f984942 | ||
|
|
cb959f0852 | ||
|
|
3f0aca80b0 | ||
|
|
400a756076 | ||
|
|
b9d39373c0 | ||
|
|
faa35924b1 | ||
|
|
966ed7c31a | ||
|
|
010ba3b4ce | ||
|
|
53db540a3d | ||
|
|
3c7fe734fe | ||
|
|
e58286a217 | ||
|
|
87211066b6 | ||
|
|
4e505a0ec9 | ||
|
|
2bc198993b | ||
|
|
b4ca1416e7 | ||
|
|
d04a05305c | ||
|
|
0e31cebd2c | ||
|
|
641eafe3f7 | ||
|
|
dad3266990 | ||
|
|
5aa8f5dcaa | ||
|
|
aa7f858921 | ||
|
|
7982007b4d | ||
|
|
185e492e75 | ||
|
|
4fe58f1bd3 | ||
|
|
06018a302f | ||
|
|
16f9a05d24 | ||
|
|
381fb85902 | ||
|
|
83e98ee2ce | ||
|
|
30f736b96e | ||
|
|
4fd72c3552 | ||
|
|
1179ecded0 | ||
|
|
f6f731b260 | ||
|
|
510c2a1c04 | ||
|
|
8aa065a33f | ||
|
|
22e82aa45e | ||
|
|
ec7def746b | ||
|
|
c5bfa94419 | ||
|
|
acf9ca0f2e | ||
|
|
0ba2b19423 | ||
|
|
2e53272bec | ||
|
|
b868ac6046 | ||
|
|
3d2fdc2947 | ||
|
|
b46b58dfc6 | ||
|
|
275adf97fa | ||
|
|
a234127eb3 | ||
|
|
1d77ed4d28 | ||
|
|
cca0d48087 | ||
|
|
9d08c9dd9d | ||
|
|
eee60cf871 | ||
|
|
39e74f5558 | ||
|
|
0d1ed2cbdb | ||
|
|
895b1e8a0a | ||
|
|
0e6d482762 | ||
|
|
8cb32abb7a | ||
|
|
000c0d9973 | ||
|
|
bed4d1682f | ||
|
|
0b27d621b4 | ||
|
|
89b362f84f | ||
|
|
f4c12fb09a | ||
|
|
f4b42ce2bf | ||
|
|
117e1016b4 | ||
|
|
fbadcac926 | ||
|
|
349d694806 | ||
|
|
f7d271baf9 | ||
|
|
4ab8f1649c | ||
|
|
7164691645 | ||
|
|
8188452e2f | ||
|
|
541bb6fd72 | ||
|
|
ad6eb1448e | ||
|
|
5cb64f6e1b | ||
|
|
5d250ebbd8 | ||
|
|
f3d28defb7 | ||
|
|
7881b20412 | ||
|
|
e503742000 | ||
|
|
630c06db27 | ||
|
|
63c094d61d | ||
|
|
52c98b1abd | ||
|
|
0ec60c6e59 | ||
|
|
018b8a744f | ||
|
|
5b74d1ee83 | ||
|
|
3bb6b5e7a3 | ||
|
|
65cb7719be | ||
|
|
e884f82d55 | ||
|
|
f46484e994 | ||
|
|
185c40358d | ||
|
|
a2e042cb94 | ||
|
|
c386b9b738 | ||
|
|
3a911aa0e7 | ||
|
|
d86b2fcee9 | ||
|
|
e2dacefcbf | ||
|
|
0b057b2a29 | ||
|
|
510cc8682e | ||
|
|
5b817c2ea9 | ||
|
|
364175dcd1 | ||
|
|
a0d195f350 | ||
|
|
b2f9c2e624 | ||
|
|
76b807b6e9 | ||
|
|
862edec578 | ||
|
|
1099a06d35 | ||
|
|
ba8e147f66 | ||
|
|
1c965bba4a | ||
|
|
de8d3efea2 | ||
|
|
dc23d9304d | ||
|
|
0f2687e365 | ||
|
|
cbb71ef192 | ||
|
|
eae4ab7cbf | ||
|
|
978c22f280 | ||
|
|
252552c93f | ||
|
|
287109f917 | ||
|
|
af56eed6f9 | ||
|
|
310eb01fe1 | ||
|
|
b04fd15f2a | ||
|
|
f7f588a5f5 | ||
|
|
9ed0b37d68 | ||
|
|
d4023af62d | ||
|
|
d19ddf7120 | ||
|
|
a8ee72f693 | ||
|
|
d25abf2d26 | ||
|
|
72f2db4fed | ||
|
|
996d8099d6 | ||
|
|
7ee9fc39c7 | ||
|
|
123bce7653 | ||
|
|
e93efcbe72 | ||
|
|
d76bc0999e | ||
|
|
e98a852f73 | ||
|
|
6665dc9fa8 | ||
|
|
18e60e1a9d | ||
|
|
cf134a6cd6 | ||
|
|
8bbbde91a6 | ||
|
|
6aeea2b5d8 | ||
|
|
8a7915cb91 | ||
|
|
bfa915c761 | ||
|
|
bb1288766c | ||
|
|
c243b9681d | ||
|
|
25b2ef7c11 | ||
|
|
6e59e67b70 | ||
|
|
7a249f61e6 | ||
|
|
66c2e6b5df | ||
|
|
b246cd1386 | ||
|
|
645a31760c | ||
|
|
1777ef9397 | ||
|
|
add02c9b7a | ||
|
|
d0f8142fba | ||
|
|
eaa35952bf | ||
|
|
c68f5e02f0 | ||
|
|
db59fe1253 | ||
|
|
df99182340 | ||
|
|
0998b168d5 | ||
|
|
15e0b335be | ||
|
|
2407ac2871 | ||
|
|
be0b17ebec | ||
|
|
5327107673 | ||
|
|
89f5e5bb84 | ||
|
|
6e955878c1 | ||
|
|
fb3ad242bc | ||
|
|
23b3a89e1d | ||
|
|
1679e25de2 | ||
|
|
6f306340b1 | ||
|
|
324060b8e1 | ||
|
|
74b03e521b | ||
|
|
0eb93320af | ||
|
|
3016c87da8 | ||
|
|
d6b5ab8545 | ||
|
|
51e5d02b91 | ||
|
|
2d5c5c70a1 | ||
|
|
67b923c5d5 | ||
|
|
7eb99c293c | ||
|
|
ad5145e7ea | ||
|
|
1ec192b0bf | ||
|
|
0ed0f3d05c | ||
|
|
e9497f15aa | ||
|
|
784167ffbc | ||
|
|
eb294b6fdc | ||
|
|
707915c26b | ||
|
|
a80bb31e5e | ||
|
|
d9b2712152 | ||
|
|
9086123696 | ||
|
|
a8e3f8ef3b | ||
|
|
883a3f25f1 | ||
|
|
fc8807714c | ||
|
|
4c34273a1f | ||
|
|
c261b056b7 | ||
|
|
4382453b15 | ||
|
|
52112f8377 | ||
|
|
204512fc5e | ||
|
|
638e56f997 | ||
|
|
b653135753 | ||
|
|
928f833e01 | ||
|
|
2cd3cceb3a | ||
|
|
27b4643123 | ||
|
|
84c8f06975 | ||
|
|
08a52a1e66 | ||
|
|
afe4239643 | ||
|
|
d294671af7 | ||
|
|
582f81367a | ||
|
|
6ea9ab87e4 | ||
|
|
6f96c9c56a | ||
|
|
731d31588c | ||
|
|
b1a00d6c5b | ||
|
|
96eebd9f00 | ||
|
|
73185cd548 | ||
|
|
6ebc8a1855 | ||
|
|
da22cafbd5 | ||
|
|
5cd1c46e8f | ||
|
|
f3b3996373 | ||
|
|
4ba3f0cbc8 | ||
|
|
f787d5d331 | ||
|
|
79881a5f59 | ||
|
|
cb04161d75 | ||
|
|
38ad30e308 | ||
|
|
3d3a8e408b | ||
|
|
591c7bf356 | ||
|
|
6d11adb7dd | ||
|
|
19c68c1148 | ||
|
|
f57089289a | ||
|
|
11c61dc719 | ||
|
|
ef5d34713d | ||
|
|
206bf7946e | ||
|
|
23e0e41f18 | ||
|
|
e5f32b4619 | ||
|
|
a2bba66cbe | ||
|
|
7cf4ca3b7d | ||
|
|
a5209511df | ||
|
|
ce57f9c7be | ||
|
|
2c1a1135f0 | ||
|
|
30601ef6f2 | ||
|
|
9fdeaad667 | ||
|
|
94a0001b04 | ||
|
|
69ab6368f7 | ||
|
|
a0bdc93d33 | ||
|
|
cdcb7aa9d0 | ||
|
|
747195f809 | ||
|
|
f36815c67c | ||
|
|
aa5c90ddd8 | ||
|
|
38a5eb7556 | ||
|
|
227da04a09 | ||
|
|
613b5d4e68 | ||
|
|
bcc7086dd3 | ||
|
|
85f7b49165 | ||
|
|
64181e227c | ||
|
|
252a18ab45 | ||
|
|
905577cec5 | ||
|
|
41b699ab71 | ||
|
|
e053cee4e1 | ||
|
|
4aafc06371 | ||
|
|
4e2be66aad | ||
|
|
85381d8f01 | ||
|
|
dad08c7db5 | ||
|
|
95528bac88 | ||
|
|
b951b1484a | ||
|
|
604d62dd0d | ||
|
|
b2d91272f5 | ||
|
|
fab633d416 | ||
|
|
bb2c6a220e | ||
|
|
b87e691863 | ||
|
|
f06e8c6183 | ||
|
|
418e876065 | ||
|
|
aee2db6250 | ||
|
|
6455bbe1ce | ||
|
|
cd22789f04 | ||
|
|
defa937bb2 | ||
|
|
b9143be4d2 | ||
|
|
41e42b6ed8 | ||
|
|
e5c46b0b44 | ||
|
|
0bc6f3e421 | ||
|
|
da779cb88d | ||
|
|
852cc591d4 | ||
|
|
58224bc2ec | ||
|
|
222470dd50 | ||
|
|
f52b15e994 | ||
|
|
a1b48e2d02 | ||
|
|
6ac5e25f8c | ||
|
|
e638afe85b | ||
|
|
50acb0299a | ||
|
|
4aff008a1e | ||
|
|
1a8b04669b | ||
|
|
014b8ecbb6 | ||
|
|
e3b74c8cb0 | ||
|
|
dbce7bce50 | ||
|
|
813b1e52ca | ||
|
|
ee13ca0925 | ||
|
|
bda31324c3 | ||
|
|
32ace5729b | ||
|
|
d2d8fea8f0 | ||
|
|
9071b938d9 | ||
|
|
56372427a2 | ||
|
|
6b77e8e154 | ||
|
|
322452a96d | ||
|
|
1ee50f988d | ||
|
|
19850a30de | ||
|
|
00deb96cff | ||
|
|
8a6267fc84 | ||
|
|
55791a2e8f | ||
|
|
5813e5b7a2 | ||
|
|
641d58c9a2 | ||
|
|
97c7362620 | ||
|
|
ad6e8045c4 | ||
|
|
6d9ecafd6c | ||
|
|
a4e04decfa | ||
|
|
4131f91bce | ||
|
|
eedd1fd52f | ||
|
|
dcf35b4e9e | ||
|
|
20c4f77eae | ||
|
|
d616a5ce25 | ||
|
|
ecfd48f801 | ||
|
|
3d257ce3e8 | ||
|
|
c4cd6e9557 | ||
|
|
f1d6a6e671 | ||
|
|
4426c9fb3d | ||
|
|
ec9699148b | ||
|
|
16bbbeca23 | ||
|
|
8582f9cf93 | ||
|
|
2eab22cb05 | ||
|
|
b0d446ba91 | ||
|
|
0c7e5db56e | ||
|
|
95ce470625 | ||
|
|
c6893da771 | ||
|
|
250701ab68 | ||
|
|
f19c93456a | ||
|
|
c9f782c997 | ||
|
|
cd6f801aef | ||
|
|
515dc5d57d | ||
|
|
3d51d2b36f | ||
|
|
2560532c4b | ||
|
|
5591243016 | ||
|
|
2317f46656 | ||
|
|
b34bb21048 | ||
|
|
2f45fa26a9 | ||
|
|
0a00601264 | ||
|
|
ab1c23e7ee | ||
|
|
35650d2209 | ||
|
|
527971c028 | ||
|
|
e75a630f74 | ||
|
|
e1cb3e1c1f | ||
|
|
eb76c9a435 | ||
|
|
6c0e88150c | ||
|
|
eb35353c13 | ||
|
|
1ba265ad6c | ||
|
|
4935ae213f | ||
|
|
32450051b6 | ||
|
|
2df3f49c40 | ||
|
|
4cec7f1c15 | ||
|
|
be6bcc6d48 | ||
|
|
5d9b5ed7da | ||
|
|
a268c17cfe | ||
|
|
b26b3af9d9 | ||
|
|
cdcff1143e | ||
|
|
92c04658c4 | ||
|
|
fa3ba17664 | ||
|
|
ebc803a7e0 | ||
|
|
dc4f5d3715 | ||
|
|
bd11331538 | ||
|
|
7ca4a3caf0 | ||
|
|
12a6c63ac7 | ||
|
|
029b305d3a | ||
|
|
737ea316fe | ||
|
|
9f70623e58 | ||
|
|
21e68412a6 | ||
|
|
d7ced7d648 | ||
|
|
934de34fb4 | ||
|
|
e5e556a96e | ||
|
|
ecff005aad | ||
|
|
dd20ac1c55 | ||
|
|
f76a788ca7 | ||
|
|
3ae7f1a41e | ||
|
|
5520a2a112 | ||
|
|
78939ecc64 | ||
|
|
6186d1464f | ||
|
|
7d8964030a | ||
|
|
adbffe4169 | ||
|
|
ec53573f79 | ||
|
|
691b9a328c | ||
|
|
a96ea1f681 | ||
|
|
b29daf214f | ||
|
|
065031fcbd | ||
|
|
d63b50608c | ||
|
|
cd88b1ce77 | ||
|
|
f1f95578d9 | ||
|
|
c60e7f9abc | ||
|
|
7e7ce1daab | ||
|
|
d7cfb31867 | ||
|
|
e518ab3934 | ||
|
|
0e7f315013 | ||
|
|
fb1adedc60 | ||
|
|
4dc74cd784 | ||
|
|
ce176ac183 | ||
|
|
134394e532 | ||
|
|
431e508b7d | ||
|
|
ce57b03aff | ||
|
|
a8cd1c1a0b | ||
|
|
a89148b6e3 | ||
|
|
67e112a5bb | ||
|
|
aa22352e51 | ||
|
|
1c86dc68ed | ||
|
|
88dd9b4b38 | ||
|
|
db07a9a2ad | ||
|
|
8ba1711218 | ||
|
|
23712f6e91 | ||
|
|
896fc4c058 | ||
|
|
d8fd50e30c | ||
|
|
5b3ebff2ed | ||
|
|
18e276dc59 | ||
|
|
c28902949e | ||
|
|
c04a1c4024 | ||
|
|
4aa95edf6b | ||
|
|
2b076b9fb1 | ||
|
|
c96b1e9a87 | ||
|
|
0da7179ea5 | ||
|
|
2cfbec2783 | ||
|
|
9ef1edaff0 | ||
|
|
4d3b335e55 | ||
|
|
78ce6b8547 | ||
|
|
1dc0027fcc | ||
|
|
0dc3cbaa6e | ||
|
|
8da64e1135 | ||
|
|
e29a76207f | ||
|
|
2f6ef3bbd8 | ||
|
|
08ee5249df | ||
|
|
b2ff701ccb | ||
|
|
6a2f59684c | ||
|
|
7bb9e37ab9 | ||
|
|
34a7617894 | ||
|
|
ce93a96728 | ||
|
|
37d29625ea | ||
|
|
e59ea1ff7a | ||
|
|
2058b42243 | ||
|
|
8824d8b619 | ||
|
|
547aaf4829 | ||
|
|
c4679c7a3b | ||
|
|
e1958ef3f7 | ||
|
|
09901085d2 | ||
|
|
c672b673fd | ||
|
|
6e40096b1e | ||
|
|
661212ec90 | ||
|
|
4fb1456498 | ||
|
|
e82eab6254 | ||
|
|
bae6f1581d | ||
|
|
872bc30f87 | ||
|
|
a4d9db22ce | ||
|
|
6628c4027a | ||
|
|
d06f1c1bb0 | ||
|
|
738714ab48 | ||
|
|
f5508d68e4 | ||
|
|
918b364fdf | ||
|
|
86716503b9 | ||
|
|
dcd8dd35a1 | ||
|
|
efb7036573 | ||
|
|
b72339d712 | ||
|
|
88919ff534 | ||
|
|
d20035d774 | ||
|
|
5b4b06187b | ||
|
|
54277ece8b | ||
|
|
d26baa2f2c | ||
|
|
539b91ba16 | ||
|
|
f6ffb8fa94 | ||
|
|
0a2d9e4f3c | ||
|
|
52b08af618 | ||
|
|
267943a713 | ||
|
|
4b81c01032 | ||
|
|
99abde8aba | ||
|
|
47d2db070e | ||
|
|
267dcca884 | ||
|
|
bc4f8254f7 | ||
|
|
b2ce234d48 | ||
|
|
c412c76685 | ||
|
|
29eae16035 | ||
|
|
eb125330e3 | ||
|
|
a62cc94a50 | ||
|
|
b490fe4179 | ||
|
|
da6252584b | ||
|
|
452f373b1a | ||
|
|
0729cee743 | ||
|
|
1ae75743b3 | ||
|
|
b091a4a906 | ||
|
|
426b3497a1 | ||
|
|
7c1fc91225 | ||
|
|
0d7a76464f | ||
|
|
50b8620355 | ||
|
|
7dc60b77e2 | ||
|
|
c968288bdf | ||
|
|
3c1a28e0eb | ||
|
|
b459099ef8 | ||
|
|
173a646ebb | ||
|
|
243b4aac96 | ||
|
|
e0d1e5b7ec | ||
|
|
08b37fb7fe | ||
|
|
786be0c1b5 | ||
|
|
fcee4d1dd6 | ||
|
|
3f03a80f26 | ||
|
|
9d3d6d3d16 | ||
|
|
107ab612e9 | ||
|
|
fd17b7dcc6 | ||
|
|
6eb50eb13d | ||
|
|
e2c7925724 | ||
|
|
e88ddb32aa | ||
|
|
c7f5ad4d15 | ||
|
|
23dc72223c | ||
|
|
49687b678f | ||
|
|
fcc45a1108 | ||
|
|
b8199d70eb | ||
|
|
6ee1b55789 | ||
|
|
19e3dde84f | ||
|
|
1604dc0570 | ||
|
|
94bb861f8a | ||
|
|
50d4ec83c9 | ||
|
|
06dd99d843 | ||
|
|
6ee743e780 | ||
|
|
6cb0e522ac | ||
|
|
dea7f95a96 | ||
|
|
32e5b0afef | ||
|
|
1fc36d382a | ||
|
|
f60eff6141 | ||
|
|
b48a4c14c5 | ||
|
|
fb0f983312 | ||
|
|
ccb08fcc53 | ||
|
|
1a6dc909f7 | ||
|
|
b41976d1f7 | ||
|
|
2c8dcc8a4c | ||
|
|
178ef5a50c | ||
|
|
a41d88d14d | ||
|
|
1a6133ee4b | ||
|
|
79197cb614 | ||
|
|
3169a2ddda | ||
|
|
000d396cf2 | ||
|
|
9a764efd71 | ||
|
|
97226f9525 | ||
|
|
fae6bc1f4d | ||
|
|
4e6f245ed2 | ||
|
|
d64bdb2e79 | ||
|
|
fd81357e23 | ||
|
|
d599845b45 | ||
|
|
6794722dba | ||
|
|
879265500d | ||
|
|
4c2787aea5 | ||
|
|
772eaf9e22 | ||
|
|
159befbc06 | ||
|
|
3d950fe56b | ||
|
|
aaf4b7d385 | ||
|
|
c78b5aa846 | ||
|
|
d6308716f5 | ||
|
|
3b9f6c8159 | ||
|
|
6073e37b8d | ||
|
|
33b9729171 | ||
|
|
6bc0eb95c7 | ||
|
|
7ad764fae8 | ||
|
|
9b91f75204 | ||
|
|
f8e9a81351 | ||
|
|
e844dfd742 | ||
|
|
7f11d565b0 | ||
|
|
ec6f6e29c9 | ||
|
|
9f8ab64bcd | ||
|
|
9bc99c3fec | ||
|
|
739b6f6202 | ||
|
|
b1e8c4c865 | ||
|
|
dff2612a62 | ||
|
|
26c1481d07 | ||
|
|
61fcbcdab6 | ||
|
|
9602c4f577 | ||
|
|
36e802c52b | ||
|
|
cc1bfcbda5 | ||
|
|
103401795d | ||
|
|
c98c489053 | ||
|
|
cd1e98cba3 | ||
|
|
183dd65247 | ||
|
|
bac28de199 | ||
|
|
3909c8f9b6 | ||
|
|
7aff837888 | ||
|
|
917df8de9c | ||
|
|
84f7f392e9 | ||
|
|
0834da3bc3 | ||
|
|
1a3b8b627e | ||
|
|
08e258166c | ||
|
|
5e22eadc94 | ||
|
|
ecdf37d2b7 | ||
|
|
17f929d634 | ||
|
|
132a966413 | ||
|
|
7ce8c24329 | ||
|
|
47858c5ad5 | ||
|
|
da89a08792 | ||
|
|
2b19488548 | ||
|
|
c6b0e2eb45 | ||
|
|
d750e6cfbb | ||
|
|
1222ba69a7 | ||
|
|
0f64288481 | ||
|
|
5a8e8efbef | ||
|
|
dd8b0948b3 | ||
|
|
27650a39be | ||
|
|
7348c6cc36 | ||
|
|
327d10c2c2 | ||
|
|
71ece73721 | ||
|
|
aaff69a073 | ||
|
|
d0c45140d3 | ||
|
|
a5602639ef | ||
|
|
f3eb4edec2 | ||
|
|
536e0e27aa | ||
|
|
569ad58409 | ||
|
|
82a006f67a | ||
|
|
387553037a | ||
|
|
27971c1247 | ||
|
|
f964e483f0 | ||
|
|
31be13f144 | ||
|
|
b7bd855307 | ||
|
|
13c7464c0a | ||
|
|
4b0758f93f | ||
|
|
57fcbd2ffb | ||
|
|
407da83634 | ||
|
|
321e7f88d1 | ||
|
|
37f9114cb7 | ||
|
|
4f75856106 | ||
|
|
8f066431f6 | ||
|
|
c55d4f2cd2 | ||
|
|
7a351eb621 | ||
|
|
077d818e0b | ||
|
|
b1b04ed99f | ||
|
|
c188295e85 | ||
|
|
0579984914 | ||
|
|
2419c742c9 | ||
|
|
46d409b6cb | ||
|
|
8e809a59a3 | ||
|
|
85268612d8 | ||
|
|
7413c47e43 | ||
|
|
02470fc85d | ||
|
|
65f10eb71e | ||
|
|
1f68a6fb3f | ||
|
|
bb8d423756 | ||
|
|
5fb91c2716 | ||
|
|
14e94e82db | ||
|
|
461103e4e0 | ||
|
|
2f753ff263 | ||
|
|
23a1242a00 | ||
|
|
e7fecca060 | ||
|
|
57129d14df | ||
|
|
26caac2237 | ||
|
|
81d4a1436d | ||
|
|
e78843a659 | ||
|
|
1058634e6d | ||
|
|
0df6545f4d | ||
|
|
ae2639922c | ||
|
|
b673289d61 | ||
|
|
b8097b353f | ||
|
|
786ed279f8 | ||
|
|
9a096456e6 | ||
|
|
a83376470a | ||
|
|
625ad893c5 | ||
|
|
aee9d9f515 | ||
|
|
9bd8eb9e5d | ||
|
|
1b1106f4c9 | ||
|
|
a05ca24087 | ||
|
|
bc0bf3ce35 | ||
|
|
db65ed53b5 | ||
|
|
e2fcccc420 | ||
|
|
37a7eba97d | ||
|
|
98e60f681a | ||
|
|
84e9874c36 | ||
|
|
58cca705ca | ||
|
|
4b62058f10 | ||
|
|
0f32c6d26f | ||
|
|
5ce47b8a60 | ||
|
|
05c81c23d4 | ||
|
|
4aea47dadd | ||
|
|
1f56d6102a | ||
|
|
d6f5bc5588 | ||
|
|
1351812a07 | ||
|
|
b17f65c6fc | ||
|
|
5893686892 | ||
|
|
00b8c6fec1 | ||
|
|
ee81b2b43d | ||
|
|
d8adf34fb9 | ||
|
|
f65d045304 | ||
|
|
95e340a996 | ||
|
|
317de8c64a | ||
|
|
32f54cfc36 | ||
|
|
3fa0aa427b | ||
|
|
d32b487213 | ||
|
|
28336f3a71 | ||
|
|
eb50f495ef | ||
|
|
aa4040a43b | ||
|
|
82cbb0a5e3 | ||
|
|
51740210f8 | ||
|
|
82dec12735 | ||
|
|
cb45fb2be9 | ||
|
|
2a50db9435 | ||
|
|
fc21688dd8 | ||
|
|
3b77de53e5 | ||
|
|
6ff5fdf203 | ||
|
|
5af1ef094c | ||
|
|
0f166aa9d7 | ||
|
|
d09ae196e3 | ||
|
|
c1461a3a48 | ||
|
|
1b4811f6ae | ||
|
|
766dcb31eb | ||
|
|
1ed02183f9 | ||
|
|
2ef06bc53b | ||
|
|
adb1ff70bd | ||
|
|
2451b2ed33 | ||
|
|
e6ee83c793 | ||
|
|
545cb661ba | ||
|
|
b92d2beae1 | ||
|
|
6c369cf9d4 | ||
|
|
12745df29e | ||
|
|
e168dd743b | ||
|
|
9211f727a0 | ||
|
|
ad13a3c42c | ||
|
|
8786eabe9b | ||
|
|
23c1f91370 | ||
|
|
8f634d393a | ||
|
|
33f9082072 | ||
|
|
e11f67316f | ||
|
|
1ba0448651 | ||
|
|
2052a79c9c | ||
|
|
3047afa7f2 | ||
|
|
13d3a957e2 | ||
|
|
23d8591edd | ||
|
|
2a207622ef | ||
|
|
2f1c3108e5 | ||
|
|
41ac0a28c7 | ||
|
|
4e7a9ad248 | ||
|
|
7f86d3def1 | ||
|
|
72587515e8 | ||
|
|
b02b805593 | ||
|
|
6e0b329d95 | ||
|
|
030ee9980d | ||
|
|
b0bf5e0bfd | ||
|
|
909f476201 | ||
|
|
582aa6ca1e | ||
|
|
0d6c6a1d52 | ||
|
|
29a160c913 | ||
|
|
9eebde404a | ||
|
|
e90ed318d5 | ||
|
|
fb1dee8cd1 | ||
|
|
a62e4381d9 | ||
|
|
1c24dcd064 | ||
|
|
5a63c542fc | ||
|
|
fb05681a31 | ||
|
|
3c9a77eb8b | ||
|
|
fc4e88a4ea | ||
|
|
20f8717373 | ||
|
|
d1700bc4ae | ||
|
|
0490724c88 | ||
|
|
74cc9a6d02 | ||
|
|
21b208097b | ||
|
|
719a43b636 | ||
|
|
961e972b96 | ||
|
|
174f0ee6e5 | ||
|
|
686a034914 | ||
|
|
59c3c9fda2 | ||
|
|
2b423a07f6 | ||
|
|
deb0f347db | ||
|
|
185b2568d6 | ||
|
|
527529be1f | ||
|
|
b3649326f2 | ||
|
|
924ca5d984 | ||
|
|
3370d4b6ed | ||
|
|
53b962c257 | ||
|
|
e0ea314e85 | ||
|
|
341ee08853 | ||
|
|
2b54161316 | ||
|
|
33ef700068 | ||
|
|
1d56f63d18 | ||
|
|
6f1b44c06d | ||
|
|
f14b51b61e | ||
|
|
f3ea84a433 | ||
|
|
1f520f7e2b | ||
|
|
f276171158 | ||
|
|
0e6bc28ca4 | ||
|
|
770fb83f92 | ||
|
|
5f03d9f58d | ||
|
|
11f740555e | ||
|
|
6609287528 | ||
|
|
b4a7b9d81d | ||
|
|
7b663bb7c9 | ||
|
|
7a3bea9881 | ||
|
|
1c4c382786 | ||
|
|
e2e242d6b3 | ||
|
|
304ca1e69e | ||
|
|
f2401c3833 | ||
|
|
a1dbb83e21 | ||
|
|
26c3cd4a86 | ||
|
|
2f4b74cdd1 | ||
|
|
4c3df3a9e7 | ||
|
|
17811ccafc | ||
|
|
2d616d7bb6 | ||
|
|
0e3d367125 | ||
|
|
9c00bb34f6 | ||
|
|
7094d76126 | ||
|
|
888eb78b8d | ||
|
|
27f4c7bd9e | ||
|
|
a23588eb44 | ||
|
|
a8aa1ea4b8 | ||
|
|
01c8c0d7b7 | ||
|
|
4f39898fff | ||
|
|
09198e2077 | ||
|
|
f841b86636 | ||
|
|
14af368b46 | ||
|
|
11521a0240 | ||
|
|
3a9368f8dc | ||
|
|
f0210183d5 | ||
|
|
721e4cf474 | ||
|
|
dc472890f1 | ||
|
|
442cd39a0a | ||
|
|
585084258e | ||
|
|
8def261e5c | ||
|
|
4ea966ef1e | ||
|
|
aadd8b0e04 | ||
|
|
73a34c3f0a | ||
|
|
654457b7e6 | ||
|
|
1063ef81f8 | ||
|
|
0f9ac86115 | ||
|
|
73fc34c63b | ||
|
|
993c400ee5 | ||
|
|
3a0a1a6202 | ||
|
|
716dce7eff | ||
|
|
d6b8868353 | ||
|
|
6c14930f19 | ||
|
|
8fe55eca53 | ||
|
|
e8681f0f46 | ||
|
|
b8c836e26f | ||
|
|
7df25d1337 | ||
|
|
2b63ad929b | ||
|
|
9992fdc86f | ||
|
|
4aa983b568 | ||
|
|
5f9be07e2f | ||
|
|
da19ae77ad | ||
|
|
591c345763 | ||
|
|
0a0dd06680 | ||
|
|
39c6e62b19 | ||
|
|
6074ba8906 | ||
|
|
5cff5d8bb1 | ||
|
|
0dd4b27da6 | ||
|
|
397c79bbd7 | ||
|
|
8570bb23e9 | ||
|
|
c6835c58fb | ||
|
|
86d858ea44 | ||
|
|
908f328f13 | ||
|
|
bb8ebbcdb6 | ||
|
|
6a8d33c7b0 | ||
|
|
5bb5603248 | ||
|
|
126fbeb220 | ||
|
|
5d01b49fd9 | ||
|
|
f58615695d | ||
|
|
366f28567f | ||
|
|
2f6f616a7a | ||
|
|
07db7e8863 | ||
|
|
ddb7e5148a | ||
|
|
2371c1a437 | ||
|
|
36f6fd0e34 | ||
|
|
2f03cded8d | ||
|
|
acff83428b | ||
|
|
1fdd8ef68c | ||
|
|
a59d3c2996 | ||
|
|
d4437ee0fe | ||
|
|
711d4619df | ||
|
|
a7872fff19 | ||
|
|
8cd8ab3a09 | ||
|
|
e1da57d913 | ||
|
|
5e0138907c | ||
|
|
aba6fadb52 | ||
|
|
355e1fbaa6 | ||
|
|
60caa4430d | ||
|
|
32e4081252 | ||
|
|
e5f868c35b | ||
|
|
38368367d4 | ||
|
|
cff2984b93 | ||
|
|
d3c7962b0a | ||
|
|
6ea2410e2a | ||
|
|
2170970082 | ||
|
|
24a0ae6015 | ||
|
|
684f1c6887 | ||
|
|
547de6711a | ||
|
|
7e00edf477 | ||
|
|
873df9a097 | ||
|
|
1fe5d703ff | ||
|
|
5175581ab7 | ||
|
|
0be0741a24 | ||
|
|
741f8e6777 | ||
|
|
d52a1d882d | ||
|
|
d589656483 | ||
|
|
3c296e59ce | ||
|
|
ec0a75a708 | ||
|
|
eca127c815 | ||
|
|
9d8ed27fd2 | ||
|
|
987878031e | ||
|
|
af16ba7701 | ||
|
|
02cfe1262b | ||
|
|
95cc6f55ba | ||
|
|
88adf09d63 | ||
|
|
7b8e99e718 | ||
|
|
78d59ce712 | ||
|
|
e8e77e6f16 | ||
|
|
f86dcd1cc2 | ||
|
|
908c54a9fe | ||
|
|
e2e353d1f9 | ||
|
|
f869282f57 | ||
|
|
9a74bdf776 | ||
|
|
b17aebcea9 | ||
|
|
b42b3c8aa0 | ||
|
|
70c9f2df23 | ||
|
|
308e9ac07c | ||
|
|
d07c5f8e52 | ||
|
|
2f52768d76 | ||
|
|
9b44734b14 | ||
|
|
78dcab6ebe | ||
|
|
d4e4ce19cb | ||
|
|
7f35fb5e8b | ||
|
|
c6883c1455 | ||
|
|
d3576fb557 | ||
|
|
75bc67a62c | ||
|
|
6e8c4bb4d2 | ||
|
|
ea3d1eb67b | ||
|
|
6d941f0503 | ||
|
|
9d26fc16a5 | ||
|
|
c11474e424 | ||
|
|
614d4a2b61 | ||
|
|
70f896478c | ||
|
|
d420dd7786 | ||
|
|
56816c4be3 | ||
|
|
28b277870e | ||
|
|
302c94f8e1 | ||
|
|
d0e4112c6d | ||
|
|
469b0c47d2 | ||
|
|
aac561e030 | ||
|
|
29c87a05c2 | ||
|
|
db32742aa0 | ||
|
|
351a3333e5 | ||
|
|
309b85cac7 | ||
|
|
149df5c6c8 | ||
|
|
fdd9456ff4 | ||
|
|
a3cf119d7a | ||
|
|
43a93fc1a0 | ||
|
|
4f14dc6777 | ||
|
|
2a85211c2d | ||
|
|
d20473ff04 | ||
|
|
3c0c2bda43 | ||
|
|
04199f297b | ||
|
|
c26e188791 | ||
|
|
580b574212 | ||
|
|
f3e3dddfe7 | ||
|
|
8b8e610a96 | ||
|
|
ac040099bf | ||
|
|
69e123fc7c | ||
|
|
d20022afa1 | ||
|
|
55f8c68913 | ||
|
|
bc33e0abcf | ||
|
|
5427836d6f | ||
|
|
33049709ec | ||
|
|
c20f04b213 | ||
|
|
9f160b5032 | ||
|
|
1377f9cc22 | ||
|
|
e387460838 | ||
|
|
256dabf848 | ||
|
|
deee5cc6d6 | ||
|
|
488d729592 | ||
|
|
46bb029cbe | ||
|
|
711ca8f6e1 | ||
|
|
81485d948e | ||
|
|
8509ba6881 | ||
|
|
01ff58743f | ||
|
|
68d1140516 | ||
|
|
525e54c113 | ||
|
|
bb2e8bd162 | ||
|
|
d2acdc8955 | ||
|
|
cd58bacf6e | ||
|
|
46d9e86d53 | ||
|
|
58db7fbcb5 | ||
|
|
8b741f51ff | ||
|
|
47bd440181 | ||
|
|
56623ce870 | ||
|
|
7f3c58f0af | ||
|
|
41e2fbbc80 | ||
|
|
1972687e2d | ||
|
|
0d9abb0f78 | ||
|
|
f99ca0926f | ||
|
|
e343b1ad94 | ||
|
|
9ace809542 | ||
|
|
fc5a7fccea | ||
|
|
2a8d3fb210 | ||
|
|
d30b7827f7 | ||
|
|
4565038b1a | ||
|
|
8bec6a8229 | ||
|
|
a275f19381 | ||
|
|
4f0a1751f9 | ||
|
|
5b698d0b50 | ||
|
|
db2679192a | ||
|
|
138362a3db | ||
|
|
f9047b9939 | ||
|
|
29f454e1e7 | ||
|
|
6ffaa232a5 | ||
|
|
f6a83ccfb9 | ||
|
|
084084e1f8 | ||
|
|
845f10e7d9 | ||
|
|
575b9841a5 | ||
|
|
fd83f13d36 | ||
|
|
3a8b033d85 | ||
|
|
4f3ddb641e | ||
|
|
f68115d270 | ||
|
|
bc449524fc | ||
|
|
9c9485a54a | ||
|
|
6db9d21293 | ||
|
|
b5594c2d5c | ||
|
|
372b23347c | ||
|
|
6acb265ec7 | ||
|
|
c39255774e | ||
|
|
68bb514e54 | ||
|
|
20fb956f36 | ||
|
|
e57f67a416 | ||
|
|
fcf83d935c | ||
|
|
27149216a1 | ||
|
|
82418bf058 | ||
|
|
f0efb45168 | ||
|
|
9a39f833d8 | ||
|
|
706ccf7e26 | ||
|
|
2cde29bf13 | ||
|
|
a00b922056 | ||
|
|
5ce6f21804 | ||
|
|
3102208c1d | ||
|
|
e5c8bb4b77 | ||
|
|
97f63a5fec | ||
|
|
af58d16478 | ||
|
|
dbb7d7e338 | ||
|
|
d6bafdd156 | ||
|
|
07fb35e555 | ||
|
|
bc209605e6 | ||
|
|
431a8c85aa | ||
|
|
632dfd450f | ||
|
|
4ee8c3c73d | ||
|
|
5833903cd5 | ||
|
|
1a61f42d1e | ||
|
|
de4a4ffbb1 | ||
|
|
f5eb40dbc1 | ||
|
|
7611579f30 | ||
|
|
b68dedbdc0 | ||
|
|
e47e47ba94 | ||
|
|
093cea9c45 | ||
|
|
16b05b04e1 | ||
|
|
dc84c12ba2 | ||
|
|
bc7cb28b56 | ||
|
|
f0d689bae7 | ||
|
|
d95d1fbc86 | ||
|
|
7a36d89d53 | ||
|
|
eaef994eca | ||
|
|
c55ae3eb92 | ||
|
|
8bd22bb3ae | ||
|
|
9d6cc8cc39 | ||
|
|
8fcc3d42f0 | ||
|
|
81a8386c2a | ||
|
|
77e9eb78dc | ||
|
|
676c7070f4 | ||
|
|
83e0ec83f7 | ||
|
|
197b3dc708 | ||
|
|
3fdd200427 | ||
|
|
74f7b33a8c | ||
|
|
81df5b8c82 | ||
|
|
35ef2b39c1 | ||
|
|
3857c9fc09 | ||
|
|
9619c86e83 | ||
|
|
7b0363f5c4 | ||
|
|
2a5642ed3a | ||
|
|
1057d4fca6 | ||
|
|
b1c80784a8 | ||
|
|
5304fef58b | ||
|
|
a354c9a5b4 | ||
|
|
7e8cf4c580 | ||
|
|
73438160ca | ||
|
|
3a2e513801 | ||
|
|
a4a220f8b1 | ||
|
|
201b23943b | ||
|
|
5da2c06361 | ||
|
|
e84d44520d | ||
|
|
554e6921bf | ||
|
|
a531660d5e | ||
|
|
b6cefd0f60 | ||
|
|
047a0a31e6 | ||
|
|
b9c259f01c | ||
|
|
a545a27738 | ||
|
|
689d5e3335 | ||
|
|
9eff2c822f | ||
|
|
d908745573 | ||
|
|
bc25ea771e | ||
|
|
ef64a87c02 | ||
|
|
b6f3c0c119 | ||
|
|
144550e770 | ||
|
|
3dde738477 | ||
|
|
88fe45be25 | ||
|
|
3ece93ee05 | ||
|
|
bc747eaed3 | ||
|
|
1ed44bd0d2 | ||
|
|
a93a1346d1 | ||
|
|
37a83f3a41 | ||
|
|
fc9a194f0d | ||
|
|
e6557c9b11 | ||
|
|
775ddd5d9c | ||
|
|
15b5b65ee4 | ||
|
|
cb22065786 | ||
|
|
24dcf4e0f9 | ||
|
|
debb6a95cc | ||
|
|
d0f704efd9 | ||
|
|
8505955a99 | ||
|
|
e25e333c9a | ||
|
|
d4907e2927 | ||
|
|
514f5e8d28 | ||
|
|
e264f2c728 | ||
|
|
c95d87bd93 | ||
|
|
10ba7ce8dc | ||
|
|
f807c78afe | ||
|
|
35531544e8 | ||
|
|
5c464d9e32 | ||
|
|
822b9917df | ||
|
|
7b5678fdb0 | ||
|
|
16e91fe96e | ||
|
|
5f0556348d | ||
|
|
9d453e3923 | ||
|
|
d2af5b7461 | ||
|
|
9dc1e4a7d8 | ||
|
|
da8ec6977f | ||
|
|
ebf35b0cda | ||
|
|
7a7ce8b310 | ||
|
|
ef3d022bcf | ||
|
|
47628908d9 | ||
|
|
43b48bcb18 | ||
|
|
42655190c2 | ||
|
|
7b351b70c8 | ||
|
|
93ac1a44c6 | ||
|
|
35bf96024e | ||
|
|
f9c82f4156 | ||
|
|
17b10db0d3 | ||
|
|
8c5a8e6267 | ||
|
|
8429204a23 | ||
|
|
924d328e02 | ||
|
|
75b6445152 | ||
|
|
3b87aae42e | ||
|
|
6b9cdd261c | ||
|
|
2732073c85 | ||
|
|
e8e2d50839 | ||
|
|
e84aaeebd7 | ||
|
|
80c4e619d2 | ||
|
|
baef120023 | ||
|
|
2e1dc3f615 | ||
|
|
4977a60818 | ||
|
|
ce646715b2 | ||
|
|
7dfb821e62 | ||
|
|
440676c1cf | ||
|
|
c7b93a8bb4 | ||
|
|
0d0adcfbfe | ||
|
|
f406a202ac | ||
|
|
941db8202f | ||
|
|
123bf2829b | ||
|
|
dee87ddb76 | ||
|
|
99bfa6e9c5 | ||
|
|
a63a7345b7 | ||
|
|
a89cc1dfd2 | ||
|
|
6f822a2be3 | ||
|
|
e40fc20915 | ||
|
|
a0128fdb3b | ||
|
|
8b4d58d218 | ||
|
|
d538d69c0c | ||
|
|
9137cbadec | ||
|
|
7135784416 | ||
|
|
68b85cd735 | ||
|
|
df9b0019d9 | ||
|
|
bb165a433a | ||
|
|
a8f603e6f3 | ||
|
|
b721a1f502 | ||
|
|
5e45d47086 | ||
|
|
1131f3b30c | ||
|
|
d05f44eefe | ||
|
|
86dcf5f245 | ||
|
|
cb22027a07 | ||
|
|
1a6f822479 | ||
|
|
ab3642df38 | ||
|
|
34590cc644 | ||
|
|
30921d7611 | ||
|
|
03112cff3d | ||
|
|
1da05f7977 | ||
|
|
d2aa9b8725 | ||
|
|
2a9c6b72de | ||
|
|
e4d2b90db2 | ||
|
|
b376f71d71 | ||
|
|
2024698ff9 | ||
|
|
80fd48a0f5 | ||
|
|
177f7f7d90 | ||
|
|
83a86d8281 | ||
|
|
5a6d8c1737 | ||
|
|
4dbf0346dd | ||
|
|
13d0cd65b6 | ||
|
|
a7961f25e6 | ||
|
|
6880ca5002 | ||
|
|
1efab4398c | ||
|
|
0e71b43681 | ||
|
|
eac7854367 | ||
|
|
8b11235874 | ||
|
|
f97e5bff69 | ||
|
|
4138353d90 | ||
|
|
0709c70933 | ||
|
|
0f1cb7fc46 | ||
|
|
51d9d9e7cd | ||
|
|
27b9e49434 | ||
|
|
0f291ddabe | ||
|
|
ac16bc5cb5 | ||
|
|
9115bb70af | ||
|
|
779ff65f2a | ||
|
|
2a80c5bf3a | ||
|
|
c07c67e7ba | ||
|
|
eb533aafd0 | ||
|
|
0f776ac60f | ||
|
|
77e0a9c9d0 | ||
|
|
7abf650497 | ||
|
|
80e1dc2071 | ||
|
|
cde17fff5a | ||
|
|
03276ac8a0 | ||
|
|
a0da9446ac | ||
|
|
7d870502c6 | ||
|
|
fa4355936d | ||
|
|
f66d96b967 | ||
|
|
00fe4002eb | ||
|
|
15c051ef11 | ||
|
|
bb50d96fbe | ||
|
|
ed543652c3 | ||
|
|
b377edcd8e | ||
|
|
be90cafbe6 | ||
|
|
2c9a3db6bd | ||
|
|
714aa0cd15 | ||
|
|
1d9eafc7ad | ||
|
|
8a43d216c0 | ||
|
|
0affed00bc | ||
|
|
685a54fcf6 | ||
|
|
b78c0acee1 | ||
|
|
dbb4fc4d39 | ||
|
|
39a35e8772 | ||
|
|
90e3041004 | ||
|
|
c7fe849019 | ||
|
|
3d11b83d12 | ||
|
|
51a1ed9789 | ||
|
|
d69efc672c | ||
|
|
6684b707fd | ||
|
|
bf2d2363ce | ||
|
|
8a1ffdf973 | ||
|
|
21985370ec | ||
|
|
db90b0f08c | ||
|
|
c1b5bc9a86 | ||
|
|
9c55f9d346 | ||
|
|
d616342fcc | ||
|
|
f50fb24ab4 | ||
|
|
2617fd5ab4 | ||
|
|
5f9c3de599 | ||
|
|
28f27d145f | ||
|
|
115d22c0c8 | ||
|
|
f48ada8393 | ||
|
|
3cce03db2e | ||
|
|
2b7ace23f1 | ||
|
|
3b253005e9 | ||
|
|
5920608aa1 | ||
|
|
9bee5d3122 | ||
|
|
278c8859ca | ||
|
|
f5a01422be | ||
|
|
ee92f5e931 | ||
|
|
9282db2407 | ||
|
|
59b10fe4c4 | ||
|
|
3632466130 | ||
|
|
2e89f154cf | ||
|
|
dd9be44e2b | ||
|
|
01d42ee5e2 | ||
|
|
6de6311fb0 | ||
|
|
e94e638198 | ||
|
|
9ba27220c2 | ||
|
|
f973dd51ef | ||
|
|
6d6d95299e | ||
|
|
de9465f179 | ||
|
|
38530d4c39 | ||
|
|
b77d0df48b | ||
|
|
7596f23c36 | ||
|
|
7555280c0d | ||
|
|
4a6c58eb63 | ||
|
|
228dcd44e2 | ||
|
|
e5715cd2c8 | ||
|
|
d6fc0c8126 | ||
|
|
1c65fdee7b | ||
|
|
255a375210 | ||
|
|
2232d1bbd8 |
No files matched your search
@@ -0,0 +1,4 @@
|
||||
# Rename this file to .env and add your actual API keys
|
||||
|
||||
API_TOKEN=crowdin_token
|
||||
API_KEY_WEATHERAPI=weatherapi.com_api
|
||||
@@ -1,4 +0,0 @@
|
||||
# These are supported funding model platforms
|
||||
github: [PranshulGG]
|
||||
ko_fi: pranshulgg
|
||||
liberapay: PranshulGG
|
||||
@@ -1,51 +0,0 @@
|
||||
name: Bug Report
|
||||
description: Report a bug
|
||||
labels: [ "bug" ]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill out the sections below to help everyone identify and fix the bug
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Describe your issue
|
||||
placeholder: When I click here this happens
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: steps
|
||||
attributes:
|
||||
label: Steps to reproduce
|
||||
placeholder: |
|
||||
1. Go to page X
|
||||
2. Click here
|
||||
3. Click there
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: expected
|
||||
attributes:
|
||||
label: What was the expected result?
|
||||
placeholder: I expected this to happen
|
||||
- type: input
|
||||
id: source_used
|
||||
attributes:
|
||||
label: Which weather source are you using?
|
||||
placeholder: Example "Open Meteo"
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: screenshots
|
||||
attributes:
|
||||
label: Put here any screenshots or videos (optional)
|
||||
- type: checkboxes
|
||||
id: acknowledgementsCheck
|
||||
attributes:
|
||||
label: Acknowledgements
|
||||
description: Your issue will be closed if you don’t read this carefully.
|
||||
options:
|
||||
- label: I have reviewed the existing issues to confirm that this is a unique report and not related to any currently open or closed tickets.
|
||||
required: true
|
||||
- label: I understand that this app is provided as-is, without any guarantees, and I might not receive a response to my request. Sometimes you might not get the response you want.
|
||||
required: true
|
||||
@@ -1,51 +0,0 @@
|
||||
name: Feature Request
|
||||
description: Suggest an idea to improve this project
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please provide detailed information to help us understand your idea and its potential impact.
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Problem Statement
|
||||
placeholder: Describe the problem or limitation you're facing that the new feature would solve.
|
||||
description: Clearly explain the challenge or issue you're encountering to help us understand the context.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: solution
|
||||
attributes:
|
||||
label: Proposed Solution
|
||||
placeholder: Explain how you think the feature should work and address the problem.
|
||||
description: Describe the solution in detail, including any specific behaviors or functionality it should have.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: alternatives
|
||||
attributes:
|
||||
label: Alternatives Considered
|
||||
placeholder: Describe any alternative solutions or features you've considered.
|
||||
description: If there are other ways to solve the issue, please share them here.
|
||||
- type: textarea
|
||||
id: additional
|
||||
attributes:
|
||||
label: Additional Context
|
||||
placeholder: Provide any extra details, links, or examples that might help clarify your request.
|
||||
description: This field is optional but highly encouraged if you have additional information.
|
||||
- type: checkboxes
|
||||
id: acknowledgementsCheck
|
||||
attributes:
|
||||
label: Acknowledgements
|
||||
description: Please confirm the following before submitting your feature request
|
||||
options:
|
||||
- label: I have searched the existing issues and discussions to ensure this feature has not already been requested.
|
||||
required: true
|
||||
- label: I understand that submitting a request does not guarantee it will be implemented.
|
||||
required: true
|
||||
- label: I have provided all necessary information to clearly explain my request.
|
||||
required: true
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thank you for suggesting an improvement! Your feedback is valuable, and we will review it as soon as possible.
|
||||
@@ -1,30 +0,0 @@
|
||||
name: New source
|
||||
description: Suggest an new source
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Please fill out the sections below
|
||||
- type: textarea
|
||||
id: api_link
|
||||
attributes:
|
||||
label: Link to publicly available API or Docs
|
||||
placeholder: Link here
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: details
|
||||
attributes:
|
||||
label: Additional details/context about this source
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
id: acknowledgementsCheck
|
||||
attributes:
|
||||
label: Acknowledgements
|
||||
description: Your issue will be closed if you don’t read this carefully.
|
||||
options:
|
||||
- label: I have reviewed the existing issues to confirm that this is a unique report and not related to any currently open or closed tickets.
|
||||
required: true
|
||||
- label: I understand that this app is provided as-is, without any guarantees, and I might not receive a response to my request. Sometimes you might not get the response you want.
|
||||
required: true
|
||||
@@ -1,65 +0,0 @@
|
||||
name: WeatherMaster Signed Release
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
tags:
|
||||
- "*"
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-24.04
|
||||
|
||||
env:
|
||||
KEYSTORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
|
||||
KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
|
||||
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
GEO_NAMES_USERNAME: ${{ secrets.GEO_NAMES_USERNAME }}
|
||||
MF_KEY: ${{ secrets.MF_KEY }}
|
||||
ACCU_KEY: ${{ secrets.ACCU_KEY }}
|
||||
WEATHERAPI_KEY: ${{ secrets.WEATHERAPI_KEY }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Grant execute permission for gradlew
|
||||
run: chmod +x gradlew
|
||||
|
||||
- name: Set up JDK 21
|
||||
uses: actions/setup-java@v5
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: "21.0.7"
|
||||
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@v3
|
||||
with:
|
||||
packages: 'platform-tools'
|
||||
|
||||
- name: Decode keystore
|
||||
run: |
|
||||
mkdir keystore
|
||||
echo "${{ secrets.KEYSTORE_BASE64 }}" | base64 -d > keystore/release.jks
|
||||
|
||||
- name: Verify environment
|
||||
run: |
|
||||
java -version
|
||||
./gradlew --version
|
||||
|
||||
- name: Build signed APK
|
||||
run: |
|
||||
./gradlew \
|
||||
--no-daemon \
|
||||
--no-build-cache \
|
||||
-PGEO_NAMES_USERNAME="${{ secrets.GEO_NAMES_USERNAME }}" \
|
||||
-PMF_KEY="${{ secrets.MF_KEY }}" \
|
||||
-PACCU_KEY="${{ secrets.ACCU_KEY }}" \
|
||||
-PWEATHERAPI_KEY="${{ secrets.WEATHERAPI_KEY }}" \
|
||||
clean assembleRelease
|
||||
|
||||
- name: Upload APK
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: signed-release-apk
|
||||
path: app/build/outputs/apk/release/*.apk
|
||||
@@ -1,18 +1,56 @@
|
||||
*.iml
|
||||
.gradle
|
||||
/local.properties
|
||||
/.idea/caches
|
||||
/.idea/libraries
|
||||
/.idea/modules.xml
|
||||
/.idea/workspace.xml
|
||||
/.idea/navEditor.xml
|
||||
/.idea/assetWizardSettings.xml
|
||||
# Miscellaneous
|
||||
*.class
|
||||
*.log
|
||||
*.pyc
|
||||
*.swp
|
||||
.DS_Store
|
||||
/build
|
||||
/captures
|
||||
.externalNativeBuild
|
||||
.cxx
|
||||
local.properties
|
||||
/weathermaster.jks
|
||||
/.idea
|
||||
gradle.properties
|
||||
.atom/
|
||||
.build/
|
||||
.buildlog/
|
||||
.history
|
||||
.svn/
|
||||
.swiftpm/
|
||||
migrate_working_dir/
|
||||
|
||||
# IntelliJ related
|
||||
*.iml
|
||||
*.ipr
|
||||
*.iws
|
||||
.idea/
|
||||
|
||||
# The .vscode folder contains launch configuration and tasks you configure in
|
||||
# VS Code which you may wish to be included in version control, so this line
|
||||
# is commented out by default.
|
||||
#.vscode/
|
||||
|
||||
# Flutter/Dart/Pub related
|
||||
**/doc/api/
|
||||
**/ios/Flutter/.last_build_id
|
||||
.dart_tool/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
|
||||
# Symbolication related
|
||||
app.*.symbols
|
||||
|
||||
# Obfuscation related
|
||||
app.*.map.json
|
||||
|
||||
# Android Studio will place build artifacts here
|
||||
/android/app/debug
|
||||
/android/app/profile
|
||||
/android/app/release
|
||||
|
||||
# Keystore - Never commit this!
|
||||
*.jks
|
||||
*.keystore
|
||||
android/*.jks
|
||||
android/*.keystore
|
||||
android/key.properties
|
||||
|
||||
|
||||
# Environment files
|
||||
.env
|
||||
@@ -0,0 +1,45 @@
|
||||
# This file tracks properties of this Flutter project.
|
||||
# Used by Flutter tool to assess capabilities and perform upgrades etc.
|
||||
#
|
||||
# This file should be version controlled and should not be manually edited.
|
||||
|
||||
version:
|
||||
revision: "6fba2447e95c451518584c35e25f5433f14d888c"
|
||||
channel: "stable"
|
||||
|
||||
project_type: app
|
||||
|
||||
# Tracks metadata for the flutter migrate command
|
||||
migration:
|
||||
platforms:
|
||||
- platform: root
|
||||
create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
- platform: android
|
||||
create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
- platform: ios
|
||||
create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
- platform: linux
|
||||
create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
- platform: macos
|
||||
create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
- platform: web
|
||||
create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
- platform: windows
|
||||
create_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
base_revision: 6fba2447e95c451518584c35e25f5433f14d888c
|
||||
|
||||
# User provided section
|
||||
|
||||
# List of Local paths (relative to this file) that should be
|
||||
# ignored by the migrate tool.
|
||||
#
|
||||
# Files that are not part of the templates will be ignored by default.
|
||||
unmanaged_files:
|
||||
- 'lib/main.dart'
|
||||
- 'ios/Runner.xcodeproj/project.pbxproj'
|
||||
@@ -0,0 +1,3 @@
|
||||
{
|
||||
"cmake.ignoreCMakeListsMissing": true
|
||||
}
|
||||
@@ -1,66 +0,0 @@
|
||||
# Contributing to WeatherMaster
|
||||
|
||||
Thanks for contributing to WeatherMaster :P Before opening a PR, please read
|
||||
through the guidelines below. They are intended to keep the codebase
|
||||
consistent and make contributions easier to review and maintain
|
||||
|
||||
## Before Contributing
|
||||
|
||||
Before starting work on a contribution, please open an issue first and
|
||||
describe what you would like to change.
|
||||
|
||||
For small changes like typo fixe or other
|
||||
obvious minor fixes, opening an issue is optional
|
||||
|
||||
## General stuff
|
||||
|
||||
- Keep changes focused and avoid unrelated refactors.
|
||||
- Follow the existing architecture and patterns used in the project.
|
||||
- Prefer reusing existing abstractions over introducing new ones.
|
||||
- Don't introduce a new pattern or framework for a single feature.
|
||||
- Keep platform-independent logic independent of UI code where
|
||||
possible
|
||||
- Avoid unnecessary changes to existing behavior.
|
||||
|
||||
## Adding a New Weather Source
|
||||
|
||||
The goal is that adding a new source should primarily require changes to the
|
||||
source itself, rather than adding special cases throughout the codebase
|
||||
|
||||
When implementing a new source:
|
||||
|
||||
- Use the existing source abstractions and interfaces.
|
||||
- Do not add source-specific UI.
|
||||
- Do not add source-specific logic to existing UI components.
|
||||
- If the source requires information that the existing architecture cannot
|
||||
represent, discuss the change before implementing a
|
||||
source-specific workaround
|
||||
|
||||
## AI-Assisted Contributions
|
||||
|
||||
AI tools are allowed, but contributors are expected to understand and take
|
||||
ownership of the code they submit
|
||||
|
||||
Please disclose AI usage in your PR description, including what the AI was
|
||||
used for
|
||||
|
||||
PRs that appear to be largely or entirely AI-generated without meaningful
|
||||
review, understanding, or contribution from the author will be closed
|
||||
|
||||
## Attributions
|
||||
|
||||
Add your attribution above the feature you implemented. Attribution should only be added for feature
|
||||
implementations
|
||||
|
||||
For example:
|
||||
|
||||
```kt
|
||||
/**
|
||||
* Initial YOUR_FEATURE integration implemented by https://github.com/YOUR_GITHUB
|
||||
*/
|
||||
```
|
||||
|
||||
_Thanks :P_
|
||||
|
||||
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
# Privacy Policy
|
||||
|
||||
WeatherMaster is an open-source application.
|
||||
|
||||
We respect your privacy. The application itself does **not**:
|
||||
|
||||
- Collect, store, or share personal information.
|
||||
- Track your IP address, usage data, or device identifiers.
|
||||
- Send personal data to us directly.
|
||||
|
||||
---
|
||||
|
||||
## Third-Party Services & APIs
|
||||
|
||||
WeatherMaster relies on external weather and geolocation services to provide forecasts and
|
||||
location-based functionality.
|
||||
|
||||
These third-party services may process certain technical information, including:
|
||||
|
||||
- IP address
|
||||
- Approximate or precise location data
|
||||
- Device or network-related information required for API requests
|
||||
|
||||
This data processing is handled by the respective service providers under their own privacy
|
||||
policies. WeatherMaster itself does not control or store this data.
|
||||
|
||||
---
|
||||
|
||||
## Location Permission
|
||||
|
||||
The app may request access to your device's location to display local weather information.
|
||||
|
||||
- Granting location permission is optional.
|
||||
- Your precise location is used locally within the app to fetch weather data from external APIs.
|
||||
- WeatherMaster does not store your precise location.
|
||||
|
||||
---
|
||||
|
||||
## Children
|
||||
|
||||
This application is not directed toward children under the age of 13 and does not knowingly collect
|
||||
personal information.
|
||||
|
||||
---
|
||||
|
||||
## Changes
|
||||
|
||||
This Privacy Policy may be updated from time to time. Continued use of the app after changes become
|
||||
effective constitutes acceptance of the revised policy.
|
||||
|
||||
---
|
||||
|
||||
## Contact
|
||||
|
||||
If you have any questions about privacy, please contact:
|
||||
|
||||
**Email:** <pranshul.devmain@gmail.com>
|
||||
@@ -1,6 +1,6 @@
|
||||
<div align="center">
|
||||
<img src="preview/icon.png" alt="" width="150px">
|
||||
</div>
|
||||
<img src="https://github.com/PranshulGG/WeatherMaster/blob/master/preview/readme_app_icon.svg" alt="" width="150px">
|
||||
</div>
|
||||
<h1 align="center">
|
||||
WeatherMaster
|
||||
</h1>
|
||||
@@ -17,121 +17,110 @@
|
||||
|
||||
</div>
|
||||
<div align="center">
|
||||
|
||||
<img src="https://shields.rbtlog.dev/simple/com.pranshulgg.weather_master_app?style=for-the-badge" alt="RB Status">
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<h3>WeatherMaster: inspired by the Google Pixel weather app.</h3>
|
||||
|
||||
|
||||
</div>
|
||||
<div align="center">
|
||||
|
||||
[Features](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-features) • [Contact](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#%EF%B8%8F-contact) • [License](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#%EF%B8%8F-license) • [Translate](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-translate-the-app-on-crowdin)
|
||||
|
||||
[Features](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-features) • [Contact](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#contact) • [License](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#license) • [Translate](https://github.com/PranshulGG/WeatherMaster?tab=readme-ov-file#-translate-the-app-on-crowdin)
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div align="center">
|
||||
<a href="https://github.com/PranshulGG/WeatherMaster/releases"><img alt="GitHub" src="preview/get_on_github_btn.png" height="80"/></a>
|
||||
<a href="https://apt.izzysoft.de/fdroid/index/apk/com.pranshulgg.weather_master_app"><img alt="GitHub" src="preview/get_on_izzy_btn.png" height="80"/></a>
|
||||
<a href="https://play.google.com/store/apps/details?id=com.pranshulgg.weather_master"><img alt="GitHub" src="preview/get_on_googleplay_btn.png" height="80"/></a></div>
|
||||
|
||||
<a href="https://github.com/PranshulGG/WeatherMaster/releases"><img alt="GitHub" src="https://user-images.githubusercontent.com/69304392/148696068-0cfea65d-b18f-4685-82b5-329a330b1c0d.png" height="80"/></a>
|
||||
<a href="https://apt.izzysoft.de/fdroid/index/apk/com.pranshulgg.weather_master_app"><img alt="GitHub" src="preview/download_Btn.png" height="80"/></a></div>
|
||||
<br>
|
||||
|
||||

|
||||

|
||||
|
||||
|
||||
<div align="center">
|
||||
|
||||
**This is the Flutter rewrite of the [original WeatherMaster app](https://github.com/PranshulGG/WeatherMaster/tree/legacy-code-js-original).**
|
||||
|
||||
</div>
|
||||
|
||||
# 👁️ Screenshots
|
||||
|
||||
<div align="center">
|
||||
<img src="preview/preview_1.png" width="250">
|
||||
<img src="preview/preview_2.png" width="250">
|
||||
<img src="preview/preview_3.png" width="250">
|
||||
<img src="preview/preview_4.png" width="250">
|
||||
<img src="preview/4.png" width="250">
|
||||
<img src="preview/1.png" width="250">
|
||||
<img src="preview/3.png" width="250">
|
||||
<img src="preview/2.png" width="250">
|
||||
<img src="preview/5.png" width="250">
|
||||
|
||||
</div>
|
||||
|
||||
<br>
|
||||
|
||||
# 🌦️ Supported weather sources
|
||||
# 🌐 Translate the app on [Crowdin](https://crowdin.com/project/weathermaster/invite?h=448278a9b1370f3c10d4336a091dae792286917)
|
||||
- **Feel free to open an issue if you want to request a language**
|
||||
|
||||
- **Open Meteo**
|
||||
- **Met Norway**
|
||||
- **NWS**
|
||||
- **SMHI**
|
||||
- **DWD**
|
||||
- **Meteo-France**
|
||||
- **FMI**
|
||||
- **ECCC**
|
||||
- **BMKG**
|
||||
- **China**
|
||||
- **AccuWeather**
|
||||
- **Meteo AM**
|
||||
- **IPMA**
|
||||
- **WeatherApi.com**
|
||||
- **Gismeteo**
|
||||
- **Met Office** _(requires your own API key — sign up [here](https://www.metoffice.gov.uk/))_
|
||||
- **AEMET** _(requires your own API key — sign
|
||||
up [here](https://opendata.aemet.es/centrodedescargas/altaUsuario))_
|
||||
- **IMD**
|
||||
- **WMO Severe Weather Information Centre**
|
||||
- **FOSS Public Alert Server**
|
||||
- **CWA**
|
||||
- **Pirate Weather**
|
||||
- **JMA**
|
||||
- **IMET**
|
||||
- **OpenWeather**
|
||||
- _**And more to be added**_
|
||||
<a href="https://crowdin.com/project/weathermaster/invite?h=448278a9b1370f3c10d4336a091dae792286917"><img src="https://badges.crowdin.net/weathermaster/localized.svg" width="200"> </a>
|
||||
|
||||
Some sources need a free API key from the provider before you can select them — add yours from a
|
||||
location's weather source picker, or from **Settings → Weather Sources → API key config**.
|
||||
|
||||
# 🌐 Translate the app on [Crowdin](https://crowdin.com/project/weathermaster)
|
||||
# ✨ Features:
|
||||
|
||||
_**Feel free to open an issue if you want to request a language**_
|
||||
- 🌍 **Offline Mode:** Access previously loaded weather data even without an internet connection.
|
||||
- 🌤️ **Current Weather:** Get real-time updates on weather conditions in your area.
|
||||
- 📢 **Government Weather Alerts:** Receive official alerts and warnings to stay safe.
|
||||
- ⏳ **24-Hour Forecast:** Plan your short-term activities with accurate forecasts for the next two days.
|
||||
- 📅 **14-Day Forecast:** View detailed weather predictions for the upcoming week.
|
||||
- 🌙 **Moon Phases:** Track the phases of the moon and plan accordingly.
|
||||
- 🌑 **Moonrise & Moonset:** Know the exact times for moonrise and moonset each day.
|
||||
- 🌅 **Sunrise & Sunset:** Stay informed about sunrise and sunset times to optimize your day.
|
||||
- 📏 **Day Length:** Check how long the daylight lasts each day.
|
||||
- 📝 **Day Description:** Get a brief summary of the day’s weather conditions.
|
||||
- 🌧️ **Rain Bar:** See a visual representation of expected rainfall.
|
||||
- 👁️ **Visibility:** Monitor how far you can see clearly based on weather conditions.
|
||||
- 💧 **Humidity:** Check the current humidity levels to stay comfortable.
|
||||
- 🧭 **Pressure:** Track atmospheric pressure to understand weather changes.
|
||||
- 🌬️ **Wind Direction & Speed:** Stay aware of wind patterns and strength.
|
||||
- ❄️ **Snow Amount:** Know the expected snowfall for winter planning.
|
||||
- ☁️ **Cloudiness:** See how much of the sky is covered by clouds.
|
||||
- 🌡️ **Min-Max Temperature:** View the range of temperatures for the day.
|
||||
- 🌬️ **Feels Like Temperature:** Understand how the temperature feels based on wind and humidity.
|
||||
- 🌧️ **Precipitation Type & Area Coverage:** Get details on what kind of precipitation is expected and its coverage area.
|
||||
- 🌞 **UV Index:** Stay protected from harmful UV rays with UV index updates.
|
||||
- 🌿 **Air Quality:** Monitor air quality to stay informed about pollution levels.
|
||||
- 🗺️ **Live Map:** Access a real-time map to track weather conditions in different areas.
|
||||
- 📍 **Location Picker:** Easily select and view weather information for different locations.
|
||||
- ⭐ **Save Favorite Locations:** Save your preferred locations for quick access to their weather updates.
|
||||
- 👗 **Clothing Recommendations:** Get suggestions on what to wear based on the current weather conditions.
|
||||
- 🌾 **Pollen Data (Europe Only):** View pollen levels for grass, trees, and weeds in your area.
|
||||
- **⚙️ Customizable Layout:** Arrange and customize the app’s layout to display weather features in your preferred order and style. Example: Saved locations, condition widgets etc.
|
||||
|
||||
<a href="https://crowdin.com/project/weathermaster" style="background-color: red"></a>
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
[](https://crowdin.com/project/weathermaster)
|
||||
# 🌞 Weather providers:
|
||||
- [**open-meteo**](https://open-meteo.com)
|
||||
- [**Met norway**](https://www.met.no/en)
|
||||
- [**WeatherApi**](https://www.weatherapi.com/)
|
||||
- [**accuweather**](https://www.accuweather.com/)
|
||||
- [**Météo-France**](https://www.meteofrance.com)
|
||||
- [**DWD**](https://www.dwd.de/EN/Home/home_node.html)
|
||||
- [**NOAA**](https://www.noaa.gov)
|
||||
- [**ECMWF**](https://www.ecmwf.int)
|
||||
- [**UK Met Office**](https://www.metoffice.gov.uk)
|
||||
- [**JMA**](https://www.jma.go.jp/jma/indexe.html)
|
||||
- [**GEM**](https://www.ec.gc.ca/meteo-weather/default.asp?lang=En&n=FB1BB3E4-1)
|
||||
- [**BOM**](http://www.bom.gov.au)
|
||||
- [**CMA**](http://www.cma.gov.cn/en/)
|
||||
- [**KNMI**](https://www.knmi.nl)
|
||||
- [**DMI**](https://www.dmi.dk/en/)
|
||||
|
||||
|
||||
|
||||
# 🛠️ Built With:
|
||||
|
||||
|
||||
- <strong>Flutter: </stronge>Completely rebuilt from web-based JS to native Flutter.
|
||||
|
||||
- <strong>Weather icons</strong>: <a href="https://gitlab.com/bignutty/google-weather-icons">Google weather icons
|
||||
|
||||
# ✉️ Contact
|
||||
For any questions or feedback, feel free to open an issue on GitHub or contact pranshul.devmain@gmail.com
|
||||
|
||||
For any questions or feedback, feel free to open an issue on GitHub or contact
|
||||
pranshul.devmain@gmail.com
|
||||
|
||||
# ©️ License
|
||||
|
||||
This project is licensed under the GPL-3.0 license. See the `LICENSE` file for details.
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# This file configures the analyzer, which statically analyzes Dart code to
|
||||
# check for errors, warnings, and lints.
|
||||
#
|
||||
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
|
||||
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
|
||||
# invoked from the command line by running `flutter analyze`.
|
||||
|
||||
# The following line activates a set of recommended lints for Flutter apps,
|
||||
# packages, and plugins designed to encourage good coding practices.
|
||||
include: package:flutter_lints/flutter.yaml
|
||||
|
||||
linter:
|
||||
# The lint rules applied to this project can be customized in the
|
||||
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
|
||||
# included above or to enable additional rules. A list of all available lints
|
||||
# and their documentation is published at https://dart.dev/lints.
|
||||
#
|
||||
# Instead of disabling a lint rule for the entire project in the
|
||||
# section below, it can also be suppressed for a single line of code
|
||||
# or a specific dart file by using the `// ignore: name_of_lint` and
|
||||
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
|
||||
# producing the lint.
|
||||
rules:
|
||||
# avoid_print: false # Uncomment to disable the `avoid_print` rule
|
||||
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
|
||||
|
||||
# Additional information about this file can be found at
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
@@ -0,0 +1,24 @@
|
||||
# Gradle
|
||||
.gradle/
|
||||
gradlew
|
||||
gradlew.bat
|
||||
local.properties
|
||||
/captures/
|
||||
.cxx/
|
||||
GeneratedPluginRegistrant.java
|
||||
|
||||
# Keystore & signing
|
||||
# Never share this publicly
|
||||
android/key.properties
|
||||
weathermaster.jks
|
||||
**/*.jks
|
||||
**/*.keystore
|
||||
|
||||
# Flutter-specific
|
||||
build/
|
||||
.flutter-plugins
|
||||
.flutter-plugins-dependencies
|
||||
.dart_tool/
|
||||
.packages
|
||||
pubspec.lock
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
import java.util.Properties
|
||||
import java.io.FileInputStream
|
||||
|
||||
|
||||
val keyProperties = Properties().apply {
|
||||
val keyPropertiesFile = rootProject.file("key.properties")
|
||||
load(FileInputStream(keyPropertiesFile))
|
||||
}
|
||||
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("kotlin-android")
|
||||
id("dev.flutter.flutter-gradle-plugin")
|
||||
}
|
||||
|
||||
|
||||
android {
|
||||
namespace = "com.pranshulgg.weather_master_app"
|
||||
compileSdk = flutter.compileSdkVersion
|
||||
ndkVersion = flutter.ndkVersion
|
||||
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
isCoreLibraryDesugaringEnabled = true
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = JavaVersion.VERSION_17.toString()
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId = "com.pranshulgg.weather_master_app"
|
||||
// You can update the following values to match your application needs.
|
||||
// For more information, see: https://flutter.dev/to/review-gradle-config.
|
||||
minSdk = flutter.minSdkVersion
|
||||
targetSdk = flutter.targetSdkVersion
|
||||
versionCode = flutter.versionCode
|
||||
versionName = flutter.versionName
|
||||
}
|
||||
|
||||
|
||||
signingConfigs {
|
||||
create("release") {
|
||||
keyAlias = keyProperties["keyAlias"] as String
|
||||
keyPassword = keyProperties["keyPassword"] as String
|
||||
storeFile = File(rootProject.projectDir, "${keyProperties["storeFile"]}")
|
||||
storePassword = keyProperties["storePassword"] as String
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
getByName("release") {
|
||||
signingConfig = signingConfigs.getByName("release")
|
||||
isMinifyEnabled = false
|
||||
isShrinkResources = false
|
||||
}
|
||||
}
|
||||
|
||||
dependenciesInfo {
|
||||
includeInApk = false
|
||||
includeInBundle = false
|
||||
}
|
||||
}
|
||||
|
||||
flutter {
|
||||
source = "../.."
|
||||
}
|
||||
|
||||
dependencies {
|
||||
coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:2.1.4")
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
@@ -0,0 +1,53 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
>
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<application
|
||||
android:label="Weather Master"
|
||||
android:name="${applicationName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
orientation="portrait"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:taskAffinity=""
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
while the Flutter UI initializes. After that, this theme continues
|
||||
to determine the Window background behind the Flutter UI. -->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<!-- Don't delete the meta-data below.
|
||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
|
||||
|
||||
</application>
|
||||
<!-- Required to query activities that can process text, see:
|
||||
https://developer.android.com/training/package-visibility and
|
||||
https://developer.android.com/reference/android/content/Intent#ACTION_PROCESS_TEXT.
|
||||
|
||||
In particular, this is used by the Flutter engine in io.flutter.plugin.text.ProcessTextPlugin. -->
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="android.intent.action.PROCESS_TEXT"/>
|
||||
<data android:mimeType="text/plain"/>
|
||||
</intent>
|
||||
</queries>
|
||||
</manifest>
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.pranshulgg.weather_master_app
|
||||
|
||||
import io.flutter.embedding.android.FlutterActivity
|
||||
|
||||
class MainActivity : FlutterActivity()
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="?android:colorBackground" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
@@ -0,0 +1,32 @@
|
||||
<vector xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:width="108dp"
|
||||
android:height="108dp"
|
||||
android:viewportWidth="49.999"
|
||||
android:viewportHeight="40.002">
|
||||
<group android:scaleX="0.44"
|
||||
android:scaleY="0.35202464"
|
||||
android:translateX="13.99972"
|
||||
android:translateY="12.9601555">
|
||||
<path
|
||||
android:pathData="M42.789,22.915c-0.001,-0.012 -3.32,-0.571 -6.539,1.71c1.312,-2.281 3.094,-3.812 6.123,-4.122C40.964,15.336 36.258,11.531 30.642,11.531c-4.432,0 -8.305,2.373 -10.435,5.913c2.729,0.119 5.606,2.18 7.405,4.506c-1.703,-1.318 -3.835,-2.111 -6.156,-2.111c-0.84,0 -1.652,0.115 -2.432,0.31c-0.002,-0.022 -0.009,-0.042 -0.011,-0.065c-0.008,0.024 -0.018,0.047 -0.025,0.072c-4.372,1.103 -7.614,5.05 -7.614,9.765c0,5.566 4.514,10.081 10.082,10.081h19.939c4.752,0 8.604,-3.853 8.604,-8.604C50,27.119 46.876,23.581 42.789,22.915z"
|
||||
android:fillColor="#363636"/>
|
||||
<path
|
||||
android:pathData="M12.403,20.145c-0.257,-0.667 -0.403,-1.389 -0.403,-2.146c0,-3.308 2.692,-6 6,-6c0.756,0 1.478,0.146 2.145,0.403c1.123,-1.012 2.382,-1.844 3.743,-2.474c-1.653,-1.208 -3.684,-1.93 -5.887,-1.93c-5.522,0 -10,4.478 -10,10c0,2.045 0.617,3.945 1.67,5.529C10.384,22.257 11.31,21.114 12.403,20.145z"
|
||||
android:fillColor="#363636"/>
|
||||
<path
|
||||
android:pathData="M20,3c0,1.65 -0.9,3 -2,3s-2,-1.35 -2,-3c0,-1.65 0.9,-3 2,-3S20,1.35 20,3z"
|
||||
android:fillColor="#363636"/>
|
||||
<path
|
||||
android:pathData="M3,20c-1.65,0 -3,-0.9 -3,-2c0,-1.1 1.35,-2 3,-2s3,0.9 3,2C6,19.1 4.649,20 3,20z"
|
||||
android:fillColor="#363636"/>
|
||||
<path
|
||||
android:pathData="M30.261,8.531c0.958,-1.131 1.185,-2.54 0.466,-3.259c-0.778,-0.778 -2.369,-0.46 -3.535,0.707c-0.98,0.98 -1.352,2.255 -0.987,3.101C27.505,8.722 28.865,8.531 30.261,8.531z"
|
||||
android:fillColor="#363636"/>
|
||||
<path
|
||||
android:pathData="M8,29.92c0,-1.329 0.201,-2.619 0.575,-3.839c-0.8,-0.078 -1.795,0.311 -2.596,1.111c-1.167,1.167 -1.485,2.757 -0.707,3.535c0.616,0.617 1.742,0.535 2.763,-0.102C8.022,30.39 8,30.158 8,29.92z"
|
||||
android:fillColor="#363636"/>
|
||||
<path
|
||||
android:pathData="M8.807,5.979c1.167,1.167 1.485,2.757 0.707,3.535c-0.778,0.778 -2.369,0.459 -3.535,-0.707c-1.167,-1.167 -1.485,-2.757 -0.707,-3.535C6.05,4.494 7.641,4.812 8.807,5.979z"
|
||||
android:fillColor="#363636"/>
|
||||
</group>
|
||||
</vector>
|
||||
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
||||
@@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@mipmap/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
<monochrome android:drawable="@drawable/ic_launcher_mono_foreground"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_mono_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_mono_foreground"/>
|
||||
</adaptive-icon>
|
||||
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_mono_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_mono_foreground"/>
|
||||
</adaptive-icon>
|
||||
|
After Width: | Height: | Size: 6.5 KiB |
|
After Width: | Height: | Size: 855 B |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 1.0 KiB |
|
After Width: | Height: | Size: 2.0 KiB |
|
After Width: | Height: | Size: 3.6 KiB |
|
After Width: | Height: | Size: 462 B |
|
After Width: | Height: | Size: 6.4 KiB |
|
After Width: | Height: | Size: 774 B |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 3.0 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 2.9 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 1.7 KiB |
|
After Width: | Height: | Size: 4.7 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 2.3 KiB |
|
After Width: | Height: | Size: 6.9 KiB |
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -1,4 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_app_launcher_background">#001945</color>
|
||||
<color name="ic_launcher_mono_background">#FFFFFF</color>
|
||||
</resources>
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is off -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
the Flutter engine draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Light.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
||||
@@ -0,0 +1,7 @@
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<!-- The INTERNET permission is required for development. Specifically,
|
||||
the Flutter tool needs it to communicate with the running application
|
||||
to allow setting breakpoints, to provide hot reload, etc.
|
||||
-->
|
||||
<uses-permission android:name="android.permission.INTERNET"/>
|
||||
</manifest>
|
||||
@@ -0,0 +1,21 @@
|
||||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
}
|
||||
|
||||
val newBuildDir: Directory = rootProject.layout.buildDirectory.dir("../../build").get()
|
||||
rootProject.layout.buildDirectory.value(newBuildDir)
|
||||
|
||||
subprojects {
|
||||
val newSubprojectBuildDir: Directory = newBuildDir.dir(project.name)
|
||||
project.layout.buildDirectory.value(newSubprojectBuildDir)
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(":app")
|
||||
}
|
||||
|
||||
tasks.register<Delete>("clean") {
|
||||
delete(rootProject.layout.buildDirectory)
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m -XX:+HeapDumpOnOutOfMemoryError
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
@@ -0,0 +1,5 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.12-all.zip
|
||||
@@ -0,0 +1,25 @@
|
||||
pluginManagement {
|
||||
val flutterSdkPath = run {
|
||||
val properties = java.util.Properties()
|
||||
file("local.properties").inputStream().use { properties.load(it) }
|
||||
val flutterSdkPath = properties.getProperty("flutter.sdk")
|
||||
require(flutterSdkPath != null) { "flutter.sdk not set in local.properties" }
|
||||
flutterSdkPath
|
||||
}
|
||||
|
||||
includeBuild("$flutterSdkPath/packages/flutter_tools/gradle")
|
||||
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
gradlePluginPortal()
|
||||
}
|
||||
}
|
||||
|
||||
plugins {
|
||||
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
|
||||
id("com.android.application") version "8.7.3" apply false
|
||||
id("org.jetbrains.kotlin.android") version "2.1.0" apply false
|
||||
}
|
||||
|
||||
include(":app")
|
||||
@@ -1 +0,0 @@
|
||||
/build
|
||||
@@ -1,202 +0,0 @@
|
||||
import java.util.Properties
|
||||
|
||||
plugins {
|
||||
alias(libs.plugins.android.application)
|
||||
alias(libs.plugins.kotlin.compose)
|
||||
id("com.google.devtools.ksp") version "2.3.6"
|
||||
id("com.google.dagger.hilt.android")
|
||||
id("androidx.room")
|
||||
kotlin("plugin.serialization") version "2.3.21"
|
||||
}
|
||||
|
||||
val localProps = Properties().apply {
|
||||
val f = rootProject.file("local.properties")
|
||||
if (f.exists()) f.inputStream().use { load(it) }
|
||||
}
|
||||
|
||||
|
||||
val geoNamesUserNameKey =
|
||||
providers.gradleProperty("GEO_NAMES_USERNAME").orNull
|
||||
?: System.getenv("GEO_NAMES_USERNAME")
|
||||
?: ""
|
||||
|
||||
val mfKey = providers.gradleProperty("MF_KEY").orNull ?: System.getenv("MF_KEY")
|
||||
?: ""
|
||||
val accuKey = providers.gradleProperty("ACCU_KEY").orNull ?: System.getenv("ACCU_KEY")
|
||||
?: ""
|
||||
val weatherapiKey =
|
||||
providers.gradleProperty("WEATHERAPI_KEY").orNull ?: System.getenv("WEATHERAPI_KEY")
|
||||
?: ""
|
||||
val keystoreFile = file("../keystore/release.jks")
|
||||
val hasKeystore = keystoreFile.exists()
|
||||
|
||||
val versionNameString = "3.11.0"
|
||||
|
||||
val playStore = false
|
||||
|
||||
android {
|
||||
namespace = "com.pranshulgg.weather_master_app"
|
||||
compileSdk {
|
||||
version = release(37)
|
||||
}
|
||||
android.buildFeatures.buildConfig = true
|
||||
|
||||
defaultConfig {
|
||||
applicationId = if (playStore) {
|
||||
"com.pranshulgg.weather_master"
|
||||
} else {
|
||||
"com.pranshulgg.weather_master_app"
|
||||
}
|
||||
minSdk = 26
|
||||
targetSdk = 36
|
||||
versionCode = 68
|
||||
versionName = versionNameString
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
||||
buildConfigField(
|
||||
"String",
|
||||
"GEO_NAMES_USERNAME",
|
||||
"\"$geoNamesUserNameKey\""
|
||||
)
|
||||
|
||||
buildConfigField(
|
||||
"String",
|
||||
"MF_KEY",
|
||||
"\"$mfKey\""
|
||||
)
|
||||
|
||||
buildConfigField(
|
||||
"String",
|
||||
"ACCU_KEY",
|
||||
"\"$accuKey\""
|
||||
)
|
||||
|
||||
buildConfigField(
|
||||
"String",
|
||||
"WEATHERAPI_KEY",
|
||||
"\"$weatherapiKey\""
|
||||
)
|
||||
|
||||
buildConfigField(
|
||||
"String",
|
||||
"APP_VERSION",
|
||||
"\"v${versionNameString}\""
|
||||
)
|
||||
|
||||
buildConfigField(
|
||||
"boolean",
|
||||
"IS_PLAYSTORE_BUILD",
|
||||
playStore.toString()
|
||||
)
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
if (hasKeystore) {
|
||||
create("release") {
|
||||
storeFile = keystoreFile
|
||||
storePassword = System.getenv("KEYSTORE_PASSWORD")
|
||||
keyAlias = System.getenv("KEY_ALIAS")
|
||||
keyPassword = System.getenv("KEY_PASSWORD")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
release {
|
||||
isMinifyEnabled = false
|
||||
|
||||
if (hasKeystore) {
|
||||
signingConfig = signingConfigs.getByName("release")
|
||||
}
|
||||
|
||||
proguardFiles(
|
||||
getDefaultProguardFile("proguard-android-optimize.txt"),
|
||||
"proguard-rules.pro"
|
||||
)
|
||||
}
|
||||
}
|
||||
compileOptions {
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
// isCoreLibraryDesugaringEnabled = true
|
||||
}
|
||||
buildFeatures {
|
||||
compose = true
|
||||
buildConfig = true
|
||||
}
|
||||
|
||||
dependenciesInfo {
|
||||
includeInApk = false
|
||||
includeInBundle = false
|
||||
}
|
||||
bundle {
|
||||
language {
|
||||
enableSplit = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
room {
|
||||
schemaDirectory("$projectDir/schemas")
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(libs.androidx.core.ktx)
|
||||
implementation(libs.androidx.lifecycle.process)
|
||||
implementation(libs.androidx.lifecycle.runtime.ktx)
|
||||
implementation(libs.androidx.activity.compose)
|
||||
implementation(platform(libs.androidx.compose.bom))
|
||||
implementation(libs.androidx.compose.ui)
|
||||
implementation(libs.androidx.compose.ui.graphics)
|
||||
implementation(libs.androidx.compose.ui.tooling.preview)
|
||||
implementation(libs.androidx.compose.material3)
|
||||
implementation(libs.androidx.navigation.compose)
|
||||
implementation(libs.materialKolor)
|
||||
implementation(libs.androidx.foundation.layout)
|
||||
implementation(libs.coil.compose)
|
||||
implementation(libs.kotlinx.coroutines.android)
|
||||
|
||||
implementation(libs.room.runtime)
|
||||
implementation(libs.room.ktx)
|
||||
implementation(libs.retrofit)
|
||||
implementation(libs.converter.gson)
|
||||
implementation(libs.okhttp.logging)
|
||||
implementation(libs.common.suncalc)
|
||||
implementation(libs.androidx.appcompat)
|
||||
|
||||
implementation(libs.jts.core)
|
||||
implementation(libs.jts.io.common)
|
||||
|
||||
implementation(libs.jackson.module.kotlin)
|
||||
|
||||
// coreLibraryDesugaring(libs.desugar.jdk.libs) // Not sure but it causes timezone crashes on some devices
|
||||
implementation(libs.androidx.hilt.navigation.compose)
|
||||
implementation(libs.converter.jaxb)
|
||||
ksp(libs.room.compiler)
|
||||
implementation(libs.hilt.android)
|
||||
ksp(libs.hilt.android.compiler)
|
||||
ksp(libs.hilt.compiler)
|
||||
implementation(libs.reorderable)
|
||||
implementation(libs.androidx.foundation.layout)
|
||||
implementation(libs.androidx.animation.core)
|
||||
implementation(libs.core.splashscreen)
|
||||
|
||||
implementation(libs.androidx.work.runtime)
|
||||
implementation(libs.hilt.work)
|
||||
ksp(libs.hilt.metadata.jvm)
|
||||
|
||||
implementation(libs.androidx.glance)
|
||||
|
||||
implementation(libs.androidx.glance.appwidget)
|
||||
|
||||
implementation(libs.kotlinx.serialization.json)
|
||||
testImplementation(libs.junit)
|
||||
androidTestImplementation(libs.androidx.junit)
|
||||
androidTestImplementation(libs.androidx.espresso.core)
|
||||
androidTestImplementation(platform(libs.androidx.compose.bom))
|
||||
androidTestImplementation(libs.androidx.compose.ui.test.junit4)
|
||||
debugImplementation(libs.androidx.compose.ui.tooling)
|
||||
debugImplementation(libs.androidx.compose.ui.test.manifest)
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
# Add project specific ProGuard rules here.
|
||||
# You can control the set of applied configuration files using the
|
||||
# proguardFiles setting in build.gradle.
|
||||
#
|
||||
# For more details, see
|
||||
# http://developer.android.com/guide/developing/tools/proguard.html
|
||||
|
||||
# If your project uses WebView with JS, uncomment the following
|
||||
# and specify the fully qualified class name to the JavaScript interface
|
||||
# class:
|
||||
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
|
||||
# public *;
|
||||
#}
|
||||
|
||||
# Uncomment this to preserve the line number information for
|
||||
# debugging stack traces.
|
||||
#-keepattributes SourceFile,LineNumberTable
|
||||
|
||||
# If you keep the line number information, uncomment this to
|
||||
# hide the original source file name.
|
||||
#-renamesourcefileattribute SourceFile
|
||||
@@ -1,682 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 38,
|
||||
"identityHash": "1d015719e48d11dded7be8a0fee6370b",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL NOT NULL, `temperatureMax` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '1d015719e48d11dded7be8a0fee6370b')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,679 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 39,
|
||||
"identityHash": "e3d653d51d672c892c51978003671201",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'e3d653d51d672c892c51978003671201')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,699 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 40,
|
||||
"identityHash": "c8326e15b737f950704fa3027bd58b06",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'c8326e15b737f950704fa3027bd58b06')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,711 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 41,
|
||||
"identityHash": "f8a4e91742c3f170c10c2703904ec2b9",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'f8a4e91742c3f170c10c2703904ec2b9')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,711 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 42,
|
||||
"identityHash": "f8a4e91742c3f170c10c2703904ec2b9",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'f8a4e91742c3f170c10c2703904ec2b9')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,747 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 43,
|
||||
"identityHash": "3498b6cf93a31e50cf1bef443490315f",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "github",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `currentTag` TEXT NOT NULL, `lastFetchedTag` TEXT NOT NULL, `lastFetchedTime` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "currentTag",
|
||||
"columnName": "currentTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTag",
|
||||
"columnName": "lastFetchedTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTime",
|
||||
"columnName": "lastFetchedTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '3498b6cf93a31e50cf1bef443490315f')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,767 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 44,
|
||||
"identityHash": "80da71ec25bcf07ba0d22811005aa37f",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "github",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `currentTag` TEXT NOT NULL, `lastFetchedTag` TEXT NOT NULL, `lastFetchedTime` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "currentTag",
|
||||
"columnName": "currentTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTag",
|
||||
"columnName": "lastFetchedTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTime",
|
||||
"columnName": "lastFetchedTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '80da71ec25bcf07ba0d22811005aa37f')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,851 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 45,
|
||||
"identityHash": "b2ca5c75db987a1d27628fc45eac72bf",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "github",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `currentTag` TEXT NOT NULL, `lastFetchedTag` TEXT NOT NULL, `lastFetchedTime` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "currentTag",
|
||||
"columnName": "currentTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTag",
|
||||
"columnName": "lastFetchedTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTime",
|
||||
"columnName": "lastFetchedTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `locationId` TEXT NOT NULL, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `time` INTEGER NOT NULL, FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'b2ca5c75db987a1d27628fc45eac72bf')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,863 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 46,
|
||||
"identityHash": "fd66b7531bfe72f6bcac04b8fe26dc9e",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, `alertSource` TEXT NOT NULL, `airQualitySource` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "alertSource",
|
||||
"columnName": "alertSource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "airQualitySource",
|
||||
"columnName": "airQualitySource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "github",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `currentTag` TEXT NOT NULL, `lastFetchedTag` TEXT NOT NULL, `lastFetchedTime` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "currentTag",
|
||||
"columnName": "currentTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTag",
|
||||
"columnName": "lastFetchedTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTime",
|
||||
"columnName": "lastFetchedTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `locationId` TEXT NOT NULL, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `time` INTEGER NOT NULL, FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'fd66b7531bfe72f6bcac04b8fe26dc9e')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,863 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 47,
|
||||
"identityHash": "fd66b7531bfe72f6bcac04b8fe26dc9e",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, `alertSource` TEXT NOT NULL, `airQualitySource` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "alertSource",
|
||||
"columnName": "alertSource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "airQualitySource",
|
||||
"columnName": "airQualitySource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "github",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `currentTag` TEXT NOT NULL, `lastFetchedTag` TEXT NOT NULL, `lastFetchedTime` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "currentTag",
|
||||
"columnName": "currentTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTag",
|
||||
"columnName": "lastFetchedTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTime",
|
||||
"columnName": "lastFetchedTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `locationId` TEXT NOT NULL, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `time` INTEGER NOT NULL, FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, 'fd66b7531bfe72f6bcac04b8fe26dc9e')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,868 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 48,
|
||||
"identityHash": "5ca7c9b34ef5941f3d7515379d9646f9",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, `alertSource` TEXT NOT NULL, `airQualitySource` TEXT NOT NULL, `customName` TEXT, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "alertSource",
|
||||
"columnName": "alertSource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "airQualitySource",
|
||||
"columnName": "airQualitySource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "customName",
|
||||
"columnName": "customName",
|
||||
"affinity": "TEXT"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "github",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `currentTag` TEXT NOT NULL, `lastFetchedTag` TEXT NOT NULL, `lastFetchedTime` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "currentTag",
|
||||
"columnName": "currentTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTag",
|
||||
"columnName": "lastFetchedTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTime",
|
||||
"columnName": "lastFetchedTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `locationId` TEXT NOT NULL, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `time` INTEGER NOT NULL, FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '5ca7c9b34ef5941f3d7515379d9646f9')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,916 +0,0 @@
|
||||
{
|
||||
"formatVersion": 1,
|
||||
"database": {
|
||||
"version": 49,
|
||||
"identityHash": "41f3af0cd4a758a20290098071993b9c",
|
||||
"entities": [
|
||||
{
|
||||
"tableName": "weather_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` TEXT NOT NULL, `name` TEXT NOT NULL, `country` TEXT NOT NULL, `lat` REAL NOT NULL, `lon` REAL NOT NULL, `timezone` TEXT NOT NULL, `source` TEXT NOT NULL, `state` TEXT, `isFavorite` INTEGER NOT NULL, `isPinned` INTEGER NOT NULL, `countryCode` TEXT, `isDefault` INTEGER NOT NULL, `isDeviceLocation` INTEGER NOT NULL, `alertSource` TEXT NOT NULL, `airQualitySource` TEXT NOT NULL, `customName` TEXT, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "name",
|
||||
"columnName": "name",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "country",
|
||||
"columnName": "country",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lat",
|
||||
"columnName": "lat",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lon",
|
||||
"columnName": "lon",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "timezone",
|
||||
"columnName": "timezone",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "source",
|
||||
"columnName": "source",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "state",
|
||||
"columnName": "state",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isFavorite",
|
||||
"columnName": "isFavorite",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isPinned",
|
||||
"columnName": "isPinned",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "countryCode",
|
||||
"columnName": "countryCode",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDefault",
|
||||
"columnName": "isDefault",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDeviceLocation",
|
||||
"columnName": "isDeviceLocation",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "alertSource",
|
||||
"columnName": "alertSource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "airQualitySource",
|
||||
"columnName": "airQualitySource",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "customName",
|
||||
"columnName": "customName",
|
||||
"affinity": "TEXT"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `humidity` REAL NOT NULL, `windSpeed` REAL, `windDirection` TEXT, `pressureMsl` REAL, `visibility` INTEGER, `cloudCover` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `feelsLike` REAL, `time` INTEGER NOT NULL, `dewPoint` REAL, `utcOffsetSeconds` INTEGER, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "cloudCover",
|
||||
"columnName": "cloudCover",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "feelsLike",
|
||||
"columnName": "feelsLike",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "utcOffsetSeconds",
|
||||
"columnName": "utcOffsetSeconds",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperature` REAL, `windSpeed` REAL, `windDirection` TEXT, `rain` REAL NOT NULL, `snowfall` REAL, `uvIndex` REAL, `weatherCondition` TEXT NOT NULL, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `time` INTEGER NOT NULL, `precipitationProbability` INTEGER, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperature",
|
||||
"columnName": "temperature",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rain",
|
||||
"columnName": "rain",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfall",
|
||||
"columnName": "snowfall",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndex",
|
||||
"columnName": "uvIndex",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbability",
|
||||
"columnName": "precipitationProbability",
|
||||
"affinity": "INTEGER"
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_daily",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `temperatureMin` REAL, `temperatureMax` REAL, `windSpeed` REAL, `windDirection` TEXT, `rainSum` REAL NOT NULL, `snowfallSum` REAL, `uvIndexMax` REAL, `weatherCondition` TEXT NOT NULL, `time` INTEGER NOT NULL, `precipitationProbabilityMax` INTEGER, `pressureMsl` REAL, `visibility` INTEGER, `humidity` REAL, `dewPoint` REAL, `sunrise` INTEGER NOT NULL, `sunset` INTEGER NOT NULL, `moonrise` INTEGER NOT NULL, `moonset` INTEGER NOT NULL, `moonPhase` TEXT NOT NULL, `dawn` INTEGER NOT NULL, `dusk` INTEGER NOT NULL, PRIMARY KEY(`locationId`, `time`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMin",
|
||||
"columnName": "temperatureMin",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "temperatureMax",
|
||||
"columnName": "temperatureMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windSpeed",
|
||||
"columnName": "windSpeed",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "windDirection",
|
||||
"columnName": "windDirection",
|
||||
"affinity": "TEXT"
|
||||
},
|
||||
{
|
||||
"fieldPath": "rainSum",
|
||||
"columnName": "rainSum",
|
||||
"affinity": "REAL",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "snowfallSum",
|
||||
"columnName": "snowfallSum",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "uvIndexMax",
|
||||
"columnName": "uvIndexMax",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "weatherCondition",
|
||||
"columnName": "weatherCondition",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationProbabilityMax",
|
||||
"columnName": "precipitationProbabilityMax",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureMsl",
|
||||
"columnName": "pressureMsl",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "visibility",
|
||||
"columnName": "visibility",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "humidity",
|
||||
"columnName": "humidity",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "dewPoint",
|
||||
"columnName": "dewPoint",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunrise",
|
||||
"columnName": "sunrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "sunset",
|
||||
"columnName": "sunset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonrise",
|
||||
"columnName": "moonrise",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonset",
|
||||
"columnName": "moonset",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "moonPhase",
|
||||
"columnName": "moonPhase",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dawn",
|
||||
"columnName": "dawn",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "dusk",
|
||||
"columnName": "dusk",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId",
|
||||
"time"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_weather_daily_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_weather_daily_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "weather_units",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `tempUnit` TEXT NOT NULL, `windUnit` TEXT NOT NULL, `distanceUnit` TEXT NOT NULL, `pressureUnit` TEXT NOT NULL, `precipitationUnit` TEXT NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "tempUnit",
|
||||
"columnName": "tempUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "windUnit",
|
||||
"columnName": "windUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "distanceUnit",
|
||||
"columnName": "distanceUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pressureUnit",
|
||||
"columnName": "pressureUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "precipitationUnit",
|
||||
"columnName": "precipitationUnit",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "weather_blocks",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `isDaily` INTEGER NOT NULL, `type` TEXT NOT NULL, `isHidden` INTEGER NOT NULL, `position` INTEGER NOT NULL)",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isDaily",
|
||||
"columnName": "isDaily",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "type",
|
||||
"columnName": "type",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "isHidden",
|
||||
"columnName": "isHidden",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "position",
|
||||
"columnName": "position",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_current",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `usAqi` INTEGER, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `lastUpdatedInMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "usAqi",
|
||||
"columnName": "usAqi",
|
||||
"affinity": "INTEGER"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedInMilli",
|
||||
"columnName": "lastUpdatedInMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_current_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_current_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "nws_location_gridpoints",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `officeId` TEXT NOT NULL, `gridX` INTEGER NOT NULL, `gridY` INTEGER NOT NULL, `stationIdentifier` TEXT NOT NULL, `lastUpdatedMilli` INTEGER NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "officeId",
|
||||
"columnName": "officeId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridX",
|
||||
"columnName": "gridX",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "gridY",
|
||||
"columnName": "gridY",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "stationIdentifier",
|
||||
"columnName": "stationIdentifier",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastUpdatedMilli",
|
||||
"columnName": "lastUpdatedMilli",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_nws_location_gridpoints_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_nws_location_gridpoints_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "github",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER NOT NULL, `currentTag` TEXT NOT NULL, `lastFetchedTag` TEXT NOT NULL, `lastFetchedTime` INTEGER NOT NULL, PRIMARY KEY(`id`))",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "currentTag",
|
||||
"columnName": "currentTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTag",
|
||||
"columnName": "lastFetchedTag",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "lastFetchedTime",
|
||||
"columnName": "lastFetchedTime",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"tableName": "air_quality_hourly",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `locationId` TEXT NOT NULL, `pm10` REAL, `pm25` REAL, `carbonMonoxide` REAL, `nitrogenDioxide` REAL, `sulphurDioxide` REAL, `ozone` REAL, `time` INTEGER NOT NULL, FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "id",
|
||||
"columnName": "id",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm10",
|
||||
"columnName": "pm10",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "pm25",
|
||||
"columnName": "pm25",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "carbonMonoxide",
|
||||
"columnName": "carbonMonoxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "nitrogenDioxide",
|
||||
"columnName": "nitrogenDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "sulphurDioxide",
|
||||
"columnName": "sulphurDioxide",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "ozone",
|
||||
"columnName": "ozone",
|
||||
"affinity": "REAL"
|
||||
},
|
||||
{
|
||||
"fieldPath": "time",
|
||||
"columnName": "time",
|
||||
"affinity": "INTEGER",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": true,
|
||||
"columnNames": [
|
||||
"id"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_air_quality_hourly_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_air_quality_hourly_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"tableName": "accu_locations",
|
||||
"createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`locationId` TEXT NOT NULL, `cityKey` TEXT NOT NULL, PRIMARY KEY(`locationId`), FOREIGN KEY(`locationId`) REFERENCES `weather_locations`(`id`) ON UPDATE NO ACTION ON DELETE CASCADE )",
|
||||
"fields": [
|
||||
{
|
||||
"fieldPath": "locationId",
|
||||
"columnName": "locationId",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
},
|
||||
{
|
||||
"fieldPath": "cityKey",
|
||||
"columnName": "cityKey",
|
||||
"affinity": "TEXT",
|
||||
"notNull": true
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"autoGenerate": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
]
|
||||
},
|
||||
"indices": [
|
||||
{
|
||||
"name": "index_accu_locations_locationId",
|
||||
"unique": false,
|
||||
"columnNames": [
|
||||
"locationId"
|
||||
],
|
||||
"orders": [],
|
||||
"createSql": "CREATE INDEX IF NOT EXISTS `index_accu_locations_locationId` ON `${TABLE_NAME}` (`locationId`)"
|
||||
}
|
||||
],
|
||||
"foreignKeys": [
|
||||
{
|
||||
"table": "weather_locations",
|
||||
"onDelete": "CASCADE",
|
||||
"onUpdate": "NO ACTION",
|
||||
"columns": [
|
||||
"locationId"
|
||||
],
|
||||
"referencedColumns": [
|
||||
"id"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"setupQueries": [
|
||||
"CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)",
|
||||
"INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '41f3af0cd4a758a20290098071993b9c')"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app
|
||||
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4
|
||||
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* Instrumented test, which will execute on an Android device.
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
@RunWith(AndroidJUnit4::class)
|
||||
class ExampleInstrumentedTest {
|
||||
@Test
|
||||
fun useAppContext() {
|
||||
// Context of the app under test.
|
||||
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
|
||||
assertEquals("com.pranshulgg.weathermaster", appContext.packageName)
|
||||
}
|
||||
}
|
||||
@@ -1,230 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
|
||||
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
|
||||
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
|
||||
|
||||
<application
|
||||
android:name=".WeatherMasterApplication"
|
||||
android:allowBackup="true"
|
||||
android:dataExtractionRules="@xml/data_extraction_rules"
|
||||
android:fullBackupContent="@xml/backup_rules"
|
||||
android:icon="@mipmap/ic_app_launcher"
|
||||
android:label="@string/app_name"
|
||||
android:roundIcon="@mipmap/ic_app_launcher_round"
|
||||
android:supportsRtl="true"
|
||||
android:theme="@style/Theme.SplashScreen.OnStart">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:windowSoftInputMode="adjustResize"
|
||||
android:exported="true"
|
||||
android:label="@string/app_launcher_name"
|
||||
android:theme="@style/Theme.SplashScreen.OnStart">
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
|
||||
|
||||
</activity>
|
||||
<activity
|
||||
android:name=".widgets.config.WidgetConfigActivity"
|
||||
android:theme="@style/Theme.WeatherMaster"
|
||||
android:exported="true" />
|
||||
|
||||
<service
|
||||
android:name="androidx.appcompat.app.AppLocalesMetadataHolderService"
|
||||
android:enabled="false"
|
||||
android:exported="false">
|
||||
<meta-data
|
||||
android:name="autoStoreLocales"
|
||||
android:value="true" />
|
||||
</service>
|
||||
|
||||
<provider
|
||||
android:name="androidx.startup.InitializationProvider"
|
||||
android:authorities="${applicationId}.androidx-startup"
|
||||
android:exported="false"
|
||||
tools:node="merge">
|
||||
|
||||
<meta-data
|
||||
android:name="androidx.work.WorkManagerInitializer"
|
||||
android:value="androidx.startup"
|
||||
tools:node="remove" />
|
||||
</provider>
|
||||
|
||||
<receiver
|
||||
android:name=".feature.notifications.scheduled.ScheduledNotification"
|
||||
android:enabled="true" />
|
||||
|
||||
<!--WIDGETS-->
|
||||
<receiver
|
||||
android:name=".widgets.weather.WeatherWidgetReceiver"
|
||||
android:label="Weather 1"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/weather_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.pill.WidgetPillReceiver"
|
||||
android:label="Pill"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/widget_pill_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.summary.SummaryWidgetReceiver"
|
||||
android:label="Day Summary"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/summary_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.weatherhorizontal.WeatherHorizontalWidgetReceiver"
|
||||
android:label="Weather 2"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/weather_widget_horizontal_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.glance.GlanceWidgetReceiver"
|
||||
android:label="Glance"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/glance_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.weather3.Weather3WidgetReceiver"
|
||||
android:label="Weather 3"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/weather3_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.weather4.Weather4WidgerReceiver"
|
||||
android:label="Weather 4"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/weather4_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.hourly.WidgetHourlyReceiver"
|
||||
android:label="Hourly"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/hourly_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.uvindex.UvIndexWidgetReceiver"
|
||||
android:label="UV index"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/uv_index_widget_info" />
|
||||
</receiver>
|
||||
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.weather5.Weather5WidgetReceiver"
|
||||
android:label="Weather 5"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/weather5_widget_info" />
|
||||
</receiver>
|
||||
|
||||
<receiver
|
||||
android:name=".widgets.froggy.FroggyWidgetReceiver"
|
||||
android:label="Froggy"
|
||||
android:exported="true">
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
|
||||
</intent-filter>
|
||||
|
||||
<meta-data
|
||||
android:name="android.appwidget.provider"
|
||||
android:resource="@xml/froggy_widget_info" />
|
||||
</receiver>
|
||||
|
||||
</application>
|
||||
|
||||
<queries>
|
||||
<intent>
|
||||
<action android:name="nodomain.freeyourgadget.gadgetbridge.ACTION_GENERIC_WEATHER" />
|
||||
</intent>
|
||||
</queries>
|
||||
</manifest>
|
||||
@@ -1 +0,0 @@
|
||||
{"type":"FeatureCollection","features":[{"type":"Feature","properties":{"featurecla":"Admin-0 country","scalerank":1,"labelrank":2,"sovereignt":"China","sov_a3":"CH1","adm0_dif":1,"level":2,"type":"Country","tlc":"1","admin":"China","adm0_a3":"CHN","geou_dif":0,"geounit":"China","gu_a3":"CHN","su_dif":0,"subunit":"China","su_a3":"CHN","brk_diff":0,"name":"China","name_long":"China","brk_a3":"CHN","brk_name":"China","brk_group":null,"abbrev":"China","postal":"CN","formal_en":"People's Republic of China","formal_fr":null,"name_ciawf":"China","note_adm0":null,"note_brk":null,"name_sort":"China","name_alt":null,"mapcolor7":4,"mapcolor8":4,"mapcolor9":4,"mapcolor13":3,"pop_est":1397715000,"pop_rank":18,"pop_year":2019,"gdp_md":14342903,"gdp_year":2019,"economy":"3. Emerging region: BRIC","income_grp":"3. Upper middle income","fips_10":"CH","iso_a2":"CN","iso_a2_eh":"CN","iso_a3":"CHN","iso_a3_eh":"CHN","iso_n3":"156","iso_n3_eh":"156","un_a3":"156","wb_a2":"CN","wb_a3":"CHN","woe_id":23424781,"woe_id_eh":23424781,"woe_note":"Exact WOE match as country","adm0_iso":"CHN","adm0_diff":null,"adm0_tlc":"CHN","adm0_a3_us":"CHN","adm0_a3_fr":"CHN","adm0_a3_ru":"CHN","adm0_a3_es":"CHN","adm0_a3_cn":"CHN","adm0_a3_tw":"TWN","adm0_a3_in":"CHN","adm0_a3_np":"CHN","adm0_a3_pk":"CHN","adm0_a3_de":"CHN","adm0_a3_gb":"CHN","adm0_a3_br":"CHN","adm0_a3_il":"CHN","adm0_a3_ps":"CHN","adm0_a3_sa":"CHN","adm0_a3_eg":"CHN","adm0_a3_ma":"CHN","adm0_a3_pt":"CHN","adm0_a3_ar":"CHN","adm0_a3_jp":"CHN","adm0_a3_ko":"CHN","adm0_a3_vn":"CHN","adm0_a3_tr":"CHN","adm0_a3_id":"CHN","adm0_a3_pl":"CHN","adm0_a3_gr":"CHN","adm0_a3_it":"CHN","adm0_a3_nl":"CHN","adm0_a3_se":"CHN","adm0_a3_bd":"CHN","adm0_a3_ua":"CHN","adm0_a3_un":-99,"adm0_a3_wb":-99,"continent":"Asia","region_un":"Asia","subregion":"Eastern Asia","region_wb":"East Asia & Pacific","name_len":5,"long_len":5,"abbrev_len":5,"tiny":-99,"homepart":1,"min_zoom":0,"min_label":1.7,"max_label":5.7,"label_x":106.337289,"label_y":32.498178,"ne_id":1159320471,"wikidataid":"Q148","name_ar":"الصين","name_bn":"গণচীন","name_de":"Volksrepublik China","name_en":"People's Republic of China","name_es":"China","name_fa":"جمهوری خلق چین","name_fr":"République populaire de Chine","name_el":"Λαϊκή Δημοκρατία της Κίνας","name_he":"הרפובליקה העממית של סין","name_hi":"चीनी जनवादी गणराज्य","name_hu":"Kína","name_id":"Republik Rakyat Tiongkok","name_it":"Cina","name_ja":"中華人民共和国","name_ko":"중화인민공화국","name_nl":"Volksrepubliek China","name_pl":"Chińska Republika Ludowa","name_pt":"China","name_ru":"Китайская Народная Республика","name_sv":"Kina","name_tr":"Çin Halk Cumhuriyeti","name_uk":"Китайська Народна Республіка","name_ur":"عوامی جمہوریہ چین","name_vi":"Trung Quốc","name_zh":"中华人民共和国","name_zht":"中華人民共和國","fclass_iso":"Admin-0 country","tlc_diff":null,"fclass_tlc":"Admin-0 country","fclass_us":null,"fclass_fr":null,"fclass_ru":null,"fclass_es":null,"fclass_cn":null,"fclass_tw":"Unrecognized","fclass_in":null,"fclass_np":null,"fclass_pk":null,"fclass_de":null,"fclass_gb":null,"fclass_br":null,"fclass_il":null,"fclass_ps":null,"fclass_sa":null,"fclass_eg":null,"fclass_ma":null,"fclass_pt":null,"fclass_ar":null,"fclass_jp":null,"fclass_ko":null,"fclass_vn":null,"fclass_tr":null,"fclass_id":null,"fclass_pl":null,"fclass_gr":null,"fclass_it":null,"fclass_nl":null,"fclass_se":null,"fclass_bd":null,"fclass_ua":null,"filename":"CHN.geojson"},"geometry":{"type":"MultiPolygon","coordinates":[[[[109.47520958866365,18.197700913968575],[108.65520796105616,18.507681993071387],[108.62621748254044,19.367887885001906],[109.11905561730804,19.821038519769345],[110.21159874882281,20.101253973872033],[110.78655073450221,20.077534491450052],[111.01005130416458,19.69592987719072],[110.57064660038677,19.25587921800927],[110.33918786015147,18.678395087147592],[109.47520958866365,18.197700913968575]]],[[[80.2599902688853,42.34999929459906],[80.1801501809943,42.92006785742694],[80.86620649610126,43.18036204688101],[79.96610639844141,44.91751699480463],[81.9470707539181,45.31702749285312],[82.45892581576906,45.539649563166506],[83.18048383986047,47.33003123635086],[85.16429039911324,47.0009557155161],[85.72048383987067,47.452969468773105],[85.7682328633083,48.45575063739699],[86.59877648310336,48.549181626980626],[87.35997033076265,49.21498078062912],[87.75126427607671,49.297197984405486],[88.01383222855173,48.599462795600616],[88.85429772334676,48.069081732772965],[90.28082563676392,47.69354909930793],[90.97080936072501,46.88814606382293],[90.58576826371828,45.71971609148753],[90.9455395853343,45.28607330991028],[92.13389082231822,45.11507599545646],[93.4807336771413,44.975472113619965],[94.68892866412533,44.35233185482842],[95.30687544147153,44.24133087826547],[95.76245486855669,43.319449164394605],[96.Line truncated
|
||||
|
Before Width: | Height: | Size: 31 KiB |
@@ -1,95 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app
|
||||
|
||||
import android.content.Context
|
||||
import android.graphics.Color
|
||||
import android.os.Bundle
|
||||
import androidx.activity.ComponentActivity
|
||||
import androidx.activity.SystemBarStyle
|
||||
import androidx.activity.compose.setContent
|
||||
import androidx.activity.enableEdgeToEdge
|
||||
import androidx.activity.viewModels
|
||||
import androidx.appcompat.app.AppCompatActivity
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.runtime.DisposableEffect
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.core.splashscreen.SplashScreen.Companion.installSplashScreen
|
||||
import androidx.work.ExistingWorkPolicy
|
||||
import androidx.work.OneTimeWorkRequestBuilder
|
||||
import androidx.work.WorkManager
|
||||
import com.pranshulgg.weather_master_app.core.prefs.AppPrefs
|
||||
import com.pranshulgg.weather_master_app.core.prefs.AppPrefs.initPrefs
|
||||
import com.pranshulgg.weather_master_app.core.prefs.helper.PreferencesHelper
|
||||
import com.pranshulgg.weather_master_app.core.ui.theme.isThemeDark
|
||||
import com.pranshulgg.weather_master_app.data.provider.devicelocation.GetDeviceLocation
|
||||
import com.pranshulgg.weather_master_app.data.store.InitializationStoreState
|
||||
import com.pranshulgg.weather_master_app.data.worker.WeatherWorker
|
||||
import com.pranshulgg.weather_master_app.feature.shared.WeatherViewModel
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import java.util.concurrent.TimeUnit
|
||||
import com.pranshulgg.weather_master_app.data.store.InitializationStore
|
||||
import javax.inject.Inject
|
||||
|
||||
@AndroidEntryPoint
|
||||
class MainActivity : AppCompatActivity() {
|
||||
@Inject
|
||||
lateinit var initializationStore: InitializationStore
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
val splashScreen = installSplashScreen()
|
||||
val startTime = System.currentTimeMillis()
|
||||
|
||||
splashScreen.setKeepOnScreenCondition {
|
||||
val initialized = initializationStore.data.value.isInitialized
|
||||
val timedOut = System.currentTimeMillis() - startTime > 5000
|
||||
|
||||
!initialized && !timedOut
|
||||
}
|
||||
initPrefs(this)
|
||||
super.onCreate(savedInstanceState)
|
||||
val theme = PreferencesHelper.getString("app_theme") ?: "Dark"
|
||||
|
||||
val isDark = resolveThemeDark(
|
||||
theme,
|
||||
resources.configuration.uiMode and
|
||||
android.content.res.Configuration.UI_MODE_NIGHT_MASK ==
|
||||
android.content.res.Configuration.UI_MODE_NIGHT_YES
|
||||
)
|
||||
|
||||
enableEdgeToEdge(
|
||||
navigationBarStyle = if (isDark) {
|
||||
SystemBarStyle.dark(Color.TRANSPARENT)
|
||||
} else {
|
||||
SystemBarStyle.light(
|
||||
Color.TRANSPARENT, Color.TRANSPARENT
|
||||
)
|
||||
}
|
||||
)
|
||||
|
||||
setContent {
|
||||
WeatherMasterApp()
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
val locationHelper = GetDeviceLocation()
|
||||
override fun onPause() {
|
||||
super.onPause()
|
||||
locationHelper.stopUpdates()
|
||||
}
|
||||
|
||||
|
||||
private fun resolveThemeDark(
|
||||
appTheme: String,
|
||||
systemDark: Boolean
|
||||
): Boolean {
|
||||
return when (appTheme) {
|
||||
"Dark" -> true
|
||||
"Light" -> false
|
||||
"System" -> systemDark
|
||||
else -> systemDark
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1,74 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
|
||||
import androidx.compose.material3.SnackbarHostState
|
||||
import androidx.compose.material3.SnackbarResult
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.CompositionLocalProvider
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.core.graphics.toColorInt
|
||||
import androidx.navigation.compose.rememberNavController
|
||||
import com.pranshulgg.weather_master_app.core.prefs.AppPrefs
|
||||
import com.pranshulgg.weather_master_app.core.prefs.LocalAppPrefs
|
||||
import com.pranshulgg.weather_master_app.core.ui.navigation.AppNavHost
|
||||
import com.pranshulgg.weather_master_app.core.ui.snackbar.LocalSnackbarHostState
|
||||
import com.pranshulgg.weather_master_app.core.ui.snackbar.SnackbarManager
|
||||
import com.pranshulgg.weather_master_app.core.ui.theme.WeatherMasterTheme
|
||||
import com.pranshulgg.weather_master_app.core.ui.theme.isThemeDark
|
||||
import kotlinx.coroutines.flow.collectLatest
|
||||
|
||||
@SuppressLint("LocalContextGetResourceValueCall")
|
||||
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
|
||||
@Composable
|
||||
fun WeatherMasterApp() {
|
||||
val navController = rememberNavController()
|
||||
val snackbarHostState = remember { SnackbarHostState() }
|
||||
val context = LocalContext.current
|
||||
LaunchedEffect(Unit) {
|
||||
SnackbarManager.events.collectLatest { event ->
|
||||
snackbarHostState.currentSnackbarData?.dismiss()
|
||||
|
||||
val result = snackbarHostState.showSnackbar(
|
||||
message = context.getString(
|
||||
event.messageResource,
|
||||
event.messageArgs
|
||||
),
|
||||
actionLabel = if (event.actionLabel != null) context.getString(event.actionLabel) else null,
|
||||
withDismissAction = event.actionLabel == null,
|
||||
duration = event.duration
|
||||
)
|
||||
|
||||
if (result == SnackbarResult.ActionPerformed) {
|
||||
event.onAction?.invoke()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalSnackbarHostState provides snackbarHostState,
|
||||
LocalAppPrefs provides AppPrefs.state()
|
||||
) {
|
||||
val prefs = LocalAppPrefs.current
|
||||
|
||||
|
||||
WeatherMasterTheme(
|
||||
darkTheme = isThemeDark(),
|
||||
themeVariantType = prefs.themeVariantType,
|
||||
dynamicTheme = prefs.isDynamicTheme,
|
||||
seedColor = Color(prefs.customThemeColor.toColorInt())
|
||||
) {
|
||||
|
||||
AppNavHost(
|
||||
navController,
|
||||
snackbarHostState
|
||||
)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app
|
||||
|
||||
import android.app.Application
|
||||
import android.app.NotificationChannel
|
||||
import android.app.NotificationManager
|
||||
import androidx.hilt.work.HiltWorkerFactory
|
||||
import androidx.lifecycle.ProcessLifecycleOwner
|
||||
import androidx.work.Configuration
|
||||
import com.pranshulgg.weather_master_app.data.worker.AppVisibility
|
||||
import com.pranshulgg.weather_master_app.data.worker.notification.BackgroundUpdateNotificationConfig
|
||||
import com.pranshulgg.weather_master_app.feature.notifications.NotificationChannels
|
||||
import dagger.hilt.android.HiltAndroidApp
|
||||
import javax.inject.Inject
|
||||
|
||||
@HiltAndroidApp
|
||||
class WeatherMasterApplication : Application(), Configuration.Provider {
|
||||
|
||||
@Inject
|
||||
lateinit var workerFactory: HiltWorkerFactory
|
||||
|
||||
@Inject
|
||||
lateinit var visibilityTracker: AppVisibility
|
||||
|
||||
override val workManagerConfiguration: Configuration
|
||||
get() = Configuration.Builder()
|
||||
.setWorkerFactory(workerFactory)
|
||||
.build()
|
||||
|
||||
|
||||
override fun onCreate() {
|
||||
super.onCreate()
|
||||
|
||||
ProcessLifecycleOwner
|
||||
.get()
|
||||
.lifecycle
|
||||
.addObserver(visibilityTracker)
|
||||
|
||||
NotificationChannels.createAll(this)
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -1,187 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.di
|
||||
|
||||
import android.content.Context
|
||||
import com.pranshulgg.weather_master_app.core.managers.ExternalManager
|
||||
import com.pranshulgg.weather_master_app.core.managers.LocationManager
|
||||
import com.pranshulgg.weather_master_app.core.managers.SourceManager
|
||||
import com.pranshulgg.weather_master_app.core.managers.WeatherBlocksManager
|
||||
import com.pranshulgg.weather_master_app.core.managers.WeatherManager
|
||||
import com.pranshulgg.weather_master_app.core.managers.WeatherUnitsManager
|
||||
import com.pranshulgg.weather_master_app.core.managers.requests.PendingRequests
|
||||
import com.pranshulgg.weather_master_app.core.network.github.GithubApi
|
||||
import com.pranshulgg.weather_master_app.core.network.github.GithubRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.address.nominatim.NominatimApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.address.nominatim.json.NominatimRepository
|
||||
import com.pranshulgg.weather_master_app.data.local.WeatherMasterDatabase
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.airquality.AirQualityDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.alerts.AlertsDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.github.GithubDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.location.LocationKeysDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherContextDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.ApiKeysDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherBlocksDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherUnitsDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.nws.NwsDao
|
||||
import com.pranshulgg.weather_master_app.data.provider.devicelocation.ChinaOfflineGeocoder
|
||||
import com.pranshulgg.weather_master_app.data.repository.ApiKeysRepository
|
||||
import com.pranshulgg.weather_master_app.data.repository.WeatherContextRepository
|
||||
import com.pranshulgg.weather_master_app.data.repository.WeatherBlocksRepository
|
||||
import com.pranshulgg.weather_master_app.data.repository.WeatherUnitsRepository
|
||||
import com.pranshulgg.weather_master_app.data.repository.data.SourceDataRepository
|
||||
import com.pranshulgg.weather_master_app.data.store.InitializationStore
|
||||
import com.pranshulgg.weather_master_app.data.store.LocationStore
|
||||
import com.pranshulgg.weather_master_app.data.store.WeatherBlocksStore
|
||||
import com.pranshulgg.weather_master_app.data.store.WeatherStore
|
||||
import com.pranshulgg.weather_master_app.data.store.WeatherUnitsStore
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
import dagger.Lazy
|
||||
import javax.inject.Provider
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object AppModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideDatabase(
|
||||
@ApplicationContext context: Context
|
||||
): WeatherMasterDatabase =
|
||||
WeatherMasterDatabase.getInstance(context)
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWeatherContextRepository(
|
||||
dao: WeatherContextDao,
|
||||
airQualityDao: AirQualityDao,
|
||||
nominatimRepository: NominatimRepository,
|
||||
@ApplicationContext context: Context,
|
||||
alertsDao: AlertsDao,
|
||||
sourceManager: SourceManager,
|
||||
chinaOfflineGeocoder: ChinaOfflineGeocoder
|
||||
): WeatherContextRepository = WeatherContextRepository(
|
||||
dao,
|
||||
airQualityDao,
|
||||
context,
|
||||
nominatimRepository,
|
||||
alertsDao,
|
||||
sourceManager,
|
||||
chinaOfflineGeocoder
|
||||
)
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWeatherUnitsRepository(dao: WeatherUnitsDao): WeatherUnitsRepository =
|
||||
WeatherUnitsRepository(dao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWeatherBlocksRepository(
|
||||
weatherBlocksDao: WeatherBlocksDao
|
||||
): WeatherBlocksRepository =
|
||||
WeatherBlocksRepository(weatherBlocksDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGithubRepository(
|
||||
api: GithubApi,
|
||||
dao: GithubDao
|
||||
): GithubRepository = GithubRepository(api, dao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNominatimRepository(api: NominatimApi): NominatimRepository =
|
||||
NominatimRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideApiKeysRepository(dao: ApiKeysDao): ApiKeysRepository = ApiKeysRepository(dao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideSourceManager(
|
||||
nwsDao: NwsDao,
|
||||
locationKeysDao: LocationKeysDao,
|
||||
airQualityDao: AirQualityDao,
|
||||
alertsDao: AlertsDao,
|
||||
weatherContextRepository: Provider<WeatherContextRepository>,
|
||||
pendingRequests: PendingRequests,
|
||||
locationStore: LocationStore
|
||||
): SourceManager {
|
||||
return SourceManager(
|
||||
nwsDao,
|
||||
locationKeysDao,
|
||||
airQualityDao,
|
||||
alertsDao,
|
||||
weatherContextRepository,
|
||||
pendingRequests,
|
||||
locationStore
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideLocationManager(
|
||||
weatherContextRepository: WeatherContextRepository,
|
||||
locationStore: LocationStore,
|
||||
initializationStore: InitializationStore,
|
||||
pendingRequests: PendingRequests
|
||||
): LocationManager {
|
||||
return LocationManager(
|
||||
weatherContextRepository,
|
||||
locationStore,
|
||||
initializationStore,
|
||||
pendingRequests
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWeatherBlocksManager(
|
||||
weatherBlocksRepository: WeatherBlocksRepository,
|
||||
weatherBlocksStore: WeatherBlocksStore
|
||||
): WeatherBlocksManager {
|
||||
return WeatherBlocksManager(
|
||||
weatherBlocksRepository,
|
||||
weatherBlocksStore
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWeatherManager(
|
||||
weatherContextRepository: WeatherContextRepository,
|
||||
sourceDataRepository: SourceDataRepository,
|
||||
weatherStore: WeatherStore,
|
||||
locationStore: LocationStore,
|
||||
initializationStore: InitializationStore,
|
||||
externalManager: ExternalManager
|
||||
): WeatherManager {
|
||||
return WeatherManager(
|
||||
weatherContextRepository,
|
||||
sourceDataRepository,
|
||||
weatherStore,
|
||||
locationStore,
|
||||
initializationStore,
|
||||
externalManager
|
||||
)
|
||||
}
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWeatherUnitsManager(
|
||||
weatherUnitsStore: WeatherUnitsStore,
|
||||
weatherUnitsRepository: WeatherUnitsRepository
|
||||
): WeatherUnitsManager {
|
||||
return WeatherUnitsManager(
|
||||
weatherUnitsStore,
|
||||
weatherUnitsRepository
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,47 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.db
|
||||
|
||||
import com.pranshulgg.weather_master_app.data.local.WeatherMasterDatabase
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherContextDao
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object DaoModule {
|
||||
@Provides
|
||||
fun provideWeatherContextDao(db: WeatherMasterDatabase) =
|
||||
db.weatherContextDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherDataDao(db: WeatherMasterDatabase) =
|
||||
db.weatherDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherUnitsDao(db: WeatherMasterDatabase) =
|
||||
db.weatherUnitsDao()
|
||||
|
||||
@Provides
|
||||
fun provideWeatherBlocksDao(db: WeatherMasterDatabase) =
|
||||
db.weatherBlocksDao()
|
||||
|
||||
@Provides
|
||||
fun provideAirQualityDao(db: WeatherMasterDatabase) = db.airQualityDao()
|
||||
|
||||
@Provides
|
||||
fun provideNwsDao(db: WeatherMasterDatabase) = db.nwsDao()
|
||||
|
||||
@Provides
|
||||
fun provideGithubDao(db: WeatherMasterDatabase) = db.githubDao()
|
||||
|
||||
@Provides
|
||||
fun provideLocationKeysDao(db: WeatherMasterDatabase) = db.locationKeysDao()
|
||||
|
||||
@Provides
|
||||
fun provideAlertsDao(db: WeatherMasterDatabase) = db.alertsDao()
|
||||
|
||||
@Provides
|
||||
fun provideApiKeysDao(db: WeatherMasterDatabase) = db.apiKeysDao()
|
||||
}
|
||||
@@ -1,208 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.network
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.github.GithubApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.address.nominatim.NominatimApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.airquality.moenv.MoenvApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.fpas.FpasApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.weatherapi.AlertsWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.wmosevereweather.WmoSevereWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.accu.AccuSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.timezone.GeoNamesTimezoneApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.openmeteo.OpenMeteoSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.accu.AccuApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.aemet.AemetApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.bmkg.BmkgApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.china.ChinaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.cwa.CwaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.jma.JmaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.dwd.DwdApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.eccc.EcccApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.fmi.FmiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.gismeteo.GismeteoApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.imd.ImdApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.IbgeApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.InmetAvisosApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.InmetForecastApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.InmetObservationApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.ipma.IpmaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.kmi.KmiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.meteoam.MeteoamApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.meteofrance.MeteoFranceApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metnorway.MetNorwayApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metoffice.MetOfficeApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.mgm.MgmApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.nws.NwsApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.OpenMeteoApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.airquality.OpenMeteoAqiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openweather.OpenWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openweather.OpenWeatherOneCallApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.pirateweather.PirateWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.smhi.SmhiApi
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object ApiModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoApi(): OpenMeteoApi = OpenMeteoApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoSearchApi(): OpenMeteoSearchApi = OpenMeteoSearchApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesSearchApi(): GeoNamesSearchApi = GeoNamesSearchApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesTimezoneApi(): GeoNamesTimezoneApi = GeoNamesTimezoneApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoAqiApi(): OpenMeteoAqiApi = OpenMeteoAqiApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNwsApi(): NwsApi = NwsApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetNorwayApi(): MetNorwayApi = MetNorwayApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideSmhiApi(): SmhiApi = SmhiApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGithubApi(): GithubApi = GithubApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNominatimApi(): NominatimApi = NominatimApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideDwdApi(): DwdApi = DwdApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMeteoFranceApi(): MeteoFranceApi = MeteoFranceApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideEcccApi(): EcccApi = EcccApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFmiApi(): FmiApi = FmiApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideChinaApi(): ChinaApi = ChinaApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideBmkgApi(): BmkgApi = BmkgApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAccuApi(): AccuApi = AccuApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMeteoamApi(): MeteoamApi = MeteoamApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAlertsWeatherApi(): AlertsWeatherApi = AlertsWeatherApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideIpmaApi(): IpmaApi = IpmaApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAccuSearchApi(): AccuSearchApi = AccuSearchApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWmoSevereWeatherAlertsApi(): WmoSevereWeatherApi = WmoSevereWeatherApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFpasAlertsApi(): FpasApi = FpasApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGismeteoApi(): GismeteoApi = GismeteoApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetOfficeApi(): MetOfficeApi = MetOfficeApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAemetApi(): AemetApi = AemetApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideImdApi(): ImdApi = ImdApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providePirateWeatherApi(): PirateWeatherApi = PirateWeatherApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideCwaApi(): CwaApi = CwaApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideJmaApi(): JmaApi = JmaApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideInmetForecastApi(): InmetForecastApi = InmetForecastApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideInmetAvisosApi(): InmetAvisosApi = InmetAvisosApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideInmetObservationApi(): InmetObservationApi = InmetObservationApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideIbgeApi(): IbgeApi = IbgeApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenWeatherApi(): OpenWeatherApi = OpenWeatherApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenWeatherOneCallApi(): OpenWeatherOneCallApi = OpenWeatherOneCallApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMgmApi(): MgmApi = MgmApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideKmiApi(): KmiApi = KmiApi.create()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMoenvApi(): MoenvApi = MoenvApi.create()
|
||||
|
||||
}
|
||||
@@ -1,43 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.search
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.accu.AccuSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.accu.AccuSearchRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesSearchRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.GeoNamesTimezoneRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.geonames.timezone.GeoNamesTimezoneApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.openmeteo.OpenMeteoSearchApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.search.openmeteo.OpenMeteoSearchRepository
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object SearchRepositoryModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoSearchRepository(
|
||||
api: OpenMeteoSearchApi
|
||||
): OpenMeteoSearchRepository = OpenMeteoSearchRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesSearchRepository(
|
||||
api: GeoNamesSearchApi
|
||||
): GeoNamesSearchRepository = GeoNamesSearchRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGeoNamesTimezoneRepository(api: GeoNamesTimezoneApi): GeoNamesTimezoneRepository =
|
||||
GeoNamesTimezoneRepository(api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAccuSearchRepository(
|
||||
api: AccuSearchApi
|
||||
): AccuSearchRepository = AccuSearchRepository(api)
|
||||
|
||||
}
|
||||
@@ -1,328 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.weather
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.airquality.OpenMeteoAqiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.accu.AccuApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.accu.AccuRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.aemet.AemetApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.aemet.AemetRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.bmkg.BmkgApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.bmkg.BmkgRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.china.ChinaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.china.ChinaRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.cwa.CwaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.cwa.CwaRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.dwd.DwdApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.dwd.DwdRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.eccc.EcccApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.eccc.EcccRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.fmi.FmiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.fmi.FmiRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.gismeteo.GismeteoApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.gismeteo.GismeteoRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.meteofor.MeteoforRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.imd.ImdApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.imd.ImdRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.IbgeApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.InmetAvisosApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.InmetForecastApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.InmetObservationApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.inmet.InmetRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.jma.JmaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.jma.JmaRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.ipma.IpmaApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.ipma.IpmaRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.kmi.KmiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.kmi.KmiRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.meteoam.MeteoamApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.meteoam.MeteoamRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.meteofrance.MeteoFranceApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.meteofrance.MeteoFranceRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metnorway.MetNorwayApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metnorway.MetNorwayRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metoffice.MetOfficeApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.metoffice.MetOfficeRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.mgm.MgmApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.mgm.MgmRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.nws.NwsApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.nws.NwsRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.OpenMeteoApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openmeteo.OpenMeteoRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openweather.OpenWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openweather.OpenWeatherOneCallApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.openweather.OpenWeatherRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.pirateweather.PirateWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.pirateweather.PirateWeatherRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.smhi.SmhiApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.weather.smhi.SmhiRepository
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.airquality.AirQualityDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.alerts.AlertsDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.location.LocationKeysDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherContextDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.ApiKeysDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.nws.NwsDao
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object WeatherRepositoryModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenMeteoRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: OpenMeteoApi,
|
||||
weatherDao: WeatherDao,
|
||||
airQualityDao: AirQualityDao,
|
||||
airQualityApi: OpenMeteoAqiApi
|
||||
): OpenMeteoRepository = OpenMeteoRepository(dao, weatherDao, api, airQualityApi, airQualityDao)
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideNwsRepository(
|
||||
api: NwsApi,
|
||||
dao: WeatherContextDao,
|
||||
weatherDao: WeatherDao,
|
||||
nwsDao: NwsDao,
|
||||
alertsDao: AlertsDao
|
||||
): NwsRepository = NwsRepository(dao, weatherDao, nwsDao, api, alertsDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetNorwayRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: MetNorwayApi,
|
||||
weatherDao: WeatherDao
|
||||
): MetNorwayRepository = MetNorwayRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideSmhiRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: SmhiApi,
|
||||
weatherDao: WeatherDao
|
||||
): SmhiRepository = SmhiRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideDwdRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: DwdApi,
|
||||
weatherDao: WeatherDao
|
||||
): DwdRepository = DwdRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMeteoFranceRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: MeteoFranceApi,
|
||||
weatherDao: WeatherDao
|
||||
): MeteoFranceRepository = MeteoFranceRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideEcccRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: EcccApi,
|
||||
weatherDao: WeatherDao
|
||||
): EcccRepository = EcccRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFmiRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: FmiApi,
|
||||
weatherDao: WeatherDao
|
||||
): FmiRepository = FmiRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideChinaRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: ChinaApi,
|
||||
weatherDao: WeatherDao
|
||||
): ChinaRepository = ChinaRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideBmkgRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: BmkgApi,
|
||||
weatherDao: WeatherDao
|
||||
): BmkgRepository = BmkgRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAccuRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: AccuApi,
|
||||
weatherDao: WeatherDao,
|
||||
locationKeysDao: LocationKeysDao,
|
||||
airQualityDao: AirQualityDao,
|
||||
alertsDao: AlertsDao,
|
||||
weatherContextDao: WeatherContextDao
|
||||
): AccuRepository = AccuRepository(
|
||||
dao,
|
||||
weatherDao,
|
||||
api,
|
||||
locationKeysDao,
|
||||
airQualityDao,
|
||||
weatherContextDao,
|
||||
alertsDao
|
||||
)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMeteoamRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: MeteoamApi,
|
||||
weatherDao: WeatherDao
|
||||
): MeteoamRepository = MeteoamRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideIpmaRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: IpmaApi,
|
||||
weatherDao: WeatherDao,
|
||||
locationKeysDao: LocationKeysDao
|
||||
): IpmaRepository = IpmaRepository(dao, weatherDao, api, locationKeysDao)
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideGismeteoRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: GismeteoApi,
|
||||
weatherDao: WeatherDao,
|
||||
locationKeysDao: LocationKeysDao
|
||||
): GismeteoRepository = GismeteoRepository(dao, weatherDao, api, locationKeysDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMeteoforRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: GismeteoApi,
|
||||
weatherDao: WeatherDao,
|
||||
locationKeysDao: LocationKeysDao
|
||||
): MeteoforRepository = MeteoforRepository(dao, weatherDao, api, locationKeysDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMetOfficeRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: MetOfficeApi,
|
||||
weatherDao: WeatherDao,
|
||||
apiKeysDao: ApiKeysDao
|
||||
): MetOfficeRepository = MetOfficeRepository(dao, weatherDao, api, apiKeysDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideAemetRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: AemetApi,
|
||||
weatherDao: WeatherDao,
|
||||
apiKeysDao: ApiKeysDao,
|
||||
locationKeysDao: LocationKeysDao
|
||||
): AemetRepository = AemetRepository(dao, weatherDao, api, apiKeysDao, locationKeysDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideImdRepository(
|
||||
dao: WeatherContextDao,
|
||||
weatherDao: WeatherDao,
|
||||
api: ImdApi
|
||||
): ImdRepository = ImdRepository(dao, weatherDao, api)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun providePirateWeatherRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: PirateWeatherApi,
|
||||
weatherDao: WeatherDao,
|
||||
apiKeysDao: ApiKeysDao,
|
||||
alertsDao: AlertsDao
|
||||
): PirateWeatherRepository =
|
||||
PirateWeatherRepository(dao, weatherDao, api, apiKeysDao, alertsDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideCwaRepository(
|
||||
dao: WeatherContextDao,
|
||||
api: CwaApi,
|
||||
weatherDao: WeatherDao,
|
||||
apiKeysDao: ApiKeysDao,
|
||||
locationKeysDao: LocationKeysDao
|
||||
): CwaRepository = CwaRepository(dao, weatherDao, api, apiKeysDao, locationKeysDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideJmaRepository(
|
||||
dao: WeatherContextDao,
|
||||
weatherDao: WeatherDao,
|
||||
api: JmaApi,
|
||||
locationKeysDao: LocationKeysDao,
|
||||
alertsDao: AlertsDao
|
||||
): JmaRepository = JmaRepository(dao, weatherDao, api, locationKeysDao, alertsDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideInmetRepository(
|
||||
dao: WeatherContextDao,
|
||||
weatherDao: WeatherDao,
|
||||
forecastApi: InmetForecastApi,
|
||||
observationApi: InmetObservationApi,
|
||||
ibgeApi: IbgeApi,
|
||||
avisosApi: InmetAvisosApi,
|
||||
locationKeysDao: LocationKeysDao,
|
||||
alertsDao: AlertsDao
|
||||
): InmetRepository = InmetRepository(
|
||||
dao,
|
||||
weatherDao,
|
||||
forecastApi,
|
||||
observationApi,
|
||||
ibgeApi,
|
||||
avisosApi,
|
||||
locationKeysDao,
|
||||
alertsDao
|
||||
)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideOpenWeatherRepository(
|
||||
dao: WeatherContextDao,
|
||||
weatherDao: WeatherDao,
|
||||
api: OpenWeatherApi,
|
||||
airQualityDao: AirQualityDao,
|
||||
apiKeysDao: ApiKeysDao,
|
||||
oneCallApi: OpenWeatherOneCallApi
|
||||
): OpenWeatherRepository =
|
||||
OpenWeatherRepository(dao, weatherDao, api, oneCallApi, airQualityDao, apiKeysDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMgmRepository(
|
||||
dao: WeatherContextDao,
|
||||
weatherDao: WeatherDao,
|
||||
api: MgmApi,
|
||||
apiKeysDao: ApiKeysDao,
|
||||
locationKeysDao: LocationKeysDao,
|
||||
alertsDao: AlertsDao
|
||||
): MgmRepository = MgmRepository(dao, weatherDao, api, apiKeysDao, locationKeysDao, alertsDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideKmiRepository(
|
||||
dao: WeatherContextDao,
|
||||
weatherDao: WeatherDao,
|
||||
api: KmiApi,
|
||||
apiKeysDao: ApiKeysDao,
|
||||
locationKeysDao: LocationKeysDao,
|
||||
alertsDao: AlertsDao
|
||||
): KmiRepository = KmiRepository(dao, weatherDao, api, apiKeysDao, locationKeysDao, alertsDao)
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.weather.airquality
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.airquality.moenv.MoenvApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.airquality.moenv.MoenvRepository
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.airquality.AirQualityDao
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object AirQualityRepositoryModule {
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideMoenvRepository(
|
||||
api: MoenvApi,
|
||||
airQualityDao: AirQualityDao
|
||||
): MoenvRepository = MoenvRepository(api, airQualityDao)
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.di.weather.alerts
|
||||
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.fpas.FpasApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.fpas.FpasRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.weatherapi.AlertsWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.weatherapi.AlertsWeatherApiRepository
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.wmosevereweather.WmoSevereWeatherApi
|
||||
import com.pranshulgg.weather_master_app.core.network.sources.alerts.wmosevereweather.WmoSevereWeatherRepository
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.alerts.AlertsDao
|
||||
import com.pranshulgg.weather_master_app.data.local.dao.weather.WeatherContextDao
|
||||
import dagger.Module
|
||||
import dagger.Provides
|
||||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import javax.inject.Singleton
|
||||
|
||||
|
||||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
object AlertsRepositoryModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWmoSevereWeatherAlertsRepository(
|
||||
api: WmoSevereWeatherApi,
|
||||
dao: AlertsDao,
|
||||
weatherContextDao: WeatherContextDao
|
||||
): WmoSevereWeatherRepository = WmoSevereWeatherRepository(api, dao, weatherContextDao)
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideFpasAlertsRepository(
|
||||
api: FpasApi,
|
||||
dao: AlertsDao,
|
||||
weatherContextDao: WeatherContextDao
|
||||
): FpasRepository = FpasRepository(api, dao, weatherContextDao)
|
||||
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
fun provideWeatherApiAlertsRepository(
|
||||
api: AlertsWeatherApi,
|
||||
dao: AlertsDao,
|
||||
weatherContextDao: WeatherContextDao
|
||||
): AlertsWeatherApiRepository = AlertsWeatherApiRepository(api, dao, weatherContextDao)
|
||||
|
||||
|
||||
}
|
||||
@@ -1,56 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.managers
|
||||
|
||||
import android.content.Context
|
||||
import com.pranshulgg.weather_master_app.core.model.domain.weather.Weather
|
||||
import com.pranshulgg.weather_master_app.core.model.domain.weather.WeatherUnits
|
||||
import com.pranshulgg.weather_master_app.core.prefs.helper.PreferencesHelper
|
||||
import com.pranshulgg.weather_master_app.data.store.LocationStore
|
||||
import com.pranshulgg.weather_master_app.data.store.WeatherStore
|
||||
import com.pranshulgg.weather_master_app.data.store.WeatherUnitsStore
|
||||
import com.pranshulgg.weather_master_app.data.worker.WeatherBackgroundUpdateScheduler
|
||||
import com.pranshulgg.weather_master_app.feature.notifications.ongoing.OnGoingNotification
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
// UPDATES NOTIFICATION/WIDGETS
|
||||
// APP SIDE ONLY!!!
|
||||
@Singleton
|
||||
class ExternalManager @Inject constructor(
|
||||
private val weatherStore: WeatherStore,
|
||||
private val weatherUnitsStore: WeatherUnitsStore,
|
||||
@ApplicationContext val context: Context
|
||||
) {
|
||||
|
||||
|
||||
suspend fun refreshWidgets() {
|
||||
val weather = weatherStore.data.value.weather
|
||||
val units = weatherUnitsStore.data.value.units
|
||||
if (weather != null && weather.location.isDefault) {
|
||||
WeatherBackgroundUpdateScheduler.updateAllWidgets(
|
||||
context = context,
|
||||
data = weather,
|
||||
units = units
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
fun refreshNotifications() {
|
||||
val units = weatherUnitsStore.data.value.units
|
||||
val weather = weatherStore.data.value.weather
|
||||
|
||||
val isOnGoingNotificationEnabled = PreferencesHelper.getBool(
|
||||
"isOnGoingNotificationEnabled"
|
||||
) ?: false
|
||||
|
||||
if (weather != null && weather.location.isDefault && isOnGoingNotificationEnabled) {
|
||||
OnGoingNotification.update(
|
||||
context = context,
|
||||
weather = weather,
|
||||
units = units
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,93 +0,0 @@
|
||||
package com.pranshulgg.weather_master_app.core.managers
|
||||
|
||||
import android.util.Log
|
||||
import com.pranshulgg.weather_master_app.core.managers.requests.PendingRequests
|
||||
import com.pranshulgg.weather_master_app.core.model.domain.location.Location
|
||||
import com.pranshulgg.weather_master_app.core.model.sources.Source
|
||||
import com.pranshulgg.weather_master_app.core.model.weather.openmeteo.OpenMeteoModel
|
||||
import com.pranshulgg.weather_master_app.data.repository.WeatherContextRepository
|
||||
import com.pranshulgg.weather_master_app.data.store.InitializationStore
|
||||
import com.pranshulgg.weather_master_app.data.store.LocationStore
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.flow.distinctUntilChanged
|
||||
import kotlinx.coroutines.flow.filterNotNull
|
||||
import kotlinx.coroutines.flow.first
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import javax.inject.Inject
|
||||
import javax.inject.Singleton
|
||||
|
||||
@Singleton
|
||||
class LocationManager @Inject constructor(
|
||||
private val weatherContextRepository: WeatherContextRepository,
|
||||
private val locationStore: LocationStore,
|
||||
private val initializationStore: InitializationStore,
|
||||
private val pendingRequests: PendingRequests
|
||||
|
||||
) {
|
||||
|
||||
suspend fun initialize(scope: CoroutineScope) {
|
||||
if (!initializationStore.data.value.isInitialized && locationStore.data.value.activeLocation == null) {
|
||||
if (weatherContextRepository.isLocationsEmpty()) {
|
||||
initializationStore.setInitialized()
|
||||
}
|
||||
val default = weatherContextRepository
|
||||
.getDefaultLocation()
|
||||
.filterNotNull()
|
||||
.first()
|
||||
|
||||
setActive(default, skipLoading = false)
|
||||
}
|
||||
|
||||
weatherContextRepository.getLocations().distinctUntilChanged()
|
||||
.onEach { locations ->
|
||||
writeLocations(
|
||||
locations = locations,
|
||||
isLoading = locationStore.data.value.isActiveLocationLoading
|
||||
)
|
||||
}.launchIn(scope)
|
||||
}
|
||||
|
||||
private fun writeLocations(locations: List<Location>, isLoading: Boolean) {
|
||||
|
||||
val previous = locationStore.data.value.locations
|
||||
|
||||
if (previous.isNotEmpty()) {
|
||||
|
||||
val newLocation = locations.firstOrNull { new ->
|
||||
previous.none { it.id == new.id }
|
||||
}
|
||||
|
||||
newLocation?.let {
|
||||
if (!isLoading) {
|
||||
setActive(newLocation, skipLoading = false)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
locationStore.setLocations(locations = locations)
|
||||
}
|
||||
|
||||
suspend fun deleteLocation(id: String) {
|
||||
weatherContextRepository.deleteLocation(id)
|
||||
|
||||
if (locationStore.data.value.activeLocation?.id == id) {
|
||||
val defaultLocation = locationStore.data.value.locations
|
||||
.first { it.isDefault }
|
||||
|
||||
setActive(defaultLocation, skipLoading = false)
|
||||
}
|
||||
}
|
||||
|
||||
fun setActive(location: Location, skipLoading: Boolean) {
|
||||
if (!skipLoading) {
|
||||
setActiveLoading()
|
||||
}
|
||||
locationStore.setActiveLocation(location)
|
||||
pendingRequests.queueRequest(location)
|
||||
}
|
||||
|
||||
fun setActiveLoading() {
|
||||
locationStore.setLoading(true)
|
||||
}
|
||||
}
|
||||