/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠGoogle ĠLLC . ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġ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 . Ċ Ġ*/ Ċ Ċ package Ġcom . google . ml kit . vision . demo . kotlin . object detector Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġcom . google . android . gms . tasks . Task Ċ import Ġcom . google . ml kit . vision . common . Input Image Ċ import Ġcom . google . ml kit . vision . demo . Graphic Overlay Ċ import Ġcom . google . ml kit . vision . demo . kotlin . Vision Processor Base Ċ import Ġcom . google . ml kit . vision . objects . Detected Object Ċ import Ġcom . google . ml kit . vision . objects . Object Detection Ċ import Ġcom . google . ml kit . vision . objects . Object Detector Ċ import Ġcom . google . ml kit . vision . objects . Object Detector Options Base Ċ import Ġjava . io . IOException Ċ Ċ /** ĠA Ġprocessor Ġto Ġrun Ġobject Ġdetector . Ġ Ġ*/ Ċ class ĠObject Detector Processor ( context : ĠContext , Ġoptions : ĠObject Detector Options Base ) Ġ: ĊĠ ĠVision Processor Base < List < Detected Object >>( context ) Ġ{ ĊĊĠ Ġprivate Ġval Ġdetector : ĠObject Detector Ġ= ĠObject Detection . getClient ( options ) ĊĊĠ Ġoverride Ġfun Ġstop () Ġ{ ĊĠĠĠ Ġsuper . stop () ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġdetector . close () ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠ ĠLog . e ( ĊĠĠĠĠĠĠĠ ĠTAG , ĊĠĠĠĠĠĠĠ Ġ" Exception Ġthrown Ġwhile Ġtrying Ġto Ġclose Ġobject Ġdetector !", ĊĠĠĠĠĠĠĠ Ġe ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġdetect In Image ( image : ĠInput Image ): ĠTask < List < Detected Object >> Ġ{ ĊĠĠĠ Ġreturn Ġdetector . process ( image ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonSuccess ( results : ĠList < Detected Object >, Ġgraphic Overlay : ĠGraph ic Overlay ) Ġ{ ĊĠĠĠ Ġfor Ġ( result Ġin Ġresults ) Ġ{ ĊĠĠĠĠĠ Ġgraphic Overlay . add ( Object Graphic ( graphic Overlay , Ġresult )) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Failure ( e : ĠException ) Ġ{ ĊĠĠĠ ĠLog . e ( TAG , Ġ" Object Ġdetection Ġfailed !", Ġe ) ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġprivate Ġconst Ġval ĠTAG Ġ= Ġ" Object Detector Processor " ĊĠ Ġ} Ċ } Ċ