package Ġcom . roll cake . native _ data _ communication Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ Ċ import Ġio . flutter . app . Flutter Activity Ċ import Ġio . flutter . plugins . Generated Plugin Regist r ant Ċ import Ġio . flutter . plugin . common . Method Channel Ċ import Ġandroid . os . Battery Manager Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . content . Context Wrapper Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Build . VERSION _ CODES Ċ import Ġandroid . os . Build . VERSION ĊĊĊ Ċ class ĠMainActivity Ġ: ĠFlutter Activity () Ġ{ ĊĠĠĠ Ġprivate Ġval ĠCHAN NEL Ġ= Ġ" samples . flutter . dev / battery " ĊĠĠĠ Ġprivate Ġval ĠCHAN NEL _ INFO Ġ= Ġ" samples . flutter . dev / info " ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠGenerated Plugin Regist r ant . register With ( this ) ĊĊĊĠĠĠĠĠĠĠ ĠMethod Channel ( flutter View , ĠCHAN NEL ). set MethodCall Handler Ġ{ Ġmethod Call , Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( method Call . method Ġ== Ġ" get Battery Level ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbattery Level Ġ= Ġget Battery Level () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( battery Level Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ( battery Level ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . error (" UN AVAILABLE ", Ġ" Battery Ġlevel Ġnot Ġavailable .", Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . not Implemented () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠMethod Channel ( flutter View , CHANNEL _ INFO ). set MethodCall Handler { call Ġ, Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( call . method Ġ== Ġ" getInfo ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġos Info Ġ= Ġget Info () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . success ( os Info ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . not Implemented () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Info (): ĠAny Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġos Ġ= ĠStringBuffer () ĊĠĠĠĠĠĠĠ Ġos . append ( Build . BOARD Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . BOOT LOAD ER Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . B RAND Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . DEVICE Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . DISPLAY Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . MAN U FACT UR ER Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . PRODUCT Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . F ING ER PRINT Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . HARD WARE Ġ+ "\ n ") ĊĠĠĠĠĠĠĠ Ġos . append ( Build . TAGS Ġ+ "\ n ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġos . toString (); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Battery Level (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġbattery Level Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġif Ġ( VERSION . SDK _ INT Ġ>= ĠVERSION _ CODES . LO L LI POP ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbattery Manager Ġ= Ġget System Service ( Context . B ATTER Y _ SERVICE ) Ġas ĠB attery Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbattery Level Ġ= Ġbattery Manager . getInt Property ( Battery Manager . B ATTER Y _ PROPERTY _ CAP ACITY ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠContext Wrapper ( application Context ). register Receiver ( null , ĠIntent Filter ( Intent . ACTION _ B ATTER Y _ CHANGED )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbattery Level Ġ= Ġintent !!. getInt Extra ( Battery Manager . EXTRA _ LEVEL , Ġ- 1 ) Ġ* Ġ 1 0 0 Ġ/ Ġintent . getInt Extra ( Battery Manager . EXTRA _ SCALE , Ġ- 1 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbattery Level ĊĠĠĠ Ġ} Ċ } Ċ