/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ @ file : Requires Api ( 2 1 ) Ġ// ĠTODO ( b / 2 0 0 3 0 6 6 5 9 ): ĠRemove Ġand Ġreplace Ġwith Ġannotation Ġon Ġpackage - info . java Ċ Ċ package Ġandroidx . camera . camera 2 . pipe . compat Ċ Ċ import Ġandroid . hardware . camera 2 . Camera AccessException Ċ import Ġandroidx . annotation . Requires Api Ċ import Ġandroidx . camera . camera 2 . pipe . core . Log Ċ Ċ /** Ċ Ġ* ĠThrow n Ġwhen Ġan Ġoperation Ġcannot Ġbe Ġexecuted Ġbecause Ġunderlying Ġobject Ġis Ġclosed Ġor Ġin Ġan Ċ Ġ* Ġun usable Ġstate . Ċ Ġ*/ Ċ internal Ġclass ĠObject Unavailable Exception ( e : ĠThrowable ) Ġ: ĠException ( e ) Ċ Ċ /** Ċ Ġ* ĠCatch Ġspecific Ġexceptions Ġthat Ġare Ġnot Ġnormally Ġthrown , Ġlog Ġthem , Ġthen Ġre throw . Ċ Ġ*/ Ċ @ Throws ( Object Unavailable Exception :: class ) Ċ internal Ġinline Ġfun Ġ< T > Ġre throw Camera 2 Exceptions ( cross inline Ġblock : Ġ() Ġ-> ĠT ): ĠT Ġ{ ĊĠĠĠ Ġ// ĠCamera 2 Ġhas , Ġat Ġdifferent Ġpoints Ġin Ġtime , Ġthrown Ġa Ġlarge Ġnumber Ġof Ġchecked Ġand / or ĊĠĠĠ Ġ// Ġunchecked Ġexceptions Ġunder Ġdifferent Ġcircumstances Ġthat Ġare Ġnot Ġlisted Ġin Ġthe ĊĠĠĠ Ġ// Ġdocumentation . ĠThis Ġmethod Ġcat ches Ġand Ġre casts Ġthese Ġexceptions Ġinto Ġa Ġcommon Ġexception ĊĠĠĠ Ġ// Ġtype . ĊĠĠĠ Ġ// ĊĠĠĠ Ġ// ĠSpecific Ġexamples : ĊĠĠĠ Ġ// Ġ* ĠSome Ġexceptions Ġ( such Ġas ĠIllegalArgumentException ) Ġcan Ġhappen Ġif Ġa Ġsurface Ġis Ġdestroyed ĊĠĠĠ Ġ// ĠĠ Ġout Ġof Ġband Ġduring Ġconfiguration . ĊĠĠĠ Ġ// Ġ* ĠSome Ġexceptions Ġ( such Ġas ĠIllegalStateException ) Ġcan Ġbe Ġthrown Ġbut Ġare Ġnot Ġreported Ġas ĊĠĠĠ Ġ// ĠĠ Ġbeing Ġthrown Ġby Ġvarious Ġmethods Ġon Ġsome Ġversions Ġof Ġthe ĠOS . ĊĠĠĠ Ġ// Ġ* ĠSome Ġexceptions Ġ( such Ġas ĠSecurity Exception ) Ġcan Ġhappen Ġeven Ġwhen Ġthe Ġapplication Ġhas ĊĠĠĠ Ġ// ĠĠ Ġpermission Ġto Ġaccess Ġthe Ġcamera Ġbut Ġa Ġhigher Ġpriority Ġor Ġsecurity Ġsensitive Ġservice Ġis ĊĠĠĠ Ġ// ĠĠ Ġcurrently Ġusing Ġthe Ġcamera . ĊĠĠĠ Ġ// Ġ* ĠSome Ġexceptions Ġ( such Ġas ĠUnsupportedOperationException ) Ġcan Ġbe Ġthrown Ġon Ġsome Ġversions ĊĠĠĠ Ġ// ĠĠ Ġof Ġthe ĠOS Ġ( b / 2 8 6 1 7 0 1 6 ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġblock () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow Ġwhen Ġ( e ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIllegalArgumentException , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠIllegalStateException , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠCamera AccessException , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠSecurity Exception , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠUnsupportedOperationException Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . debug ( e ) Ġ{ Ġ" Re throw ing Ġ${ e :: class . java . simple Name } Ġfrom ĠCamera 2 " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠObject Unavailable Exception ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }