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

Commit c266c1b

Browse files
#179. Add some logic to RecordReportAdapter. Add RecordReportItem entity for RecordReportAdapter.
1 parent e59e6ea commit c266c1b

File tree

6 files changed

+50
-6
lines changed

6 files changed

+50
-6
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/ReportActivity.kt

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ import com.blogspot.e_kanivets.moneytracker.report.ReportMaker
1515
import com.blogspot.e_kanivets.moneytracker.report.record.RecordReportConverter
1616
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
1717
import kotlinx.android.synthetic.main.activity_report.*
18+
import java.util.ArrayList
19+
import java.util.HashMap
1820
import javax.inject.Inject
1921

2022
class ReportActivity : BaseBackActivity() {
@@ -60,7 +62,22 @@ class ReportActivity : BaseBackActivity() {
6062

6163
var adapter: ExpandableListReportAdapter? = null
6264

65+
//val childData = ArrayList<List<Map<String, String>>>()
66+
6367
if (report != null) {
68+
/*for (categoryRecord in report.summary) {
69+
val childDataItem = ArrayList<Map<String, String>>()
70+
for (summaryRecord in categoryRecord.summaryRecordList) {
71+
val m = HashMap<String, String>()
72+
//m[TITLE_PARAM_NAME] = summaryRecord.title
73+
//m[PRICE_PARAM_NAME] = java.lang.Double.toString(summaryRecord.amount)
74+
75+
childDataItem.add(m)
76+
}
77+
78+
childData.add(childDataItem)
79+
}*/
80+
6481
val recordReportConverter = RecordReportConverter(report)
6582
adapter = ExpandableListReportAdapter(this, recordReportConverter)
6683
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
7676

7777
override fun onBindViewHolder(viewHolder: RecyclerView.ViewHolder, position: Int) {
7878
if (position == 0 && isSummaryViewNeeded) {
79-
//adapter already bound to view
79+
//view holder already bound to view
8080
return
8181
}
8282

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

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,37 @@ import android.view.LayoutInflater
66
import android.view.View
77
import android.view.ViewGroup
88
import com.blogspot.e_kanivets.moneytracker.R
9+
import com.blogspot.e_kanivets.moneytracker.entity.RecordReportItem
910

10-
class RecordReportAdapter(private var items: List<Long>, private val ctx: Context) : RecyclerView.Adapter<RecordReportAdapter.ViewHolder>() {
11+
class RecordReportAdapter(private var items: List<RecordReportItem>, private val ctx: Context) : RecyclerView.Adapter<RecordReportAdapter.ViewHolder>() {
1112

1213
override fun getItemCount(): Int {
13-
return items.size
14+
return items.size + 1
1415
}
1516

16-
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
17-
return ViewHolder(LayoutInflater.from(ctx).inflate(R.layout.view_report_item_exp, parent, false))
17+
override fun getItemViewType(position: Int): Int = when {
18+
position == 0 -> TYPE_SUMMARY
19+
items[position - 1] is RecordReportItem.ChildRow -> TYPE_PARENT
20+
else -> TYPE_CHILD
1821
}
1922

23+
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
24+
when (viewType) {
25+
TYPE_PARENT -> ViewHolder(LayoutInflater.from(ctx).inflate(R.layout.view_report_item_exp, parent, false))
26+
TYPE_CHILD -> ViewHolder(LayoutInflater.from(ctx).inflate(R.layout.view_report_item, parent, false))
27+
else -> ViewHolder(LayoutInflater.from(ctx).inflate(R.layout.view_report_item, parent, false))
28+
}
29+
2030
override fun onBindViewHolder(holder: ViewHolder, position: Int) {
2131

2232
}
2333

2434
class ViewHolder(view: View) : RecyclerView.ViewHolder(view)
2535

36+
companion object {
37+
private const val TYPE_SUMMARY = 0
38+
private const val TYPE_PARENT = 1
39+
private const val TYPE_CHILD = 2
40+
}
41+
2642
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.blogspot.e_kanivets.moneytracker.entity
2+
3+
sealed class RecordReportItem {
4+
5+
data class ChildRow(val title: String, val amount: Long) : RecordReportItem()
6+
7+
data class ParentRow(val category: String, val totalAmount: Long, val isOpen: Boolean) : RecordReportItem()
8+
9+
}

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.blogspot.e_kanivets.moneytracker.ui.presenter;
22

33
import android.content.Context;
4+
import android.support.v7.widget.RecyclerView;
45
import android.view.LayoutInflater;
56
import android.view.View;
67
import android.widget.TextView;
@@ -103,7 +104,7 @@ private String formatPeriod(Period period) {
103104
}
104105
}
105106

106-
public static class ViewHolder implements SummaryViewInterface {
107+
public static class ViewHolder extends RecyclerView.ViewHolder implements SummaryViewInterface {
107108

108109
@BindView(R.id.tvPeriod)
109110
TextView tvPeriod;
@@ -138,6 +139,7 @@ public TextView getTvTotal() {
138139
}
139140

140141
public ViewHolder(View view) {
142+
super(view);
141143
ButterKnife.bind(this, view);
142144
}
143145
}

0 commit comments

Comments
 (0)