package Ġorg . step ic . d roid . ui . fragments Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 4 . app . Dialog Fragment Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġkotlinx . android . synt hetic . main . fragment _ space _ management .* Ċ import Ġorg . step ic . d roid . R Ċ import Ġorg . step ic . d roid . an alytic . An alytic Ċ import Ġorg . step ic . d roid . base . App Ċ import Ġorg . step ic . d roid . base . Fragment Base Ċ import Ġorg . step ic . d roid . core . present ers . Store Management Presenter Ċ import Ġorg . step ic . d roid . core . present ers . contracts . Store Management View Ċ import Ġorg . step ic . d roid . persistence . model . Storage Location Ċ import Ġorg . step ic . d roid . ui . dialogs .* Ċ import Ġorg . step ic . d roid . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠStore Management Fragment Ġ: ĠFragment Base (), ĠStore Management View Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance (): ĠFragment Ġ= ĠStore Management Fragment () ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠLO ADING _ TAG Ġ= Ġ" loading _ store _ management " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġm Clear Cache Dialog Fragment : ĠDialog Fragment ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġloading Progress Dialog Fragment : ĠDialog Fragment ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġstore Management Presenter : ĠStore Management Presenter ĊĊĠĠĠ Ġoverride Ġfun Ġinject Component () Ġ{ ĊĠĠĠĠĠĠĠ ĠApp . component (). inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinflater . inflate ( R . layout . fragment _ space _ management , Ġcontainer , Ġfalse ) ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġnull ify Activity Background () ĊĠĠĠĠĠĠĠ Ġinit Clear Cache Feature () ĊĠĠĠĠĠĠĠ Ġhide All Storage Info () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġstore Management Presenter . attach View ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġstore Management Presenter . detach View ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġclear Cache Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġchoose Storage Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide All Storage Info () Ġ{ ĊĠĠĠĠĠĠĠ Ġnot Mount Explanation . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġmount Explanation . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġchoose Storage Button . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Storage Options ( options : ĠList < Storage Location >) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . size Ġ> Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot Mount Explanation . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmount Explanation . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Storage Button . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchoose Storage Dialog Ġ= ĠChoose Storage Dialog . newInstance () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Storage Dialog . setTarget Fragment ( this , Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Storage Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! choose Storage Dialog . is Added ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Storage Dialog . show ( fragment Manager , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . size Ġ== Ġ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot Mount Explanation . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmount Explanation . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchoose Storage Button . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide All Storage Info () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Clear Cache Feature () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Clear Cache Dialog Fragment Ġ= ĠClear Videos Dialog . newInstance () ĊĠĠĠĠĠĠĠ Ġm Clear Cache Dialog Fragment ?. setTarget Fragment ( this , ĠClear Videos Dialog . REQUEST _ CODE ) ĊĊĠĠĠĠĠĠĠ Ġclear Cache Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġan alytic . report Event ( An alytic . Interaction . CLICK _ CLEAR _ CACHE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Clear Cache Dialog Fragment ?. is Added Ġ!= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Clear Cache Dialog Fragment ?. show ( fragment Manager , ĠClear Videos Dialog . TAG ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġclear Cache Button . isEnabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetUp Clear Cache Button ( cache Size : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cache Size Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Cache Button . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Cache Label . text Ġ= ĠText Util . format Bytes ( cache Size ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Cache Button . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclear Cache Label . setText ( R . string . empty ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Loading ( is Move : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Progress Dialog Fragment Ġ= Ġif Ġ( is Move ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMoving Progress Dialog Fragment . newInstance () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoading Progress Dialog Fragment . newInstance () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠProgress Helper . activate ( loading Progress Dialog Fragment , Ġfragment Manager , ĠLO ADING _ TAG ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhide Loading () Ġ{ ĊĠĠĠĠĠĠĠ ĠProgress Helper . dismiss ( fragment Manager , ĠLO ADING _ TAG ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?) Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġrequest Code Ġ== ĠClear Videos Dialog . REQUEST _ CODE Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstore Management Presenter . removeAll Downloads () ĊĊĠĠĠĠĠĠĠ Ġrequest Code Ġ== ĠW ant Move Data Dialog . REQUEST _ CODE Ġ&& ĠresultCode Ġ== ĠActivity . RESULT _ OK Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. get Parcelable Extra < Storage Location >( Want Move Data Dialog . EXTRA _ LOCATION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let ( store Management Presenter :: change Storage Location ) Ġ?: ĠUnit ĊĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Activity Result ( request Code , ĠresultCode , Ġdata ) ĊĠĠĠ Ġ} Ċ }