diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/controller/PeriodController.java b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/controller/PeriodController.java index 2e0bfcc..ab947c7 100644 --- a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/controller/PeriodController.java +++ b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/controller/PeriodController.java @@ -39,6 +39,9 @@ public Period readLastUsedPeriod() { case Period.TYPE_YEAR: return yearPeriod(); + case Period.TYPE_ALL_TIME: + return allTimePeriod(); + case Period.TYPE_CUSTOM: return weekPeriod(); @@ -127,6 +130,28 @@ public Period yearPeriod() { return new Period(first, last, Period.TYPE_YEAR); } + public Period allTimePeriod() { + Calendar cal = Calendar.getInstance(); + + // set start of time by Jesus + cal.set(Calendar.YEAR, 2000); + cal.set(Calendar.MONTH, Calendar.JANUARY); + cal.set(Calendar.DAY_OF_MONTH, 1); + setDayStart(cal); + + Date first = cal.getTime(); + + // set possible end of time + cal.set(Calendar.YEAR, 3000); + cal.set(Calendar.MONTH, Calendar.DECEMBER); + cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH)); + setDayEnd(cal); + + Date last = cal.getTime(); + + return new Period(first, last, Period.TYPE_ALL_TIME); + } + private void setDayStart(Calendar cal) { cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/entity/Period.java b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/entity/Period.java index 2d0a531..609b58c 100644 --- a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/entity/Period.java +++ b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/entity/Period.java @@ -19,6 +19,7 @@ public class Period implements Parcelable { public static final String TYPE_WEEK = "week"; public static final String TYPE_MONTH = "month"; public static final String TYPE_YEAR = "year"; + public static final String TYPE_ALL_TIME = "all_time"; public static final String TYPE_CUSTOM = "custom"; @SuppressLint("SimpleDateFormat") diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/PeriodSpinner.java b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/PeriodSpinner.java index c88832b..1f7e286 100644 --- a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/PeriodSpinner.java +++ b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/PeriodSpinner.java @@ -70,6 +70,10 @@ public void setPeriod(Period period) { case Period.TYPE_YEAR: setSelection(3); break; + + case Period.TYPE_ALL_TIME: + setSelection(4); + break; } } @@ -119,6 +123,10 @@ public void onItemSelected(AdapterView parent, View view, int position, long break; case 4: + setPeriod(periodController.allTimePeriod()); + break; + + case 5: // Custom period selection showFromDateDialog(); break; diff --git a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java index 85213e1..e93d86d 100644 --- a/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java +++ b/app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/presenter/ShortSummaryPresenter.java @@ -8,9 +8,11 @@ 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.Period; import com.blogspot.e_kanivets.moneytracker.report.record.IRecordReport; import com.blogspot.e_kanivets.moneytracker.ui.presenter.base.BaseSummaryPresenter; +import java.text.SimpleDateFormat; import java.util.List; import javax.inject.Inject; @@ -63,8 +65,7 @@ public void update(IRecordReport report, String currency, List ratesNeed viewHolder.tvTotal.setTextColor(red); viewHolder.tvTotal.setText(createRatesNeededList(currency, ratesNeeded)); } else { - viewHolder.tvPeriod.setText(context.getString(R.string.period_from_to, - report.getPeriod().getFirstDay(), report.getPeriod().getLastDay())); + viewHolder.tvPeriod.setText(formatPeriod(report.getPeriod())); viewHolder.tvTotalIncome.setTextColor(report.getTotalIncome() >= 0 ? green : red); viewHolder.tvTotalIncome.setText(formatController.formatIncome(report.getTotalIncome(), @@ -80,6 +81,26 @@ public void update(IRecordReport report, String currency, List ratesNeed } } + private String formatPeriod(Period period) { + switch (period.getType()) { + case Period.TYPE_DAY: + return period.getFirstDay(); + + case Period.TYPE_MONTH: + return new SimpleDateFormat("MMMM, yyyy").format(period.getFirst()); + + case Period.TYPE_YEAR: + return new SimpleDateFormat("yyyy").format(period.getFirst()); + + case Period.TYPE_ALL_TIME: + return context.getString(R.string.all_time); + + default: + return context.getString(R.string.period_from_to, period.getFirstDay(), + period.getLastDay()); + } + } + public static class ViewHolder { @BindView(R.id.tv_period) TextView tvPeriod; diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index f7c0927..7bb319a 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -21,6 +21,7 @@ Неделя Месяц Год + За все время Вам нравится MoneyTracker? Оцените его на Google Play! @@ -113,4 +114,13 @@ Нельзя конвертировать валюту в саму себя. Нельзя создать запись в будущем. Необходим, по крайней мере, один счет. + + Редактировать счет + Цвет + Цель + Восстановить + Архивировать + Нельзя архивировать счет по умолчанию. + Удалить счет + Вы уверены, что хотите удалить этот счет ? Вы не сможете восстановить его после удаления. diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 6639e64..2398fdd 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -21,6 +21,7 @@ Тиждень Місяць Рік + За увесь час Вам подобається MoneyTracker? Оцініть його на Google Play! @@ -113,4 +114,13 @@ Не можна конвертувати валюту у саму себе. Не можна створити запис у майбутньому. Необхідний, принаймні, один рахунок. + + Редагувати рахунок + Колір + Ціль + Відновити + Архівувати + Неможливо архівувати рахунок за замовчанням. + Видалити рахунок + Ви впевнені, що хочете видалити цей рахунок? Ви не зможете відновити його після видалення. diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 8cd2ac6..c98ea3a 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -18,6 +18,7 @@ + 整天 你喜欢我们这个软件吗? 在Google Play上评价吧! 稍后 @@ -102,4 +103,13 @@ 无法在同种货币之间转换。 以后无法创建记录。 至少需要一个账目。 + + 编辑帐户 + 颜色 + 目标 + 恢复 + 档案 + 您无法获得默认帐户。 + 删除帐户 + 你确定要删除这个帐户吗? 以后不能恢复。 diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index b877628..3b353f8 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -5,6 +5,7 @@ @string/week @string/month @string/year + @string/all_time @string/custom \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dad4aa4..4552453 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -18,6 +18,7 @@ Week Month Year + All time Do you like MoneyTracker? Rate it on Google Play! Maybe Later @@ -123,7 +124,6 @@ Can\'t create a record in future. At least one account is needed. - Edit Account Color Goal @@ -132,4 +132,6 @@ You can\'t archive a default account. Delete account Are you sure about deleting this account? It can\'t be restored after. + +