by Ricardo Fernández Serrata
Shows time until 0% or 100%. More accurate and efficient than Android's built-in estimator, because it only checks the latest sample.
If you start the flow just before the level is about to change, the 1st estimation will be wrong. But all estimations after it will be accurate based on the most recent sample.
The following is an optimization that assumes abs(b1 - b0) = 1 always (generally, this is a correct assumption):
Replace this: D / abs(b1 - b0)
By this: D
Do it only if you are completely sure that your system makes Battery Level return an integer (most systems do this) AND your battery is healthy enough that always discharges/charges by 1% (Never "jumps" multiple levels. Only 1 at a time)
"Why is b0 the entire range?"
Please read this: groups.google.com/g/automate-user/c/yoVs-ZLVMLo
Rate and review within the app in the Community section.