package Ġde . gro box . storage back upt ester . scanner Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . Menu Inflater Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . View . FOCUS _ DOWN Ċ import Ġandroid . view . View . IN VISIBLE Ċ import Ġandroid . view . View . VISIBLE Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ProgressBar Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Ui Thread Ċ import Ġandroidx . core . widget . Nested ScrollView Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . activity ViewModels Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġde . gro box . storage back upt ester . Main ViewModel Ċ import Ġde . gro box . storage back upt ester . R Ċ import Ġkotlinx . coroutines . launch Ċ Ċ private Ġconst Ġval ĠE MAIL Ġ= Ġ" incoming + gro te - storage - backup - tester - 2 2 0 7 9 6 3 5 - issue - @ incoming . gitlab . com " Ċ Ċ open Ġclass ĠMedia Scan Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( name : ĠString , Ġuri : ĠUri ) Ġ= ĠMedia Scan Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" name ", Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String (" uri ", Ġuri . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġval ĠviewModel : ĠMain ViewModel Ġby Ġactivity ViewModels () ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġscroll View : ĠNested ScrollView ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġlog View : ĠTextView ĊĠĠĠ Ġprotected Ġlateinit Ġvar ĠprogressBar : ĠProgress Bar ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?, ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġset Has Options Menu ( true ) ĊĠĠĠĠĠĠĠ Ġrequire Activity (). title Ġ= Ġarguments ?. getString (" name ") ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= Ġinflater . inflate ( R . layout . fragment _ scan , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġscroll View Ġ= Ġv . findViewById ( R . id . scroll View ) ĊĠĠĠĠĠĠĠ Ġlog View Ġ= Ġv . findViewById ( R . id . log View ) ĊĠĠĠĠĠĠĠ ĠprogressBar Ġ= Ġv . findViewById ( R . id . progress Bar ) ĊĠĠĠĠĠĠĠ Ġload Text () ĊĠĠĠĠĠĠĠ Ġreturn Ġv ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu , Ġinflater : ĠMenu Inflater ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinflater . inflate ( R . menu . fragment _ scan , Ġmenu ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . refresh Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Text () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . share Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsend Intent : ĠIntent Ġ= ĠIntent (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaction Ġ= ĠIntent . ACTION _ SEND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ EMAIL , ĠarrayOf ( EMAIL )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ SUBJECT , Ġarguments ?. getString (" name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput Extra ( Intent . EXTRA _ TEXT , Ġlog View . text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= Ġ" text / plain " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshare Intent Ġ= ĠIntent . create Chooser ( send Intent , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( share Intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Text () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog View . text Ġ= ĠgetText () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog View . post Delayed ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll View . full Scroll ( FOCUS _ DOWN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ 5 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠIN VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Ui Thread ĊĠĠĠ Ġprotected Ġopen Ġsuspend Ġfun ĠgetText (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" TEST ", Ġ" loading Ġtext ") ĊĠĠĠĠĠĠĠ Ġreturn ĠviewModel . scan Media Uri ( get Uri ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġget Uri (): ĠUri Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUri . parse ( arguments ?. getString (" uri ")) ĊĠĠĠ Ġ} Ċ Ċ } Ċ