package Ġorg . zer ox lab . m om od ict Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Environment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Transaction Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġorg . zer ox lab . m om od ict . ui . Dict List Fragment Ċ import Ġorg . zer ox lab . m om od ict . ui . File Import Fragment Ċ import Ġorg . zer ox lab . m om od ict . ui . File Picker Fragment Ċ import Ġorg . zer ox lab . m om od ict . ui . Fragment Listener Ċ Ċ class ĠManage Dict Activity Ġ: ĠAppCompatActivity (), ĠFragment Listener Ġ{ ĊĊĠĠĠ Ġpublic Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ with _ one _ fragment ) ĊĠĠĠĠĠĠĠ Ġval Ġtoolbar Ġ= ĠfindViewById ( R . id . action bar ) Ġas ĠToolbar ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġset Fragments () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrag Pick Ġ= Ġsupport FragmentManager . find Fragment By Tag ( TAG _ P ICK _ FILE ) ĊĠĠĠĠĠĠĠ Ġif Ġ( frag Pick Ġ!= Ġnull Ġ&& Ġfrag Pick . isVisible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIn ĠFile Picker Fragment , ĠBack - key Ġcan Ġgo Ġto Ġparent Ġdirectory ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhandled Ġ= Ġ( frag Pick Ġas ĠFile Picker Fragment ). go Parent Directory () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( handled ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġupdate Path Data () ĊĊĠĠĠĠĠĠĠ Ġ// Ġreally Ġpop ĠFragment ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġpop Fragment () Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Path Data () ĊĠĠĠĠĠĠĠ Ġ// Ġsimulate Ġback Ġkey Ġto Ġpop Ġfragment ĊĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Path Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrag Pick Ġ= Ġsupport FragmentManager . find Fragment By Tag ( TAG _ P ICK _ FILE ) ĊĠĠĠĠĠĠĠ Ġval Ġfrag Import Ġ= Ġsupport FragmentManager . find Fragment By Tag ( TAG _ IMPORT _ FILE ) ĊĠĠĠĠĠĠĠ Ġif Ġ( frag Pick Ġ!= Ġnull Ġ&& Ġfrag Import Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchosen Ġ= Ġfrag Pick . arguments ?. getString ( File Picker Fragment . ARG _ PATH ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( chosen Ġ!= Ġnull Ġ&& Ġchosen . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrag Import . arguments ?. putString ( File Import Fragment . ARG _ PATH , Ġchosen ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Fragments () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġf rg Ġ= ĠDict List Fragment . newInstance () ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( R . id . fragment _ container , Ġf rg , ĠTAG _ DICT _ LIST ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Not ified ( ĊĠĠĠĠĠĠĠ Ġfrom : Ġandroidx . fragment . app . Fragment ?, ĊĠĠĠĠĠĠĠ Ġtype : ĠFragment Listener . TYPE , ĊĠĠĠĠĠĠĠ Ġpayload : ĠAny ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFragment Listener . TYPE . POP _ FRAGMENT Ġ-> Ġpop Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFragment Listener . TYPE . VIEW _ ACTION Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( from Ġ!= Ġnull Ġ&& Ġpayload Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandle View Action ( from , Ġpayload ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle View Action ( from : Ġandroidx . fragment . app . Fragment , Ġpayload : ĠAny ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( payload ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDict List Fragment . OPEN _ IMPORT _ FRAGMENT Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Import Fragment . newInstance ( s EXT _ DIR ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG _ IMPORT _ FILE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile Import Fragment . P ICK _ A _ FILE Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Fragment ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFile Picker Fragment . newInstance ( s EXT _ DIR , Ġs EXT ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG _ P ICK _ FILE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreplace Fragment ( frag : Ġandroidx . fragment . app . Fragment , Ġtag : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsupport FragmentManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace ( R . id . fragment _ container , Ġfrag , Ġtag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Transition ( android x . fragment . app . Fragment Transaction . TRANS IT _ FRAGMENT _ OPEN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. commit () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġs EXT _ DIR Ġ= ĠEnvironment . get External Storage Directory (). path ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġs EXT Ġ= Ġ". tar . bz 2 " Ġ// Ġsupported Ġfile Ġextension ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG _ DICT _ LIST Ġ= Ġ" fragment _ to _ list _ di ctionaries " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG _ IMPORT _ FILE Ġ= Ġ" fragment _ to _ import _ file " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠTAG _ P ICK _ FILE Ġ= Ġ" fragment _ to _ pick _ file " ĊĠĠĠ Ġ} Ċ } Ċ