Skip to content

Commit

Permalink
Merge pull request #13 from Freed-Wu/termux
Browse files Browse the repository at this point in the history
Add support for termux
  • Loading branch information
lambdalisue committed Mar 14, 2021
2 parents e40ef66 + 6d347e2 commit 91824e8
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
2 changes: 2 additions & 0 deletions autoload/battery.vim
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ function! s:get_available_backend() abort
return 'powershell'
elseif battery#backend#linux#is_available()
return 'linux'
elseif battery#backend#termux#is_available()
return 'termux'
endif
return 'dummy'
endfunction
Expand Down
37 changes: 37 additions & 0 deletions autoload/battery/backend/termux.vim
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
" Ref: https://wiki.termux.com/wiki/Termux-battery-status
let s:Job = vital#battery#import('System.Job')

function! s:termux_update() abort dict
if type(self.job) is# v:t_dict && self.job.status() ==# 'run'
return
endif
let data = []
let args = ['termux-battery-status']
let self.job = s:Job.start(args, {
\ 'on_stdout': funcref('s:on_stdout', [data]),
\ 'on_exit': funcref('s:on_exit', [self, data]),
\})
endfunction

function! s:on_stdout(buffer, data) abort
call extend(a:buffer, a:data)
endfunction

function! s:on_exit(backend, buffer, exitval) abort
let content = join(a:buffer, '')
let a:backend.is_charging = json_decode(content).status !=# 'NOT_CHARGING'
let a:backend.value = json_decode(content).percentage + 0
endfunction

function! battery#backend#termux#define() abort
return {
\ 'job': 0,
\ 'value': -1,
\ 'is_charging': -1,
\ 'update': funcref('s:termux_update'),
\}
endfunction

function! battery#backend#termux#is_available() abort
return executable('termux-battery-status')
endfunction

0 comments on commit 91824e8

Please sign in to comment.