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

Commit 0e7a980

Browse files
#168. Add review fixes.
1 parent c962ba0 commit 0e7a980

File tree

5 files changed

+52
-42
lines changed

5 files changed

+52
-42
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/account/edit/EditAccountActivity.kt

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ import javax.inject.Inject
2222
import android.view.inputmethod.InputMethodManager
2323
import kotlinx.android.synthetic.main.fragment_edit_account.*
2424

25-
2625
class EditAccountActivity : BaseBackActivity() {
2726

2827
@Inject
@@ -61,26 +60,27 @@ class EditAccountActivity : BaseBackActivity() {
6160
override fun onPageSelected(position: Int) {
6261
if (position == 0) {
6362
fabDone.show()
64-
showOrHideKeyboard(true)
63+
showKeyboard()
6564
} else {
6665
fabDone.hide()
67-
showOrHideKeyboard(false)
66+
hideKeyboard()
6867
}
6968
}
7069
})
7170
}
7271

73-
private fun showOrHideKeyboard(showKeyboard: Boolean) {
72+
private fun hideKeyboard() {
7473
val view: View? = currentFocus
7574
if (view != null) {
7675
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
77-
if (showKeyboard)
78-
imm.showSoftInput(etTitle, 0)
79-
else
80-
imm.hideSoftInputFromWindow(view.windowToken, 0)
76+
imm.hideSoftInputFromWindow(view.windowToken, 0)
8177
}
8278
}
8379

80+
private fun showKeyboard() {
81+
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
82+
imm.showSoftInput(etTitle, 0)
83+
}
8484

8585
override fun onCreateOptionsMenu(menu: Menu): Boolean {
8686
menuInflater.inflate(if (account.isArchived) R.menu.menu_archived_account else R.menu.menu_account, menu)

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/exchange_rate/ExchangeRatesActivity.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -107,9 +107,14 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {
107107
super.onActivityResult(requestCode, resultCode, data);
108108

109109
if (resultCode == AppCompatActivity.RESULT_OK) {
110-
if (requestCode == REQUEST_ADD_EXCHANGE_RATE) {
111-
update();
112-
setResult(RESULT_OK);
110+
switch (requestCode) {
111+
case REQUEST_ADD_EXCHANGE_RATE:
112+
update();
113+
setResult(RESULT_OK);
114+
break;
115+
116+
default:
117+
break;
113118
}
114119
}
115120
}

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

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package com.blogspot.e_kanivets.moneytracker.activity.record
22

33
import android.content.Intent
44
import android.support.v7.app.AppCompatActivity
5-
import android.widget.AdapterView
65
import android.widget.TextView
76
import com.blogspot.e_kanivets.moneytracker.R
87
import com.blogspot.e_kanivets.moneytracker.activity.ReportActivity
@@ -72,9 +71,11 @@ class MainActivity : BaseDrawerActivity() {
7271
tvCurrency = navigationView.getHeaderView(0).findViewById(R.id.tvCurrency)
7372

7473
recordAdapter = RecordAdapter(this, listOf(), formatController, true)
75-
recordAdapter.setOnItemClickListener(AdapterView.OnItemClickListener { _, _, position, _ ->
76-
if (position == 0) showReport()
77-
else editRecord(position)
74+
recordAdapter.setOnItemClickListener(object : RecordAdapter.OnItemClickListener {
75+
override fun onItemClick(position: Int) {
76+
if (position == 0) showReport()
77+
else editRecord(position)
78+
}
7879
})
7980
recyclerView.adapter = recordAdapter
8081

@@ -93,6 +94,7 @@ class MainActivity : BaseDrawerActivity() {
9394
private fun editRecord(position: Int) {
9495
AnswersProxy.get().logButton("Edit Record")
9596

97+
// Minus one because of list view's header view
9698
val record = recordList[position - 1]
9799
startAddRecordActivity(record, AddRecordActivity.Mode.MODE_EDIT, record.type)
98100
}

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

Lines changed: 28 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import android.support.v7.widget.RecyclerView
66
import android.view.LayoutInflater
77
import android.view.View
88
import android.view.ViewGroup
9-
import android.widget.AdapterView
109
import android.widget.LinearLayout
1110
import android.widget.TextView
1211
import com.blogspot.e_kanivets.moneytracker.MtApp
@@ -22,7 +21,7 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
2221

2322
private var formatController: FormatController
2423

25-
private var itemClickListener: AdapterView.OnItemClickListener? = null
24+
private var itemClickListener: OnItemClickListener? = null
2625

2726
private var whiteRed: Int
2827
private var whiteGreen: Int
@@ -33,10 +32,10 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
3332
private var context: Context
3433

3534
private var summaryPresenter: ShortSummaryPresenter
36-
private var needHeaderView: Boolean = false
35+
private var isHeaderViewNeeded: Boolean = false
3736
private lateinit var headerViewHolder: HeaderViewHolder
3837

39-
constructor(context: Context, records: List<Record>, formatController: FormatController, needHeaderView: Boolean) {
38+
constructor(context: Context, records: List<Record>, formatController: FormatController, isHeaderViewNeeded: Boolean) {
4039
this.context = context
4140
this.records = records
4241

@@ -49,18 +48,18 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
4948

5049
summaryPresenter = ShortSummaryPresenter(context)
5150

52-
if (needHeaderView) {
53-
val summaryView = summaryPresenter.create(true, HeaderViewHolder(LayoutInflater.from(context).inflate(R.layout.view_summary_records, null)))
54-
headerViewHolder = summaryView.tag as HeaderViewHolder
51+
if (isHeaderViewNeeded) {
52+
headerViewHolder = HeaderViewHolder(LayoutInflater.from(context).inflate(R.layout.view_summary_records, null), itemClickListener)
53+
summaryPresenter.create(true, headerViewHolder)
5554
}
5655

57-
this.needHeaderView = needHeaderView
56+
this.isHeaderViewNeeded = isHeaderViewNeeded
5857
this.formatController = formatController
5958
}
6059

6160
override fun getItemCount() = records.size
6261

63-
override fun getItemViewType(position: Int): Int = if (position == 0 && needHeaderView) {
62+
override fun getItemViewType(position: Int): Int = if (position == 0 && isHeaderViewNeeded) {
6463
TYPE_HEADER
6564
} else {
6665
TYPE_ITEM
@@ -70,39 +69,43 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
7069
if (viewType == TYPE_HEADER) {
7170
headerViewHolder
7271
} else {
73-
ViewHolder(LayoutInflater.from(context).inflate(R.layout.view_record, parent, false))
72+
ViewHolder(LayoutInflater.from(context).inflate(R.layout.view_record, parent, false), itemClickListener)
7473
}
7574

7675
override fun onBindViewHolder(rvViewHolder: RecyclerView.ViewHolder, position: Int) {
77-
if (position == 0 && needHeaderView) {
76+
if (position == 0 && isHeaderViewNeeded) {
7877
//adapter already bound to view
7978
return
8079
}
8180

8281
val viewHolder = rvViewHolder as ViewHolder
83-
val record: Record = records[position - if (needHeaderView) 1 else 0]
82+
val record: Record = records[position - if (isHeaderViewNeeded) 1 else 0]
8483
viewHolder.container.setBackgroundColor(if (record.isIncome) whiteGreen else whiteRed)
8584
viewHolder.tvPrice.setTextColor(if (record.isIncome) green else red)
8685

8786
viewHolder.tvDateAndTime.text = formatController.formatDateAndTime(record.time)
88-
viewHolder.tvPrice.text = formatController.formatSignedAmount(
89-
(if (record.isIncome) 1 else -1) * record.fullPrice)
87+
val price = (if (record.isIncome) record.fullPrice else getNegative(record.fullPrice))
88+
viewHolder.tvPrice.text = formatController.formatSignedAmount(price)
9089
viewHolder.tvTitle.text = record.title
9190
viewHolder.tvCategory.text = record.category?.name
9291
viewHolder.tvCurrency.text = record.currency
9392
}
9493

94+
private fun getNegative(number: Double): Double {
95+
return -1 * number
96+
}
97+
9598
fun setRecords(recordsList: List<Record>, report: IRecordReport?, currency: String, ratesNeeded: List<String>) {
9699
records = recordsList
97100
summaryPresenter.update(report, currency, ratesNeeded)
98101
notifyDataSetChanged()
99102
}
100103

101-
fun setOnItemClickListener(itemClickListener: AdapterView.OnItemClickListener) {
104+
fun setOnItemClickListener(itemClickListener: OnItemClickListener) {
102105
this.itemClickListener = itemClickListener
103106
}
104107

105-
inner class ViewHolder : RecyclerView.ViewHolder {
108+
class ViewHolder : RecyclerView.ViewHolder {
106109

107110
var container: LinearLayout
108111
var tvDateAndTime: TextView
@@ -111,7 +114,7 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
111114
var tvCategory: TextView
112115
var tvCurrency: TextView
113116

114-
constructor(view: View) : super(view) {
117+
constructor(view: View, itemClickListener: OnItemClickListener?) : super(view) {
115118
container = view.container
116119
tvDateAndTime = view.tvDateAndTime
117120
tvPrice = view.tvPrice
@@ -120,34 +123,36 @@ class RecordAdapter : RecyclerView.Adapter<RecyclerView.ViewHolder> {
120123
tvCurrency = view.tvCurrency
121124

122125
view.setOnClickListener {
123-
itemClickListener?.onItemClick(null, null, adapterPosition, 0L)
126+
itemClickListener?.onItemClick(adapterPosition)
124127
}
125128
}
126129

127130
}
128131

129-
inner class HeaderViewHolder : RecyclerView.ViewHolder {
132+
class HeaderViewHolder : RecyclerView.ViewHolder {
130133

131134
var tvPeriod: TextView
132135
var tvTotalIncome: TextView
133136
var tvTotalExpense: TextView
134137
var tvTotal: TextView
135138

136-
constructor(view: View) : super(view) {
137-
139+
constructor(view: View, itemClickListener: OnItemClickListener?) : super(view) {
138140
tvPeriod = view.tvPeriod
139141
tvTotalIncome = view.tvTotalIncome
140142
tvTotalExpense = view.tvTotalExpense
141143
tvTotal = view.tvTotal
142144

143145
view.setOnClickListener {
144-
itemClickListener?.onItemClick(null, null, 0, 0L)
146+
itemClickListener?.onItemClick(0)
145147
}
146-
147148
}
148149

149150
}
150151

152+
interface OnItemClickListener {
153+
fun onItemClick(position: Int)
154+
}
155+
151156
companion object {
152157

153158
private const val TYPE_HEADER = 0

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

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

33
import android.content.Context;
4-
import android.support.v7.widget.RecyclerView;
54
import android.view.LayoutInflater;
65
import android.view.View;
76
import android.widget.TextView;
@@ -22,8 +21,6 @@
2221
import butterknife.BindView;
2322
import butterknife.ButterKnife;
2423

25-
import static android.icu.lang.UCharacter.GraphemeClusterBreak.T;
26-
2724
/**
2825
* Util class to create and manage summary header view for .
2926
* Created on 2/26/16.
@@ -135,7 +132,7 @@ private String formatPeriod(Period period) {
135132
public static class ViewHolder {
136133

137134
@BindView(R.id.tvPeriod)
138-
TextView tvPeriod;
135+
public TextView tvPeriod;
139136

140137
public TextView getTvPeriod() {
141138
return tvPeriod;
@@ -165,5 +162,6 @@ public TextView getTvTotal() {
165162
public ViewHolder(View view) {
166163
ButterKnife.bind(this, view);
167164
}
165+
168166
}
169167
}

0 commit comments

Comments
 (0)