/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 . ĠExplo re Ġin ĠH MS . Ġ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 . h ms . reference app . hu aw e il ens . main . present ers Ċ Ċ import Ġandroid . Manifest . permission Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Progress Dialog Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . camera . core . Image Capture Exception Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġcom . h ms . reference app . hu aw e il ens . R Ċ import Ġcom . h ms . reference app . hu aw e il ens . common . language . Language Activity Ċ import Ġcom . h ms . reference app . hu aw e il ens . main . Menu Activity Ċ import Ġcom . h ms . reference app . hu aw e il ens . main . fragments . O dt Fragment Ċ import Ġcom . h ms . reference app . hu aw e il ens . main . interfaces . O dt Fragment Interface Ċ import Ġcom . h ms . reference app . hu aw e il ens . main . widgets . Camera X Helper Ċ import Ġcom . h ms . reference app . hu aw e il ens . od t . App Ċ import Ġcom . h ms . reference app . hu aw e il ens . od t . activities . Classification Activity Ċ import Ġkotlinx . android . synt hetic . main . fragment _ od t .* Ċ Ċ class ĠO dt Fragment Presenter ( var Ġview : ĠO dt Fragment ) Ġ: ĠO dt Fragment Interface . Camera Presenter , ĊĠĠĠ ĠLifecycle Owner Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcustom Camera : ĠCamera X Helper ĊĊĠĠĠ Ġoverride Ġfun Ġinit Camera () Ġ{ ĊĠĠĠĠĠĠĠ Ġcustom Camera Ġ= ĠCamera X Helper ( view , Ġview . camera _ view ) ĊĠĠĠĠĠĠĠ Ġview . lifecycle . add Observer ( custom Camera ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun Ġinit Button Callbacks () Ġ{ ĊĠĠĠĠĠĠĠ Ġview . iv _ capture _ image . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprogress Dialog Ġ= ĠProgress Dialog ( view . require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġprogress Dialog . setTitle (" In ĠProgress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . set Canceled On Touch Outside ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// progress Dialog ?. rotation Ġ= Ġ 9 0 F ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . setMessage (" Image ĠPreview Ġis Ġloading , Ġplease Ġwait ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . show () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Camera . take Photo ( object Ġ: ĠCamera X Helper . On Image Capture Ġ{ ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Capture Success ( bitmap : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMenu Activity . Send Image . set Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Dialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( view . require Activity (), ĠClassification Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonError ( error : ĠImage Capture Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . require Context (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" An Ġerror Ġhas Ġoccurred Ġ$ error ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ LONG ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġview . linear Layout 3 . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcustom Camera . enable Torch () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( custom Camera . getIs Torch Enabled ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . alpha Ġ= Ġ 1 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . iv _ camera _ torch . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( view . require Context (), ĠR . drawable . ic _ light bul b _ on ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . tv _ camera _ torch . text Ġ= Ġ" Touch Ġhere Ġto Ġturn Ġlight Ġoff " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . alpha Ġ= Ġ. 5 f ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . iv _ camera _ torch . setImage Drawable ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠContext Compat . get Drawable ( view . require Context (), ĠR . drawable . ic _ light bul b ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . tv _ camera _ torch . text Ġ= Ġ" Touch Ġhere Ġto Ġturn Ġlight Ġon " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . iv _ add _ image . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ P ICK ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . start For Result . launch ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġview . image button _ language . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( view . require Activity (), ĠLanguage Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . startActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Lifecycle (): ĠLifecycle Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġview . lifecycle ĊĠĠĠ Ġ} Ċ Ċ }