package Ġcom . import se j ong . kor writing . fragment Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . google . firebase . database .* Ċ import Ġcom . google . firebase . storage . Firebase Storage Ċ import Ġcom . google . firebase . storage . Storage Reference Ċ import Ġcom . import se j ong . kor writing . MainActivity Ċ import Ġcom . import se j ong . kor writing . R Ċ import Ġcom . import se j ong . kor writing . databinding . Fragment My page Two Binding Ċ Ċ // Rename Ġparameter Ġarguments , Ġchoose Ġnames Ġthat Ġmatch Ċ // Ġthe Ġfragment Ġinitialization Ġparameters , Ġe . g . ĠARG _ ITEM _ NUMBER Ċ private Ġconst Ġval ĠARG _ PARAM 1 Ġ= Ġ" param 1 " Ċ private Ġconst Ġval ĠARG _ PARAM 2 Ġ= Ġ" param 2 " Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ* ĠUse Ġthe Ġ[ My page Two Fragment . newInstance ] Ġfactory Ġmethod Ġto Ċ Ġ* Ġcreate Ġan Ġinstance Ġof Ġthis Ġfragment . Ċ Ġ*/ Ċ Ċ class ĠMy page Two Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġ// Rename Ġand Ġchange Ġtypes Ġof Ġparameters ĊĠĠĠ Ġprivate Ġvar Ġparam 1 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġparam 2 : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġm Binding : ĠFragment My page Two Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġm Binding !! ĊĠĠĠ Ġprivate Ġvar Ġmain Activity : ĠMainActivity ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstorage Reference : ĠStorage Reference ĊĠĠĠ Ġ// private Ġlateinit Ġvar Ġfirebase Database : ĠFirebase Database ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam 1 Ġ= Ġit . getString ( ARG _ PARAM 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparam 2 Ġ= Ġit . getString ( ARG _ PARAM 2 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġmain Activity Ġ= Ġcontext Ġas ĠMainActivity ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġm Binding Ġ= ĠFragment My page Two Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġarguments ?. getString (" date ") ĊĊĠĠĠĠĠĠĠ Ġval Ġdate Text Ġ= Ġ"${ date ?. substring ( 2 , 4 )}. ${ date ?. substring ( 6 , 8 )}. ${ date ?. substring ( 1 0 , 1 2 )}" ĊĠĠĠĠĠĠĠ Ġbinding . toolbar . date . text Ġ= Ġdate Text ĊĊĠĠĠĠĠĠĠ Ġval Ġdatabase _ input Ġ= ĠFirebase Database . getInstance (). getReference (" ìĤ¬ ìļ© ìŀĲ "). child ( main Activity !!. k ak ao Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" ë§ ŀ ì¶ ¤ ë²ķ Ġê²Ģ ìĤ¬ "). child ( date !! ). child (" input sentence ") ĊĠĠĠĠĠĠĠ Ġval Ġdatabase _ fixed part Ġ= ĠFirebase Database . getInstance (). getReference (" ìĤ¬ ìļ© ìŀĲ "). child ( main Activity !!. k ak ao Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" ë§ ŀ ì¶ ¤ ë²ķ Ġê²Ģ ìĤ¬ "). child ( date !! ). child (" fixed part ") ĊĠĠĠĠĠĠĠ Ġval Ġdatabase _ part to fix Ġ= ĠFirebase Database . getInstance (). getReference (" ìĤ¬ ìļ© ìŀĲ "). child ( main Activity !!. k ak ao Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" ë§ ŀ ì¶ ¤ ë²ķ Ġê²Ģ ìĤ¬ "). child ( date !! ). child (" part to fix ") ĊĠĠĠĠĠĠĠ Ġval Ġdatabase _ phot our l Ġ= ĠFirebase Database . getInstance (). getReference (" ìĤ¬ ìļ© ìŀĲ "). child ( main Activity !!. k ak ao Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" ë§ ŀ ì¶ ¤ ë²ķ Ġê²Ģ ìĤ¬ "). child ( date !! ). child (" phot our l ") ĊĠĠĠĠĠĠĠ Ġval Ġdatabase _ help Ġ= ĠFirebase Database . getInstance (). getReference (" ìĤ¬ ìļ© ìŀĲ "). child ( main Activity !!. k ak ao Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" ë§ ŀ ì¶ ¤ ë²ķ Ġê²Ģ ìĤ¬ "). child ( date !! ). child (" help ") ĊĊĊĠĠĠĠĠĠĠ Ġdatabase _ input . addListener For Single Value Event ( object Ġ: ĠValue EventListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġsnapshot . getValue (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 3 . text Ġ= Ġtext ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( text . length Ġ>= Ġ 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar . title . text Ġ= Ġtext . substring ( 0 , Ġ 1 0 ). plus (" ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . toolbar . title . text Ġ= Ġtext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ// part to fix ĊĠĠĠĠĠĠĠ Ġdatabase _ part to fix . addListener For Single Value Event ( object Ġ: ĠValue EventListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 1 0 . text Ġ= Ġsnapshot . getValue (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĠĠĠĠĠĠĠ Ġdatabase _ fixed part . addListener For Single Value Event ( object Ġ: ĠValue EventListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView 5 . text Ġ= Ġsnapshot . getValue (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdatabase _ help . addListener For Single Value Event ( object Ġ: ĠValue EventListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . textView . text Ġ= Ġsnapshot . getValue (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġdatabase _ phot our l . addListener For Single Value Event ( object Ġ: ĠValue EventListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this @ My page Two Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( snapshot . getValue (). toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . imageView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĊĊĊĠĠĠĠĠĠĠ Ġset Text Size ( main Activity !!. text Size ) ĊĊĠĠĠĠĠĠĠ Ġ// ë²Ħ íĬ ¼ ĠìĿ´ë ² ¤íĬ¸ ĊĠĠĠĠĠĠĠ Ġset Button ( date ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠĠĠĠĠ Ġ// return Ġinflater . inflate ( R . layout . fragment _ my page _ two , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠUse Ġthis Ġfactory Ġmethod Ġto Ġcreate Ġa Ġnew Ġinstance Ġof ĊĠĠĠĠĠĠĠĠ Ġ* Ġthis Ġfragment Ġusing Ġthe Ġprovided Ġparameters . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 1 ĠParameter Ġ 1 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġparam 2 ĠParameter Ġ 2 . ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return ĠA Ġnew Ġinstance Ġof Ġfragment ĠMy page Two Fragment . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ// Rename Ġand Ġchange Ġtypes Ġand Ġnumber Ġof Ġparameters ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( param 1 : ĠString , Ġparam 2 : ĠString ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMy page Two Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarguments Ġ= ĠBundle (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ARG _ PARAM 1 , Ġparam 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( ARG _ PARAM 2 , Ġparam 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ê¸ Ģ ì Ķ ¨ Ġíģ¬ ê¸° Ġë³Ģê²½ ĊĠĠĠ Ġprivate Ġfun Ġset Text Size ( text Size Ġ: Int ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsize 2 0 Ġ: Float Ġ= Ġ 1 6 . 0 f Ġ+ Ġtext Size * 2 ĊĠĠĠĠĠĠĠ Ġval Ġsize 2 4 Ġ: Float Ġ= Ġ 2 0 . 0 f Ġ+ Ġtext Size * 2 ĊĊĠĠĠĠĠĠĠ Ġbinding . txt Result Content . text Size Ġ= Ġsize 2 4 ĊĠĠĠĠĠĠĠ Ġbinding . textView 3 . text Size Ġ= Ġsize 2 0 ĊĠĠĠĠĠĠĠ Ġbinding . textView 1 1 . text Size Ġ= Ġsize 2 4 ĊĠĠĠĠĠĠĠ Ġbinding . textView 5 . text Size Ġ= Ġsize 2 0 ĊĠĠĠĠĠĠĠ Ġbinding . textView 2 4 . text Size Ġ= Ġsize 2 4 ĊĠĠĠĠĠĠĠ Ġbinding . textView 1 0 . text Size Ġ= Ġsize 2 0 ĊĠĠĠĠĠĠĠ Ġbinding . textView . text Size Ġ= Ġsize 2 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ë²Ħ íĬ ¼ ĠìĿ´ë ² ¤íĬ¸ ĊĠĠĠ Ġprivate Ġfun Ġset Button ( date Ġ: ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . button . setOnClickListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdatabase Reference Ġ= ĠFirebase Database . getInstance (). getReference (" ìĤ¬ ìļ© ìŀĲ "). child ( main Activity !!. k ak ao Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" ë§ ŀ ì¶ ¤ ë²ķ Ġê²Ģ ìĤ¬ "). child ( date ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdatabase Reference . remove Value () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Reference Ġ= ĠFirebase Storage . getInstance (). reference . child (" images /${ main Activity !!. k ak ao Id }/ ë§ ŀ ì¶ ¤ ë²ķ Ġê²Ģ ìĤ¬ /$ date . jpg ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstorage Reference . delete (). add On Success Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. add On Failure Listener { ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġmain Activity !!. support FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . replace ( R . id . frame , ĠMy page Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . toolbar . btn Back . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// íĶĦ ëŀĺ ê·¸ ë ¨ ¼ íĬ¸ ĠìĿ´ë ı Ļ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtransaction Ġ= Ġmain Activity !!. support FragmentManager . beginTransaction () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . replace ( R . id . frame , ĠMy page Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction . commit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }