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

Commit 4072e27

Browse files
#168. Add SummaryViewInterface.
1 parent 0e7a980 commit 4072e27

File tree

2 files changed

+62
-51
lines changed

2 files changed

+62
-51
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/adapter/RecordAdapter.kt

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,10 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
103103

104104
fun setOnItemClickListener(itemClickListener: OnItemClickListener) {
105105
this.itemClickListener = itemClickListener
106+
if (isHeaderViewNeeded) {
107+
headerViewHolder = HeaderViewHolder(LayoutInflater.from(context).inflate(R.layout.view_summary_records, null), itemClickListener)
108+
summaryPresenter.create(true, headerViewHolder)
109+
}
106110
}
107111

108112
class ViewHolder : RecyclerView.ViewHolder {
@@ -129,12 +133,28 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
129133

130134
}
131135

132-
class HeaderViewHolder : RecyclerView.ViewHolder {
136+
class HeaderViewHolder : RecyclerView.ViewHolder, ShortSummaryPresenter.SummaryViewInterface {
137+
138+
private var tvPeriod: TextView
139+
private var tvTotalIncome: TextView
140+
private var tvTotalExpense: TextView
141+
private var tvTotal: TextView
142+
143+
override fun getTvPeriod(): TextView {
144+
return tvPeriod
145+
}
146+
147+
override fun getTvTotalIncome(): TextView {
148+
return tvTotalIncome
149+
}
133150

134-
var tvPeriod: TextView
135-
var tvTotalIncome: TextView
136-
var tvTotalExpense: TextView
137-
var tvTotal: TextView
151+
override fun getTvTotalExpense(): TextView {
152+
return tvTotalExpense
153+
}
154+
155+
override fun getTvTotal(): TextView {
156+
return tvTotal
157+
}
138158

139159
constructor(view: View, itemClickListener: OnItemClickListener?) : super(view) {
140160
tvPeriod = view.tvPeriod

app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java

Lines changed: 37 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -59,52 +59,27 @@ public View create(boolean shortSummary, RecordAdapter.HeaderViewHolder mainView
5959
}
6060

6161
public void update(IRecordReport report, String currency, List<String> ratesNeeded) {
62-
if (view.getTag() instanceof RecordAdapter.HeaderViewHolder) {
63-
RecordAdapter.HeaderViewHolder viewHolder = (RecordAdapter.HeaderViewHolder) view.getTag();
64-
if (report == null) {
65-
viewHolder.getTvTotalIncome().setText("");
66-
viewHolder.getTvTotalExpense().setText("");
67-
68-
viewHolder.getTvTotal().setTextColor(red);
69-
viewHolder.getTvTotal().setText(createRatesNeededList(currency, ratesNeeded));
70-
} else {
71-
viewHolder.getTvPeriod().setText(formatPeriod(report.getPeriod()));
72-
73-
viewHolder.getTvTotalIncome().setTextColor(report.getTotalIncome() >= 0 ? green : red);
74-
viewHolder.getTvTotalIncome().setText(formatController.formatIncome(report.getTotalIncome(),
75-
report.getCurrency()));
76-
77-
viewHolder.getTvTotalExpense().setTextColor(report.getTotalExpense() > 0 ? green : red);
78-
viewHolder.getTvTotalExpense().setText(formatController.formatExpense(report.getTotalExpense(),
79-
report.getCurrency()));
80-
81-
viewHolder.getTvTotal().setTextColor(report.getTotal() >= 0 ? green : red);
82-
viewHolder.getTvTotal().setText(formatController.formatIncome(report.getTotal(),
83-
report.getCurrency()));
84-
}
62+
SummaryViewInterface viewHolder = (SummaryViewInterface) view.getTag();
63+
if (report == null) {
64+
viewHolder.getTvTotalIncome().setText("");
65+
viewHolder.getTvTotalExpense().setText("");
66+
67+
viewHolder.getTvTotal().setTextColor(red);
68+
viewHolder.getTvTotal().setText(createRatesNeededList(currency, ratesNeeded));
8569
} else {
86-
ViewHolder viewHolder = (ViewHolder) view.getTag();
87-
if (report == null) {
88-
viewHolder.getTvTotalIncome().setText("");
89-
viewHolder.getTvTotalExpense().setText("");
90-
91-
viewHolder.getTvTotal().setTextColor(red);
92-
viewHolder.getTvTotal().setText(createRatesNeededList(currency, ratesNeeded));
93-
} else {
94-
viewHolder.getTvPeriod().setText(formatPeriod(report.getPeriod()));
95-
96-
viewHolder.getTvTotalIncome().setTextColor(report.getTotalIncome() >= 0 ? green : red);
97-
viewHolder.getTvTotalIncome().setText(formatController.formatIncome(report.getTotalIncome(),
98-
report.getCurrency()));
99-
100-
viewHolder.getTvTotalExpense().setTextColor(report.getTotalExpense() > 0 ? green : red);
101-
viewHolder.getTvTotalExpense().setText(formatController.formatExpense(report.getTotalExpense(),
102-
report.getCurrency()));
103-
104-
viewHolder.getTvTotal().setTextColor(report.getTotal() >= 0 ? green : red);
105-
viewHolder.getTvTotal().setText(formatController.formatIncome(report.getTotal(),
106-
report.getCurrency()));
107-
}
70+
viewHolder.getTvPeriod().setText(formatPeriod(report.getPeriod()));
71+
72+
viewHolder.getTvTotalIncome().setTextColor(report.getTotalIncome() >= 0 ? green : red);
73+
viewHolder.getTvTotalIncome().setText(formatController.formatIncome(report.getTotalIncome(),
74+
report.getCurrency()));
75+
76+
viewHolder.getTvTotalExpense().setTextColor(report.getTotalExpense() > 0 ? green : red);
77+
viewHolder.getTvTotalExpense().setText(formatController.formatExpense(report.getTotalExpense(),
78+
report.getCurrency()));
79+
80+
viewHolder.getTvTotal().setTextColor(report.getTotal() >= 0 ? green : red);
81+
viewHolder.getTvTotal().setText(formatController.formatIncome(report.getTotal(),
82+
report.getCurrency()));
10883
}
10984

11085
}
@@ -129,32 +104,36 @@ private String formatPeriod(Period period) {
129104
}
130105
}
131106

132-
public static class ViewHolder {
107+
public static class ViewHolder implements SummaryViewInterface {
133108

134109
@BindView(R.id.tvPeriod)
135110
public TextView tvPeriod;
136111

112+
@Override
137113
public TextView getTvPeriod() {
138114
return tvPeriod;
139115
}
140116

141117
@BindView(R.id.tvTotalIncome)
142118
TextView tvTotalIncome;
143119

120+
@Override
144121
public TextView getTvTotalIncome() {
145122
return tvTotalIncome;
146123
}
147124

148125
@BindView(R.id.tvTotalExpense)
149126
TextView tvTotalExpense;
150127

128+
@Override
151129
public TextView getTvTotalExpense() {
152130
return tvTotalExpense;
153131
}
154132

155133
@BindView(R.id.tvTotal)
156134
TextView tvTotal;
157135

136+
@Override
158137
public TextView getTvTotal() {
159138
return tvTotal;
160139
}
@@ -164,4 +143,16 @@ public ViewHolder(View view) {
164143
}
165144

166145
}
146+
147+
public interface SummaryViewInterface {
148+
public TextView getTvPeriod();
149+
150+
public TextView getTvTotalIncome();
151+
152+
public TextView getTvTotalExpense();
153+
154+
public TextView getTvTotal();
155+
}
156+
157+
167158
}

0 commit comments

Comments
 (0)