actuallymentor-battery/app/modules/settings.js

48 lines
1.5 KiB
JavaScript

const Store = require( 'electron-store' )
const { log, confirm } = require( './helpers' )
const store = new Store( {
force_discharge_if_needed: {
type: 'boolean'
}
} )
const get_force_discharge_setting = () => {
// Check if force discharge is on
const force_discharge_if_needed = store.get( 'force_discharge_if_needed' )
log( `Force discharge setting: ${ typeof force_discharge_if_needed } ${ force_discharge_if_needed }` )
return force_discharge_if_needed === true
}
const toggle_force_discharge = () => {
const status = get_force_discharge_setting()
log( `Setting force discharge to ${ !status }` )
store.set( 'force_discharge_if_needed', !status )
}
// Update the force discharge setting
const update_force_discharge_setting = async () => {
try {
const currently_allowed = get_force_discharge_setting()
if( !currently_allowed ) {
const proceed = await confirm( `This setting allows your battery to drain to the desired maintenance level while plugged in. This does not work well in Clamshell mode (laptop closed with an external monitor).\n\nAllow force-discharging?` )
if( !proceed ) return false
}
// Toggle setting and refresh tray
toggle_force_discharge()
return true
} catch ( e ) {
log( `Error updating force discharge: `, e )
}
}
module.exports = {
get_force_discharge_setting,
toggle_force_discharge,
update_force_discharge_setting
}