66import com .blogspot .e_kanivets .moneytracker .util .MTApp ;
77
88import java .util .ArrayList ;
9+ import java .util .Arrays ;
10+ import java .util .Collections ;
911import java .util .HashMap ;
1012import java .util .List ;
1113
@@ -47,18 +49,29 @@ private void makeReport() {
4749 // Calculate total of all records
4850 int totalIncome = 0 , totalExpense = 0 ;
4951
50- //Convert HashMap to ArrayList
51- reportList = new ArrayList <Pair <String , Integer >>();
52+ //Sort reportList
53+ List <Pair <String , Integer >> reportIncomes = new ArrayList <Pair <String , Integer >>();
54+ List <Pair <String , Integer >> reportExpenses = new ArrayList <Pair <String , Integer >>();
55+
5256 for (String name : map .keySet ()) {
53- reportList .add (new Pair <String , Integer >(name , map .get (name )));
5457 if (map .get (name ) > 0 ) {
5558 totalIncome += map .get (name );
59+ reportIncomes .add (new Pair <String , Integer >(name , map .get (name )));
5660 }
5761 else {
5862 totalExpense += map .get (name );
63+ reportExpenses .add (new Pair <String , Integer >(name , map .get (name )));
5964 }
6065 }
6166
67+ sortList (reportIncomes );
68+ sortList (reportExpenses );
69+
70+ //Added incomes and expenses to ArrayList
71+ reportList = new ArrayList <Pair <String , Integer >>();
72+ reportList .addAll (reportIncomes );
73+ reportList .addAll (reportExpenses );
74+
6275 //Add summary row to list
6376 reportList .add (new Pair <String , Integer >(
6477 MTApp .get ().getResources ().getString (R .string .total_incomes ) + " :" , totalIncome ));
@@ -67,4 +80,18 @@ private void makeReport() {
6780 reportList .add (new Pair <String , Integer >(
6881 MTApp .get ().getResources ().getString (R .string .total ) + " :" , totalExpense + totalIncome ));
6982 }
83+
84+ private void sortList (List <Pair <String , Integer >> list ) {
85+ int n = list .size ();
86+
87+ for (int i =0 ;i <n -1 ;i ++) {
88+ for (int j =0 ;j <n -i -1 ;j ++) {
89+ if (Math .abs (list .get (j ).second ) < Math .abs (list .get (j +1 ).second )) {
90+ Pair <String , Integer > tmp = list .get (j );
91+ list .set (j , list .get (j +1 ));
92+ list .set (j +1 , tmp );
93+ }
94+ }
95+ }
96+ }
7097}
0 commit comments