package Ġru . alex and rk ut ash ov . on etime secret . presentation . metadata Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . design . widget . Snackbar Ċ import Ġandroid . support . v 4 . app . Fragment Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġcom . are l lo mobile . mvp . presenter . Inject Presenter Ċ import Ġru . alex and rk ut ash ov . on etime secret . R Ċ import Ġru . alex and rk ut ash ov . on etime secret . ext . OTP Link . copy Link Ċ import Ġru . alex and rk ut ash ov . on etime secret . presentation . Fab Listener Ċ import Ġru . alex and rk ut ash ov . on etime secret . presentation . base . App Fragment Ċ import Ġru . alex and rk ut ash ov . on etime secret . presentation . share . Share Fragment Ċ Ċ /** Ċ Ġ* Ġ@ author ĠAlex and r ĠK ut ash ov Ċ Ġ* Ġon Ġ 0 8 . 0 4 . 2 0 1 8 Ċ Ġ*/ Ċ Ċ class ĠMetadata Fragment Ġ: ĠApp Fragment (), ĠMetadata View , ĠF ab Listener Ġ{ ĊĊĠĠĠ Ġ@ Inject Presenter ĊĠĠĠ Ġlateinit Ġvar Ġpresenter : ĠMetadata Presenter ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMET ADATA _ KEY Ġ= Ġ" metadata Key " ĊĠĠĠĠĠĠĠ Ġval Ġscreen Key : ĠString Ġ= ĠMetadata Fragment :: class . simple Name !! ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( metadata Key : ĠString ?): ĠFragment Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠMetadata Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetadata Key ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( METADATA _ KEY , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlink : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpassword Required : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtime Left : ĠTextView ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġpresenter . get Secret Metadata ( arguments ?. getString ( METADATA _ KEY )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ metadata , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġlink Ġ= Ġview . findViewById ( R . id . secret _ link ) ĊĠĠĠĠĠĠĠ Ġpassword Required Ġ= Ġview . findViewById ( R . id . password _ required ) ĊĠĠĠĠĠĠĠ Ġtime Left Ġ= Ġview . findViewById ( R . id . time _ left ) ĊĊĠĠĠĠĠĠĠ Ġview . findViewById < Button >( R . id . burn _ secret _ btn ). setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( R . string . burn _ dialog _ title ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setMessage ( R . string . burn _ dialog _ message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . yes ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . burn Secret ( arguments ?. getString ( METADATA _ KEY )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . no ) Ġ{ Ġdialog , Ġ_ Ġ-> Ġdialog . dismiss () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create (). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġshow Fab () ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġhide Fab () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Burn Secret Success () Ġ{ ĊĠĠĠĠĠĠĠ Ġrouter . show System Message ( getString ( R . string . burn _ secret _ success )) ĊĠĠĠĠĠĠĠ Ġrouter . new Root Screen ( Share Fragment . screen Key ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonError ( message : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġmessage Ġ?: ĠgetString ( R . string . operation _ undefined _ error ) ĊĠĠĠĠĠĠĠ ĠSn ackbar . make ( password Required , Ġtext , ĠSn ackbar . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Metadata Success ( secret Link : ĠString ?, Ġis Pass phrase Required : ĠBoolean , Ġin Time String : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġlink . text Ġ= Ġsecret Link ĊĠĠĠĠĠĠĠ Ġif Ġ( is Pass phrase Required ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Required . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġin Time String ?. let Ġ{ Ġtime Left Ġ} ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġin Time String ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvisibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġlink . text ĊĠĠĠĠĠĠĠ Ġif Ġ( link . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcopy Link ( require Context (), Ġlink . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . show System Message ( getString ( R . string . link _ copied )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }