package Ġde . r ki . cor on aw arn app . storage Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . format . Formatter Ċ import Ġde . r ki . cor on aw arn app . util . Has Human Readable Error Ċ import Ġde . r ki . cor on aw arn app . util . Human Readable Error Ċ import Ġjava . io . IOException Ċ Ċ class ĠIns ufficient Storage Exception ( ĊĠĠĠ Ġval Ġresult : ĠDevice Storage . Check Result Ċ ) Ġ: ĠIOException ( ĊĠĠĠ Ġ" Not Ġenough Ġfree Ġspace : Ġ${ result . required Bytes } B Ġare Ġrequired Ġand Ġonly Ġ${ result . free Bytes } B Ġare Ġavailable ." Ċ ), ĠHas Human Readable Error Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġto Human Readable Error ( context : ĠContext ): ĠHuman Readable Error Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatted Required Ġ= ĠFormatter . format Short FileSize ( context , Ġresult . required Bytes ) ĊĠĠĠĠĠĠĠ Ġval Ġformatted Free Ġ= ĠFormatter . format Short FileSize ( context , Ġresult . free Bytes ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠReplace Ġwith Ġlocalized Ġmessage Ġwhen Ġthe Ġexception Ġis Ġlogged Ġvia Ġnew Ġerror Ġtracking . ĊĠĠĠĠĠĠĠ Ġreturn ĠHuman Readable Error ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Not Ġenough Ġfree Ġspace : Ġ$ formatted Required Ġare Ġrequired Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" and Ġonly Ġ$ formatted Free Ġare Ġavailable ." ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ