package Ġblack . br ack en . p ics ort er . manip ulating . ui Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . observe Ċ import Ġblack . br ack en . p ics ort er . feature _ common . ext . observe Once Ċ import Ġblack . br ack en . p ics ort er . feature _ common . ext . setOn TextChanged Ċ import Ġblack . br ack en . p ics ort er . manip ulating . R Ċ import Ġblack . br ack en . p ics ort er . manip ulating . databinding . Manip ulating Fragment Binding Ċ import Ġblack . br ack en . p ics ort er . model . Simple Manip ulating Ċ import Ġco il . api . load Ċ import Ġcom . af ol le st ad . material dialogs . Material Dialog Ċ import Ġcom . af ol le st ad . material dialogs . files . folder Chooser Ċ import Ġcom . af ol le st ad . material dialogs . list . list Items Ċ import Ġkotlinx . android . synt hetic . main . manip ulating _ fragment .* Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ import Ġjava . io . File Ċ Ċ class ĠMan ip ulating Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Ġby Ġinject < Manip ulating ViewModel > Ġ{ ĊĠĠĠĠĠĠĠ Ġparameters Of ( require Activity (). intent . getString Extra ( EXTRA _ IMAGE _ PATH )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < Manip ulating Fragment Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĠR . layout . manip ulating _ fragment , Ġcontainer , Ġfalse ĊĠĠĠĠĠĠĠ Ġ). also Ġ{ Ġbinding Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . viewModel Ġ= ĠviewModel ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . lifecycle Owner Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġimage Manip ulated . load ( viewModel . image ) ĊĊĠĠĠĠĠĠĠ ĠviewModel . remove Notification IfExists () ĊĊĠĠĠĠĠĠĠ Ġbutton Apply . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . manip ulate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Trash . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . dump () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . image DirectoryPath . observe ( view Lifecycle Owner ) Ġ{ Ġpath Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext DirectoryPath . text Ġ= Ġpath ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Change Directory . setOnClickListener Ġ{ Ġshow Dialog To Choose Directory () Ġ} ĊĊĠĠĠĠĠĠĠ Ġswitch ToDelete Later . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Enabled Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . should Delete Later . value Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Delay Seconds . isEnabled Ġ= Ġis Enabled ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġedit Delay Seconds . setOn TextChanged Ġ{ Ġseconds Text Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . seconds ToDelete . value Ġ= Ġseconds Text . toInt OrNull () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġshould Show Simple Manip ulating Dialog Ġ= Ġrequire Activity (). intent . getBoolean Extra ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEX TRA _ OPEN _ SIMPLE _ MAN IP UL ATING , Ġfalse ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ( should Show Simple Manip ulating Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . simple Manip ulating s . observe Once ( this ) Ġ{ Ġmanip ulating s Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Dialog To Open Simple Manip ulating ( manip ulating s ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclose () Ġ= Ġactivity ?. finish And Remove Task () ĊĊĠĠĠ Ġprivate Ġfun Ġshow Dialog To Open Simple Manip ulating ( manip ulating s : ĠList < Simple Manip ulating >) Ġ{ ĊĠĠĠĠĠĠĠ ĠMaterial Dialog ( require Context ()). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Items ( items Ġ= Ġmanip ulating s . map ( Simple Manip ulating :: name )) Ġ{ Ġdialog , Ġ_, Ġname Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmanip ulating Ġ= Ġmanip ulating s . first Ġ{ Ġit . name Ġ== Ġname Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . schedule Task ( manip ulating ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnegative Button ( R . string . dialog _ cancel ) Ġ{ Ġ/* Ġdo Ġnothing Ġ*/ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Dialog To Choose Directory () Ġ{ ĊĠĠĠĠĠĠĠ ĠMaterial Dialog ( require Context ()). show Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Chooser ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinitial Directory Ġ= ĠFile ("/ storage / em ulated / 0 / "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallow Folder Creation Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġ_, Ġfile Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . image DirectoryPath . value Ġ= Ġfile . absolute Path ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ IMAGE _ PATH Ġ= Ġ" Image Path " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEX TRA _ OPEN _ SIMPLE _ MAN IP UL ATING Ġ= Ġ" Open Simple Manip ulating " ĊĠĠĠ Ġ} Ċ Ċ }