package Ġcom . st ef att or us so . core mv vm . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . graphics . Bitmap Factory Ċ import Ġandroid . graphics . Matrix Ċ import Ġandroid . net . Uri Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . io . FileNotFoundException Ċ Ċ object ĠBitmap Utils Ġ{ ĊĠĠĠ Ġfun Ġdecode ( context : ĠContext , Ġuri : ĠUri ): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠinputStream Ġ= Ġcontext . content Resolver . open InputStream ( uri ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBitmap Factory . decode Stream ( inputStream ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e ( e ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrotate ( bm : ĠBitmap ?, Ġrotation : ĠInt ): ĠBitmap ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( bm Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( rotation Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmatrix Ġ= ĠMatrix () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatrix . post Rotate ( rotation . toFloat ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠBitmap . create Bitmap ( bm , Ġ 0 , Ġ 0 , Ġbm . width , Ġbm . height , Ġmatrix , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbm ĊĠĠĠ Ġ} Ċ Ċ }