package Ġcom . example . test torch Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . hardware . Sensor Ċ import Ġandroid . hardware . Sensor Event Ċ import Ġandroid . hardware . Sensor EventListener Ċ import Ġandroid . hardware . Sensor Manager Ċ import Ġandroid . hardware . camera 2 . Camera Character istics Ċ import Ġandroid . hardware . camera 2 . Camera Manager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast ĊĊ Ċ class ĠMainActivity Ġ: ĠActivity () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġcamera Manager Ġ= Ġget System Service ( Context . CAMERA _ SERVICE ) Ġas ĠCamera Manager ĊĠĠĠĠĠĠĠ Ġval Ġsensor Manager Ġ= Ġget System Service ( Context . SENSOR _ SERVICE ) Ġas ĠSensor Manager ĊĠĠĠĠĠĠĠ Ġval Ġlight Sensor Ġ= Ġsensor Manager . getDefault Sensor ( Sensor . TYPE _ LIGHT ) ĊĠĠĠĠĠĠĠ Ġvar Ġlight Quantity Ġ= Ġ 0 f ĊĠĠĠĠĠĠĠ Ġvar Ġaccurate Quantity Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ ĠfindViewById ( R . id . flash light ToggleButton ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Manager . camera IdList . forEach Ġ{ Ġcamera Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcamera Character istics Ġ= Ġcamera Manager . get Camera Character istics ( camera Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġflash Available Ġ= Ġcamera Character istics . get ( Camera Character istics . FLASH _ INFO _ AVAILABLE ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( flash Available ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Manager . set Torch Mode ( camera Id , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Flash Ġnot Ġavailable ", ĠToast . LENGTH _ SHORT ). show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġlistener : ĠSensor EventListener Ġ= Ġobject Ġ: ĠSensor EventListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Sensor Changed ( event : ĠSensor Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlight Quantity Ġ= Ġevent . values [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Accuracy Changed ( p 0 : ĠSensor ?, Ġp 1 : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccurate Quantity Ġ= Ġp 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsensor Manager . register Listener ( listener , Ġlight Sensor , ĠSensor Manager . SENSOR _ DELAY _ UI ); ĊĠĠĠ Ġ} Ċ } Ċ