Commit Graph

438 Commits

Author SHA1 Message Date
Tankred Hase a479d5850e Use custom wo-touch directive rather than ng-click 2014-06-27 12:36:43 +02:00
Tankred Hase 48c478961d Add CCA scripts and css optimizations for Android
Hide native account picker on Android after first time.

Get OAuth to work on iOS

Turn off css slide transistion
2014-06-26 15:01:13 +02:00
Felix Hammerl 37b1862e9f Merge pull request #79 from whiteout-io/dev/WO-55
Dev/wo 55
2014-06-26 14:58:15 +02:00
Tankred Hase b5fda88b8a Implement client side key sync protocol and ui 2014-06-25 18:14:33 +02:00
Felix Hammerl 0d0b767b36 [WO-409] show images only on user request 2014-06-25 17:20:55 +02:00
Felix Hammerl fb1a20d2b0 [WO-409] render html in sandboxed iframe 2014-06-25 08:17:22 +02:00
Tankred Hase 18d1c39b0a Implement and test crypto module 2014-06-23 17:21:02 +02:00
Tankred Hase df8b74bfb6 Load bodies when changing folder without scrolling 2014-06-23 13:09:09 +02:00
Tankred Hase b7a4c13766 Parse multiple user IDs for imported PGP keys
Use all pgp (sub) keys when en/decrypting a pgp message

Improve input validation for key import

Mark manually imported keys so that key refresh does not revoke them
2014-06-18 16:29:22 +02:00
Tankred Hase e28c9a62ff Cleanup and fix keyboard event handling in editor headers 2014-06-17 19:41:04 +02:00
Tankred Hase c4e2f66172 Fix bug that catches empty string in writer email-header auto-size directice 2014-06-17 17:22:56 +02:00
Tankred Hase 3017c9fb93 Merge pull request #72 from whiteout-io/dev/WO-344
Dev/wo 344
2014-06-17 15:33:44 +02:00
Mario Volke 29dfb9fe7e addressInput directive: prevent race conditions with focusMe directive, prevent loosing focus when hitting space in empty input field 2014-06-17 14:54:06 +02:00
Mario Volke 5a1b9c1af9 refactored addressInput directive in write view to not use stopPropagation 2014-06-17 14:31:03 +02:00
Tankred Hase ec9a87d23a Make slide effect fast on chrome 2014-06-17 12:20:16 +02:00
Tankred Hase 3a59f79223 Fix bugs 2014-06-16 16:18:24 +02:00
Tankred Hase b9a7e3b43c Remove iscroll from require-config 2014-06-16 16:18:24 +02:00
Tankred Hase b5973cc370 Use native scrolling instead of iscroll 2014-06-16 16:18:24 +02:00
Mario Volke 2a1cb893d0 optimized login views for mobile 2014-06-16 15:04:06 +02:00
Tankred Hase 3dc2222050 Change updated flag message 2014-06-10 14:23:51 +02:00
Felix Hammerl a29ece8c82 [WO-398] update revoked public keys 2014-06-03 13:07:11 +02:00
Tankred Hase 088519f4f8 Remove sync keybaord shortcut 2014-06-03 11:48:11 +02:00
Tankred Hase 3a0d71b645 Review code 2014-06-02 17:54:29 +02:00
Felix Hammerl 77e5e2a97e [WO-373] refactor sync
remove email-sync.js
remove delta sync
minor refactorings
2014-06-02 12:43:53 +02:00
Andris Reinman b9fc1c8244 [WO-399] Handle reply-to, in-reply-to and references headers 2014-05-21 15:19:18 +03:00
Felix Hammerl e25617134b [WO-376] disable secure sending when bcc is used 2014-05-16 13:09:55 +02:00
Felix Hammerl 48b394f3bd [WO-390] include attachments in forwarded message 2014-05-14 17:29:27 +02:00
Tankred Hase b02df18347 Make links in html clickable 2014-05-13 16:55:47 +02:00
Felix Hammerl 1795f2af45 [WO-382] Lazy loading for attachments 2014-05-12 22:07:29 +02:00
Tankred Hase 99edcee93b Show decrypting/parsing errors in mail reader 2014-05-12 13:44:02 +02:00
Tankred Hase a97c3a35e7 [WO-381] Fix bug that displayed ciphertext instead of plaintext 2014-05-12 13:18:51 +02:00
Tankred Hase 747d9fce39 Fix scroling in iframe in Chrome App 2014-05-09 16:01:44 +02:00
Felix Hammerl f44db9d1bd Merge pull request #57 from whiteout-io/dev/wo-323
Dev/wo 323
2014-05-09 10:24:34 +02:00
Tankred Hase 36c08cdbb1 Remove $parse from frameLoad directive 2014-05-09 10:19:35 +02:00
Tankred Hase c272b4f937 [WO-323] Render HTML content in sandboxed iframe 2014-05-08 16:32:46 +02:00
Tankred Hase 4fc4b02c26 Fix development mode for ui work 2014-05-08 16:25:20 +02:00
Tankred Hase 4da56b6fe7 [WO-371] CC myself if I chose to CC myself 2014-05-07 20:19:20 +02:00
Tankred Hase 5a4889d57d Dont reselect inbox onLogin 2014-04-30 01:20:36 +02:00
Tankred Hase 4cf83fd6f1 Prevent out of bounce case when iterating over filteredMessages 2014-04-29 22:59:25 +02:00
Tankred Hase 404acf9fb0 Resolve merge conflicts 2014-04-29 22:47:08 +02:00
Tankred Hase 1a6cfad83d [WO-353] Fix first messsage not displayed 2014-04-29 22:11:56 +02:00
Tankred Hase 637980cc7b [WO-301] Fix incoming message not displayed 2014-04-29 22:11:50 +02:00
Felix Hammerl 49cadecd2d [WO-338] add notification for incoming unread mails 2014-04-29 17:59:17 +02:00
Tankred Hase f5f8781a8c [WO-343] Remove reply selection on click 2014-04-29 17:09:02 +02:00
Tankred Hase 77876f5432 [WO-198] Style message replies with different colors 2014-04-28 22:18:34 +02:00
Tankred Hase 2d54ee16eb Fix bug in loadVisibleBodies loop 2014-04-24 17:54:14 +02:00
Tankred Hase 2eff335680 Use local () instead of () in certain cases for performance 2014-04-24 15:44:54 +02:00
Tankred Hase 23be9c823d Global key shortcut to close lightbox 2014-04-24 15:04:42 +02:00
Tankred Hase 6bb1bd2239 Fix mail-list filtering and iScroll refresh together with ngAnimate 2014-04-24 15:04:42 +02:00
Tankred Hase c08ff4f287 [WO-333] Fix lightbox outer scrollbar
* Use ng-animate with display:none instead of visibility:hidden
* Fix min-height in lightbox
* Start refactoring lightbox opening code using scope.state.lightbox
2014-04-24 15:04:41 +02:00
Tankred Hase 6adc9da8c1 Cleanup before refactor with ngAnimate
* Add ng-animate module in libs
* Move error dialog init to app.run
* Include error dialog template only once in index.html
* Fix race condition between ng-repeat, ng-class using ng-animate
2014-04-24 15:04:41 +02:00
Tankred Hase fdd9c22144 [WO-312] Fix slowness for large inbox
* Fix memory leak causing iScroll to be re-initialized each time mail-list model changes
* Only do $scope.$apply() when keyboard shortcuts are actually executed
2014-04-24 15:04:41 +02:00
Tankred Hase 138a462862 [WO-283] Implement BCC and dynamic address headers for writer 2014-04-24 15:04:40 +02:00
Tankred Hase becff37b4b [WO-233] Implement opt-in for terms of service 2014-04-15 17:43:33 +02:00
Tankred Hase aee532da44 [WO-296] implement change passphrase ui 2014-04-11 18:39:13 +02:00
Tankred Hase bfc354146a only show cc line in forwarded message when not empty 2014-04-05 12:14:20 +02:00
Tankred Hase 67939a04d9 [WO-302] fix first message not selected 2014-04-04 19:48:51 +02:00
Tankred Hase 2f867437ad fix opening links due to blocked event propagation 2014-04-02 20:28:20 +02:00
Tankred Hase 302fc378fb [WO-281] implement reply all and forward 2014-04-02 19:47:50 +02:00
Tankred Hase a2f3e86545 [WO-300] Wrap chrome notifications and identity apis in modules 2014-04-02 15:12:52 +02:00
Tankred Hase f8e0c90b5b fix tests 2014-03-31 21:42:37 +02:00
Tankred Hase f0f0aa3d63 Fix show messages on initial login/folder-sync 2014-03-31 21:42:37 +02:00
Tankred Hase 6ca1ae6507 remove key export dialog after keygen 2014-03-31 21:42:37 +02:00
Tankred Hase 4b5d367fdb Login to IMAP (appcontroller.onConnect) after show mail-list 2014-03-31 21:42:10 +02:00
Tankred Hase 1c877634d1 [WO-297] setting a passphrase is optional 2014-03-31 16:57:55 +02:00
Tankred Hase 483ad5210e [WO-294] optimize mail-list.loadVisibleBodies 2014-03-25 15:19:47 +01:00
Tankred Hase 18cd1e1ffe [WO-247] parse url and create anchors 2014-03-14 19:10:51 +01:00
Tankred Hase 4d2f56b20b always load visible bodies on successful sync 2014-03-12 17:02:41 +01:00
Tankred Hase 431ae8cd89 [WO-277] load body on incoming message 2014-03-12 13:20:03 +01:00
Tankred Hase 81001ed193 add input verification for public key import 2014-03-10 18:30:06 +01:00
Tankred Hase a8c9984524 [WO-185] implement contacts ui to import external public keys 2014-03-10 17:46:00 +01:00
Tankred Hase 8d8003116c Merge pull request #33 from whiteout-io/dev/outbox-date
add date to outbox
2014-03-07 12:30:02 +01:00
Tankred Hase 1b94e7b5ce [WO-184] implement support for importing an existing pgp key 2014-03-07 12:13:18 +01:00
Felix Hammerl cac0086627 add date to outbox 2014-03-06 18:02:05 +01:00
Tankred Hase 09999f991a fix strings and dont add signature to invitation email 2014-03-05 16:00:00 +01:00
Tankred Hase 441562285c transition to red buttons in writer for all elements when receiver insecure 2014-02-28 16:06:30 +01:00
Tankred Hase 3d6a4698ce invite user when clicking on red address label 2014-02-28 16:06:19 +01:00
Tankred Hase badea7ab8a allow plaintext sending and remove whiteout tag from subject 2014-02-28 16:06:01 +01:00
Felix Hammerl 69a222e46a remove [whiteout] filters 2014-02-27 18:31:42 +01:00
Tankred Hase b542ab898d fix writer address field bugs 2014-02-25 21:32:41 +01:00
Tankred Hase b59ca4a773 close writer before putting to outbox 2014-02-25 21:05:59 +01:00
Felix Hammerl 336b4a4a7f do not remove body from outbox messages, add missing scope.apply 2014-02-25 14:58:55 +01:00
Felix Hammerl 25adfbf8b1 filter empty addresses on write 2014-02-25 14:58:55 +01:00
Felix Hammerl 8d0bc279c3 fix outbox and minor clean ups 2014-02-25 14:58:55 +01:00
Tankred Hase e3e7962b3e fix watch of selected mail in reader 2014-02-23 23:20:47 +01:00
Tankred Hase 0ca5ba07ad show loading or decrypting state in reader 2014-02-21 16:22:33 +01:00
Tankred Hase 179896ddfe fix desktop for grunt dev 2014-02-21 10:47:49 +01:00
Tankred Hase dd9ea28772 cleanup pgp key popover 2014-02-20 23:53:53 +01:00
Tankred Hase bf9602fcbb add lock icon to encrypted items in mail list, show key ID instead of fingerprints in reader, hide popover in writer 2014-02-20 19:20:24 +01:00
Tankred Hase b093b069f6 review mail-list 2014-02-20 15:42:51 +01:00
Felix Hammerl 8973c3e2b3 exclude outbox from normal workflow 2014-02-18 17:05:51 +01:00
Felix Hammerl 250aa4b886 adapt ui to async content fetching 2014-02-17 18:20:58 +01:00
Tankred Hase 7c76156adf finish integrating and end review 2014-02-06 19:19:00 +01:00
Felix Hammerl 6cd57fa0f6 fix tests 2014-02-06 11:55:36 +01:00
Tankred Hase 6514017358 implement attachment ui for writer 2014-02-06 00:41:08 +01:00
Tankred Hase cb69514197 Merge branch 'master' into dev/attachments-ui 2014-02-05 18:04:39 +01:00
Tankred Hase 9da2a8f991 [WO-223] handle imap errors and timeouts specific before and after login screen to avoid jumping bug 2014-02-05 15:47:27 +01:00
Tankred Hase bb5b63558e add file input and filereader logic to writer 2014-02-04 21:04:48 +01:00
Tankred Hase 8b71a57360 integrate pgpmailer and remove smtp-client dependency 2014-02-04 18:30:02 +01:00
Tankred Hase d1cfdbd321 Merge branch 'dev/attachments' into dev/attachments-ui 2014-02-03 19:27:38 +01:00
Tankred Hase 9568922bc4 [WO-207] implement accout selection 2014-01-27 21:31:23 +01:00
Tankred Hase c8c1217f8d remove scope.apply() in sync call 2014-01-19 21:16:42 +01:00
Tankred Hase 7ec662e682 Merge pull request #5 from whiteout-io/dev/editor
Dev/editor
2014-01-19 12:05:13 -08:00
Felix Hammerl cb8ffe6f7b [WO-163] make pending mails visible in offline mode 2014-01-19 17:11:36 +01:00
Tankred Hase c1c2ec90fd [WO-179] show pgp fingerprint in writer 2014-01-19 16:58:51 +01:00
Tankred Hase 7bede604c6 [WO-201] fix address input for multiple recipients in writer 2014-01-19 16:18:32 +01:00
Tankred Hase c40c6b8f50 download attachment ui implemented (work in progress) 2014-01-16 15:37:08 +01:00
Felix Hammerl 04cf299e1e adapt gruntfile, package.json, dummy mails 2014-01-16 12:55:10 +01:00
Felix Hammerl 411e1dbf53 provide fallback (no subject) 2014-01-16 11:58:39 +01:00
Felix Hammerl 3817bdc0c0 toggles unread/read when clicking the circle 2014-01-16 11:37:43 +01:00
Tankred Hase c6af643730 implement mark as unread 2014-01-15 15:27:38 +01:00
Tankred Hase f115e0cc1d do trim on body before sending 2014-01-15 14:32:13 +01:00
Tankred Hase 8dd30e3752 externalize strings from editor 2014-01-15 10:57:28 +01:00
Tankred Hase 0dc1cc68bc fix tests 2014-01-14 16:11:59 +01:00
Tankred Hase 2eaf7ca172 check valid send states in editor 2014-01-13 23:54:53 +01:00
Tankred Hase 4b638a0dee reading and writing to multiple recipients works 2014-01-13 22:43:43 +01:00
Tankred Hase 87d26383f5 sending email to multiple receivers works 2014-01-13 18:38:45 +01:00
Tankred Hase 6d0e562351 implement field jumping on spaceand tab press 2014-01-13 16:42:10 +01:00
Tankred Hase 60342b3902 work in progress 2014-01-10 21:35:34 +01:00
Felix Hammerl e62e085771 Merge remote-tracking branch 'origin/dev/security-review' 2014-01-09 12:12:44 +01:00
Tankred Hase 7a798539fb add copyright comment 2014-01-09 10:50:43 +01:00
Tankred Hase 7824ed396c implement passphrase quality indicator on initial login 2014-01-08 19:54:02 +01:00
Felix Hammerl afda794bc4 [WO-192] dont fail unnecessary when encountering a potentially malicious uuid 2014-01-08 16:04:18 +01:00
Felix Hammerl 7d0fc373ab [WO-183] key file export now proposes file name whiteout_mail_foo@bar.com_KEYIDKEYID.asc 2014-01-07 19:23:03 +01:00
Tankred Hase 8f366ffb75 display unread flag over answered 2013-12-12 16:39:29 +01:00
Tankred Hase d08321d345 switching between offline and online state works 2013-12-10 22:20:41 +01:00
Tankred Hase c98c39ecbf change message sent text 2013-12-06 18:46:26 +01:00
Tankred Hase 71357c2ccc set ctrl f for find 2013-12-06 17:30:49 +01:00
Tankred Hase 7032a4f8c6 change hotkeys to use ctrl und cmd 2013-12-06 11:51:13 +01:00
Tankred Hase 4cf8e3cb5c Merge remote-tracking branch 'origin/dev/sync_flags' 2013-12-05 19:15:36 +01:00
Felix Hammerl f721b06bb4 sync answered flag after sending 2013-12-05 18:50:03 +01:00
Felix Hammerl b4115ed879 fix unread and answered flags are updated 2013-12-05 18:28:18 +01:00
Felix Hammerl f3ef8fdf91 fix wrong api usage in login initial controller 2013-12-05 16:58:26 +01:00
Tankred Hase 1988ba3f81 remove signature under encrypted preview 2013-12-05 16:56:42 +01:00
Tankred Hase 1fb092a79d add tests 2013-12-05 15:22:44 +01:00
Tankred Hase cf031a105e [WO-136] show notification when email has been sent 2013-12-05 15:02:41 +01:00
Tankred Hase 3790009260 Merge branch 'dev/email-dao-refactoring' 2013-12-04 17:44:44 +01:00
Felix Hammerl 1714955e8e only select a new message if necessary 2013-12-04 17:13:24 +01:00
Tankred Hase e7cf769125 fix bug in selected mail is undefined 2013-12-04 16:42:17 +01:00
Tankred Hase 2e4e59101b [WO-99] set address label in reader depending on public key availability 2013-12-04 16:35:53 +01:00
Felix Hammerl 82ee9a3ed8 fix write ctrl 2013-12-04 16:33:10 +01:00
Tankred Hase 0eecbb0d20 add popover infos 2013-12-04 14:47:04 +01:00
Felix Hammerl 32d0c08822 reactivate tests for mail list ctrl 2013-12-04 14:15:12 +01:00
Tankred Hase b4aa3a5493 fix popover size on init 2013-12-04 11:50:20 +01:00
Tankred Hase c41eb1337f fix transition 2013-12-04 11:18:31 +01:00
Tankred Hase 8e0d0ff4fd fix scrolling 2013-12-03 21:07:28 +01:00
Tankred Hase d23bdbc172 fix login existing and do scope.apply after email dao sync 2013-12-03 20:25:39 +01:00
Tankred Hase 58ed8928e6 integrate new email-dao into controllers and first attempt at starting app 2013-12-03 19:21:50 +01:00
Tankred Hase 6f1c59f1fe implement popover
remove lightbox on wrong passphrase input

show key fingerprint in popup
2013-12-03 14:56:32 +01:00
Tankred Hase e316a89d24 focus on editor when clicking on body element 2013-11-27 11:57:15 +01:00
Tankred Hase 33d29971b3 upgrade to angular 1.2.2 2013-11-26 19:06:37 +01:00
Felix Hammerl 81a56a77c0 [WO-57] Introduce encrypted outbox
The outbox is encrypted using the sender's keys. Prior
to sending, every mail is buffered in the outbox.
2013-11-26 13:37:22 +01:00
Tankred Hase e13268625f Review invite sending and release to TEST channel 2013-11-21 15:36:16 +01:00
Tankred Hase e71ee471f6 refactor outbox code into business object 2013-11-19 16:14:48 +01:00
Tankred Hase 6b8dd9bc76 fix margins and line height in reader and add > to before replies 2013-11-18 19:53:31 +01:00
Tankred Hase d892b2c67f [WO-121] review strings 2013-11-18 17:44:59 +01:00
Tankred Hase 8bbb7d7d34 Call () in onError handler to cleanup controller 2013-11-14 23:57:06 +01:00
Tankred Hase 4b8f4ee7df [WO-116] Integrate error handler into all conrtollers 2013-11-14 20:44:57 +01:00
Tankred Hase 5be2d89fab merged new error handlers with controller unti tests 2013-11-14 20:13:27 +01:00
Tankred Hase 61b02c8175 Merge remote-tracking branch 'origin/dev/unittest' 2013-11-14 19:30:14 +01:00
Felix Hammerl 8fb822bdea [WO-36] add minimally invasive controller unit tests 2013-11-14 17:44:29 +01:00
Tankred Hase 88b489718b also mark local email model as anwsered 2013-11-14 08:34:03 +01:00
Felix Hammerl 6294f8998c Merge remote-tracking branch 'origin/dev/mark-answered' 2013-11-13 18:59:44 +01:00
Felix Hammerl abe4380a24 Merge remote-tracking branch 'origin/dev/login-error' 2013-11-13 18:59:25 +01:00
Tankred Hase d544b2cf3d [WO-112] Mark replied to emails as answered 2013-11-13 17:05:21 +01:00
Tankred Hase d779ef679d [WO-92] fix scrolling bus in mail list 2013-11-13 14:10:43 +01:00
Tankred Hase 8ac1882280 [WO-111] add error hadnling to login.js 2013-11-12 20:08:30 +01:00
Tankred Hase 6ea815221c add another newline bfore reply text 2013-11-12 17:32:02 +01:00
Felix Hammerl 046c0271c8 Merge branch 'dev/WO-100' 2013-11-11 18:04:33 +01:00
Felix Hammerl 6ea15083d5 remove redundant closing of modal dialog 2013-11-11 16:57:21 +01:00
Tankred Hase 644b9757ee change strings 2013-11-11 16:22:30 +01:00
Tankred Hase c397210c24 Merge remote-tracking branch 'origin/dev/WO-84' 2013-11-11 16:16:28 +01:00
Tankred Hase cfd6eec6d3 show error msg when trying to invite 2013-11-11 16:11:06 +01:00
Felix Hammerl 9078a0ce51 [WO-84] confirm deletion from trash 2013-11-11 15:53:34 +01:00
Tankred Hase 691e434c49 login initial foxed 2013-11-11 13:28:05 +01:00
Tankred Hase f7d55dd083 deactivate attachments button disabled and close nav with escape 2013-11-09 13:44:06 +01:00
Tankred Hase ba807ff80f set selected to undefined if email is empty 2013-11-09 13:33:37 +01:00
Tankred Hase b22b234653 typo 2013-11-09 12:28:12 +01:00
Tankred Hase f450e96e2d minor cleanup 2013-11-09 12:27:33 +01:00
Tankred Hase 415c0abbff do silent auto update on each startup 2013-11-09 00:30:45 +01:00
Tankred Hase a49669bd2c refactor account 2013-11-08 23:53:33 +01:00
Tankred Hase c5aadc9c01 add comment 2013-11-08 23:36:36 +01:00
Tankred Hase 342105cb4c refactor mail list 2013-11-08 23:31:20 +01:00
Tankred Hase a82c2ca20a refactor read conrtoller to use global state 2013-11-08 22:05:08 +01:00
Tankred Hase 866ebbeac4 refactor writer to use state scope 2013-11-08 21:55:08 +01:00
Tankred Hase 28a109bb07 create dialog and start cleanup of controller code using scope chain 2013-11-08 21:35:30 +01:00
Tankred Hase a59229364e check for update everytime window open again... not just in background page 2013-11-08 19:08:34 +01:00
Tankred Hase 7cbc185d93 [WO-72] fix focus directive when opening writer mode to focus on the correct input 2013-11-07 20:00:36 +01:00
Tankred Hase 6e144a23e1 use angular.element instead of jquery for markup clean 2013-11-07 14:50:32 +01:00
Tankred Hase 2b85d823eb review account and fix minor bugs 2013-11-06 17:19:39 +01:00
Felix Hammerl e44e32869e [WO-56] display account information 2013-11-06 16:34:28 +01:00
Tankred Hase 563a16d632 cleanup text input to content editable to prevent markup injection 2013-11-06 08:36:22 +01:00
Tankred Hase 4e6f9b9bbf [WO-64] fix newline in reader and text parser in writer 2013-11-05 22:33:19 +01:00
Felix Hammerl c0203bb1f6 [WO-87][WO-89] automated sync and notification on incoming email 2013-11-05 16:55:17 +01:00
Tankred Hase 0cefc08fa3 implement recipient key validation while typing 2013-11-05 09:04:37 +01:00
Tankred Hase 7e2c9adbca [WO-73] remove red border on passphrase change 2013-11-04 15:56:27 +01:00
Tankred Hase 24f97db09e implement feedback on keygen and login 2013-11-04 14:20:14 +01:00
Tankred Hase f2d380d6d5 fix html parsing in write 2013-10-29 19:57:49 +01:00
Tankred Hase b20ab9790c refactor files for transform transition for mobile
use prototypical inheritance by invoking parent functions in child scopes
2013-10-27 13:03:13 +01:00
Tankred Hase b0b5c0ab4a Merge remote-tracking branch 'origin/delete_async' 2013-10-24 19:40:32 +02:00