Michal Novotny
05d0625b68
Mi Band 2: Implement multiple button actions
...
This enables option for multiple button actions according to the "Delay after button action". This broadcast is being sent to the intent
along with button_id extra identifying how many times have the pass been done.
By pass defined number of button presses is meant.
2017-09-10 23:02:13 +02:00
Quallenauge
851e47f550
Add support for EXRIZU K8 smartband.
...
The device is compatible to HPLUS protocol.
2017-09-10 22:57:32 +02:00
Daniele Gobbetti
6def9dc07e
Pebble: allow to translate quick actions sent to the watch
...
Fixes #789
2017-09-10 17:57:18 +02:00
Gabe Schrecker
6f702778f4
Support control of multiple media playback applications ( #807 )
...
* Added Lollipop only detection of the playing media package, using MediaSessionManager. Replicates funtionality of the Official Pebble client.
2017-09-10 15:17:21 +02:00
protomors
273c2ddbfd
NO.1 F1: Support for heart rate measurement.
2017-09-10 14:45:09 +02:00
protomors
918cc75f6c
NO.1 F1: fetch sleep data.
2017-09-09 18:12:39 +02:00
cpfeiffer
e9a68e70b5
Make Mi2 FetchOperation reusable
2017-09-09 00:02:30 +02:00
Andreas Shimokawa
3e05f8ff4a
Merge branch 'master' into background-javascript
2017-09-05 22:49:07 +02:00
Michal Novotny
fcf9be877a
Support for button actions on Mi Band 2 device ( #793 )
...
Implement button actions for MiBand 2
2017-09-05 22:37:41 +02:00
Andreas Shimokawa
f0a9c57937
Merge branch 'master' into background-javascript
2017-09-05 10:21:45 +02:00
Andreas Shimokawa
365fcace06
Fix merge
2017-09-05 10:20:37 +02:00
cpfeiffer
a93ace255b
Don't crash, don't queue a transaction twice!
...
Fixes #794
2017-09-04 23:39:40 +02:00
cpfeiffer
e44eb03698
Amazfit Bip: avoid sending weather info when not initialized
2017-09-04 23:23:51 +02:00
cpfeiffer
1ddea9268d
Amazfit Bip: request GPS fw version earlier
...
(to avoid recreation of DeviceAttributes because fw2 is sometimes available and sometimes not.)
2017-09-04 23:19:53 +02:00
Andreas Shimokawa
a911ba5423
Merge branch 'master' into background-javascript
2017-09-04 21:08:36 +02:00
Sami Alaoui
f6ce0c1a0e
Add initial support for Teclast H30
...
Scan and connection, battery level, firmware version, date and time sync
(along with some other currently hardcoded settings), notification
support, alarm support, and some more.
2017-09-04 20:59:09 +02:00
protomors
b8c5a44709
Removed interpolation of data samples. Added intensity column for activity chart.
2017-09-04 20:38:20 +02:00
protomors
22a15c631c
Notify user about failed operations.
2017-09-04 20:38:20 +02:00
protomors
ecd9964c5b
NO.1 F1: Fetch steps data.
2017-09-04 20:38:20 +02:00
cpfeiffer
f5934dfb3b
Don't crash when no firmware version available yet
2017-09-03 23:56:30 +02:00
cpfeiffer
55bf9ef784
Some logging
2017-09-03 23:51:20 +02:00
Daniele Gobbetti
d669d3b325
Make NoF1 compatible with background js branch
2017-09-03 17:09:19 +02:00
Daniele Gobbetti
bb962001a5
Merge branch 'master' into background-javascript
...
# Conflicts:
# app/src/main/java/nodomain/freeyourgadget/gadgetbridge/GBApplication.java
2017-09-03 16:49:27 +02:00
Andreas Shimokawa
cfc310692f
Amazfit Bip: Fix call notification with unknown caller
2017-09-03 14:37:32 +02:00
Andreas Shimokawa
a63dc4a018
Pebble: fix taking screenshots on Android 8.0
...
Closes #790
2017-09-03 14:12:41 +02:00
Andreas Shimokawa
f39d8cd2e2
Amazfit Bip: Use AlertCategory.Email for email
...
Somehow the custom icon for email no longer works with never firmwares
2017-09-02 23:25:53 +02:00
cpfeiffer
c468e7f521
Mi Bands+Bip: when an operation finishes, unset the gatt callback on the BtLEQeue
...
Otherwise it will continue to receive events until another transaction is being executed.
2017-09-02 22:49:58 +02:00
cpfeiffer
c91e14f644
Bip: some code deduplication
2017-09-02 21:45:56 +02:00
Andreas Shimokawa
eaf7b76715
Pebble: Try to support spotify
...
untested
#704
2017-09-01 23:47:03 +02:00
protomors
e7fff32fb8
Send more settings to device (with hardcoded values, for now).
...
Now bracelet should work correctly without ever connecting to native app.
2017-09-01 22:19:33 +02:00
protomors
c97136e4fe
Fixed wrong parameter. Time is set in 24-hour format.
2017-09-01 22:19:33 +02:00
protomors
f8473ac42d
Initial notifications support and some refactoring.
2017-09-01 22:19:33 +02:00
protomors
f5b8fada75
Initial NO.1 F1 support.
...
Works: connecting, writing user data, reading firmware version and battery charge, finding device.
2017-09-01 22:19:33 +02:00
Andreas Shimokawa
e839a2c6a3
Trim strings coming from DeviceInfoProfile (BLE).
...
On the Bip strings have trailing zeroes. Putting this in the Database results in a "BLOB"
2017-08-31 11:52:21 +02:00
Andreas Shimokawa
c627d690c7
Merge branch 'master' into background-javascript
2017-08-29 22:53:38 +02:00
Andreas Shimokawa
23fa37d99d
Amazfit Bip: get and display gps version
...
Currenty this is displayed as HR (heart rate firmware)
2017-08-29 22:16:59 +02:00
Andreas Shimokawa
74652397dd
Merge branch 'master' into background-javascript
2017-08-28 00:35:28 +02:00
Andreas Shimokawa
2eb25e7c4e
Amazfit Bip: Firmware installation screen improvements
...
- Try to improve firmware detection (older 0.0.8.xx firmwares were not detected)
- Whitelist GPS firmware that comes with firmware 0.0.8.xx
- show actual device icon istead of hardcoded Mi Band icon
2017-08-27 00:32:15 +02:00
Andreas Shimokawa
165dcf897b
Amazfit Bip: fix sending weather at specific times
2017-08-26 00:42:04 +02:00
Andreas Shimokawa
6d28b8232b
Amazift Bip: fix weather on FW 0.0.8.74, support condition text
2017-08-25 23:36:14 +02:00
License Bot
15f4ce2869
Update license headers
2017-08-25 11:25:01 +02:00
Andreas Shimokawa
013e270a9c
Add missing file :/
2017-08-25 01:17:34 +02:00
Andreas Shimokawa
4bb18b9795
Amazfit Bip: enable caller name display upon initialization
...
This is neccessary for newer firmwares (0.0.8.74 at least)
(I assume this command also exists on Mi2, hope it is true :D)
2017-08-25 01:04:36 +02:00
Andreas Shimokawa
12d9b7812f
Amazfit Bip: Initial experimental firmware update support
...
USE AT YOUR OWN RISK:
NOTE: During update your device is named a Mi Band
1) Flash .gps (installation will take a while after transfer)
2) Flash .res
3) Flash .fw (device will reboot)
4) Gadgetbridge wont notice that update was successfull, known bug.
2017-08-25 00:21:47 +02:00
Andreas Shimokawa
ebc1cedf55
damn typo
2017-08-23 23:12:44 +02:00
Andreas Shimokawa
a398f33cb8
Mi Band2: do not misuse ALERT_LEVEL_ constants, use AlertCategory enum
2017-08-23 23:04:40 +02:00
Andreas Shimokawa
f1d252c7ee
Disable appmessage handler for healthify and trekvolle
2017-08-22 20:14:41 +02:00
Andreas Shimokawa
f4e11c8cb3
Merge branch 'master' into background-javascript
2017-08-22 20:13:20 +02:00
Andreas Shimokawa
4c8728c78f
Amazfit Bip: Support app icons in notifications
2017-08-21 23:47:47 +02:00
Andreas Shimokawa
fdcc51cb98
Amazfit Bip: Support sending notification body, not only title
2017-08-20 23:58:41 +02:00
Andreas Shimokawa
1eff950bde
Amazfit Bip: Support some weather icons
2017-08-19 23:49:19 +02:00
Andreas Shimokawa
1f6634374d
Amazfit Bip: send weather for today and tomorrow (high and lows)
...
TODO: convert condition codes
2017-08-19 20:58:13 +02:00
Andreas Shimokawa
b19cf85a12
Amazfit Bip: support E-Mail icon and do also send notifications from unknown sources
2017-08-18 16:21:54 +02:00
Daniele Gobbetti
d00b5a5d5d
Merge branch 'master' into background-javascript
2017-08-18 12:15:01 +02:00
Andreas Shimokawa
cd5af1e66a
Amazfit Bip: implement find lost device by simulating a phone call from "Gadgetbridge"
2017-08-16 20:55:20 +02:00
Translation Bot
7108dd7b88
Amazfit Bip: Implement support for rejecting calls
...
Taking calls does not work with recent Android versions, I guess we need to push the button in the notification :(
2017-08-15 17:24:16 +02:00
Andreas Shimokawa
80dce95372
Inital Amazfit Bip support
...
Support is almost on Mi Band 2 level.
What does not work yet:
- flashing firmware files
- taking or rejecting phone calls
- syncing GPS tracks
- sending weather
- notification only include title, not a body
- unknown notification's text is not forwarded to the watch at all (same on Mi Band 2 #754 )
2017-08-13 16:31:11 +02:00
Andreas Shimokawa
b25febf0e5
Pebble: LOG stacktrace when connection fails
2017-08-12 00:18:15 +02:00
Andreas Shimokawa
6916beabed
Pebble: fix wrong uuid being passed from protocol to js
2017-08-02 23:09:43 +02:00
Andreas Shimokawa
ceec76b4f6
Pebble: preparations for js appmessage ack/nack callbacks
2017-08-01 00:03:28 +02:00
Andreas Shimokawa
30d6b96432
Merge branch 'master' into background-javascript
2017-07-30 23:26:05 +02:00
Andreas Shimokawa
c2af2dd15c
Pebble: Pass booleans from Javascript Appmessage as such and convert to int16 later when sending to pebble
...
https://developer.pebble.com/guides/communication/using-pebblekit-js/#type-conversion
2017-07-28 23:54:29 +02:00
Daniele Gobbetti
f6946c4402
Merge branch 'master' into background-javascript
2017-07-24 23:47:15 +02:00
José Rebelo
f7abe2d4a3
Mi Band 2: Inactivity Warnings
2017-07-17 20:25:52 +02:00
Andreas Shimokawa
eb7e635cdc
Merge branch 'master' into background-javascript
2017-07-15 23:07:46 +02:00
José Rebelo
34bd2ed9cc
Mi Band 2: Do Not Disturb
2017-07-15 21:17:29 +02:00
cpfeiffer
01d3a3a7be
Mi Band 2: set goal notification also in phase2Initialize()
2017-07-15 21:15:42 +02:00
José Rebelo
ceb82f3474
Mi Band 2: Goal notification
2017-07-15 21:14:25 +02:00
Carsten Pfeiffer
377e999067
Merge branch 'master' into mi2-display-items
2017-07-13 23:26:25 +02:00
José Rebelo
6c95a9fcb9
Mi Band 2: Rotate wrist to switch info
2017-07-13 23:20:11 +02:00
José Rebelo
2c0b105aa6
Mi Band 2: Display item settings
2017-07-12 14:59:14 +01:00
João Paulo Barraca
e97f4d3909
HPlus: set not worn when charging
2017-05-31 15:20:20 +01:00
freezed-or-frozen
9b5c1b91c0
modify MiBandSUpport.handleSensorData() to convert raw values in acceleration values
2017-05-30 23:11:59 +02:00
Andreas Shimokawa
05a4486277
Pebble 2/LE: try to improve pairing results by setting another unknown flag
...
This might help with "bad pairing" where a pebble wont connect anymore after toggling bluetooth on the watch
A workaround was to scan bluetooth before connecting after toggling bluetooth on the watch
2017-05-28 23:43:37 +02:00
Pavel Motyrev
3a55c67b9e
Missed delimiter
2017-05-23 18:25:07 +02:00
João Paulo Barraca
4c7d6d4a10
HPlus: remove debug messages
2017-05-22 23:29:19 +01:00
João Paulo Barraca
bd754b4130
HPlus: Start detecting band not worn
2017-05-22 23:19:43 +01:00
João Paulo Barraca
013cbf139a
Merge branch 'master' of https://github.com/Freeyourgadget/Gadgetbridge
2017-05-22 23:14:08 +01:00
João Paulo Barraca
759b9c81a3
HPlus: Fix Unicode handling
2017-05-22 23:14:05 +01:00
cpfeiffer
5e079bb480
Pull out useful code from LiveviewIOThread into BtClassicIoThread
2017-05-19 22:27:50 +02:00
João Paulo Barraca
845869e25e
HPlus: Fix intensity calculation without continuous connectivity
2017-05-19 10:39:21 +01:00
cpfeiffer
07f4d3148a
Also reset the last package counter when doing a second round
...
See #691
2017-05-15 23:11:52 +02:00
cpfeiffer
e4faabeca3
Fix NPE
...
Closes #691
2017-05-15 19:34:33 +02:00
cpfeiffer
0e4b9a4eb8
Mi2: Keep fetch activity data until data is from today
...
When the fetch operation finishes successfully, double check if
the last received data is from today. If it is older, fetch again.
Closes #611
2017-05-15 00:38:26 +02:00
Andreas Shimokawa
b31a6a5db9
Pebble: Fix wrong timestamps with Morpheuz running on Firmware >=3
...
Fixes #689
2017-05-13 22:18:56 +02:00
Andreas Shimokawa
6d54cfab88
Merge branch 'master' into background-javascript
2017-05-12 22:16:11 +02:00
Andreas Shimokawa
a1690700f4
Revert "Refactor notification management"
...
This reverts commit cede8a0826
.
2017-05-10 22:26:02 +02:00
Andreas Shimokawa
f9c70714b8
revert all unrelated changes done in background-javascript branch
2017-05-09 14:42:19 +02:00
Andreas Shimokawa
3751273cd0
Merge branch 'master' into background-javascript
2017-05-09 14:04:33 +02:00
Andreas Shimokawa
bbbb9dd448
Pebble: do not start calendar event listener at all when calendar access is denied
...
Fixes #678
2017-05-09 12:32:00 +02:00
Andreas Shimokawa
805a38ae3c
Merge branch 'notification-refactor'
2017-05-08 22:22:34 +02:00
João Paulo Barraca
d73d4b3a13
HPlus: Handles missing phone number. Fixes #675
2017-05-05 22:17:52 +01:00
João Paulo Barraca
8a39d8b2eb
HPlus: Detect Zeband Plus Unicode Support
2017-05-04 14:16:21 +01:00
João Paulo Barraca
497f9a6658
HPlus: Handle SW Version message from Zeband Plus
2017-05-04 13:47:32 +01:00
Andreas Shimokawa
15102d525b
Merge branch 'master' into notification-refactor
2017-04-29 01:27:09 +02:00
Daniele Gobbetti
cede8a0826
Refactor notification management
...
- centralize the logic for skipping over unwanted notifications
- use *Compat methods wherever possible
- use unique and persistent ID (update notifications)
- switch to using BigText style by default (since we can now update existing notifications)
- for Pebble: delete and reinsert notification as updating is not possible
2017-04-28 18:03:19 +02:00
João Paulo Barraca
69d215cb99
HPlus: Improve intensity calculation based on Tanaka et al, 2001
2017-04-27 00:58:36 +01:00
João Paulo Barraca
166695f00a
HPlus: Handle more frame types
2017-04-27 00:24:03 +01:00
João Paulo Barraca
c9da7548ed
HPlus: Improve reconnection to device
2017-04-27 00:24:03 +01:00
João Paulo Barraca
58cb73a756
HPlus: Improve transliteration
2017-04-27 00:24:03 +01:00
License Bot
8af9054f2d
Update license headers
2017-04-26 00:14:25 +02:00
Daniele Gobbetti
534eb385f7
Pebble: manage the dictation session initialization.
...
Currently we inform the watch that GadgetBridge doesn't support voice input.
2017-04-24 21:32:51 +02:00
Andreas Shimokawa
bc4503c8bf
Pebble: Add option for Calender Timeline sync (default on)
2017-04-24 12:39:40 +02:00
Daniele Gobbetti
d570d188a2
Remove the low battery notification if a normal battery level is reported.
2017-04-24 09:53:48 +02:00
cpfeiffer
9ed8004a69
Fix rare NPE
2017-04-22 23:56:04 +02:00
cpfeiffer
1e4351b03a
Silence lint warning
2017-04-21 22:23:50 +02:00
João Paulo Barraca
70663af35a
HPlus: Support reconnection when messages are to be sent.
2017-04-21 19:09:48 +01:00
Andreas Shimokawa
965ba190a6
Calendar Sync: Fix location not being passed to device code
...
Now location is displayed on the pebble ;)
2017-04-21 10:51:06 +02:00
cpfeiffer
696dc1f08d
Attempt to fix reconnection not happening in some cases
...
Fixes #530
2017-04-20 23:01:32 +02:00
Andreas Shimokawa
bc368a788b
Pebble: fix protocol encoding bugs of timeline pin, add location
2017-04-20 21:40:06 +02:00
Andreas Shimokawa
8385d8079a
Pebble: allow encodeTimeLinePin() to encode other attributes than just title and subtitle
...
Unfortunately I did'nt find a way yet to add a description to the calendar pin (layout 2)
2017-04-20 20:09:29 +02:00
Andreas Shimokawa
86392dbf06
Merge branch 'master' into background-javascript
2017-04-20 14:34:32 +02:00
Andreas Shimokawa
5717379aec
Pebble: change timeline layout to "calendar" for calendaar events and display end time
2017-04-20 10:40:28 +02:00
Andreas Shimokawa
7ee20348db
Only sync Calendar and Sunrise/Sunset on devices that support it
2017-04-19 21:51:23 +02:00
Andreas Shimokawa
a28d27839f
Merge branch 'master' into feature-calendarsync
2017-04-19 20:19:15 +02:00
Daniele Gobbetti
18157daf46
Ensure that the Notification listener service gets restarted if crashed.
...
This change adds an additional service that checks the status of the NotificationListenerService, and restarts it if it's stale/crashed.
Crashes happen mostly during development, but were reported also by users.
2017-04-19 13:23:13 +02:00
João Paulo Barraca
9decb7788b
HPlus: use HR translated string
2017-04-18 10:51:49 +01:00
João Paulo Barraca
9f0d260e7a
HPlus: Improve connection process ( #651 )
...
* Clean HPlus services and characteristics
* Improve connectivity
2017-04-18 10:47:28 +01:00
Andreas Shimokawa
35efa30c4b
Calendar Sync: Only enable calendar broadcast receiver when device is initialized
...
This excludes it from any auto connect logic.
We are now save to sync the calendar once in contructor.
2017-04-17 21:09:29 +02:00
Daniele Gobbetti
1e231e6129
Move the Calendar receiver code in the proper place.
2017-04-17 20:33:39 +02:00
Andreas Shimokawa
9970f8017f
Calendar sync: save sync status to db to avoid leakage of deleted events
...
We now have a per device database that tracks sync states for calendar entries
We still cannot track changed calendar entries that where changed while we were disconnected
2017-04-16 19:37:43 +02:00
Daniel Hauck
ccb58f0f3c
Basic calendar sync using additional receiver ( #654 )
2017-04-16 12:34:37 +02:00
cpfeiffer
16af0724dd
Replace method pair() with connectFirstTime()
...
Should help with #642 for hplus which did not implement pair()
2017-04-12 21:35:40 +02:00
João Paulo Barraca
6ed40a21c6
HPlus: convert text to either GB2312 or UTF-8
2017-04-12 14:29:24 +01:00
Andreas Shimokawa
810ba5419b
Pebble: reenable battery level reporting, with percentage drom datalog
2017-04-09 17:05:09 +02:00
cpfeiffer
1a88858c6f
Fix some findbugs findings
2017-04-09 01:09:43 +02:00
Andreas Shimokawa
f658059d20
Pebble: really disable battery reporting
2017-04-08 23:19:07 +02:00
Daniele Gobbetti
5c0c5581bb
Merge branch 'master' into background-javascript
...
# Conflicts:
# app/src/main/assets/app_config/js/gadgetbridge_boilerplate.js
# app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/AbstractDeviceCoordinator.java
# app/src/main/java/nodomain/freeyourgadget/gadgetbridge/devices/DeviceCoordinator.java
2017-04-08 21:16:01 +02:00
Daniele Gobbetti
16cff936d3
Pebble: do not show the battery state in the control center
...
- the mapping voltage<->percentage is probably family dependent (or perhaps even device dependent!)
- the values are often outdated by more than one hour, this could yield to issue reports which are false positive
2017-04-08 18:46:39 +02:00
cpfeiffer
202ae53d71
Ensure that a newly discovered and initialized device will be displayed
...
Fixed a race condition between ACTION_DEVICE_CHANGED event handlers:
- DeviceCommunicationService added the device to the database
- DeviceManager notified the views to be refreshed
When the latter happened before the former, thew new device would not
be displayed.
=> Let DeviceManager do both.
2017-04-07 21:17:37 +02:00
cpfeiffer
d2053b32bf
Small cleanup
2017-04-06 23:58:50 +02:00
Alberto
f3edf7559d
HPlus: added low battery information ( #638 )
...
HPlus: Notification of low battery
I added the notification of low battery HPlus ... specifically, I used
the HPlusConstants.DATA_STATS event on hplusSupport
I also included the status of the device in the list of
gbdevice -> getDeviceInfos
2017-04-06 23:55:29 +02:00
Andreas Shimokawa
e4c7a921ea
Pebble: try to improve 70% to 60% battery level accuracy
2017-04-02 00:12:19 +02:00
Daniele Gobbetti
8fccbe3b69
Pebble: implement battery display in control center
...
- extract the millivolts reading from the analytics datalog message and map to percentage
- mapping is manually made and is possibly wrong, but the values are commented
- the values are sent once per hour and are delayed, this might make the reading really inaccurate on pebble time round watches
2017-03-31 18:23:02 +02:00
Andreas Shimokawa
562049296c
Pebble: fix datalogging
...
Was broken after 0.18.4
2017-03-30 23:01:40 +02:00
Andreas Shimokawa
b25bc66485
Allow Datalog handlers to return GBDeviceEvent[]
2017-03-28 09:51:06 +02:00
cpfeiffer
da9742fd67
Mi1: Attempt to recognize Mi1 model with hwVersion = 8
...
Closes #364
2017-03-20 23:25:42 +01:00
cpfeiffer
b97674ba85
Mi2: Display realtime steps in Live Activity #428
...
Thanks for the hint!
2017-03-20 23:01:28 +01:00
Andreas Shimokawa
06c89b508e
Merge branch 'master' into background-javascript
2017-03-16 18:01:51 +01:00
License Bot
6a842c52fa
Update license header in all java files.
2017-03-16 17:36:15 +01:00
cpfeiffer
d408be5ec8
Mi2: make text/icon notifications confiurable and version dependent
2017-03-15 00:26:39 +01:00
cpfeiffer
2d60beea1f
Mi2: added some more tested firmware/font versions
2017-03-14 22:59:48 +01:00
Alberto
6989ca9db3
Add privacy mode that hides the phone number ( #588 )
2017-03-14 21:45:36 +01:00
cpfeiffer
17ecee0cab
Mi2: initial support for text notifications and icons
...
See #560
2017-03-14 00:45:54 +01:00
cpfeiffer
8fc6dfeca7
Improved AlertNotificationProfile
...
AlertLevel, AlertCategory, Control Point
2017-03-14 00:45:54 +01:00
Andreas Shimokawa
33bf2994a9
Merge branch 'master' into background-javascript
2017-03-11 11:36:00 +01:00
Andreas Shimokawa
fe870ebc77
Move step goal generic, show proper sleep goal in weekly sleep goal
...
It is now also accessible via "About You" but still remains in the Mi Band Settings
(because it has to be setup initially by a "wizard")
2017-03-11 11:34:03 +01:00
Translation Bot
a14e14eeb9
Merge branch 'master' into background-javascript
2017-03-10 23:14:40 +01:00
Translation Bot
05a28cc580
Pebble: Fix screenshots for Android N
...
This was a regression only in master since we switched to SDK 25
This commit also fixes all other warnings with AbstractDeviceSupport.java
2017-03-10 23:10:40 +01:00
License Bot
e392fbfd80
Add license header to all java files.
2017-03-10 14:53:19 +01:00