Closed sunkup closed 5 months ago
For a better understandable User Interface the button should only be greyed out I think, and not be hidden totally. Or we just leave the button as it is and only validate the email input field for a syntactic correct email address. What do you think @sunkup ?
For a better understandable User Interface the button should only be greyed out I think, and not be hidden totally. Or we just leave the button as it is and only validate the email input field for a syntactic correct email address. What do you think @sunkup ?
Yes, I changed it, to the latter already - just forgot to update the text here :)
updated
I just found out, i needed to put my @gmail
adress in there.
I'm using custom email address (on different domain) for login to my gmail account everywhere.
When i put this in, only CardDav is loaded.
So i needed to specify the gmail domain address in order for this to work.
So I believe the validation should check, that the email address is on gmail domain. @rfc2822
I'm using custom email address (on different domain) for login to my gmail account everywhere.
What does that mean? Is the Google account your email address (in this case, you don't have a Gmail address as far as I know) or the Gmail address?
So I believe the validation should check, that the email address is on gmail domain. @rfc2822
I don't know, what when you use these Google-hosted business domains?
Shouldn't custom domains work as well? For example, if someone is using Google Workspace. Maybe it doesn't work for you because the organization is blocking the API access in some way @Gh61
When creating the Google account, you can select option to use your existing e-mail address as username:
I've created my personal account this way more than 10 year ago.
At first i had no gmail account, but after a few years, they made it mandatory, so they created {firstname}{lastname}@gmail.com
e-mail for me.
To this day I'm logging everywhere with the custom e-mail address and password. (The @gmail address and password is also working).
When I filled my custom e-mail address to the 'example@gmail.com' field, it worked, I approved the OAuth connection, but only CardDav TAB loaded. After some searching, I found this issue and tried to fill my alternative (true gmail) address. After that, the CALDAV and WEBCAL tabs are also present, and everything is working.
So I though, that @gmail domain is needed for this to work. This is my personal account, but your probably right about the Google Workspace, where you don't have the gmail adress at all. (I suppose as I have no experience with Google-hosted business profiles).
Maybe we can add as a warning somewhere in the manual? Seems to be such a specific case for adding something in the app...
When I filled my custom e-mail address to the 'example@gmail.com' field, it worked, I approved the OAuth connection, but only CardDav TAB loaded.
I am sorry to bump this thread, but this Problem still persists. I do not have a "alternative (true gmail) address" as @Gh61 mentioned in this post since I have a google workspace account.
Only the Address book is loaded :(
I'm dealing with this as well in 4.4.0.1 from f-droid.
Getting a 404 response from https://apidata.googleusercontent.com/caldav/v2/me@mydomain.com@gmail.com/user
It seems the previous code did:
val loginEmail =
if (userEmail.contains('@'))
userEmail
else
"$userEmail@gmail.com"
Which would allow custom domains, because it was checking only for @
.
And now at https://github.com/bitfireAT/davx5-ose/blob/main-ose/app/src/main/kotlin/at/bitfire/davdroid/ui/setup/GoogleLoginModel.kt#L60C9-L60C79
val emailWithDomain = StringUtils.appendIfMissing(email, "@gmail.com")
This is now checking for @gmail.com
as the ending instead of if there is a domain at all, which breaks all non-gmail domains.
The file structure moved around so I can't immediately figure out which version I need to downgrade to for this to work again. (edit: downgrading to 4.4.0 didnt fix it and 4.3.16 did, it appears that linked bit of new code is from the 4.4.0 release)
When using Google OAuth for authentication, at resource detection, DAVx5 sends the CalDAV propfind without local-part (ie. "dave@gmail.com") of email address. This affects only CalDAV. For CardDAV DAVx5 seems to keep the local-part.
Most likely the user forgets to add their email address in the GoogleLoginFragment before tapping "Sign in with Google".
We should ~hide the button from view~ show the email input field as erronous until the user has entered a valid email address.
Logs
``` 11:51:34.840 D app_time_stats: avg=1869.76ms min=14.89ms max=31517.32ms count=17 11:51:34.960 I [ui.setup.LoginActivity] Login fragment factory: at.bitfire.davdroid.ui.setup.NextcloudLoginFlowFragment$Factory@debec8 11:51:34.961 I [ui.setup.LoginActivity] Login fragment factory: at.bitfire.davdroid.ui.setup.DefaultLoginCredentialsFragment$Factory@3a85b61 11:51:35.016 D Fill dialog is enabled:false, hints=[password, passwordAuto, creditCardNumber, creditCardSecurityCode, creditCardExpirationDate] 11:51:35.399 E Unable to match the desired swap behavior. 11:51:35.399 D notifyViewEnteredForFillDialog:1073741825 11:51:35.406 D notifyViewEnteredForFillDialog:1073741826 11:51:35.415 D notifyViewEnteredForFillDialog:1073741827 11:51:35.415 D Triggering pre-emptive request for fill dialog. 11:51:35.431 D notifyViewEnteredForFillDialog:1073741828 11:51:35.432 D notifyViewEnteredForFillDialog:1073741832 11:51:35.432 D notifyViewEnteredForFillDialog:1073741838 11:51:35.432 D notifyViewEnteredForFillDialog:1073741839 11:51:35.433 D notifyViewEnteredForFillDialog:1073741824 11:51:35.524 D Compat change id reported: 163400105; UID 10191; state: ENABLED 11:51:35.536 I Flattened final assist data: 7136 bytes, containing 1 windows, 51 views 11:51:36.939 D app_time_stats: avg=110.30ms min=2.50ms max=1103.74ms count=13 11:51:37.095 D notifyViewEnteredForFillDialog:1073741838 11:51:37.120 D Hidding UI when view 1073741826 became invisible 11:51:37.123 D notifyViewVisibilityChangedLocked(): id=1073741826 isVisible=false 11:51:37.125 D Hidding UI when view 1073741827 became invisible 11:51:37.125 D notifyViewVisibilityChangedLocked(): id=1073741827 isVisible=false 11:51:37.940 D app_time_stats: avg=16.65ms min=11.56ms max=20.23ms count=60 11:51:38.110 W OnBackInvokedCallback is not enabled for the application. Set 'android:enableOnBackInvokedCallback="true"' in the application manifest. 11:51:38.230 D Compat change id reported: 289878283; UID 10191; state: DISABLED 11:51:38.411 D notifyViewVisibilityChangedLocked(): id=1073741825 isVisible=false 11:51:38.411 D notifyViewVisibilityChangedLocked(): id=1073741828 isVisible=false 11:51:38.411 D notifyViewVisibilityChangedLocked(): id=1073741832 isVisible=false 11:51:38.411 D notifyViewVisibilityChangedLocked(): id=1073741838 isVisible=false 11:51:38.411 D notifyViewVisibilityChangedLocked(): id=1073741839 isVisible=false 11:51:38.411 D notifyViewVisibilityChangedLocked(): id=1073741824 isVisible=false 11:51:39.659 D app_time_stats: avg=61.52ms min=1.35ms max=1207.91ms count=26 11:51:39.723 E Unable to match the desired swap behavior. 11:51:40.369 D endAllActiveAnimators on 0x733f0d6f6f90 (UnprojectedRipple) with handle 0x733f9d688bc0 11:51:43.875 W OnBackInvokedCallback is not enabled for the application. Set 'android:enableOnBackInvokedCallback="true"' in the application manifest. 11:51:43.896 E Unable to match the desired swap behavior. 11:51:43.966 E Unable to match the desired swap behavior. 11:51:44.028 D Compat change id reported: 78294732; UID 10191; state: ENABLED 11:51:44.075 W sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda17@1f313cf 11:51:44.121 I [network.HttpClient] Will set "User-Agent: DAVx5/4.3.12.1-gplay (2024/01/16; dav4jvm; okhttp/4.12.0) Android/14" for further requests 11:51:44.165 D tagSocket(117) with statsTag=0xffffffff, statsUid=-1 11:51:44.576 I [ui.setup.GoogleLoginFragment] Refresh token response: {"request":{"configuration":{"authorizationEndpoint":"https:\/\/accounts.google.com\/o\/oauth2\/v2\/auth","tokenEndpoint":"https:\/\/oauth2.googleapis.com\/token"},"clientId":"572459292235-l59l9634infh1sgh797ha0el43lr6e6e.apps.googleusercontent.com","nonce":"FJeVVRcG7YSK9Ha1eXvIjg","grantType":"authorization_code","redirectUri":"at.bitfire.davdroid:\/oauth2\/redirect","authorizationCode":"4\/0AfJohXlx3MT9o1mdmKm6K4EgdetpKR6F1RWrsY0zW79UV_Eg7zer20AMlNq0N6pwEU0wjQ","codeVerifier":"E7M60iFT-fgcnjfxI0TU77isuVEu7ZSjqS5Ljs9v4rGMFPN7_XABqkxMk7EH4Z9V5p04LUwEEVi2qmEdj7odJA","additionalParameters":{}},"token_type":"Bearer","access_token":"ya29.a0AfB_byDLB_9W8Dd_fyV-TOS6GBzGDtteT-4Jh99FRnfOCu5ZtOd1-wi6HJ1Joh2mKZgHled5iJD8hvwYWx_DnKN0005fTMOZUKDknc5sEF4RTIvl0sXjBte0P2G4IIs1dkbSE0Zs4i_x13DnOwjX9LCngDGl16eFDc6KaCgYKAXgSARISFQHGX2MiSbo14pN-gTt7S50Gkv8WRg0171","expires_at":1705405903573,"refresh_token":"1\/\/0ct2fZqnecA1JCgYIARAAGAwSNgF-L9Ird4w-zerh1EQ8WRIm7bzTX73qdsWEtetgUXj4ZDu36F-7uvxBEFkvZp5I_xHh5g86Rw","scope":"https:\/\/www.googleapis.com\/auth\/calendar https:\/\/www.googleapis.com\/auth\/carddav","additionalParameters":{}} 11:51:44.596 D [settings.SettingsManager] Looking up setting proxy_type 11:51:44.596 D [settings.SettingsManager] SharedPreferencesProvider: proxy_type = null 11:51:44.597 D [settings.SettingsManager] DefaultsProvider: proxy_type = -1 11:51:44.597 D [settings.SettingsManager] Looked up setting proxy_type -> -1 11:51:44.606 D [settings.SettingsManager] Looking up setting distrust_system_certs 11:51:44.607 D [settings.SettingsManager] SharedPreferencesProvider: distrust_system_certs = null 11:51:44.607 D [settings.SettingsManager] DefaultsProvider: distrust_system_certs = false 11:51:44.608 D [settings.SettingsManager] Looked up setting distrust_system_certs -> false 11:51:44.664 V Registering org/conscrypt/NativeCrypto's 288 native methods... 11:51:44.676 W Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (unsupported, reflection, allowed) 11:51:44.696 I [CustomCertStore] Using Conscrypt/2.5.2 for TLS 11:51:44.697 I [CustomCertStore] Enabled protocols: TLSv1, TLSv1.1, TLSv1.2, TLSv1.3 11:51:44.698 I [CustomCertStore] Enabled ciphers: TLS_AES_128_GCM_SHA256, TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_EMPTY_RENEGOTIATION_INFO_SCSV 11:51:44.921 I Loaded time zone names for "en_US" in 139ms (34ms in ICU) 11:51:44.961 W Cleared Reference was only reachable from finalizer (only reported once) 11:51:45.040 D app_time_stats: avg=28.24ms min=2.37ms max=491.63ms count=30 11:51:45.799 I [servicedetection.DavResourceFinder] Finding initial carddav service configuration 11:51:45.802 I [servicedetection.DavResourceFinder] Checking user-given URL: https://apidata.googleusercontent.com/caldav/v2/@gmail.com/user 11:51:45.856 D tagSocket(124) with statsTag=0xffffffff, statsUid=-1 11:51:45.966 W Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (unsupported, reflection, allowed) 11:51:46.022 V [network.HttpClient] --> PROPFIND https://apidata.googleusercontent.com/caldav/v2/@gmail.com/user h2 11:51:46.023 V [network.HttpClient] Depth: 0 11:51:46.025 V [network.HttpClient] User-Agent: DAVx5/4.3.12.1-gplay (2024/01/16; dav4jvm; okhttp/4.12.0) Android/14 11:51:46.027 V [network.HttpClient] Accept-Language: en-US, en;q=0.7, *;q=0.5 11:51:46.029 V [network.HttpClient] Content-Type: application/xml; charset=utf-8 11:51:46.030 V [network.HttpClient] Content-Length: 290 11:51:46.036 V [network.HttpClient] Host: apidata.googleusercontent.com 11:51:46.050 V [network.HttpClient] Connection: Keep-Alive 11:51:46.054 D app_time_stats: avg=5.46ms min=0.85ms max=18.24ms count=60 11:51:46.056 V [network.HttpClient] Accept-Encoding: gzip 11:51:46.058 V [network.HttpClient] 11:51:46.062 V [network.HttpClient]notFound
notFound
404. That’s an error.
The requested URL
11:51:47.566 V [network.HttpClient] --> END PROPFIND (198-byte body)
11:51:47.567 D [network.BearerAuthInterceptor] Authenticating request with access token
11:51:47.794 V [network.HttpClient] <-- 404 https://apidata.googleusercontent.com/.well-known/caldav (227ms)
11:51:47.796 V [network.HttpClient] content-type: text/html; charset=UTF-8
11:51:47.796 V [network.HttpClient] referrer-policy: no-referrer
11:51:47.797 V [network.HttpClient] content-length: 1579
11:51:47.798 V [network.HttpClient] date: Tue, 16 Jan 2024 10:51:48 GMT
11:51:47.799 V [network.HttpClient] alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
11:51:47.805 V [network.HttpClient]
11:51:47.807 V [network.HttpClient]
/.well-known/caldav
was not found on this server. That’s all we know. 11:51:47.220 V [network.HttpClient] <-- END HTTP (1579-byte body) 11:51:47.240 D [servicedetection.DavResourceFinder] Well-known URL detection failed EXCEPTION at.bitfire.dav4jvm.exception.NotFoundException: HTTP 404 at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:600) at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:582) at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.kt:699) at at.bitfire.dav4jvm.DavResource.propfind(DavResource.kt:508) at at.bitfire.davdroid.servicedetection.DavResourceFinder.getCurrentUserPrincipal(DavResourceFinder.kt:420) at at.bitfire.davdroid.servicedetection.DavResourceFinder.findInitialConfiguration(DavResourceFinder.kt:143) at at.bitfire.davdroid.servicedetection.DavResourceFinder.findInitialConfiguration(DavResourceFinder.kt:102) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1$1.invoke(DetectConfigurationFragment.kt:113) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1$1.invoke(DetectConfigurationFragment.kt:110) at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:52) at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:44) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:8) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:4) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:159) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) at kotlinx.coroutines.InterruptibleKt.runInterruptible(Interruptible.kt:43) at kotlinx.coroutines.InterruptibleKt.runInterruptible$default(Interruptible.kt:40) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1.invokeSuspend(DetectConfigurationFragment.kt:110) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) 11:51:47.242 I [servicedetection.DavResourceFinder] No principal found at user-given URL, trying to discover for domain apidata.googleusercontent.com 11:51:47.245 D [servicedetection.DavResourceFinder] Looking up SRV records for _caldavs._tcp.apidata.googleusercontent.com 11:51:47.248 W Access denied finding property "net.dns1" 11:51:47.249 W Access denied finding property "net.dns2" 11:51:47.249 W Access denied finding property "net.dns3" 11:51:47.249 W Access denied finding property "net.dns4" 11:51:47.298 D [util.DavUtils] Using Android 10+ DnsResolver 11:51:47.487 I [servicedetection.DavResourceFinder] Didn't find caldav service, trying at https://apidata.googleusercontent.com:443 11:51:47.489 D [util.DavUtils] Using Android 10+ DnsResolver 11:51:47.540 I [servicedetection.DavResourceFinder] Trying to determine principal from initial context path=https://apidata.googleusercontent.com/.well-known/caldav 11:51:47.545 V [network.HttpClient] --> PROPFIND https://apidata.googleusercontent.com/.well-known/caldav h2 11:51:47.547 V [network.HttpClient] Depth: 0 11:51:47.548 V [network.HttpClient] User-Agent: DAVx5/4.3.12.1-gplay (2024/01/16; dav4jvm; okhttp/4.12.0) Android/14 11:51:47.550 V [network.HttpClient] Accept-Language: en-US, en;q=0.7, *;q=0.5 11:51:47.553 V [network.HttpClient] Content-Type: application/xml; charset=utf-8 11:51:47.554 V [network.HttpClient] Content-Length: 198 11:51:47.558 V [network.HttpClient] Host: apidata.googleusercontent.com 11:51:47.559 V [network.HttpClient] Connection: Keep-Alive 11:51:47.561 V [network.HttpClient] Accept-Encoding: gzip 11:51:47.563 V [network.HttpClient] 11:51:47.564 V [network.HttpClient]404. That’s an error.
The requested URL
11:51:47.863 V [network.HttpClient] --> END PROPFIND (198-byte body)
11:51:47.863 D [network.BearerAuthInterceptor] Authenticating request with access token
11:51:47.998 V [network.HttpClient] <-- 404 https://apidata.googleusercontent.com/ (133ms)
11:51:47.999 V [network.HttpClient] content-type: text/html; charset=UTF-8
11:51:48.002 V [network.HttpClient] referrer-policy: no-referrer
11:51:48.007 V [network.HttpClient] content-length: 1561
11:51:48.009 V [network.HttpClient] date: Tue, 16 Jan 2024 10:51:48 GMT
11:51:48.010 V [network.HttpClient] alt-svc: h3=":443"; ma=2592000,h3-29=":443"; ma=2592000
11:51:48.013 V [network.HttpClient]
11:51:48.015 V [network.HttpClient]
/.well-known/caldav
was not found on this server. That’s all we know. 11:51:47.809 V [network.HttpClient] <-- END HTTP (1579-byte body) 11:51:47.824 W [servicedetection.DavResourceFinder] No resource found EXCEPTION at.bitfire.dav4jvm.exception.NotFoundException: HTTP 404 at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:600) at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:582) at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.kt:699) at at.bitfire.dav4jvm.DavResource.propfind(DavResource.kt:508) at at.bitfire.davdroid.servicedetection.DavResourceFinder.getCurrentUserPrincipal(DavResourceFinder.kt:420) at at.bitfire.davdroid.servicedetection.DavResourceFinder.discoverPrincipalUrl(DavResourceFinder.kt:401) at at.bitfire.davdroid.servicedetection.DavResourceFinder.findInitialConfiguration(DavResourceFinder.kt:162) at at.bitfire.davdroid.servicedetection.DavResourceFinder.findInitialConfiguration(DavResourceFinder.kt:102) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1$1.invoke(DetectConfigurationFragment.kt:113) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1$1.invoke(DetectConfigurationFragment.kt:110) at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:52) at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:44) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:8) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:4) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:159) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) at kotlinx.coroutines.InterruptibleKt.runInterruptible(Interruptible.kt:43) at kotlinx.coroutines.InterruptibleKt.runInterruptible$default(Interruptible.kt:40) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1.invokeSuspend(DetectConfigurationFragment.kt:110) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) 11:51:47.825 I [servicedetection.DavResourceFinder] Trying to determine principal from initial context path=https://apidata.googleusercontent.com/ 11:51:47.828 V [network.HttpClient] --> PROPFIND https://apidata.googleusercontent.com/ h2 11:51:47.829 V [network.HttpClient] Depth: 0 11:51:47.831 V [network.HttpClient] User-Agent: DAVx5/4.3.12.1-gplay (2024/01/16; dav4jvm; okhttp/4.12.0) Android/14 11:51:47.832 V [network.HttpClient] Accept-Language: en-US, en;q=0.7, *;q=0.5 11:51:47.833 V [network.HttpClient] Content-Type: application/xml; charset=utf-8 11:51:47.837 V [network.HttpClient] Content-Length: 198 11:51:47.839 V [network.HttpClient] Host: apidata.googleusercontent.com 11:51:47.841 V [network.HttpClient] Connection: Keep-Alive 11:51:47.843 V [network.HttpClient] Accept-Encoding: gzip 11:51:47.860 V [network.HttpClient] 11:51:47.862 V [network.HttpClient]404. That’s an error.
The requested URL
/
was not found on this server. That’s all we know. 11:51:48.019 V [network.HttpClient] <-- END HTTP (1561-byte body) 11:51:48.027 W [servicedetection.DavResourceFinder] No resource found EXCEPTION at.bitfire.dav4jvm.exception.NotFoundException: HTTP 404 at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:600) at at.bitfire.dav4jvm.DavResource.checkStatus(DavResource.kt:582) at at.bitfire.dav4jvm.DavResource.processMultiStatus(DavResource.kt:699) at at.bitfire.dav4jvm.DavResource.propfind(DavResource.kt:508) at at.bitfire.davdroid.servicedetection.DavResourceFinder.getCurrentUserPrincipal(DavResourceFinder.kt:420) at at.bitfire.davdroid.servicedetection.DavResourceFinder.discoverPrincipalUrl(DavResourceFinder.kt:401) at at.bitfire.davdroid.servicedetection.DavResourceFinder.findInitialConfiguration(DavResourceFinder.kt:162) at at.bitfire.davdroid.servicedetection.DavResourceFinder.findInitialConfiguration(DavResourceFinder.kt:102) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1$1.invoke(DetectConfigurationFragment.kt:113) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1$1.invoke(DetectConfigurationFragment.kt:110) at kotlinx.coroutines.InterruptibleKt.runInterruptibleInExpectedContext(Interruptible.kt:52) at kotlinx.coroutines.InterruptibleKt.access$runInterruptibleInExpectedContext(Interruptible.kt:1) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:44) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:8) at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Unknown Source:4) at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:78) at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext(Builders.common.kt:159) at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:1) at kotlinx.coroutines.InterruptibleKt.runInterruptible(Interruptible.kt:43) at kotlinx.coroutines.InterruptibleKt.runInterruptible$default(Interruptible.kt:40) at at.bitfire.davdroid.ui.setup.DetectConfigurationFragment$DetectConfigurationModel$start$1.invokeSuspend(DetectConfigurationFragment.kt:110) at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108) at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:584) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:793) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:697) at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:684) 11:51:48.224 D [settings.SettingsManager] Looking up setting contact_group_method 11:51:48.225 D [settings.SettingsManager] SharedPreferencesProvider: contact_group_method = null 11:51:48.226 D [settings.SettingsManager] DefaultsProvider: contact_group_method = null 11:51:48.227 D [settings.SettingsManager] Looked up setting contact_group_method -> no result 11:51:48.230 D notifyViewVisibilityChangedLocked(): id=1073741899 isVisible=true 11:51:48.233 D notifyViewVisibilityChangedLocked(): id=1073741900 isVisible=true 11:51:48.254 D notifyViewVisibilityChangedLocked(): id=1073741899 isVisible=true 11:51:48.255 D notifyViewVisibilityChangedLocked(): id=1073741900 isVisible=true 11:51:48.282 D notifyViewEnteredForFillDialog:1073741899 11:51:48.286 D notifyViewEnteredForFillDialog:1073741900 11:51:48.297 D app_time_stats: avg=10.62ms min=2.15ms max=262.18ms count=59 11:51:49.873 D app_time_stats: avg=121.31ms min=2.17ms max=1403.26ms count=12 ```