package Ġcom . gen ius . coroutines photo Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Toast Ċ import Ġcom . gen ius . c photo . CR Photo Ċ import Ġcom . gen ius . c photo . Cancel OperationException Ċ import Ġcom . gen ius . c photo . Not Permission Exception Ċ import Ġcom . gen ius . c photo . Type Request Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠCustom ImageView Ġ@ Jvm Over loads Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 Ċ ) Ġ: ĠImageView ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġfun Ġrequest Pic ( scope : ĠCor outine Scope ) Ġ= Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbitmap Ġ= ĠCR Photo ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. title Combine (" Select Ġpicture Ġfrom ĠCustom ImageView ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. request Bitmap ( Type Request . COMB INE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Image Bitmap ( bitmap ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠCancel OperationException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Operation Ġcancelled ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNot Permission Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( context , Ġ" Permission Ġnot Ġgranted Ġfor Ġ${ e . type Request }", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }