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

Commit ef716c9

Browse files
author
evgenii
committed
Implemented a removing of the account.
1 parent 0a57df5 commit ef716c9

File tree

4 files changed

+59
-0
lines changed

4 files changed

+59
-0
lines changed

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

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,12 @@
55
import android.support.v4.app.Fragment;
66
import android.support.v7.app.ActionBar;
77
import android.support.v7.app.ActionBarActivity;
8+
import android.view.ContextMenu;
89
import android.view.LayoutInflater;
10+
import android.view.MenuItem;
911
import android.view.View;
1012
import android.view.ViewGroup;
13+
import android.widget.AdapterView;
1114
import android.widget.BaseAdapter;
1215
import android.widget.ListView;
1316

@@ -16,6 +19,7 @@
1619
import com.blogspot.e_kanivets.moneytracker.adapter.AccountAdapter;
1720
import com.blogspot.e_kanivets.moneytracker.adapter.RecordAdapter;
1821
import com.blogspot.e_kanivets.moneytracker.helper.MTHelper;
22+
import com.blogspot.e_kanivets.moneytracker.model.Record;
1923

2024
import java.util.Observable;
2125
import java.util.Observer;
@@ -84,6 +88,27 @@ public void onClick(View v) {
8488
}
8589
}
8690

91+
@Override
92+
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
93+
super.onCreateContextMenu(menu, v, menuInfo);
94+
95+
getActivity().getMenuInflater().inflate(R.menu.menu_account, menu);
96+
}
97+
98+
@Override
99+
public boolean onContextItemSelected(MenuItem item) {
100+
AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
101+
102+
switch (item.getItemId()) {
103+
case R.id.delete:
104+
MTHelper.getInstance().deleteAccount(
105+
MTHelper.getInstance().getAccounts().get(info.position));
106+
return true;
107+
default:
108+
return super.onContextItemSelected(item);
109+
}
110+
}
111+
87112
@Override
88113
public void update(Observable observable, Object data) {
89114
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();
@@ -97,6 +122,7 @@ private void initViews(View rootView) {
97122

98123
listView.setAdapter(new AccountAdapter(getActivity(), MTHelper.getInstance().getAccounts()));
99124
((BaseAdapter) listView.getAdapter()).notifyDataSetChanged();
125+
registerForContextMenu(listView);
100126

101127
//Subscribe to helper
102128
MTHelper.getInstance().addObserver(this);

app/src/main/java/com/blogspot/e_kanivets/moneytracker/helper/MTHelper.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,25 @@ public void updateAccountById(int id, int diff) {
317317
notifyObservers();
318318
}
319319

320+
/**
321+
* Deletes an account from DB and app cash. Uses the account id from @account.
322+
* @param account to determine which account should be deleted.
323+
*/
324+
public void deleteAccount(Account account) {
325+
// Delete the account from DB
326+
SQLiteDatabase db = dbHelper.getWritableDatabase();
327+
db.delete(DBHelper.TABLE_ACCOUNTS, "id=?",
328+
new String[]{Integer.toString(account.getId())});
329+
db.close();
330+
331+
// Delete the account from app list
332+
accounts.remove(account);
333+
334+
//notify observers
335+
setChanged();
336+
notifyObservers();
337+
}
338+
320339
public void deleteRecordById(int id) {
321340
for (Record record : records) {
322341
if (record.getId() == id) {

app/src/main/java/com/blogspot/e_kanivets/moneytracker/model/Account.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,14 @@ public int getCurSum() {
3434
public void setCurSum(int curSum) {
3535
this.curSum = curSum;
3636
}
37+
38+
@SuppressWarnings("SimplifiableIfStatement")
39+
@Override
40+
public boolean equals(Object o) {
41+
if (o instanceof Account) {
42+
return ((Account) o).getId() == getId();
43+
} else {
44+
return false;
45+
}
46+
}
3747
}
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<menu xmlns:android="http://schemas.android.com/apk/res/android">
3+
<item android:id="@+id/delete" android:title="@string/delete"/>
4+
</menu>

0 commit comments

Comments
 (0)