Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.

Commit 8387659

Browse files
author
Evgeniy Kanivets
committed
Added sorting to report
1 parent 93e2415 commit 8387659

File tree

1 file changed

+30
-3
lines changed
  • app/src/main/java/com/blogspot/e_kanivets/moneytracker/model

1 file changed

+30
-3
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/model/Report.java

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import com.blogspot.e_kanivets.moneytracker.util.MTApp;
77

88
import java.util.ArrayList;
9+
import java.util.Arrays;
10+
import java.util.Collections;
911
import java.util.HashMap;
1012
import 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

Comments
 (0)