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

Commit bbfb415

Browse files
author
Evgenii Kanivets
committed
#2[30m]. Refactor Records fragment to not use interaction callback.
1 parent 62802d9 commit bbfb415

File tree

3 files changed

+25
-63
lines changed

3 files changed

+25
-63
lines changed

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

Lines changed: 3 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package com.blogspot.e_kanivets.moneytracker.activity;
22

3-
import android.content.Intent;
43
import android.os.Bundle;
54
import android.support.v4.app.Fragment;
65
import android.support.v4.app.FragmentManager;
@@ -14,13 +13,12 @@
1413
import com.blogspot.e_kanivets.moneytracker.fragment.ExportFragment;
1514
import com.blogspot.e_kanivets.moneytracker.fragment.NavigationDrawerFragment;
1615
import com.blogspot.e_kanivets.moneytracker.fragment.RecordsFragment;
17-
import com.blogspot.e_kanivets.moneytracker.model.Record;
1816
import com.blogspot.e_kanivets.moneytracker.util.AppUtils;
1917

2018
public class NavDrawerActivity extends AppCompatActivity
21-
implements NavigationDrawerFragment.NavigationDrawerCallbacks,
22-
RecordsFragment.OnFragmentInteractionListener {
23-
19+
implements NavigationDrawerFragment.NavigationDrawerCallbacks {
20+
@SuppressWarnings("unused")
21+
private static final String TAG = "NavDrawerActivity";
2422
/**
2523
* Fragment managing the behaviors, interactions and presentation of the navigation drawer.
2624
*/
@@ -121,38 +119,4 @@ public boolean onCreateOptionsMenu(Menu menu) {
121119

122120
return super.onCreateOptionsMenu(menu);
123121
}
124-
125-
@Override
126-
public void onAddIncomePressed() {
127-
startAddIncomeActivity(null, AddIncomeActivity.Mode.MODE_ADD);
128-
}
129-
130-
@Override
131-
public void onAddExpensePressed() {
132-
startAddExpenseActivity(null, AddExpenseActivity.Mode.MODE_ADD);
133-
}
134-
135-
@Override
136-
public void onEditRecord(Record record) {
137-
if (record.isIncome()) startAddIncomeActivity(record, AddIncomeActivity.Mode.MODE_EDIT);
138-
else startAddExpenseActivity(record, AddExpenseActivity.Mode.MODE_EDIT);
139-
}
140-
141-
public void showAddAccountActivity() {
142-
startActivity(new Intent(NavDrawerActivity.this, AddAccountActivity.class));
143-
}
144-
145-
private void startAddIncomeActivity(Record record, AddIncomeActivity.Mode mode) {
146-
Intent intent = new Intent(NavDrawerActivity.this, AddIncomeActivity.class);
147-
intent.putExtra(AddExpenseActivity.KEY_RECORD, record);
148-
intent.putExtra(AddExpenseActivity.KEY_MODE, mode);
149-
startActivity(intent);
150-
}
151-
152-
private void startAddExpenseActivity(Record record, AddExpenseActivity.Mode mode) {
153-
Intent intent = new Intent(NavDrawerActivity.this, AddExpenseActivity.class);
154-
intent.putExtra(AddExpenseActivity.KEY_RECORD, record);
155-
intent.putExtra(AddExpenseActivity.KEY_MODE, mode);
156-
startActivity(intent);
157-
}
158122
}

app/src/main/java/com/blogspot/e_kanivets/moneytracker/fragment/AccountsFragment.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.fragment;
22

33
import android.app.Activity;
4+
import android.content.Intent;
45
import android.os.Bundle;
56
import android.support.v4.app.Fragment;
67
import android.support.v7.app.ActionBar;
@@ -15,6 +16,7 @@
1516
import android.widget.ListView;
1617

1718
import com.blogspot.e_kanivets.moneytracker.R;
19+
import com.blogspot.e_kanivets.moneytracker.activity.AddAccountActivity;
1820
import com.blogspot.e_kanivets.moneytracker.activity.NavDrawerActivity;
1921
import com.blogspot.e_kanivets.moneytracker.adapter.AccountAdapter;
2022
import com.blogspot.e_kanivets.moneytracker.helper.MTHelper;
@@ -71,7 +73,7 @@ public void onAttach(Activity activity) {
7173
public void onClick(View v) {
7274
switch (v.getId()) {
7375
case R.id.btn_add_account:
74-
((NavDrawerActivity) getActivity()).showAddAccountActivity();
76+
startActivity(new Intent(getActivity(), AddAccountActivity.class));
7577
break;
7678

7779
default:

app/src/main/java/com/blogspot/e_kanivets/moneytracker/fragment/RecordsFragment.java

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
import android.widget.TextView;
2222

2323
import com.blogspot.e_kanivets.moneytracker.R;
24+
import com.blogspot.e_kanivets.moneytracker.activity.AddExpenseActivity;
25+
import com.blogspot.e_kanivets.moneytracker.activity.AddIncomeActivity;
2426
import com.blogspot.e_kanivets.moneytracker.activity.NavDrawerActivity;
2527
import com.blogspot.e_kanivets.moneytracker.activity.ReportActivity;
2628
import com.blogspot.e_kanivets.moneytracker.adapter.RecordAdapter;
@@ -49,13 +51,6 @@ public class RecordsFragment extends Fragment implements View.OnClickListener, O
4951
private TextView tvFromDate;
5052
private TextView tvToDate;
5153

52-
private OnFragmentInteractionListener listener;
53-
54-
/**
55-
* Use this factory method to create a new instance of this fragment using the provided parameters.
56-
*
57-
* @return A new instance of fragment RecordsFragment.
58-
*/
5954
public static RecordsFragment newInstance() {
6055
RecordsFragment fragment = new RecordsFragment();
6156
Bundle args = new Bundle();
@@ -81,13 +76,6 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container,
8176
public void onAttach(Activity activity) {
8277
super.onAttach(activity);
8378

84-
try {
85-
listener = (OnFragmentInteractionListener) activity;
86-
} catch (ClassCastException e) {
87-
throw new ClassCastException(activity.toString()
88-
+ " must implement OnFragmentInteractionListener");
89-
}
90-
9179
((NavDrawerActivity) activity).onSectionAttached(TAG);
9280
}
9381

@@ -105,7 +93,9 @@ public boolean onContextItemSelected(MenuItem item) {
10593
switch (item.getItemId()) {
10694
case R.id.edit:
10795
Record record = MTHelper.getInstance().getRecords().get(info.position);
108-
listener.onEditRecord(record);
96+
if (record.isIncome())
97+
startAddIncomeActivity(record, AddIncomeActivity.Mode.MODE_EDIT);
98+
else startAddExpenseActivity(record, AddExpenseActivity.Mode.MODE_EDIT);
10999
return true;
110100
case R.id.delete:
111101
MTHelper.getInstance().deleteRecordById(MTHelper.getInstance().getRecords().
@@ -120,13 +110,11 @@ public boolean onContextItemSelected(MenuItem item) {
120110
public void onClick(View view) {
121111
switch (view.getId()) {
122112
case R.id.btn_add_expense:
123-
//showAddExpenseDialog();
124-
listener.onAddExpensePressed();
113+
startAddExpenseActivity(null, AddExpenseActivity.Mode.MODE_ADD);
125114
break;
126115

127116
case R.id.btn_add_income:
128-
//showAddIncomeDialog();
129-
listener.onAddIncomePressed();
117+
startAddIncomeActivity(null, AddIncomeActivity.Mode.MODE_ADD);
130118
break;
131119

132120
case R.id.btn_report:
@@ -295,9 +283,17 @@ private void showAppRateDialog() {
295283
dialog.show();
296284
}
297285

298-
public interface OnFragmentInteractionListener {
299-
void onAddIncomePressed();
300-
void onAddExpensePressed();
301-
void onEditRecord(Record record);
286+
private void startAddIncomeActivity(Record record, AddIncomeActivity.Mode mode) {
287+
Intent intent = new Intent(getActivity(), AddIncomeActivity.class);
288+
intent.putExtra(AddExpenseActivity.KEY_RECORD, record);
289+
intent.putExtra(AddExpenseActivity.KEY_MODE, mode);
290+
startActivity(intent);
291+
}
292+
293+
private void startAddExpenseActivity(Record record, AddExpenseActivity.Mode mode) {
294+
Intent intent = new Intent(getActivity(), AddExpenseActivity.class);
295+
intent.putExtra(AddExpenseActivity.KEY_RECORD, record);
296+
intent.putExtra(AddExpenseActivity.KEY_MODE, mode);
297+
startActivity(intent);
302298
}
303299
}

0 commit comments

Comments
 (0)