diff --git a/.project b/.project new file mode 100644 index 0000000..9dab2d1 --- /dev/null +++ b/.project @@ -0,0 +1,24 @@ + + + CalendarWatch + + + + + + json.validation.builder + + + + + org.tizen.web.project.builder.WebBuilder + + + + + + json.validation.nature + org.eclipse.wst.jsdt.core.jsNature + org.tizen.web.project.builder.WebNature + + diff --git a/.settings/.jsdtscope b/.settings/.jsdtscope new file mode 100644 index 0000000..c487c06 --- /dev/null +++ b/.settings/.jsdtscope @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/.settings/org.eclipse.wst.css.core.prefs b/.settings/org.eclipse.wst.css.core.prefs new file mode 100644 index 0000000..5ddc6bd --- /dev/null +++ b/.settings/org.eclipse.wst.css.core.prefs @@ -0,0 +1,2 @@ +css-profile/=org.eclipse.wst.css.core.cssprofile.css3 +eclipse.preferences.version=1 diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.container b/.settings/org.eclipse.wst.jsdt.ui.superType.container new file mode 100644 index 0000000..3bd5d0a --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.container @@ -0,0 +1 @@ +org.eclipse.wst.jsdt.launching.baseBrowserLibrary \ No newline at end of file diff --git a/.settings/org.eclipse.wst.jsdt.ui.superType.name b/.settings/org.eclipse.wst.jsdt.ui.superType.name new file mode 100644 index 0000000..05bd71b --- /dev/null +++ b/.settings/org.eclipse.wst.jsdt.ui.superType.name @@ -0,0 +1 @@ +Window \ No newline at end of file diff --git a/.sign/.manifest.tmp b/.sign/.manifest.tmp new file mode 100644 index 0000000..d1cc196 --- /dev/null +++ b/.sign/.manifest.tmp @@ -0,0 +1,46 @@ +.git/COMMIT_EDITMSG__DEL__bjCrGJK8/4D7VzNqTZZsI9xKb2hq32V62CMUF5gvH94= +.git/HEAD__DEL__9vK5RfbEEbAro9qces6I3PcbavZbouDYmqgpAAQrWhA= +.git/config__DEL__598udYWPl5YyXwt0g/7kjA4Zs8Rl4I/OpdKt0mvZQ3E= +.git/description__DEL__hatsFj1DoX6pz3eIMIvKFGbxsKjRzJLibpv2PaQGKu4= +.git/hooks/applypatch-msg.sample__DEL__AiNJeguLAzqlijpSG4YphpOGz3qw4vEBlj0yiqYhk/c= +.git/hooks/commit-msg.sample__DEL__H3TV6SkpebVz69WXQdRsuT/zkazdCD00C5Q3B1PZJDc= +.git/hooks/fsmonitor-watchman.sample__DEL__9IPZjlVDNG3iWkVWsl310pYOz/Dq6SVe2F+3DV0Ex3k= +.git/hooks/post-update.sample__DEL__gXZa8trvMjBh3LxeYfwWSBy3SzusmtihdLGGUjWG9sU= +.git/hooks/pre-applypatch.sample__DEL__4VxbRp6j4KaVvqbyyCvPjmKCEHSTnd2Ft34AB/8WVHU= +.git/hooks/pre-commit.sample__DEL__EscjI1Ex8cVXbGUqwqCgB/JhqTwN3ERbHc7mzZjjB4g= +.git/hooks/pre-push.sample__DEL__SxEZ4eE6ISVxl29K7neEfNvUCXhUbWJzpVfiOJgaQNE= +.git/hooks/pre-rebase.sample__DEL__T+vOhneQBSM4B29OZsxH77FIedGAl9HWHIJhhZ6qp7M= +.git/hooks/pre-receive.sample__DEL__pMPSuce7P9jRRBwxvU7nGlldZrRPz0ndsxAlIyAWmYk= +.git/hooks/prepare-commit-msg.sample__DEL__6d3KpBif3dJe2X/Ix4nsp7bKFjkLI5KuMnbwyOGqRhk= +.git/hooks/update.sample__DEL__dRwDcyACTsLuJ1fz/64LEK0slGNnaE5wWdTcl+rH5DE= +.git/index__DEL__TK/H23tTQqVTSJKVCPeG6g41TYCihb8PYwBbJH/F37A= +.git/info/exclude__DEL__ZnH+g7egfIky7okWTR8nk7IxgFjri5jcXAbuClo7DsE= +.git/logs/HEAD__DEL__bYih6KVipjctLuJN3l3njrvQKFaPwb09aPygYyuUeRY= +.git/logs/refs/heads/master__DEL__bYih6KVipjctLuJN3l3njrvQKFaPwb09aPygYyuUeRY= +.git/logs/refs/remotes/origin/master__DEL__OSkjYKAs3wxO90SlSwQaxSX6WIejvo3yX2W25P28jSw= +.git/objects/02/741fe0d44ace36d88f500de55fe02f60e39681__DEL__cVGnHJSbIxxTbHZ4cc0XEetbMGr4Ig04SwFvCJL0tcg= +.git/objects/13/fb568ca97112e3039b47ab7b9f36de9834ee89__DEL__rqiQE/qsgBRiZw6iG+cFJxVCHRIhuay+VEK+82gvaFQ= +.git/objects/1a/30a49ab1682a8c70f37f960b7d1871c5942eb9__DEL__cTC88UJJXLJyBu7pmRkB07i2eLJk4EVv/DBrMDlG2Jk= +.git/objects/1c/1a4d080ef81238e544eab07ae38d6e727dba85__DEL__NCXGus1XG1CzGfD8cnKh9R6Yoh5qQibiIvC1KioagDU= +.git/objects/53/f31f54130c9a3441480f9e416f805437fb71c9__DEL__TI9vZZsmF1Ydh6O/gd51GoLyXZZyto7wjobmKY2woQo= +.git/objects/66/de0dcf1f16eb3dfe1aedf78790b4e002c08516__DEL__FZmqOATlAZ5v6hGivuWkZ9NLyIA0B464HQ9hvqMUJBQ= +.git/objects/8a/1d8c688268b802bd5ad18a64b883016b132076__DEL__fB08qAMNyvrNiut/zN7hw0epaAbaQDnXxDBRQx7HGlE= +.git/objects/90/a27f9cea6e8f02e05a8bbab5d14650e3e932af__DEL__lpDm120MOA6vW/mrh0cy1pu67SJ6dPu/cY8rN8I7xW8= +.git/objects/99/96115961d2aa418fb03ff90d529f642f4f7261__DEL__3VGlqOkDSaru/bmv6eS/4byvPdKJeBDS6Bo/lnU2bgY= +.git/objects/9f/8c12f57065dff219dd33568a55e81ffee69f4e__DEL__lf8xF9EWtMhpmIGzqX+k8LnCZI0pmzyvQrchmCzvxGg= +.git/objects/d4/7f9cd915695b4798f907982d77646a99bf4264__DEL__N8tjv5j1qEgx6o08Q8GEEq+c5oVBme8ZkQ1esJ7fjTM= +.git/objects/d6/45695673349e3947e8e5ae42332d0ac3164cd7__DEL__bK1/lEV5blLPpFrn/ZNVdLDE2RnlA4SnQhDpURW+znc= +.git/objects/e6/9de29bb2d1d6434b8b29ae775ad8c2e48c5391__DEL__FkxfqAZ/rPGkPwnOPQ416/U6f1cj7L8VqGZ8/FPCb2w= +.git/objects/f0/fc0dd5e890f0a3929c22ac364c71e6623f4e8e__DEL__zgSOtLXhZmKmL98vDoytepbOXYqk43npI3T5HsIbgjc= +.git/refs/heads/master__DEL__2BJPCPMZXVZRVOjqfGUagO8zsHoriyvc5gElbkGHjts= +.git/refs/remotes/origin/master__DEL__2BJPCPMZXVZRVOjqfGUagO8zsHoriyvc5gElbkGHjts= +LICENSE.APLv2__DEL__z8d0m5b2O9McPEK1xHG/dWgUBT6EfBDz6wA0F7xSPTA= +NOTICE__DEL__ijjaB8GEO5OJP/jK6n7Hr3vZFI9gy8ocoDhviViKNnU= +README.md__DEL__47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= +config.xml__DEL__Qkr7TJvy4gd86evi4H+4ktLvdr8FgmzvFv1ia8HsEC4= +css/style.css__DEL__YCx4tiqoai276nR9sDZsPUcn0/z3Xi4XYMDXIcnGRhU= +icon.png__DEL__kd617JYkX8IEUQERd72gL14zj6pgNVcKiSRAFQz6HX8= +index.html__DEL__CdntWzqB8DQYZKIF68hQqqZVLQPbLRf1hXjozO+agxA= +js/app.js__DEL__2gFp+jAYVOKvRYo3ToG5XA4Lqlc7WCz+hWeEaOghi+Q= +version.txt__DEL__jFS/q38a6b0acUjq5B57Co9K03JuDKxw+COi1F255gw= +author-signature.xml__DEL__BdT25/2Bg7qBl0PNBWAbDnA6ePRbfN8AwcXt5d8Nt/k= diff --git a/.sign/author-signature.xml b/.sign/author-signature.xml new file mode 100644 index 0000000..8649fa5 --- /dev/null +++ b/.sign/author-signature.xml @@ -0,0 +1,243 @@ + + + + + + +bjCrGJK8/4D7VzNqTZZsI9xKb2hq32V62CMUF5gvH94= + + + +9vK5RfbEEbAro9qces6I3PcbavZbouDYmqgpAAQrWhA= + + + +598udYWPl5YyXwt0g/7kjA4Zs8Rl4I/OpdKt0mvZQ3E= + + + +hatsFj1DoX6pz3eIMIvKFGbxsKjRzJLibpv2PaQGKu4= + + + +AiNJeguLAzqlijpSG4YphpOGz3qw4vEBlj0yiqYhk/c= + + + +H3TV6SkpebVz69WXQdRsuT/zkazdCD00C5Q3B1PZJDc= + + + +9IPZjlVDNG3iWkVWsl310pYOz/Dq6SVe2F+3DV0Ex3k= + + + +gXZa8trvMjBh3LxeYfwWSBy3SzusmtihdLGGUjWG9sU= + + + +4VxbRp6j4KaVvqbyyCvPjmKCEHSTnd2Ft34AB/8WVHU= + + + +EscjI1Ex8cVXbGUqwqCgB/JhqTwN3ERbHc7mzZjjB4g= + + + +SxEZ4eE6ISVxl29K7neEfNvUCXhUbWJzpVfiOJgaQNE= + + + +T+vOhneQBSM4B29OZsxH77FIedGAl9HWHIJhhZ6qp7M= + + + +pMPSuce7P9jRRBwxvU7nGlldZrRPz0ndsxAlIyAWmYk= + + + +6d3KpBif3dJe2X/Ix4nsp7bKFjkLI5KuMnbwyOGqRhk= + + + +dRwDcyACTsLuJ1fz/64LEK0slGNnaE5wWdTcl+rH5DE= + + + +TK/H23tTQqVTSJKVCPeG6g41TYCihb8PYwBbJH/F37A= + + + +ZnH+g7egfIky7okWTR8nk7IxgFjri5jcXAbuClo7DsE= + + + +bYih6KVipjctLuJN3l3njrvQKFaPwb09aPygYyuUeRY= + + + +bYih6KVipjctLuJN3l3njrvQKFaPwb09aPygYyuUeRY= + + + +OSkjYKAs3wxO90SlSwQaxSX6WIejvo3yX2W25P28jSw= + + + +cVGnHJSbIxxTbHZ4cc0XEetbMGr4Ig04SwFvCJL0tcg= + + + +rqiQE/qsgBRiZw6iG+cFJxVCHRIhuay+VEK+82gvaFQ= + + + +cTC88UJJXLJyBu7pmRkB07i2eLJk4EVv/DBrMDlG2Jk= + + + +NCXGus1XG1CzGfD8cnKh9R6Yoh5qQibiIvC1KioagDU= + + + +TI9vZZsmF1Ydh6O/gd51GoLyXZZyto7wjobmKY2woQo= + + + +FZmqOATlAZ5v6hGivuWkZ9NLyIA0B464HQ9hvqMUJBQ= + + + +fB08qAMNyvrNiut/zN7hw0epaAbaQDnXxDBRQx7HGlE= + + + +lpDm120MOA6vW/mrh0cy1pu67SJ6dPu/cY8rN8I7xW8= + + + +3VGlqOkDSaru/bmv6eS/4byvPdKJeBDS6Bo/lnU2bgY= + + + +lf8xF9EWtMhpmIGzqX+k8LnCZI0pmzyvQrchmCzvxGg= + + + +N8tjv5j1qEgx6o08Q8GEEq+c5oVBme8ZkQ1esJ7fjTM= + + + +bK1/lEV5blLPpFrn/ZNVdLDE2RnlA4SnQhDpURW+znc= + + + +FkxfqAZ/rPGkPwnOPQ416/U6f1cj7L8VqGZ8/FPCb2w= + + + +zgSOtLXhZmKmL98vDoytepbOXYqk43npI3T5HsIbgjc= + + + +2BJPCPMZXVZRVOjqfGUagO8zsHoriyvc5gElbkGHjts= + + + +2BJPCPMZXVZRVOjqfGUagO8zsHoriyvc5gElbkGHjts= + + + +z8d0m5b2O9McPEK1xHG/dWgUBT6EfBDz6wA0F7xSPTA= + + + +ijjaB8GEO5OJP/jK6n7Hr3vZFI9gy8ocoDhviViKNnU= + + + +47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= + + + +Qkr7TJvy4gd86evi4H+4ktLvdr8FgmzvFv1ia8HsEC4= + + + +YCx4tiqoai276nR9sDZsPUcn0/z3Xi4XYMDXIcnGRhU= + + + +kd617JYkX8IEUQERd72gL14zj6pgNVcKiSRAFQz6HX8= + + + +CdntWzqB8DQYZKIF68hQqqZVLQPbLRf1hXjozO+agxA= + + + +2gFp+jAYVOKvRYo3ToG5XA4Lqlc7WCz+hWeEaOghi+Q= + + + +jFS/q38a6b0acUjq5B57Co9K03JuDKxw+COi1F255gw= + + + + + + +lpo8tUDs054eLlBQXiDPVDVKfw30ZZdtkRs1jd7H5K8= + + + +hWCBXJvB5j6n+lJNCtQpayOeXMb/jC2JwhYwJkV4hWsLgJjLUZmueVaxfoIdqg2ik+GmiVofzm64 +PBEDRFvQ9ZjOv0y4krO9vLXrUL9SutzK6JB7NlsBG0o+uM7W1lmclqdkfVxnMNJms1sQ54mSqIEM +4/u9QMHjMNd1MN8l8TAFpQjPpzxgqeLXzWCOxUMT2CtTS+2UGB6rqC4w+qwys9YP53tGnqkbvg5d +OIHfi7eZUsGIIKXULP9EY0REitnALIOzTbM+YNbg+wenwbpV4wHDJclFmCIHQnHzyE4yiMTACdMU +FE5HagF7trht+SuLBjXMLaT9YYlqPror5+2o1Q== + + + + +MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQsFADCBsDELMAkGA1UEBhMCS1IxFDASBgNVBAgM +C1NvdXRoIEtvcmVhMQ4wDAYDVQQHDAVTdXdvbjEmMCQGA1UECgwdU2Ftc3VuZyBFbGVjdHJvbmlj +cyBDby4sIEx0ZC4xDzANBgNVBAsMBk1vYmlsZTEgMB4GA1UEAwwXU2Ftc3VuZyBBdXRob3IgQ0Eg +Q2xhc3MxIDAeBgkqhkiG9w0BCQEWEXRpemVuQHNhbXN1bmcuY29tMB4XDTIwMDExOTIyMjI1NVoX +DTIxMDExODIyMjI1NVowUDEJMAcGA1UEBhMAMQkwBwYDVQQIEwAxCTAHBgNVBAcTADEJMAcGA1UE +ChMAMQkwBwYDVQQLEwAxFzAVBgNVBAMTDlJhcGhhZWwgTWFlbmxlMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAoghbSffP9a1hhOdXMkS7Ubc0tYWoahtpUcbhZ+EOQ1lDn7tBZ4SZIGF4 +D9u7yqpIcBLg0eqvWz/GZ0Y3YmaFR0chspI+UIzY7nyF/jH8RV7TvvQKwjaKk75UeSHiW9vSi2fP +arj0h7fmkKdA/qksmBXWllYXNR9TpOXubGXvUFZBb2feFpWDWKOf0mnmxOQkNIR5txePwtBlpzFF +YWg7AGy2f4QernmyEurz6Rlpegzb+/jRCxx4XktpUOo/mYzQvhBu4REhbv80xWd+zm7YKSetFpD4 +4rxuhdAYB0I35/36LGTQvofqbwkj4/u+aWXRIgNa+qMLS0KWdjHSFMSn1QIDAQABoxowGDAJBgNV +HRMEAjAAMAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQsFAAOCAQEAbFJIOpO3y+ZKdfrnGIxHrHFZ +QPki0k9nfnwf+yc++uMsTy3C9rsgyQda6FBKDDBXWnFgpVfqd+0cOhaxShMfzo5aw1CvOjj0RnjI +8ysdkmRPNeILrR+29LmHyKbaoqFgYeMpQRJuI0MhEpjz/pRh4IfNkISO39953eeOHD+nQ/bAYiG/ +qjUfhUf7rd+DN7mUCIwRsNp692eX5uymBrDKUohbAtnny56NDoCIqvZTyoxIvJ8fpenxaU9jit5J +nBZfD7oIe47IrV2Y3joMGGS8jZX7F0gmOpb+LPpnf4MLAwGktAmY3SNzbIuZ3e72hLtJbxRx0QNT +ncSks0bDF2VBPQ== + + +MIIDmzCCAoOgAwIBAgICYygwDQYJKoZIhvcNAQELBQAwXjEaMBgGA1UECgwRVGl6ZW4gQXNzb2Np +YXRpb24xGjAYBgNVBAsMEVRpemVuIEFzc29jaWF0aW9uMSQwIgYDVQQDDBtUaXplbiBEZXZlbG9w +ZXJzIFJvb3QgQ2xhc3MwHhcNMTMxMjMwMTUwNTU4WhcNMjgxMjI2MTUwNTU4WjCBsDELMAkGA1UE +BhMCS1IxFDASBgNVBAgMC1NvdXRoIEtvcmVhMQ4wDAYDVQQHDAVTdXdvbjEmMCQGA1UECgwdU2Ft +c3VuZyBFbGVjdHJvbmljcyBDby4sIEx0ZC4xDzANBgNVBAsMBk1vYmlsZTEgMB4GA1UEAwwXU2Ft +c3VuZyBBdXRob3IgQ0EgQ2xhc3MxIDAeBgkqhkiG9w0BCQEWEXRpemVuQHNhbXN1bmcuY29tMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAs+tRBgnKJs8j7BFg8/UftqbqTCYBV3Jrg1vK +YvEuoTfntYz2uT2SO67raiCsZBAYvJnP54ExkdV++UgB7BDGniWz7bA1pYKak5kNK5jtLQt2DmZX +3qgaLjMyoAz+293CxrBQO4h8NaTQGsO/WLpeQq2Y1ZEnHsq+EUn90H6Vm0HNW+KUayGPYdey+QSW +iiv+L++TSuHrw0b16GYn83emiTnKTCmwpSOZ712Gy9kccl46/K4C8skEDVZjTk9s7r/MN9ZNZsqR +brT/3AYcrF4ao8ipwlHK91WJBXXaiQICvp/dNfCSDWpTWy7z4XmgP16pSLnfgZlwEwWfiaavHRNM +mwIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBCwUAA4IBAQB/ZlNMTzlIHqC3mFSq +ptuQDZG96XnYqiWsbYkqGgNhcq6c/B3TQsg7Z8cxXY/eqJQDN5gbrIpiUugMRdSOpAEcxF3lwd5k +oOzVLn+3I7x1k6Q4pZdi1fJx+1XjCtrQgPqtvwM77urNqIA1MSG6HUPxYAKkRKjWPsg346E8S/c1 +Hq4UVBYEFcDC467uvWtYjxjEVQTmNUaUcQLU9P6VEL4QW+t7V54IN6IJDr9HoOGSgApxIBDDU46b +MUwl+yK0GPvhrviwfVPkfmys1hn5N+gWectQVpBB1gbfy2KlLCCvW/Kl1VmtYz1kWwTyG8bwcjE0 +GLkwKNN5lPod+FmMhuW9 + + + + + \ No newline at end of file diff --git a/.sign/signature1.xml b/.sign/signature1.xml new file mode 100644 index 0000000..4e35166 --- /dev/null +++ b/.sign/signature1.xml @@ -0,0 +1,248 @@ + + + + + + +bjCrGJK8/4D7VzNqTZZsI9xKb2hq32V62CMUF5gvH94= + + + +9vK5RfbEEbAro9qces6I3PcbavZbouDYmqgpAAQrWhA= + + + +598udYWPl5YyXwt0g/7kjA4Zs8Rl4I/OpdKt0mvZQ3E= + + + +hatsFj1DoX6pz3eIMIvKFGbxsKjRzJLibpv2PaQGKu4= + + + +AiNJeguLAzqlijpSG4YphpOGz3qw4vEBlj0yiqYhk/c= + + + +H3TV6SkpebVz69WXQdRsuT/zkazdCD00C5Q3B1PZJDc= + + + +9IPZjlVDNG3iWkVWsl310pYOz/Dq6SVe2F+3DV0Ex3k= + + + +gXZa8trvMjBh3LxeYfwWSBy3SzusmtihdLGGUjWG9sU= + + + +4VxbRp6j4KaVvqbyyCvPjmKCEHSTnd2Ft34AB/8WVHU= + + + +EscjI1Ex8cVXbGUqwqCgB/JhqTwN3ERbHc7mzZjjB4g= + + + +SxEZ4eE6ISVxl29K7neEfNvUCXhUbWJzpVfiOJgaQNE= + + + +T+vOhneQBSM4B29OZsxH77FIedGAl9HWHIJhhZ6qp7M= + + + +pMPSuce7P9jRRBwxvU7nGlldZrRPz0ndsxAlIyAWmYk= + + + +6d3KpBif3dJe2X/Ix4nsp7bKFjkLI5KuMnbwyOGqRhk= + + + +dRwDcyACTsLuJ1fz/64LEK0slGNnaE5wWdTcl+rH5DE= + + + +TK/H23tTQqVTSJKVCPeG6g41TYCihb8PYwBbJH/F37A= + + + +ZnH+g7egfIky7okWTR8nk7IxgFjri5jcXAbuClo7DsE= + + + +bYih6KVipjctLuJN3l3njrvQKFaPwb09aPygYyuUeRY= + + + +bYih6KVipjctLuJN3l3njrvQKFaPwb09aPygYyuUeRY= + + + +OSkjYKAs3wxO90SlSwQaxSX6WIejvo3yX2W25P28jSw= + + + +cVGnHJSbIxxTbHZ4cc0XEetbMGr4Ig04SwFvCJL0tcg= + + + +rqiQE/qsgBRiZw6iG+cFJxVCHRIhuay+VEK+82gvaFQ= + + + +cTC88UJJXLJyBu7pmRkB07i2eLJk4EVv/DBrMDlG2Jk= + + + +NCXGus1XG1CzGfD8cnKh9R6Yoh5qQibiIvC1KioagDU= + + + +TI9vZZsmF1Ydh6O/gd51GoLyXZZyto7wjobmKY2woQo= + + + +FZmqOATlAZ5v6hGivuWkZ9NLyIA0B464HQ9hvqMUJBQ= + + + +fB08qAMNyvrNiut/zN7hw0epaAbaQDnXxDBRQx7HGlE= + + + +lpDm120MOA6vW/mrh0cy1pu67SJ6dPu/cY8rN8I7xW8= + + + +3VGlqOkDSaru/bmv6eS/4byvPdKJeBDS6Bo/lnU2bgY= + + + +lf8xF9EWtMhpmIGzqX+k8LnCZI0pmzyvQrchmCzvxGg= + + + +N8tjv5j1qEgx6o08Q8GEEq+c5oVBme8ZkQ1esJ7fjTM= + + + +bK1/lEV5blLPpFrn/ZNVdLDE2RnlA4SnQhDpURW+znc= + + + +FkxfqAZ/rPGkPwnOPQ416/U6f1cj7L8VqGZ8/FPCb2w= + + + +zgSOtLXhZmKmL98vDoytepbOXYqk43npI3T5HsIbgjc= + + + +2BJPCPMZXVZRVOjqfGUagO8zsHoriyvc5gElbkGHjts= + + + +2BJPCPMZXVZRVOjqfGUagO8zsHoriyvc5gElbkGHjts= + + + +z8d0m5b2O9McPEK1xHG/dWgUBT6EfBDz6wA0F7xSPTA= + + + +ijjaB8GEO5OJP/jK6n7Hr3vZFI9gy8ocoDhviViKNnU= + + + +47DEQpj8HBSa+/TImW+5JCeuQeRkm5NMpJWZG3hSuFU= + + + +BdT25/2Bg7qBl0PNBWAbDnA6ePRbfN8AwcXt5d8Nt/k= + + + +Qkr7TJvy4gd86evi4H+4ktLvdr8FgmzvFv1ia8HsEC4= + + + +YCx4tiqoai276nR9sDZsPUcn0/z3Xi4XYMDXIcnGRhU= + + + +kd617JYkX8IEUQERd72gL14zj6pgNVcKiSRAFQz6HX8= + + + +CdntWzqB8DQYZKIF68hQqqZVLQPbLRf1hXjozO+agxA= + + + +2gFp+jAYVOKvRYo3ToG5XA4Lqlc7WCz+hWeEaOghi+Q= + + + +jFS/q38a6b0acUjq5B57Co9K03JuDKxw+COi1F255gw= + + + + + + +u/jU3U4Zm5ihTMSjKGlGYbWzDfRkGphPPHx3gJIYEJ4= + + + +baeEoS0/YPlK5vQ93tyUXPFRTwudQXfuYMrDOjecfvUwyTnVUSVa8BJVDBc26Aikb471C0oGDsse +lHWREIs1cInhHiDQnJoPbRlpUHxUBm44Sa33H4PDBwVG62i0P6iFL+7/C3UjN2tZ3ScC1Rczd9Lf +eqAXXN1MZZJ53Avika2Pw7W7VAX8aADyj/Rz8dwdR82iVgPpS9VSz25dtynKh4O2zdgB82WB9iKA +gL/z6PTmgLj/OjONHa8mtYMS/4JRtVqSqkLMaZjq+uYta2x/t1V4+HBvEevVAZsw4v9+4cBCQ2GD +hp14oWu8cWbyKlTg7J0uou51rBfuWBhOhQ6TEA== + + + + +MIID3zCCAsegAwIBAgIBZTANBgkqhkiG9w0BAQsFADCBnjELMAkGA1UEBhMCS1IxFDASBgNVBAgM +C1NvdXRoIEtvcmVhMQ4wDAYDVQQHDAVTdXdvbjEmMCQGA1UECgwdU2Ftc3VuZyBFbGVjdHJvbmlj +cyBDby4sIEx0ZC4xDzANBgNVBAsMBk1vYmlsZTEwMC4GA1UEAwwnU2Ftc3VuZyBUaXplbiBERVZF +TE9QRVIgUHVibGljIENBIENsYXNzMB4XDTIwMDExOTIyMjQxNFoXDTIxMDExODIyMjQxNFowbTER +MA8GA1UEAwwIVGl6ZW5TREsxCTAHBgNVBAsMADEJMAcGA1UECgwAMQkwBwYDVQQHDAAxCTAHBgNV +BAgMADEJMAcGA1UEBhMAMSEwHwYJKoZIhvcNAQkBFhJyYXBoYWVsQG1hZW5sZS5uZXQwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCmZiUK1d+T1xaUeuT5/7Hcezv5QrRAE+tEcVkYv/DR +1NGVgmR1wFKiJiEkFAWIAilpOGO3ZoOBakTQhxt7sQpJ9fFIepv9sHvKyQ2HB2YLHwhrKdSRnvD5 +WytJDwK+W3nQwLXB/WR37AfoP0EofOkKXmv7rdoaHfUNPezb89S66m89i3TeTNeuDurp4VbBD35T +NunG/jHOXz3/nw5nclt2ue/MCOyru5saHYLJ/xqUMYp70/Jy4El7XIVLsJGx8nIFWf3ZYz5vWXa9 +CS4sKuAmqKhGVvtoeWqYjEfXkzVTPpPMjaymOWzLeavhBRs7BI7WqQz/VHi6vGb+qmbUl0zzAgMB +AAGjWDBWMFQGA1UdEQRNMEuGFFVSTjp0aXplbjpwYWNrYWdlaWQ9hjNVUk46dGl6ZW46ZGV2aWNl +aWQ9Mi4wI2hocHR4Q1o0aUxiUkZMamUzNGhkU1lyOFpVdz0wDQYJKoZIhvcNAQELBQADggEBAHC3 +mPS4MKqVEWK3jTA7UIRJy9ag14ZGhzvgQeGpPkpr9boJACYsU/nYYwUmn2FCJ3f2D6OSlgx6bSIy +KSnO1SgT+wHBMO53XJjiE8fzZesBVSwgp15/oLOed80sa15XEGHclgTL5z0JWy/EMKTGbd/0r6sa +qfZASlnU6AR+IToDDzj0oaeBMvVvjF54tQBFg7Mp3i9E06qlDo/MSKxI0fXuQg4KiNW6gHu3CVTt +wMRKvUjFKevZpVhn/GeZxAOa9Shnaq0iyS7Mwj31URMOGhj2p+4BYfH1rx+4nW7euVYje5N/MnZh +8OIcSt8/G75+1MHMLRcSHEuHoZc0Cxi3ot0= + + +MIIDuzCCAqOgAwIBAgICL+cwDQYJKoZIhvcNAQELBQAwgY8xCzAJBgNVBAYTAktSMRQwEgYDVQQI +DAtTb3V0aCBLb3JlYTEOMAwGA1UEBwwFU3V3b24xJjAkBgNVBAoMHVNhbXN1bmcgRWxlY3Ryb25p +Y3MgQ28uLCBMdGQuMTIwMAYDVQQDDClTYW1zdW5nIFRpemVuIERFVkVMT1BFUiBQdWJsaWMgUm9v +dCBDbGFzczAeFw0xMzEyMzAxNTAxNDdaFw0yODEyMjYxNTAxNDdaMIGeMQswCQYDVQQGEwJLUjEU +MBIGA1UECAwLU291dGggS29yZWExDjAMBgNVBAcMBVN1d29uMSYwJAYDVQQKDB1TYW1zdW5nIEVs +ZWN0cm9uaWNzIENvLiwgTHRkLjEPMA0GA1UECwwGTW9iaWxlMTAwLgYDVQQDDCdTYW1zdW5nIFRp +emVuIERFVkVMT1BFUiBQdWJsaWMgQ0EgQ2xhc3MwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCkqW9d0zO5NFOc7u164DKe9Yx+yEgUnsbhnJasqHaqT71qaMxyCOjyysZi7gGycDcgmLcU +tr2wSMTGWPibK8SrJ8bV/J1cy9nTpljM3s+lbPIVVxZeufhJkU79tXImHLolERd0vui+rj0Xpd9O +zlyNTRt0+PWVT1taWcbfHL7pUD25hMkTc8C3bC+dUoT1/RhCkXgmUvIor3EnnU0rBtAl4qNtg5y1 +7RLT8dyicieAHCcW923YC/ngMZxnBjbL2Ht1RBUvrL6K3X5+l0VeF4qC3g7TKm/a/SGjq12ZD4sc +7rglzjSNlTVSGag6/2WkqxE6HheEBWaloYOdauzwydFNAgMBAAGjEDAOMAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQELBQADggEBAG88wKjKeTbj5I6wMEvRihd+gWrESJX3bXUSlHWjUfYKcvg3GzM9 +cdooscqJdYgN8ezQuYiJQRk7BaPHSlPGkchsPUjvSM6WvIn9IT+VsEuVBrZNbZMSv6lM6wNig3TE +h2OxFTW6Bt8mCZB74EP2wb+39Fr5aJwWvmkxQjct3/O+GYPQhe0Lu1qpbbMhzafYYybSmO+om02V +cTWyJ/vtLUNyGfN7aHyBm6PFE5piAfpBaO9Az+zWil1HOsnzu1tGGnyV6IzQ/UiIo5P2sD8I5lEO +Xdf9Eicy9y5z2Ci2zrmDcAGWL8o5wOWrCqML2ijximFzyQ/swlMC9xBIX9RCFws= + + + + + \ No newline at end of file diff --git a/.tproject b/.tproject new file mode 100644 index 0000000..7ca3e1f --- /dev/null +++ b/.tproject @@ -0,0 +1,11 @@ + + + + + wearable-4.0 + + + + + + diff --git a/CalendarWatch.wgt b/CalendarWatch.wgt index 13fb568..a55db3f 100644 Binary files a/CalendarWatch.wgt and b/CalendarWatch.wgt differ diff --git a/config.xml b/config.xml index 9996115..9f29e0d 100644 --- a/config.xml +++ b/config.xml @@ -10,5 +10,7 @@ + + diff --git a/js/app.js b/js/app.js index 9f8c12f..4ab357c 100644 --- a/js/app.js +++ b/js/app.js @@ -14,6 +14,9 @@ * limitations under the License. */ +var events; +var eventsTimeStamp = 0; + (function() { var canvasLayout, canvasContent, @@ -27,12 +30,34 @@ xhr.open('GET', path, true); xhr.responseType = 'blob'; xhr.onload = function(e) { - console.log("status " + this.status); if (this.status == 0) { var file = new File([this.response], 'temp'); var fileReader = new FileReader(); fileReader.addEventListener('load', function(){ - console.log(fileReader.result); + events = JSON.parse(fileReader.result); + + var onError = function(e) { + console.log('Error!' + e.message); + }; + + var onResolveSuccess = function(dir) { + var onListFilesSuccess = function(files) { + files.forEach(function(file) { + if (!file.isDirectory) { + dir.deleteFile(file.fullPath, onDeleteSuccess, onError); + } + }); + }; + + dir.listFiles(onListFilesSuccess, onError); + }; + + var onDeleteSuccess = function() {}; + + tizen.filesystem.resolve('/opt/usr/media/Downloads', onResolveSuccess, onError); + + + }); fileReader.readAsText(file); } @@ -41,7 +66,7 @@ } function getJSON() { - var downloadRequest = new tizen.DownloadRequest('http://download.tizen.org/tools/README.txt', 'downloads'); + var downloadRequest = new tizen.DownloadRequest('http://raphael.maenle.net/calendarevents.json', 'downloads'); tizen.systeminfo.getPropertyValue('NETWORK', function(networkInfo) { if (networkInfo.networkType === 'NONE') { console.log('Network connection is not available.Download is not possible.'); @@ -51,9 +76,7 @@ var listener = { /* When the download progresses (interval is platform-dependent) */ - onprogress: function(id, receivedSize, totalSize) { - console.log('Received with id: ' + id + ', ' + receivedSize + '/' + totalSize); - }, + onprogress: function(id, receivedSize, totalSize) {}, /* When the user pauses the download */ onpaused: function(id) { @@ -68,7 +91,6 @@ /* When the download is completed */ oncompleted: function(id, fullPath) { console.log('Completed with id: ' + id + ', full path: ' + fullPath); - readJSON(fullPath); }, @@ -77,10 +99,7 @@ console.log('Failed with id: ' + id + ', error name: ' + error.name); } }; - console.log("starting download"); downloadId = tizen.download.start(downloadRequest, listener); - console.log(tizen.download.getState(downloadId)); - console.log("done"); } /** @@ -108,17 +127,27 @@ * @param {number} radius - the radius of the circle * @param {string} color - the color of the circle */ - function renderArc(context, center, radius, color, startAngle, endAngle) { + function renderArc(context, center, radius, color, startAngle, endAngle, hardStart, hardStop) { + + if(hardStart == undefined) + hardStart = false; + if(hardStop == undefined) + hardStop= false; + context.save(); context.beginPath(); seperation = 5; - startAngle += seperation; + if(!hardStart) + startAngle += seperation; + if(startAngle >= 360) startAngle -= 360; - endAngle -= seperation; + if(!hardStop) + endAngle -= seperation; + if(endAngle<0) endAngle += 360; context.arc(center.x, center.y, radius, startAngle * Math.PI / 180., endAngle * Math.PI / 180.); @@ -128,8 +157,10 @@ context.stroke(); context.restore(); - renderCircle(context, polToCart(radius, startAngle), 9, color); - renderCircle(context, polToCart(radius, endAngle), 9, color); + if(!hardStart) + renderCircle(context, polToCart(radius, startAngle), 9, color); + if(!hardStop) + renderCircle(context, polToCart(radius, endAngle), 9, color); } function polToCart(radius, angle) { @@ -141,7 +172,23 @@ } function hourToAngle(hour) { + if(hour >= 18) + hour -= 18; + else + hour += 6; + angle = (hour) * 15; + return angle; + } + + function minuteToAngle(minute) { + if(minute >= 15) + minute -= 15; + else + minute += 45; + angle = (minute / 60) * 360; + + return angle; } /** @@ -173,6 +220,29 @@ context.closePath(); context.restore(); } + + /** + * Renders the 24h sun around the watch + */ + function renderSun(date, hour, minute, second) { + + if(hour > 6 && hour < 18) + sunColor = "#FFD700"; + else { + sunColor = "#C0C0C0" + } + + sunDistance = document.body.clientWidth / 2 - 60; + renderCircle(ctxContent, polToCart(sunDistance, hourToAngle(hour + minute / 60)), 16, sunColor); + } + + function renderEarth(date, minute, second) { + + earthColor = "#0077BE"; + earthDistance = document.body.clientWidth / 2 - 120; + renderCircle(ctxContent, polToCart(earthDistance, minuteToAngle(minute + second / 60)), 10, earthColor); + } + /** * Renders text at a specific center, radius, and color @@ -234,7 +304,8 @@ renderNeedle(ctxLayout, angle, 0.7, 0.945, 10, "#c4c4c4"); } */ - renderText(ctxLayout, "TIZEN WATCH", center.x, center.y - (watchRadius * 0.4), 25, "#999999"); + + // renderText(ctxLayout, "TIZEN WATCH", center.x, center.y - (watchRadius * 0.4), 25, "#999999"); } /** @@ -250,38 +321,104 @@ // Clear canvas ctxContent.clearRect(0, 0, ctxContent.canvas.width, ctxContent.canvas.height); - + // Draw the hour needle - renderNeedle(ctxContent, Math.PI * (((hour + minute / 60) / 6) - 0.5), 0, 0.50, 3, "#454545"); - + renderSun(date, hour, minute, second); // Draw the minute needle - renderNeedle(ctxContent, Math.PI * (((minute + second / 60) / 30) - 0.5), 0, 0.70, 3, "#454545"); + + renderEarth(ctxContent, minute, second); + // renderNeedle(ctxContent, Math.PI * (((minute + second / 60) / 30) - 0.5), 0, 0.70, 3, "#454545"); // Draw the minute/hour circle // renderCircle(ctxContent, center, 8, "#454545"); - thickness = 18; - edge = document.body.clientWidth / 2 - thickness / 2 - 2; - renderArc(ctxContent, center, edge, "#808080", 75, 195); // sleep - renderArc(ctxContent, center, edge, "#FF0000", 210, 277.5); // work - renderArc(ctxContent, center, edge, "#FFFF00", 277.5, 292.5); // lunch - renderArc(ctxContent, center, edge, "#FF0000", 292.5, 352.5); // work - // Draw the second needle - ctxContent.shadowOffsetX = 4; - ctxContent.shadowOffsetY = 4; - renderNeedle(ctxContent, Math.PI * ((second / 30) - 0.5), -0.10, 0.85, 1, "#c4c4c4"); + // ctxContent.shadowOffsetX = 4; + // ctxContent.shadowOffsetY = 4; + // renderNeedle(ctxContent, Math.PI * ((second / 30) - 0.5), -0.10, 0.85, 1, "#c4c4c4"); // Draw the second circle - ctxContent.shadowOffsetX = 0; - ctxContent.shadowOffsetY = 0; - renderCircle(ctxContent, center, 5, "#c4c4c4"); + // ctxContent.shadowOffsetX = 0; + // ctxContent.shadowOffsetY = 0; + // renderCircle(ctxContent, center, 5, "#c4c4c4"); // Draw the center circle - renderCircle(ctxContent, center, 2, "#454545"); + // renderCircle(ctxContent, center, 2, "#454545"); // Draw the text for date - renderText(ctxContent, date, center.x, center.y + (watchRadius * 0.5), 25, "#999999"); + // renderText(ctxContent, date, center.x, center.y + (watchRadius * 0.5), 25, "#999999"); + + if(events == null) + return; + + thickness = 18; + edge = document.body.clientWidth / 2 - thickness / 2 - 2; + + for(var event in events.events){ + + var startedBeforeToday = false; + var endsAfterToday = false; + var e = events.events[event]; + + // check if not today + if(e.startDateTime.date.year != tizen.time.getCurrentDateTime().getFullYear() || + e.startDateTime.date.month != tizen.time.getCurrentDateTime().getMonth() + 1 || + e.startDateTime.date.day != tizen.time.getCurrentDateTime().getDate()){ + + // if not today, check if it is an earlier event + if(e.startDateTime.date.year < tizen.time.getCurrentDateTime().getFullYear()) + startedBeforeToday = true; + else if(e.startDateTime.date.month < tizen.time.getCurrentDateTime().getMonth() + 1) + startedBeforeToday = true; + else if(e.startDateTime.date.day < tizen.time.getCurrentDateTime().getDate()) + startedBeforeToday = true; + else + continue; + } + + // check if not today + if(e.stopDateTime.date.year != tizen.time.getCurrentDateTime().getFullYear() || + e.stopDateTime.date.month != tizen.time.getCurrentDateTime().getMonth() + 1 || + e.stopDateTime.date.day != tizen.time.getCurrentDateTime().getDate()){ + + // if not check if later date + if(e.startDateTime.date.year > tizen.time.getCurrentDateTime().getFullYear()) + endsAfterToday = true; + else if(e.startDateTime.date.month > tizen.time.getCurrentDateTime().getMonth() + 1) + endsAfterToday = true; + else if(e.startDateTime.date.day > tizen.time.getCurrentDateTime().getDate()) + endsAfterToday = true; + else + continue; + } + + if(startedBeforeToday && endsAfterToday) + continue; + + var startTime = 0; + if(!startedBeforeToday) + startTime = e.startDateTime.time.hour + e.startDateTime.time.minute / 60; + + var stopTime = 0; + if(!endsAfterToday) + stopTime = e.stopDateTime.time.hour + e.stopDateTime.time.minute / 60; + + renderArc(ctxContent, center, edge, e.color, hourToAngle(startTime), hourToAngle(stopTime), startedBeforeToday, endsAfterToday); + } + + } + + function updateCalendar(offset_ms) { + var d = new Date(); + var currentTime = d.getTime(); + console.log("current Time: " + currentTime); + if(eventsTimeStamp + offset_ms < currentTime){ + console.log("updating Events"); + getJSON(); + eventsTimeStamp = currentTime; + } + + } /** @@ -337,6 +474,7 @@ // Update the content of the watch every second setInterval(function() { drawWatchContent(); + updateCalendar(60000); }, 1000); }