package Ġcom . jetbrains . io gallery . detail Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . view . isIn visible Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . core . view . post Delayed Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Fragment Ċ import Ġcom . jetbrains . io gallery . Photos Crud ViewModel Ċ import Ġcom . jetbrains . io gallery . R Ċ import Ġcom . jetbrains . io gallery . support . required Photo Id From Raw String Ċ import Ġkotlinx . android . synt hetic . main . fragment _ deletion _ confirmation .* Ċ import Ġtim ber . log . Tim ber Ċ Ċ class ĠDe letion Confirmation Dialog Fragment Ġ: ĠBottom Sheet Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠPh otos Crud ViewModel ĊĊĠĠĠ Ġprivate Ġval Ġid Ġby Ġrequired Photo Id From Raw String ( ARG _ ID ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?) Ġ= ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . fragment _ deletion _ confirmation , Ġcontainer , Ġfalse ) !! ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this ). get ( Photos Crud ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġdialog Message . text Ġ= Ġresources . get Quantity String ( R . plurals . delete _ confirmation _ blur b , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġdelete Button . setOnClickListener Ġ{ ĠonDelete Confirmed () Ġ} ĊĠĠĠĠĠĠĠ Ġcancel Button . setOnClickListener Ġ{ Ġdismiss () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Range ") Ġ// ĠThis Ġis Ġa Ġbug Ġin Ġthe ĠL int Ġcheck ĠâĢĶ Âł it 's Ġflag ging Ġthe Ġdefault Ġvalue Ġof Ġargs . id ĊĠĠĠ Ġprivate Ġfun ĠonDelete Confirmed () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Cancel able Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġrequire View (). isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġhide Dialog Message Views () ĊĠĠĠĠĠĠĠ ĠprogressBar . isIn visible Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ ĠviewModel . delete Image ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe ( this , ĠObserver Ġ{ Ġresult Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . isIn visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Image Deleted () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonDelete Failure ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Dialog Message Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Title . isIn visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdialog Message . isIn visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdelete Button . isIn visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcancel Button . isIn visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdialog Image . isIn visible Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Image Deleted () Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . i (" Image Ġ$ id Ġdeleted Ġsuccessfully , Ġgoing Ġback Ġto Ġlist .") ĊĊĠĠĠĠĠĠĠ Ġdialog Result Group . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdialog Result Image . setImage Resource ( R . drawable . ic _ check ) ĊĠĠĠĠĠĠĠ Ġdialog Result Message . text Ġ= Ġresources . get Quantity String ( R . plurals . delete _ result _ blur b _ success , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). pop Back Stack ( R . id . photos Grid Fragment , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġdismiss After Delay () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonDelete Failure ( result : ĠResult < Unit >) Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . e ( result . exception OrNull () !! , Ġ" R uh Ġro h ! ĠError Ġwhile Ġdeleting Ġimage Ġ$ id ") ĊĊĠĠĠĠĠĠĠ Ġdialog Result Group . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdialog Result Image . setImage Resource ( R . drawable . ic _ error ) ĊĠĠĠĠĠĠĠ Ġdialog Result Message . text Ġ= Ġresources . get Quantity String ( R . plurals . delete _ result _ blur b _ error , Ġ 1 ) ĊĊĠĠĠĠĠĠĠ Ġdismiss After Delay () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdismiss After Delay () Ġ{ ĊĠĠĠĠĠĠĠ Ġdialog Result Group . post Delayed ( 1 5 0 0 ) Ġ{ Ġdismiss () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠARG _ ID Ġ= Ġ"${ this :: class . java . name }. ARG _ ID " ĊĠĠĠ Ġ} Ċ } Ċ