package Ġcom . tri by ss apps . refresh ment invest ment . fragments ĊĊ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget .* Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . tri by ss apps . refresh ment invest ment . R Ċ import Ġcom . tri by ss apps . refresh ment invest ment . activities . MainActivity Ċ import Ġcom . tri by ss apps . refresh ment invest ment . database . App Database Ċ import Ġcom . tri by ss apps . refresh ment invest ment . database . Invest ment Entity Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠA Ġsimple Ġ[ Fragment ] Ġsubclass . Ċ Ġ*/ Ċ class ĠMain Fragment Ġ: ĠFragment () Ġ{ ĊĊĊĠĠĠ Ġprivate Ġvar Ġselected Position Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar ĠtextView Balance : ĠTextView ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġedit Text Price : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġedit Text Amount : ĠEditText ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbutton Add Balance : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbutton Add Invest ment : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbutton Generate Report : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġbutton Refresh Current Balance : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġstrings Array : ĠArray < String >? Ġ= Ġnull ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ main , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ== Ġnull ) Ġreturn ĊĠĠĠĠĠĠĠ ĠtextView Balance Ġ= Ġview . findViewById ( R . id . textView Balance ) ĊĠĠĠĠĠĠĠ Ġedit Text Price Ġ= Ġview . findViewById ( R . id . edit Text Price ) ĊĠĠĠĠĠĠĠ Ġedit Text Amount Ġ= Ġview . findViewById ( R . id . edit Text Amount ) ĊĠĠĠĠĠĠĠ Ġbutton Add Balance Ġ= Ġview . findViewById ( R . id . button Add Balance ) ĊĠĠĠĠĠĠĠ Ġbutton Add Invest ment Ġ= Ġview . findViewById ( R . id . button Add Invest ment ) ĊĠĠĠĠĠĠĠ Ġbutton Generate Report Ġ= Ġview . findViewById ( R . id . button Generate Report ) ĊĠĠĠĠĠĠĠ Ġbutton Refresh Current Balance Ġ= Ġview . findViewById ( R . id . button Refresh Current Balance ) ĊĠĠĠĠĠĠĠ Ġval Ġspinner Ġ= Ġview . findViewById < Spinner >( R . id . spinner ) ĊĠĠĠĠĠĠĠ Ġval Ġadapter Ġ= ĠArray Adapter . createFrom Resource ( this . activity !! , ĠR . array . spinner _ array , Ġandroid . R . layout . simple _ spinner _ item ) ĊĠĠĠĠĠĠĠ Ġadapter . set DropDown View Resource ( android . R . layout . simple _ spinner _ dropdown _ item ) ĊĠĠĠĠĠĠĠ Ġspinner . adapter Ġ= Ġadapter ĊĠĠĠĠĠĠĠ Ġstrings Array Ġ= Ġresources . getString Array ( R . array . spinner _ array ) ĊĠĠĠĠĠĠĠ Ġspinner . on ItemSelected Listener Ġ= Ġobject Ġ: ĠAdapter View . On ItemSelected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon ItemSelected ( parent : ĠAdapter View <* >, Ġview : ĠView , Ġposition : ĠInt , Ġid : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Position Ġ= Ġposition ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Nothing Selected ( parent : ĠAdapter View <* >) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Add Balance !!. setOnClickListener Ġ{ Ġv Ġ-> Ġcheck Amount And Save () Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Add Invest ment !!. setOnClickListener Ġ{ Ġv Ġ-> Ġcheck Invest ment And Save () Ġ} ĊĠĠĠĠĠĠĠ Ġbutton Generate Report !!. setOnClickListener Ġ{ Ġv Ġ-> Ġgenerate Report () Ġ} ĊĠĠĠĠĠĠĠ Ġupdate Current Balance () ĊĠĠĠĠĠĠĠ Ġbutton Refresh Current Balance !!. setOnClickListener Ġ{ Ġv Ġ-> Ġupdate Current Balance () Ġ} ĊĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Current Balance () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Database Ġ= ĠApp Database . getLocal Data Base ( activity !!. application Context ) ĊĠĠĠĠĠĠĠ ĠThread ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Balance Ġ= Ġapp Database . invest ment DAO . current Balance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. run On Ui Thread Ġ{ ĠtextView Balance !!. text Ġ= ĠString . format (" Rs . Ġ% s ", Ġcurrent Balance ) Ġ} ĊĠĠĠĠĠĠĠ Ġ}). start () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgenerate Report () Ġ{ ĊĠĠĠĠĠĠĠ Ġ/* ĠApp Database Ġapp Database = App Database . getLocal Data Base ( getActivity (). getApplicationContext ()); ĊĠĠĠĠĠĠĠ Ġnew ĠThread ( new ĠRunnable () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Override ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġvoid Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdouble Ġcurrent Balance Ġ= Ġapp Database . get Invest ment DAO (). getCurrent Balance (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠList < Invest ment Entity > Ġall Invest ments Ġ= Ġapp Database . get Invest ment DAO (). getAll Invest ments (); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetActivity (). run On Ui Thread ( new ĠRunnable () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Override ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpublic Ġvoid Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// all Invest ments ; ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" total Ġinvest ments ", all Invest ments . size ()+" Ġsize "); ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). start (); */ ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ĠMainActivity ). add New Fragment ( Report Fragment . getInstance ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Invest ment And Save () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinvestment Name Ġ= Ġstrings Array ! ![ selected Position ] ĊĠĠĠĠĠĠĠ Ġval Ġprice Ġ= Ġedit Text Price !!. text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( price . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Please Ġenter Ġinvestment Ġprice ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprice Double Ġ= Ġjava . lang . Double . parseDouble ( price ) ĊĠĠĠĠĠĠĠ Ġval Ġapp Database Ġ= ĠApp Database . getLocal Data Base ( activity !!. application Context ) ĊĠĠĠĠĠĠĠ ĠThread ( Runnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= Ġapp Database . invest ment DAO . current Balance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinvestment Entity Ġ= ĠInvest ment Entity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . cr Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . date Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . name Ġ= Ġinvestment Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . dr Ġ= Ġprice Double ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . balance Ġ= Ġbalance Ġ- Ġprice Double ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Database . invest ment DAO . insert Invest ment ( invest ment Entity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Balance Ġ= Ġapp Database . invest ment DAO . current Balance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Balance !!. text Ġ= ĠString . format (" Rs . Ġ% s ", Ġcurrent Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Price !!. setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}). start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Amount And Save () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġstring Amount Ġ= Ġedit Text Amount !!. text . toString () ĊĠĠĠĠĠĠĠ Ġif Ġ( string Amount . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Please Ġenter Ġamount !! ", ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġamount Ġ= Ġjava . lang . Double . parseDouble ( string Amount ) ĊĠĠĠĠĠĠĠ Ġval Ġapp Database Ġ= ĠApp Database . getLocal Data Base ( activity !!. application Context ) ĊĠĠĠĠĠĠĠ ĠThread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbalance Ġ= Ġapp Database . invest ment DAO . current Balance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinvestment Entity Ġ= ĠInvest ment Entity () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . cr Ġ= Ġamount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . date Ġ= ĠDate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . name Ġ= Ġ" Adding Ġmoney " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . dr Ġ= Ġ 0 . 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinvestment Entity . balance Ġ= Ġbalance Ġ+ Ġamount ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Database . invest ment DAO . insert Invest ment ( invest ment Entity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Balance Ġ= Ġapp Database . invest ment DAO . current Balance ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity !!. run On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Balance !!. text Ġ= ĠString . format (" Rs . Ġ% s ", Ġcurrent Balance ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text Amount !!. setText ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}. start () ĊĠĠĠ Ġ} Ċ }// ĠRequired Ġempty Ġpublic Ġconstructor Ċ