Skip to content
This repository was archived by the owner on Jun 27, 2020. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from 1 commit
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
Prev Previous commit
Next Next commit
#80[1h]. Add FormatController and integrate it.
  • Loading branch information
Evgenii Kanivets committed Jun 1, 2016
commit 7220d000bac429ac3576952fb2f44669e153d82c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import com.blogspot.e_kanivets.moneytracker.R;
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseBackActivity;
import com.blogspot.e_kanivets.moneytracker.adapter.CategoryAutoCompleteAdapter;
import com.blogspot.e_kanivets.moneytracker.controller.FormatController;
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
import com.blogspot.e_kanivets.moneytracker.controller.data.CategoryController;
import com.blogspot.e_kanivets.moneytracker.controller.data.RecordController;
Expand Down Expand Up @@ -62,6 +63,8 @@ public class AddRecordActivity extends BaseBackActivity {
RecordController recordController;
@Inject
AccountController accountController;
@Inject
FormatController formatController;

@Bind(R.id.et_title)
EditText etTitle;
Expand Down Expand Up @@ -96,11 +99,11 @@ record = getIntent().getParcelableExtra(KEY_RECORD);
protected void initViews() {
super.initViews();

//Add texts to dialog if it's edit dialog
// Add texts to dialog if it's edit dialog
if (mode == Mode.MODE_EDIT) {
etTitle.setText(record.getTitle());
if (record.getCategory() != null) etCategory.setText(record.getCategory().getName());
etPrice.setText(Integer.toString((int) record.getPrice()));
etPrice.setText(formatController.formatAmount(record.getFullPrice()));
}

presentSpinnerAccount();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import com.blogspot.e_kanivets.moneytracker.activity.ReportActivity;
import com.blogspot.e_kanivets.moneytracker.activity.base.BaseDrawerActivity;
import com.blogspot.e_kanivets.moneytracker.adapter.RecordAdapter;
import com.blogspot.e_kanivets.moneytracker.controller.FormatController;
import com.blogspot.e_kanivets.moneytracker.controller.PeriodController;
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
import com.blogspot.e_kanivets.moneytracker.controller.data.ExchangeRateController;
Expand Down Expand Up @@ -59,6 +60,8 @@ public class MainActivity extends BaseDrawerActivity {
PreferenceController preferenceController;
@Inject
PeriodController periodController;
@Inject
FormatController formatController;

private ShortSummaryPresenter summaryPresenter;

Expand Down Expand Up @@ -228,7 +231,7 @@ private void fillDefaultAccount() {
if (defaultAccount == null) return;

tvDefaultAccountTitle.setText(defaultAccount.getTitle());
tvDefaultAccountSum.setText(Double.toString(defaultAccount.getCurSum()));
tvDefaultAccountSum.setText(formatController.formatAmount(defaultAccount.getFullSum()));
tvCurrency.setText(defaultAccount.getCurrency());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.blogspot.e_kanivets.moneytracker.MtApp;
import com.blogspot.e_kanivets.moneytracker.R;
import com.blogspot.e_kanivets.moneytracker.controller.FormatController;
import com.blogspot.e_kanivets.moneytracker.entity.data.Account;

import java.util.List;
import java.util.Locale;

import javax.inject.Inject;

import butterknife.Bind;
import butterknife.ButterKnife;
Expand All @@ -24,6 +27,9 @@
* @author Evgenii Kanivets
*/
public class AccountAdapter extends BaseAdapter {
@Inject
FormatController formatController;

private Context context;
private List<Account> accounts;

Expand All @@ -34,6 +40,8 @@ public class AccountAdapter extends BaseAdapter {

@SuppressWarnings("deprecation")
public AccountAdapter(Context context, List<Account> accounts) {
MtApp.get().getAppComponent().inject(AccountAdapter.this);

this.context = context;
this.accounts = accounts;

Expand Down Expand Up @@ -74,22 +82,18 @@ public View getView(final int position, View convertView, ViewGroup parent) {

Account account = accounts.get(position);

convertView.setBackgroundColor(account.getCurSum() >= 0 ? whiteGreen : whiteRed);
convertView.setBackgroundColor(account.getFullSum() >= 0.0 ? whiteGreen : whiteRed);

viewHolder.tvCurSum.setTextColor(account.getCurSum() >= 0 ? green : red);
viewHolder.tvCurrency.setTextColor(account.getCurSum() >= 0 ? green : red);
viewHolder.tvCurSum.setTextColor(account.getFullSum() >= 0.0 ? green : red);
viewHolder.tvCurrency.setTextColor(account.getFullSum() >= 0.0 ? green : red);

viewHolder.tvTitle.setText(account.getTitle());
viewHolder.tvCurSum.setText(format(account.getCurSum()));
viewHolder.tvCurSum.setText(formatController.formatSignedAmount(account.getFullSum()));
viewHolder.tvCurrency.setText(account.getCurrency());

return convertView;
}

private String format(double amount) {
return (amount >= 0 ? "+ " : "- ") + String.format(Locale.getDefault(), "%.0f", Math.abs(amount));
}

public static class ViewHolder {
@Bind(R.id.tv_title)
TextView tvTitle;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,17 @@
import android.widget.SimpleExpandableListAdapter;
import android.widget.TextView;

import com.blogspot.e_kanivets.moneytracker.MtApp;
import com.blogspot.e_kanivets.moneytracker.R;
import com.blogspot.e_kanivets.moneytracker.controller.FormatController;
import com.blogspot.e_kanivets.moneytracker.report.record.RecordReportConverter;

import java.util.List;
import java.util.Locale;
import java.util.Map;

import javax.inject.Inject;

import butterknife.Bind;
import butterknife.ButterKnife;

Expand All @@ -23,6 +27,9 @@
* @author Evgenii Kanivets
*/
public class ExpandableListReportAdapter extends SimpleExpandableListAdapter {
@Inject
FormatController formatController;

private List<? extends Map<String, String>> groupData;
private List<? extends List<? extends Map<String, String>>> childData;

Expand All @@ -44,6 +51,7 @@ public ExpandableListReportAdapter(Context context, List<? extends Map<String, S
List<? extends List<? extends Map<String, String>>> childData,
int childLayout, String[] childFrom, int[] childTo) {
super(context, groupData, groupLayout, groupFrom, groupTo, childData, childLayout, childFrom, childTo);
MtApp.get().getAppComponent().inject(ExpandableListReportAdapter.this);

this.groupData = groupData;
this.childData = childData;
Expand Down Expand Up @@ -84,11 +92,7 @@ private void customizeView(View view, Map<String, String> values, boolean groupV
viewHolder.tvTotal.setTextColor(price >= 0 ? green : red);

viewHolder.tvCategory.setText(values.get(RecordReportConverter.TITLE_PARAM_NAME));
viewHolder.tvTotal.setText(format(price));
}

private String format(double amount) {
return (amount >= 0 ? "+ " : "- ") + String.format(Locale.getDefault(), "%.0f", Math.abs(amount));
viewHolder.tvTotal.setText(formatController.formatSignedAmount(price));
}

public static class ViewHolder {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,17 @@
import android.widget.BaseAdapter;
import android.widget.TextView;

import com.blogspot.e_kanivets.moneytracker.MtApp;
import com.blogspot.e_kanivets.moneytracker.R;
import com.blogspot.e_kanivets.moneytracker.controller.FormatController;
import com.blogspot.e_kanivets.moneytracker.entity.data.Record;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;

import javax.inject.Inject;

import butterknife.Bind;
import butterknife.ButterKnife;

Expand All @@ -25,6 +29,9 @@
* @author Evgenii Kanivets
*/
public class RecordAdapter extends BaseAdapter {
@Inject
FormatController formatController;

private Context context;
private List<Record> records;

Expand All @@ -35,6 +42,8 @@ public class RecordAdapter extends BaseAdapter {

@SuppressWarnings("deprecation")
public RecordAdapter(Context context, List<Record> records) {
MtApp.get().getAppComponent().inject(RecordAdapter.this);

this.context = context;
this.records = records;

Expand Down Expand Up @@ -82,8 +91,8 @@ public View getView(final int position, View convertView, ViewGroup parent) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
viewHolder.tvDateAndTime.setText(dateFormat.format(new Date(record.getTime())));

viewHolder.tvPrice.setText((record.isIncome() ? "+ " : "- ")
+ Integer.toString((int) record.getPrice()));
viewHolder.tvPrice.setText(formatController.formatAmount(
(record.isIncome() ? 1 : -1) * record.getFullPrice()));
viewHolder.tvTitle.setText(record.getTitle());
if (record.getCategory() != null)
viewHolder.tvCategory.setText(record.getCategory().getName());
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package com.blogspot.e_kanivets.moneytracker.controller;

import java.util.Locale;

/**
* Controller class to encapsulate string format handling logic.
* Not deal with {@link com.blogspot.e_kanivets.moneytracker.repo.base.IRepo} instances as others.
* Created on 6/1/16.
*
* @author Evgenii Kanivets
*/
public class FormatController {
public String formatAmount(double amount) {
return String.format(Locale.getDefault(), "%.2f", amount);
}

public String formatSignedAmount(double amount) {
return (amount >= 0.0 ? "+ " : "- ") + formatAmount(Math.abs(amount));
}

public String formatIncome(double amount, String currency) {
return (amount >= 0 ? "+ " : "- ") + formatAmount(Math.abs(amount)) + " " + currency;
}

public String formatExpense(double amount, String currency) {
return (amount > 0 ? "+ " : "- ") + formatAmount(Math.abs(amount)) + " " + currency;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ public boolean recordAdded(@Nullable Record record) {

switch (record.getType()) {
case Record.TYPE_EXPENSE:
account.take((int) record.getPrice());
account.take(record.getFullPrice());
break;

case Record.TYPE_INCOME:
account.put((int) record.getPrice());
account.put(record.getFullPrice());
break;

default:
Expand All @@ -60,11 +60,11 @@ public boolean recordDeleted(@Nullable Record record) {

switch (record.getType()) {
case Record.TYPE_EXPENSE:
account.put((int) record.getPrice());
account.put(record.getFullPrice());
break;

case Record.TYPE_INCOME:
account.take((int) record.getPrice());
account.take(record.getFullPrice());
break;

default:
Expand All @@ -91,8 +91,8 @@ public boolean transferDone(@Nullable Transfer transfer) {

if (fromAccount == null || toAccount == null) return false;

fromAccount.take(transfer.getFromAmount());
toAccount.put(transfer.getToAmount());
fromAccount.take(transfer.getFullFromAmount());
toAccount.put(transfer.getFullToAmount());

repo.update(fromAccount);
repo.update(toAccount);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,15 @@
import com.blogspot.e_kanivets.moneytracker.activity.exchange_rate.ExchangeRatesActivity;
import com.blogspot.e_kanivets.moneytracker.activity.record.AddRecordActivity;
import com.blogspot.e_kanivets.moneytracker.activity.record.MainActivity;
import com.blogspot.e_kanivets.moneytracker.adapter.AccountAdapter;
import com.blogspot.e_kanivets.moneytracker.adapter.ExpandableListReportAdapter;
import com.blogspot.e_kanivets.moneytracker.adapter.RecordAdapter;
import com.blogspot.e_kanivets.moneytracker.di.module.repo.CachedRepoModule;
import com.blogspot.e_kanivets.moneytracker.di.module.ControllerModule;
import com.blogspot.e_kanivets.moneytracker.ui.AppRateDialog;
import com.blogspot.e_kanivets.moneytracker.ui.PeriodSpinner;
import com.blogspot.e_kanivets.moneytracker.ui.presenter.AccountsSummaryPresenter;
import com.blogspot.e_kanivets.moneytracker.ui.presenter.ShortSummaryPresenter;

import javax.inject.Singleton;

Expand Down Expand Up @@ -57,4 +61,12 @@ public interface AppComponent {
void inject(AppRateDialog appRateDialog);

void inject(PeriodSpinner periodSpinner);

void inject(RecordAdapter recordAdapter);

void inject(AccountAdapter accountAdapter);

void inject(ExpandableListReportAdapter expandableListReportAdapter);

void inject(ShortSummaryPresenter shortSummaryPresenter);
}
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import android.content.Context;
import android.support.annotation.NonNull;

import com.blogspot.e_kanivets.moneytracker.controller.FormatController;
import com.blogspot.e_kanivets.moneytracker.controller.PeriodController;
import com.blogspot.e_kanivets.moneytracker.controller.data.AccountController;
import com.blogspot.e_kanivets.moneytracker.controller.data.CategoryController;
Expand Down Expand Up @@ -97,4 +98,11 @@ public PreferenceController providesPreferenceController() {
public PeriodController providesPeriodController(PreferenceController preferenceController) {
return new PeriodController(preferenceController);
}

@Provides
@NonNull
@Singleton
public FormatController providesFormatController() {
return new FormatController();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ private void makeReport(List<Account> accountList) {
total = 0;

for (Account account : accountList) {
double convertedSum = account.getCurSum();
double convertedSum = account.getFullSum();

if (!currency.equals(account.getCurrency())) {
ExchangeRate exchangeRate = rateProvider.getRate(account);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ private List<MonthNode> generateReport(List<Record> recordList) {
if (monthMap.get(timestamp) == null) monthMap.put(timestamp, new MonthNode(timestamp));
MonthNode node = monthMap.get(timestamp);

double convertedPrice = record.getPrice();
double convertedPrice = record.getFullPrice();
if (!currency.equals(record.getCurrency())) {
ExchangeRate exchangeRate = rateProvider.getRate(record);
if (exchangeRate == null) throw new NullPointerException("No exchange rate found");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,11 +92,11 @@ private void makeReport(List<Record> recordList) {
for (Record record : convertedRecordList) {
switch (record.getType()) {
case Record.TYPE_INCOME:
totalIncome += record.getPrice();
totalIncome += record.getFullPrice();
break;

case Record.TYPE_EXPENSE:
totalExpense -= record.getPrice();
totalExpense -= record.getFullPrice();
break;

default:
Expand Down Expand Up @@ -128,7 +128,7 @@ private List<Record> convertRecordList(List<Record> recordList) {
List<Record> convertedRecordList = new ArrayList<>();

for (Record record : recordList) {
double convertedPrice = record.getPrice();
double convertedPrice = record.getFullPrice();

if (!currency.equals(record.getCurrency())) {
ExchangeRate exchangeRate = rateProvider.getRate(record);
Expand Down Expand Up @@ -208,10 +208,10 @@ public int compare(Record lhs, Record rhs) {
private double getAmount(Record record) {
switch (record.getType()) {
case Record.TYPE_INCOME:
return record.getPrice();
return record.getFullPrice();

case Record.TYPE_EXPENSE:
return -record.getPrice();
return -record.getFullPrice();

default:
return 0;
Expand Down
Loading