package Ġcom . j ose lu is gs . mis l ug ares . UI . lin tern a Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . hardware . camera 2 . Camera AccessException Ċ import Ġandroid . hardware . camera 2 . Camera Manager Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . j ose lu is gs . mis l ug ares . R Ċ import Ġkotlinx . android . synt hetic . main . fragment _ lin tern a .* Ċ Ċ class ĠL intern a Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcamera Manager : ĠCamera Manager ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcamera Id : ĠString ĊĠĠĠ Ġprivate Ġvar Ġestado Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?, ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ lin tern a , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġinit UI () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Flash Available Ġ= Ġcontext ?. package Manager ?. has System Feature ( PackageManager . FEATURE _ CAMERA _ FRONT ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Flash Available !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow No Flash Error () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcamera Manager Ġ= Ġcontext ?. getSystem Service ( Context . CAMERA _ SERVICE ) Ġas ĠCamera Manager ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Id Ġ= Ġcamera Manager . camera IdList [ 0 ] ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠCamera AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlin tern a Imagen . setOnClickListener Ġ{ Ġswitch Flash Light (! estado ) Ġ} ĊĠĠĠĠĠĠĠ Ġlin tern a Switch . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> Ġswitch Flash Light ( isChecked ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSi Ġno Ġten emos Ġfal sh ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow No Flash Error () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġalert Ġ= ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠ Ġalert . setTitle (" O ops !") ĊĠĠĠĠĠĠĠ Ġalert . setMessage (" No Ġhay ĠFlash Ġen Ġeste Ġdispositivo ...") ĊĠĠĠĠĠĠĠ Ġalert . set Button ( DialogInterface . BUTTON _ POSITIVE , Ġ" OK ") Ġ{ Ġ_, Ġ_ Ġ-> ĠLog . i (" Lin tern a ", Ġ" Sin Ġlin tern a ") Ġ} ĊĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠEn ce demos ĊĠĠĠĠ Ġ* Ġ@ param Ġstatus ĠBoolean ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġswitch Flash Light ( status : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġestado Ġ= Ġstatus ĊĠĠĠĠĠĠĠ Ġlin tern a Switch . isChecked Ġ= Ġestado ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Manager . set Torch Mode ( camera Id , Ġstatus ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠCamera AccessException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( status ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlin tern a Imagen . setImage Resource ( R . drawable . ic _ lin tern a _ on ) ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlin tern a Imagen . setImage Resource ( R . drawable . ic _ lin tern a _ off ) ĊĠĠĠ Ġ} Ċ }