Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
</intent-filter>
</activity>
<activity android:name=".activity.AddCategoryActivity"/>
<activity android:name=".activity.ChangeCurrencyActivity"/>

<receiver android:name=".receiver.FillExpenseNotificationReceiver">
<intent-filter>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
package ajitsingh.com.expensemanager.activity;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.widget.Spinner;
import android.widget.Toast;

import ajitsingh.com.expensemanager.R;
import ajitsingh.com.expensemanager.database.CurrencyPreferencesHelper;
import ajitsingh.com.expensemanager.presenter.CurrencyPresenter;
import ajitsingh.com.expensemanager.view.CurrencyView;

import static ajitsingh.com.expensemanager.activity.MainActivity.SELECT_ANOTHER_CURRENCY;

public class ChangeCurrencyActivity extends FragmentActivity implements CurrencyView {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.chane_currency);
setSpinnerPosition();
}

private void setSpinnerPosition() {
CurrencyPreferencesHelper preferencesHelper = new CurrencyPreferencesHelper(this);
((Spinner) findViewById(R.id.currency)).setSelection(preferencesHelper.getActualCurrencyPosition());
}

public void selectCurrency(View v) {
CurrencyPreferencesHelper preferencesHelper = new CurrencyPreferencesHelper(this);
CurrencyPresenter presenter = new CurrencyPresenter(this, preferencesHelper);
presenter.setCurrency();
Toast.makeText(this, R.string.currency_change_success, Toast.LENGTH_LONG).show();
finishActivity(SELECT_ANOTHER_CURRENCY);
}

@Override
public int getCurrency() {
Spinner spinner = (Spinner) findViewById(R.id.currency);
return spinner.getSelectedItemPosition();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
import java.util.List;

import ajitsingh.com.expensemanager.R;
import ajitsingh.com.expensemanager.database.CurrencyPreferencesHelper;
import ajitsingh.com.expensemanager.database.ExpenseDatabaseHelper;
import ajitsingh.com.expensemanager.presenter.CurrentMonthExpensePresenter;
import ajitsingh.com.expensemanager.view.CurrentMonthExpenseView;
Expand Down Expand Up @@ -46,7 +47,8 @@ public void displayGraph(List<Bar> points) {
@Override
public void displayTotalExpense(Long totalExpense) {
TextView totalExpenseTextBox = (TextView) getActivity().findViewById(R.id.current_months_total_expense);
totalExpenseTextBox.setText(getString(R.string.total_expense) + " " + getString(R.string.rupee_sym) + totalExpense);
CurrencyPreferencesHelper preferencesHelper = new CurrencyPreferencesHelper(getActivity());
totalExpenseTextBox.setText(getString(R.string.total_expense) + " " + preferencesHelper.getActualCurrency() + totalExpense);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

import ajitsingh.com.expensemanager.R;
import ajitsingh.com.expensemanager.adapter.CurrentWeeksExpenseAdapter;
import ajitsingh.com.expensemanager.database.CurrencyPreferencesHelper;
import ajitsingh.com.expensemanager.database.ExpenseDatabaseHelper;
import ajitsingh.com.expensemanager.model.Expense;
import ajitsingh.com.expensemanager.presenter.CurrentWeekExpensePresenter;
Expand Down Expand Up @@ -45,6 +46,7 @@ public void displayCurrentWeeksExpenses(Map<String, List<Expense>> expensesByDat
@Override
public void displayTotalExpenses(Long totalExpense) {
TextView totalExpenseTextBox = (TextView) getActivity().findViewById(R.id.current_week_expense);
totalExpenseTextBox.setText(getString(R.string.total_expense) + " " + getString(R.string.rupee_sym) + totalExpense);
CurrencyPreferencesHelper preferencesHelper = new CurrencyPreferencesHelper(getActivity());
totalExpenseTextBox.setText(getString(R.string.total_expense) + " " + preferencesHelper.getActualCurrency() + totalExpense);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class MainActivity extends FragmentActivity implements NavigationDrawerIt
private ActionBarDrawerToggle actionBarDrawerToggle;
private DrawerLayout drawerLayout;
public static final int ADD_NEW_CAT = 9991;
public static final int SELECT_ANOTHER_CURRENCY = 9992;
private static Boolean isNotificationScheduled = false;
private HomeViewPagerAdapter homeViewPagerAdapter;

Expand Down Expand Up @@ -105,6 +106,11 @@ public boolean onOptionsItemSelected(MenuItem item) {
startActivityForResult(intent, ADD_NEW_CAT);
return true;
}
if (id == R.id.action_change_currency) {
Intent intent = new Intent(this, ChangeCurrencyActivity.class);
startActivityForResult(intent, SELECT_ANOTHER_CURRENCY);
return true;
}

return actionBarDrawerToggle.onOptionsItemSelected(item) || super.onOptionsItemSelected(item);
}
Expand All @@ -116,6 +122,9 @@ protected void onActivityResult(int requestCode, int resultCode, Intent data) {
viewPager.setAdapter(new HomeViewPagerAdapter(getSupportFragmentManager()));
viewPager.setCurrentItem(0);
}
if (requestCode == SELECT_ANOTHER_CURRENCY) {
goToHome();
}
}

public void onExpenseAdded() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@

import ajitsingh.com.expensemanager.R;
import ajitsingh.com.expensemanager.adapter.TodaysExpenseListViewAdapter;
import ajitsingh.com.expensemanager.database.CurrencyPreferencesHelper;
import ajitsingh.com.expensemanager.database.ExpenseDatabaseHelper;
import ajitsingh.com.expensemanager.model.Expense;
import ajitsingh.com.expensemanager.presenter.TodaysExpensePresenter;
Expand All @@ -38,7 +39,8 @@ public void onActivityCreated(Bundle savedInstanceState) {
@Override
public void displayTotalExpense(Long totalExpense) {
TextView totalExpenseTextBox = (TextView) getActivity().findViewById(R.id.total_expense);
totalExpenseTextBox.setText(getActivity().getString(R.string.total_expense) + " " + getActivity().getString(R.string.rupee_sym) + totalExpense.toString());
CurrencyPreferencesHelper preferencesHelper = new CurrencyPreferencesHelper(getActivity());
totalExpenseTextBox.setText(getActivity().getString(R.string.total_expense) + " " + preferencesHelper.getActualCurrency() + totalExpense.toString());
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
import java.util.Map;

import ajitsingh.com.expensemanager.R;
import ajitsingh.com.expensemanager.database.CurrencyPreferencesHelper;
import ajitsingh.com.expensemanager.model.Expense;
import ajitsingh.com.expensemanager.utils.ExpenseCollection;

Expand All @@ -20,10 +21,12 @@
public class CurrentWeeksExpenseAdapter implements ExpandableListAdapter {
private Context context;
private final Map<String, List<Expense>> expenses;
private CurrencyPreferencesHelper preferencesHelper;

public CurrentWeeksExpenseAdapter(Context context, Map<String, List<Expense>> expenses) {
this.context = context;
this.expenses = expenses;
preferencesHelper = new CurrencyPreferencesHelper(context);
}

@Override
Expand All @@ -50,8 +53,8 @@ public int getChildrenCount(int position) {
public Object getGroup(int position) {
String date = (String) this.expenses.keySet().toArray()[position];
Long totalExpense = new ExpenseCollection(this.expenses.get(date)).getTotalExpense();

return date + " (" + getDayName(date) + ") - " + context.getString(R.string.rupee_sym) + totalExpense;
CurrencyPreferencesHelper preferencesHelper = new CurrencyPreferencesHelper(context);
return date + " (" + getDayName(date) + ") - " + preferencesHelper.getActualCurrency() + totalExpense;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
package ajitsingh.com.expensemanager.database;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

import ajitsingh.com.expensemanager.R;

public class CurrencyPreferencesHelper {
public static final String PREFERENCES_NAME = "currency_preferences";

private final Context context;

public CurrencyPreferencesHelper(Context context) {
this.context = context;
}

public void setCurrency(int currency) {
SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE);
Editor editor = preferences.edit();
editor.putInt("currency", currency);
editor.commit();
}

public String getActualCurrency() {
SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE);
String[] currencies = context.getResources().getStringArray(R.array.currency_symbols);
return currencies[preferences.getInt("currency", 0)];
}

public int getActualCurrencyPosition() {
SharedPreferences preferences = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_PRIVATE);
return preferences.getInt("currency", 0);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package ajitsingh.com.expensemanager.presenter;

import android.content.Context;

import java.util.Currency;

import ajitsingh.com.expensemanager.database.CurrencyPreferencesHelper;
import ajitsingh.com.expensemanager.view.CurrencyView;

public class CurrencyPresenter {
private final CurrencyView view;
private final CurrencyPreferencesHelper preferencesHelper;

public CurrencyPresenter(CurrencyView view, CurrencyPreferencesHelper preferencesHelper) {
this.view = view;
this.preferencesHelper = preferencesHelper;
}

public void setCurrency() {
int currency = view.getCurrency();
preferencesHelper.setCurrency(currency);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package ajitsingh.com.expensemanager.view;

public interface CurrencyView {
int getCurrency();
}
53 changes: 53 additions & 0 deletions app/src/main/res/layout/chane_currency.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/background_color"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/action_change_currency"
android:textColor="@color/white"
android:textSize="25dp"
android:textStyle="bold" />

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="50dp"
android:background="@color/white"
android:orientation="vertical">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="10dp"
android:layout_marginEnd="10dp"
android:layout_marginStart="10dp"
android:layout_marginTop="10dp"
android:orientation="vertical">

<Spinner
android:id="@+id/currency"
android:layout_width="match_parent"
android:layout_height="50dp"
android:entries="@array/currency_types" />

<Button
android:id="@+id/select_currency"
style="@style/button_primary"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="20dp"
android:onClick="selectCurrency"
android:text="@string/select_currency" />
</LinearLayout>
</LinearLayout>

</RelativeLayout>
5 changes: 5 additions & 0 deletions app/src/main/res/menu/menu_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,9 @@
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_add_category"/>
<item
android:id="@+id/action_change_currency"
android:orderInCategory="100"
android:showAsAction="never"
android:title="@string/action_change_currency"/>
</menu>
12 changes: 12 additions & 0 deletions app/src/main/res/values/arrays.xml
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,16 @@
<item>Rent</item>
<item>Other</item>
</array>
<array name="currency_types">
<item>Dollar $</item>
<item>Rupee ₹</item>
<item>Euro €</item>
<item>Yuan ¥</item>
</array>
<array name="currency_symbols">
<item>$</item>
<item>₹</item>
<item>€</item>
<item>¥</item>
</array>
</resources>
3 changes: 3 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@
<string name="action_add_category">Add Category</string>
<string name="category_empty_error">Category can not be empty!!</string>
<string name="add_category_success">Category added successfully..</string>
<string name="action_change_currency">Change Currency</string>
<string name="select_currency">Select Currency</string>
<string name="currency_change_success">Currency changed successfully..</string>

<array name="drawer_items">
<item>Home</item>
Expand Down