Skip to content

Commit 3686ecb

Browse files
authored
Merge pull request yev-kanivets#174 from yevhenii-kanivets/168_migrate_listView_to_recyclerView_in_MainActivity
yev-kanivets#168. Migrate ListView to RecyclerView in MainActivity.
2 parents 13ea4fa + bf1f9f7 commit 3686ecb

28 files changed

+429
-339
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/MtApp.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.blogspot.e_kanivets.moneytracker.di.DaggerAppComponent;
77
import com.blogspot.e_kanivets.moneytracker.di.module.ControllerModule;
88
import com.blogspot.e_kanivets.moneytracker.di.module.repo.CachedRepoModule;
9-
109
import com.blogspot.e_kanivets.moneytracker.util.AnswersProxy;
1110
import com.crashlytics.android.Crashlytics;
1211

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ protected void initViews() {
7474
initSpinnerCurrency();
7575

7676
shortSummaryPresenter = new ShortSummaryPresenter(ReportActivity.this);
77-
expandableListView.addHeaderView(shortSummaryPresenter.create(false));
77+
expandableListView.addHeaderView(shortSummaryPresenter.create(false, null));
7878
}
7979

8080
private void update(String currency) {

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/account/AccountsActivity.java

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,30 +22,36 @@
2222
import butterknife.OnItemClick;
2323

2424
public class AccountsActivity extends BaseBackActivity {
25-
@SuppressWarnings("unused") private static final String TAG = "AccountsActivity";
25+
@SuppressWarnings("unused")
26+
private static final String TAG = "AccountsActivity";
2627

2728
private static final int REQUEST_ADD_ACCOUNT = 1;
2829
private static final int REQUEST_TRANSFER = 2;
2930
private static final int REQUEST_EDIT_ACCOUNT = 3;
3031

31-
@Inject AccountController accountController;
32+
@Inject
33+
AccountController accountController;
3234

3335
private AccountsSummaryPresenter summaryPresenter;
3436

35-
@BindView(R.id.listView) ListView listView;
37+
@BindView(R.id.listView)
38+
ListView listView;
3639

37-
@Override protected int getContentViewId() {
40+
@Override
41+
protected int getContentViewId() {
3842
return R.layout.activity_accounts;
3943
}
4044

41-
@Override protected boolean initData() {
45+
@Override
46+
protected boolean initData() {
4247
boolean result = super.initData();
4348
getAppComponent().inject(AccountsActivity.this);
4449
summaryPresenter = new AccountsSummaryPresenter(AccountsActivity.this);
4550
return result;
4651
}
4752

48-
@Override protected void initViews() {
53+
@Override
54+
protected void initViews() {
4955
super.initViews();
5056

5157
listView.addHeaderView(summaryPresenter.create());
@@ -54,23 +60,23 @@ public class AccountsActivity extends BaseBackActivity {
5460
update();
5561
}
5662

57-
@Override public boolean onCreateOptionsMenu(Menu menu) {
63+
@Override
64+
public boolean onCreateOptionsMenu(Menu menu) {
5865
getMenuInflater().inflate(R.menu.menu_accounts, menu);
5966
return true;
6067
}
6168

62-
@Override public boolean onOptionsItemSelected(MenuItem item) {
63-
switch (item.getItemId()) {
64-
case R.id.action_transfer:
65-
makeTransfer();
66-
return true;
67-
68-
default:
69-
return super.onOptionsItemSelected(item);
69+
@Override
70+
public boolean onOptionsItemSelected(MenuItem item) {
71+
if (item.getItemId() == R.id.action_transfer) {
72+
makeTransfer();
73+
return true;
7074
}
75+
return super.onOptionsItemSelected(item);
7176
}
7277

73-
@OnItemClick(R.id.listView) public void onAccountClick(int position) {
78+
@OnItemClick(R.id.listView)
79+
public void onAccountClick(int position) {
7480
Account account = accountController.readAll().get(position - 1);
7581
startActivityForResult(EditAccountActivity.Companion.newIntent(this, account), REQUEST_EDIT_ACCOUNT);
7682
}
@@ -80,13 +86,15 @@ public void makeTransfer() {
8086
startActivityForResult(new Intent(AccountsActivity.this, TransferActivity.class), REQUEST_TRANSFER);
8187
}
8288

83-
@OnClick(R.id.btn_add_account) public void addAccount() {
89+
@OnClick(R.id.btn_add_account)
90+
public void addAccount() {
8491
AnswersProxy.get().logButton("Add Account");
8592
Intent intent = new Intent(AccountsActivity.this, AddAccountActivity.class);
8693
startActivityForResult(intent, REQUEST_ADD_ACCOUNT);
8794
}
8895

89-
@Override public void onActivityResult(int requestCode, int resultCode, Intent data) {
96+
@Override
97+
public void onActivityResult(int requestCode, int resultCode, Intent data) {
9098
super.onActivityResult(requestCode, resultCode, data);
9199

92100
if (resultCode == AppCompatActivity.RESULT_OK) {

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

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import android.content.Intent
77
import android.support.v4.view.ViewPager.OnPageChangeListener
88
import android.view.Menu
99
import android.view.MenuItem
10+
import android.view.View
1011
import com.blogspot.e_kanivets.moneytracker.R
1112
import com.blogspot.e_kanivets.moneytracker.activity.account.edit.fragment.AccountOperationsFragment
1213
import com.blogspot.e_kanivets.moneytracker.activity.account.edit.fragment.EditAccountFragment
@@ -18,6 +19,8 @@ import kotlinx.android.synthetic.main.activity_edit_account.fabDone
1819
import kotlinx.android.synthetic.main.activity_edit_account.tabLayout
1920
import kotlinx.android.synthetic.main.activity_edit_account.viewPager
2021
import javax.inject.Inject
22+
import android.view.inputmethod.InputMethodManager
23+
import kotlinx.android.synthetic.main.fragment_edit_account.*
2124

2225
class EditAccountActivity : BaseBackActivity() {
2326

@@ -55,12 +58,30 @@ class EditAccountActivity : BaseBackActivity() {
5558
override fun onPageScrolled(position: Int, positionOffset: Float, positionOffsetPixels: Int) {}
5659

5760
override fun onPageSelected(position: Int) {
58-
if (position == 0) fabDone.show() else fabDone.hide()
61+
if (position == 0) {
62+
fabDone.show()
63+
showKeyboard()
64+
} else {
65+
fabDone.hide()
66+
hideKeyboard()
67+
}
5968
}
60-
6169
})
6270
}
6371

72+
private fun hideKeyboard() {
73+
val view: View? = currentFocus
74+
if (view != null) {
75+
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
76+
imm.hideSoftInputFromWindow(view.windowToken, 0)
77+
}
78+
}
79+
80+
private fun showKeyboard() {
81+
val imm = getSystemService(Activity.INPUT_METHOD_SERVICE) as InputMethodManager
82+
imm.showSoftInput(etTitle, 0)
83+
}
84+
6485
override fun onCreateOptionsMenu(menu: Menu): Boolean {
6586
menuInflater.inflate(if (account.isArchived) R.menu.menu_archived_account else R.menu.menu_account, menu)
6687
return true

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

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,11 @@ class AccountOperationsFragment : BaseFragment() {
3030

3131
override fun initData() {
3232
appComponent.inject(this@AccountOperationsFragment)
33-
arguments?.let { arguments -> account = arguments.getParcelable(AccountOperationsFragment.KEY_ACCOUNT) }
33+
arguments?.let { arguments -> account = arguments.getParcelable(KEY_ACCOUNT) }
3434
}
3535

3636
override fun initViews(view: View) {
37-
listView.adapter = RecordAdapter(activity, getRecords())
37+
recyclerView.adapter = RecordAdapter(requireContext(), getRecords(), false, null)
3838
}
3939

4040
private fun getRecords(): List<Record> {
@@ -83,4 +83,5 @@ class AccountOperationsFragment : BaseFragment() {
8383
}
8484

8585
}
86+
8687
}

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/charts/fragment/GraphFragment.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,5 +107,4 @@ private void initViews(@Nullable View rootView) {
107107
barChart.setHighlightPerTapEnabled(false);
108108
}
109109
}
110-
111110
}

app/src/main/java/com/blogspot/e_kanivets/moneytracker/activity/charts/fragment/SummaryFragment.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,5 +72,4 @@ private void initViews(@Nullable View rootView) {
7272
listView.setAdapter(new MonthSummaryAdapter(getActivity(), monthReport));
7373
}
7474
}
75-
7675
}

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

Lines changed: 10 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ import com.blogspot.e_kanivets.moneytracker.entity.Period
1818
import com.blogspot.e_kanivets.moneytracker.entity.data.Record
1919
import com.blogspot.e_kanivets.moneytracker.report.ReportMaker
2020
import com.blogspot.e_kanivets.moneytracker.ui.AppRateDialog
21-
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter
2221
import com.blogspot.e_kanivets.moneytracker.util.AnswersProxy
2322
import kotlinx.android.synthetic.main.activity_main.*
2423
import kotlinx.android.synthetic.main.content_main.*
@@ -28,6 +27,7 @@ class MainActivity : BaseDrawerActivity() {
2827

2928
private lateinit var recordList: List<Record>
3029
private lateinit var period: Period
30+
private lateinit var recordAdapter: RecordAdapter
3131

3232
@Inject
3333
lateinit var recordController: RecordController
@@ -44,8 +44,6 @@ class MainActivity : BaseDrawerActivity() {
4444
@Inject
4545
lateinit var formatController: FormatController
4646

47-
private lateinit var summaryPresenter: ShortSummaryPresenter
48-
4947
private lateinit var tvDefaultAccountTitle: TextView
5048
private lateinit var tvDefaultAccountSum: TextView
5149
private lateinit var tvCurrency: TextView
@@ -57,7 +55,6 @@ class MainActivity : BaseDrawerActivity() {
5755
appComponent.inject(this)
5856

5957
preferenceController.addLaunchCount()
60-
summaryPresenter = ShortSummaryPresenter(this)
6158

6259
return super.initData()
6360
}
@@ -73,9 +70,11 @@ class MainActivity : BaseDrawerActivity() {
7370
tvDefaultAccountSum = navigationView.getHeaderView(0).findViewById(R.id.tvDefaultAccountSum)
7471
tvCurrency = navigationView.getHeaderView(0).findViewById(R.id.tvCurrency)
7572

76-
val summaryView = summaryPresenter.create(true)
77-
listView.addHeaderView(summaryView)
78-
summaryView.setOnClickListener { showReport() }
73+
recordAdapter = RecordAdapter(this, listOf(), true) { position ->
74+
if (position == 0) showReport()
75+
else editRecord(position)
76+
}
77+
recyclerView.adapter = recordAdapter
7978

8079
spinner.setPeriodSelectedListener { period ->
8180
this.period = period
@@ -85,16 +84,13 @@ class MainActivity : BaseDrawerActivity() {
8584

8685
spinner.setPeriod(periodController.readLastUsedPeriod())
8786

88-
listView.setOnItemClickListener { _, _, position, _ ->
89-
editRecord(position)
90-
}
91-
9287
btnAddExpense.setOnClickListener { addExpense() }
9388
btnAddIncome.setOnClickListener { addIncome() }
9489
}
9590

9691
private fun editRecord(position: Int) {
9792
AnswersProxy.get().logButton("Edit Record")
93+
9894
// Minus one because of list view's header view
9995
val record = recordList[position - 1]
10096
startAddRecordActivity(record, AddRecordActivity.Mode.MODE_EDIT, record.type)
@@ -125,7 +121,7 @@ class MainActivity : BaseDrawerActivity() {
125121
REQUEST_ACTION_RECORD -> update()
126122

127123
REQUEST_BACKUP -> {
128-
appComponent.inject(this@MainActivity)
124+
appComponent.inject(this)
129125
update()
130126
}
131127

@@ -139,13 +135,12 @@ class MainActivity : BaseDrawerActivity() {
139135
recordList = recordController.getRecordsForPeriod(period)
140136
recordList = recordList.reversed()
141137

142-
listView.adapter = RecordAdapter(this, recordList)
143-
144138
val currency = currencyController.readDefaultCurrency()
145139

146140
val reportMaker = ReportMaker(rateController)
147141
val report = reportMaker.getRecordReport(currency, period, recordList)
148-
summaryPresenter.update(report, currency, reportMaker.currencyNeeded(currency, recordList))
142+
143+
recordAdapter.setRecords(recordList, report, currency, reportMaker.currencyNeeded(currency, recordList))
149144

150145
fillDefaultAccount()
151146
}
@@ -174,7 +169,6 @@ class MainActivity : BaseDrawerActivity() {
174169
}
175170

176171
companion object {
177-
private const val TAG = "MainActivity"
178172
private const val REQUEST_ACTION_RECORD = 6
179173
}
180174

app/src/main/java/com/blogspot/e_kanivets/moneytracker/adapter/AccountAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public View getView(final int position, View convertView, ViewGroup parent) {
101101
}
102102

103103
public static class ViewHolder {
104-
@BindView(R.id.tv_title)
104+
@BindView(R.id.tvTitle)
105105
TextView tvTitle;
106106
@BindView(R.id.tv_cur_sum)
107107
TextView tvCurSum;

app/src/main/java/com/blogspot/e_kanivets/moneytracker/adapter/CategoryAutoCompleteAdapter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ protected void publishResults(CharSequence constraint, FilterResults results) {
9898
}
9999

100100
public static class ViewHolder {
101-
@BindView(R.id.tv_category)
101+
@BindView(R.id.tvCategory)
102102
TextView tvCategory;
103103
@BindView(R.id.iv_cancel)
104104
View ivCancel;

0 commit comments

Comments
 (0)