package Ġcom . permission x . c urren c ys ystem . module . mine Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . net . Uri Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . widget . Toast Ċ import Ġcom . blank j . util code . util . Toast Utils Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . DataSource Ċ import Ġcom . bump tech . glide . load . engine . G lide Exception Ċ import Ġcom . bump tech . glide . request . RequestListener Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġcom . permission x . c urren c ys ystem . R Ċ import Ġcom . permission x . c urren c ys ystem . utils . Clipboard Utils Ċ Ċ import Ġcom . qm uite am . qm ui . util . QM UI StatusBar Helper Ċ import Ġkotlinx . android . synt hetic . main . activity _ down _ load .* Ċ import Ġjava . io . Buffered OutputStream Ċ import Ġjava . io . File Ċ import Ġjava . io . File OutputStream Ċ import Ġjava . io . IOException Ċ Ċ class ĠDown Load Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Bitmap : ĠBitmap ? Ġ= Ġnull ĊĠĠĠ Ġfun Ġsave Bitmap ( filePath : ĠString , ĠfileName : ĠString , Ġb : ĠBitmap ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ("$ filePath /$ fileName ") ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfout Ġ= ĠFileOutputStream ( file ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġb os Ġ= ĠBuffered OutputStream ( f out ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb . compress ( Bitmap . Compress Format . JPEG , Ġ 1 0 0 , Ġb os ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb os . flush () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb os . close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġä¸Ĭ éĿ¢çļĦ åħĪ è½¬ file åĨį ä¿ĿåŃĺ ï¼Į ä¸į çŁ¥éģĵ ä¸º åķ ¥ ï¼Į æľ¬ æĿ¥ åı¯ä»¥ çĽ´æİ¥ è°ĥçĶ¨ ä¿ĿåŃĺ Bitmap çļĦæĸ¹æ³ķ ï¼Į ä¸ĬéĿ¢ æĸ¹æ³ķ åľ¨ åįİ ä¸º M ate 3 0 çļĦ Android ĠQ å´ © æº ĥ ĊĠĠĠĠĠĠĠ ĠMedia Store . Images . Media . insert Image ( content Resolver , Ġb , ĠfileName , Ġnull ) ĊĠĠĠĠĠĠĠ Ġsend Broadcast ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ MEDIA _ SCAN NER _ SCAN _ FILE , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse (" file ://" Ġ+ Ġfile . absolute Path ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ ĠToast Utils . show Short (" ä¿ĿåŃĺ æĪĲåĬŁ ") ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this ," ä¿ĿåŃĺ æĪĲåĬŁ ï¼ģ ", Toast . LENGTH _ SHORT ). show () ĊĠĠĠ Ġ} ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ down _ load ) ĊĠĠĠĠĠĠĠ ĠQ M UI StatusBar Helper . trans luc ent ( this ) ĊĠĠĠĠĠĠĠ ĠQ M UI StatusBar Helper . setStatus Bar Light Mode ( this ) ĊĠĠĠĠĠĠĠ Ġuser _ info _ top Bar . setTitle (" ä¸ĭè½½ éĵ¾æİ¥ ") ĊĠĠĠĠĠĠĠ Ġuser _ info _ top Bar . add Left Back Image Button (). setOnClickListener Ġ{ Ġfinish () Ġ} ĊĠĠĠĠĠĠĠ Ġtv _ copy _ address . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠClip board Utils . copy Text (" http :// 3 9 . 1 0 7 . 9 3 . 5 8 / api / download _ app ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast Utils . show Short (" å¤įåĪ¶ æĪĲåĬŁ ") ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtv _ save . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Bitmap Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ setOnClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfilepath Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEnvironment . get External Storage Public Directory (" DC IM "). absolute Path Ġ+ ĠFile . separator Ġ+ Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠfileName Ġ= ĠSystem . currentTimeMillis (). toString () Ġ+ Ġ" jpg " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Bitmap ( filepath , ĠfileName , Ġm Bitmap !! ) ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( R . mip map . download ). into ( iv _ icon ) ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( R . mip map . download ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addListener ( object Ġ: RequestListener < Bitmap >{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Failed ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠG lide Exception ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel : ĠAny ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠTarget < Bitmap > ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Resource : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresource : ĠBitmap ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel : ĠAny ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠTarget < Bitmap > ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource : ĠDataSource ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Resource : ĠBoolean ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap = resource ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}). into ( iv _ icon ) Ċ // ĠĠĠĠĠĠĠ ĠG lide . with ( this ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Bitmap () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( R . mip map . download ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ. addListener ( object Ġ: ĠRequest Listener < Bitmap > Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad Failed ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Nullable Ġe : ĠG lide Exception ?, Ġmodel : ĠAny , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠTarget < Bitmap >, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Resource : ĠBoolean Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Resource Ready ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresource : ĠBitmap , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmodel : ĠAny , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget : ĠTarget < Bitmap >, Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠdataSource : ĠDataSource , Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis First Resource : ĠBoolean Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ): ĠBoolean Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Bitmap Ġ= Ġresource Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}). into ( iv _ icon ) ĊĠĠĠ Ġ} Ċ } Ċ