package Ġcom . storage . sample . helper . file Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . format . Formatter Ċ import Ġandroidx . annotation . Ui Thread Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Global Scope Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġon Ġ 0 3 / 0 6 / 2 1 Ċ Ġ* Ġ@ author ĠAng gray udi ĠH Ċ Ġ*/ Ċ data Ġclass ĠFile Properties ( ĊĠĠĠ Ġvar Ġname : ĠString Ġ= Ġ"", ĊĠĠĠ Ġvar Ġlocation : ĠString Ġ= Ġ"", ĊĠĠĠ Ġvar Ġsize : ĠLong Ġ= Ġ 0 , ĊĠĠĠ Ġvar Ġis Folder : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġvar Ġfolders : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġvar Ġfiles : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġvar Ġempty Files : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġvar Ġempty Folders : ĠInt Ġ= Ġ 0 , ĊĠĠĠ Ġvar Ġis Virtual : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġvar Ġlast Modified : ĠDate ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġformatted Size ( context : ĠContext ): ĠString Ġ= ĠFormatter . format FileSize ( context , Ġsize ) ĊĊĠĠĠ Ġabstract Ġclass ĠCalcul ation Callback ( ĊĠĠĠĠĠĠĠ Ġval Ġupdate Interval : ĠLong Ġ= Ġ 5 0 0 , Ġ// Ġ 5 0 0 ms ĊĠĠĠĠĠĠĠ Ġvar Ġui Scope : ĠCor outine Scope Ġ= ĠGlobal Scope ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ@ Ui Thread ĊĠĠĠĠĠĠĠ Ġopen Ġfun ĠonUpdate ( properties : ĠFile Properties ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdefault Ġimplementation ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Ui Thread ĊĠĠĠĠĠĠĠ Ġabstract Ġfun ĠonComplete ( properties : ĠFile Properties ) ĊĊĠĠĠĠĠĠĠ Ġ@ Ui Thread ĊĠĠĠĠĠĠĠ Ġopen Ġfun Ġon Canceled ( properties : ĠFile Properties ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdefault Ġimplementation ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ@ Ui Thread ĊĠĠĠĠĠĠĠ Ġopen Ġfun ĠonError () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġdefault Ġimplementation ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }