[ https://issues.apache.org/jira/browse/CB-4519?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Mike Billau reassigned CB-4519: ------------------------------- Assignee: Mike Billau (was: Filip Maj) > "batterylow" and "batterycritical" may never happen because of exact level > check > -------------------------------------------------------------------------------- > > Key: CB-4519 > URL: https://issues.apache.org/jira/browse/CB-4519 > Project: Apache Cordova > Issue Type: Bug > Components: CordovaJS, Plugin Battery Status > Affects Versions: 2.9.0 > Reporter: Peter > Assignee: Mike Billau > > The battery JavaScript code fires events when charge reaches some threshold > percentages 20 and 5: > {code} > if (level === 20 || level === 5) { > if (level === 20) { > cordova.fireWindowEvent("batterylow", info); > } > else { > cordova.fireWindowEvent("batterycritical", info); > } > } > {code} > But this logic makes an assumption that the level will at some point be > *exactly* 20 or 5. It is not a valid assumption. AFAIK there is no guarantee > that the device reports absolutely every percentage point 0-100, so if by bad > luck the device reports levels 25,22,19,16... then clearly level===20 was > missed so in this scenario the "batterylow" event the user was expecting is > simply not going to happen. > Ref > http://stackoverflow.com/questions/10189218/detect-changing-battery-state-at-every-percentage-in-android > IMO the code should be checking when the previous lvel versus current level > has crossed over the threshold, rather checking the current level is exactly > equal to the threshold value. -- This message was sent by Atlassian JIRA (v6.1#6144)