BimmerGestalt / AAIdrive

Implementations of some Android Auto features as unofficial IDrive apps
MIT License
541 stars 90 forks source link

Calendar isn't interactive on ID4 #507

Closed hufman closed 2 years ago

hufman commented 2 years ago

Split from #279, @masteralarm reports that the Calendar app is not interactive in their ID4 BMW. screenshot missing a selection cursor calendar logcat videos of official BMW calendars functioning

6i6i commented 2 years ago

I have the same problem here with the latest play store release (1.3.2 22.01.2022). It is not possible to select anything in the calendar app.:

20220201_172531

hufman commented 2 years ago

Thank you for the assistance and patience! I peeked in a network trace to see if there was anything I'm missing, and I only saw one missing setData that seemed to be unnecessary in my ID5+ car but might be needed in ID4. Please try out this build from this branch and see if it helps!

6i6i commented 2 years ago

Hi,

ok great. I'll try it out and report back. Thank you

drm87 commented 2 years ago

Good find, @hufman! The date selection seems to be working now 👍

Unfortunatly, when opening a date, no appointments are shown (just the default message "No appointments available"). In the app, my appointments are visible. Checked it with different calendars.

PXL_20220207_073306972.jpg PXL_20220207_073316652.jpg

hufman commented 2 years ago

Hmmm that's very interesting! I see that it does update the title of the DayView with the selected date, and so it should be using the same logic to find events in that day as finding the events to highlight each day in the month view. Thank you for the testing and patience!

hufman commented 2 years ago

That little fix has made it to the Play Store release, can anyone else with ID4 confirm if it helped them, and whether the Day View shows any information?

6i6i commented 2 years ago

Hi, I can confirm, that opening the DayView is now possible, but no Events are shown (like in the pictures from @masteralarm).

hufman commented 2 years ago

Can you try this debug build which enables some extra logging to Logcat? You should find some interesting logcat lines with the tag CalendarApp from when you navigate through the car's Calendar screens, and there should be stdout lines showing extra calendar search details (the changes show the expected output). I'd be curious if there are any clues there!

drm87 commented 2 years ago

I tested the debug version but could not find anything unusual in the logs. Anything in particular I should look for?

The most interesting location should be this where it constructs the found entries, I suppose: https://github.com/BimmerGestalt/AAIdrive/blob/49b9a193d71143199f4472133cf4c868ff3a36b8/app/src/main/java/me/hufman/androidautoidrive/carapp/calendar/views/CalendarDayView.kt#L79

But according to the logs, AAI finds the correct calendar entries. Could there be a problem with how the return value of the update() function is used? Or perhaps the data send to the car need to be structured differently for ID4?

hufman commented 2 years ago

Thank you for testing! Do you see the Log.i() calls in that function, in particular found ${events.size} that match the selected DayOfMonth with a non-zero found events.size? That function doesn't return anything, it sends the data directly to the car here. If it does appear to be getting there, then something in the format must be wrong, indeed. In my car, even with invalid data, it would at least show the events all starting at midnight, but hmmmm!

hufman commented 2 years ago

Please try the latest build: It uses a slightly more correct method (which matches what is used by BMW Calendar) to attach the icon ID to each day's appointment, which ID4 might require. There's also a lot of code in BMW Calendar to ensure that the day's appointments do not overlap, so try checking in any days with a single event as a base test.

drm87 commented 2 years ago

Great work, @hufman! Thank you! Calendar entries can now be successfully viewed. But the view itself is different from the Connected and Connected Classic apps. I will post a video of the behaviour as soon as possible.

hufman commented 2 years ago

I'm happy to hear that change worked! Were you able to record the difference in behavior you noticed? I did omit some features from the original BMW Calendar, such as the meeting attendees list and phone call functionality, because of the difficulty of parsing the data properly. Is that what you noticed, or something else?