MCMrARM / revolution-irc

A modern Android IRC client. #revolutionirc on Libera.chat
GNU General Public License v3.0
548 stars 63 forks source link

Confusing loading state in Battery Saver #358

Open graciouselectric opened 4 months ago

graciouselectric commented 4 months ago

Dear developer,

I noticed that when I enable Battery Saver on Android 8.1, the indeterminate ProgressBars in the app are not properly shown. This is a known problem in Android API level <28, see e.g. this StackOverflow question. Battery Saver disables animations, also on progress bars on these versions. This is quite confusing because the loading state is not properly represented. It is fixed in later Android versions, where progress bars do appear and animate.

Looking at the code, indeterminate progress bars are created here:

className='io.mrarm.irc.DCCTransferListAdapter$ActiveTransferHolder', lineNumber=342
className='io.mrarm.irc.DCCTransferListAdapter$ActiveTransferHolder', lineNumber=358

To fix this issue, one can check ValueAnimator.areAnimatorsEnabled() and provide a different UI element, such as a text label, when animations are disabled.