It appears that on Android 14 (API 34) the ContentResolver.isSyncPending(account, authority) API always returns true, regardless if a sync is actually pending.
It appears this happens once ContentResolver.setSyncAutomatically(account, authority, true) is called (even before any ContentResolver.requestSync calls).
The value does not change
even after a sync has run (AbstractThreadedSyncAdapter.onPerformSync has completed) or
ContentResolver.setSyncAutomatically(account, authority, false) is called.
The account settings UI also always shows the (non-animated) refresh indicator:
Check emails from Stefan with details.
It appears that on Android 14 (API 34) the
ContentResolver.isSyncPending(account, authority)
API always returnstrue
, regardless if a sync is actually pending.It appears this happens once
ContentResolver.setSyncAutomatically(account, authority, true)
is called (even before anyContentResolver.requestSync
calls).The value does not change
AbstractThreadedSyncAdapter.onPerformSync
has completed) orContentResolver.setSyncAutomatically(account, authority, false)
is called.The account settings UI also always shows the (non-animated) refresh indicator:
Did not find any issues on the Google issue tracker (if that's the right one?) or online, yet. Edit: better link.
User confirmed my observations on the emulator.
Quick fix in #952
Long-term fix is probably switching to WorkManager APIs. Looks like upcoming 2.9 release is a good fit.