This change adds filter filters to the calendar sync options:
1. Declined events
2. Canceled events
3. Color Label filtering
4. Focus Time event filtering
5. Working Location event filtering
6. All Day Event filtering
This changes also inverts the menu for teh sync black list so that is
now a white list. The underlying prefs variables have not changed, just
how the interface displays them so existing user settings will carry
over.
The color label filtering is more useful on calendars from Google
Workspace Calendars that actually have named colors. There is no way
that I can find to access the names of the colors to show to the user,
but it can still be useful to tag some events that you don't want synced.
In addition to the color filters, Google Workspace Calendar has extended
parameters called Focus Time and Working Location. Working location
appears as an all day event every day and if you use the Focus Time as a
Calendar block, your calendar may be filled with these events. For my
work calendar these two event types choke out the "real" events, so it
is nice to filter them.
Infer capabilities from the incoming FitData message (as test/workaround, we're not sure if the field we're using is the correct one).
Use the CapabilitiesDeviceEvent instead of the hardcoded ConfigurationMessage instanceof check to call completeInitialization() in GarminSupport.
Also centralize the generation of the capabilities-related DeviceEvent in GarminCapability as they are used both in ConfigurationMessage as in FitLocalMessageHandler now.
This commit does not override the default fetching of activity data, which is still phone-initiated, but adds support for watch-initiated sync as well (typically upon connecting).
Also change the order of the messages exchanged upon connection to mimic logs of official app.
Also remove some status messages where the outgoing message is already a status.
Also send the status "app in foreground" so that the watch can initiate the synchronization.