From 4e9266252c89a5f98fe78b9b2e3be5d2d8ab9dec Mon Sep 17 00:00:00 2001 From: Bogdan Yevtushenko Date: Tue, 17 Sep 2019 10:22:56 +0300 Subject: [PATCH 1/4] #189. Save custom period between launches. Refactoring in PeriodSpinner. --- .../controller/PeriodController.java | 12 +++++++++- .../moneytracker/ui/PeriodSpinner.java | 22 +++++++++++++------ 2 files changed, 26 insertions(+), 8 deletions(-) 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 ab947c7..d634e9b 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 @@ -43,7 +43,7 @@ public Period readLastUsedPeriod() { return allTimePeriod(); case Period.TYPE_CUSTOM: - return weekPeriod(); + return customPeriod(first, last); default: return weekPeriod(); @@ -58,6 +58,16 @@ public void writeLastUsedPeriod(Period period) { preferenceController.writePeriodType(period.getType()); } + public Period customPeriod(long firstTs, long lastTs) { + Calendar cal = Calendar.getInstance(); + cal.setTimeInMillis(firstTs); + Date first = cal.getTime(); + cal.setTimeInMillis(lastTs); + Date last = cal.getTime(); + + return new Period(first, last, Period.TYPE_CUSTOM); + } + public Period dayPeriod() { Calendar cal = Calendar.getInstance(); 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 1f7e286..67175ab 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 @@ -48,11 +48,14 @@ public PeriodSpinner(Context context, AttributeSet attrs, int defStyleAttr) { init(context); } - public void setPeriod(Period period) { + public void updatePeriod(Period period) { if (lastPeriod != null && lastPeriod.equals(period)) return; if (periodSelectedListener != null) periodSelectedListener.onPeriodSelected(period); lastPeriod = period; + } + + public void setPeriod(Period period) { switch (period.getType()) { case Period.TYPE_DAY: @@ -74,7 +77,12 @@ public void setPeriod(Period period) { case Period.TYPE_ALL_TIME: setSelection(4); break; + + case Period.TYPE_CUSTOM: + super.setSelection(5); + break; } + } public void setPeriodSelectedListener(OnPeriodSelectedListener periodSelectedListener) { @@ -107,23 +115,23 @@ public void onItemSelected(AdapterView parent, View view, int position, long switch (position) { case 0: - setPeriod(periodController.dayPeriod()); + updatePeriod(periodController.dayPeriod()); break; case 1: - setPeriod(periodController.weekPeriod()); + updatePeriod(periodController.weekPeriod()); break; case 2: - setPeriod(periodController.monthPeriod()); + updatePeriod(periodController.monthPeriod()); break; case 3: - setPeriod(periodController.yearPeriod()); + updatePeriod(periodController.yearPeriod()); break; case 4: - setPeriod(periodController.allTimePeriod()); + updatePeriod(periodController.allTimePeriod()); break; case 5: @@ -176,7 +184,7 @@ public void OnDataChanged(Date toDate) { cal.set(Calendar.SECOND, 59); cal.set(Calendar.MILLISECOND, 999); - setPeriod(new Period(fromDate, cal.getTime(), Period.TYPE_CUSTOM)); + updatePeriod(new Period(fromDate, cal.getTime(), Period.TYPE_CUSTOM)); } }); dialog.show(); From eda96fee7c02ded17f3367d0c5c04f5c248978c0 Mon Sep 17 00:00:00 2001 From: Bogdan Yevtushenko Date: Tue, 17 Sep 2019 10:46:58 +0300 Subject: [PATCH 2/4] #189. Fix bug connected to cutsom date in spinner MainActivity. --- .../blogspot/e_kanivets/moneytracker/ui/PeriodSpinner.java | 7 ++++++- app/src/main/res/values-ru/strings.xml | 3 +++ app/src/main/res/values-uk/strings.xml | 2 ++ app/src/main/res/values-zh/strings.xml | 3 +++ app/src/main/res/values/strings.xml | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) 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 67175ab..9150de6 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 @@ -6,6 +6,7 @@ import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; +import android.widget.Toast; import com.blogspot.e_kanivets.moneytracker.MtApp; import com.blogspot.e_kanivets.moneytracker.R; @@ -184,7 +185,11 @@ public void OnDataChanged(Date toDate) { cal.set(Calendar.SECOND, 59); cal.set(Calendar.MILLISECOND, 999); - updatePeriod(new Period(fromDate, cal.getTime(), Period.TYPE_CUSTOM)); + if (cal.getTime().getTime() < fromDate.getTime()) { + Toast.makeText(context, R.string.start_earlier_end, Toast.LENGTH_SHORT).show(); + } else { + updatePeriod(new Period(fromDate, cal.getTime(), Period.TYPE_CUSTOM)); + } } }); dialog.show(); diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 50f673f..dc83673 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -129,4 +129,7 @@ График Информация Операции + + Конечная дата не может быть раньше началной + diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml index 3f6d25b..c2312ba 100644 --- a/app/src/main/res/values-uk/strings.xml +++ b/app/src/main/res/values-uk/strings.xml @@ -129,4 +129,6 @@ Графік Інформація Операції + + Дата початку не може бути раніше за дату кінця diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index 8215513..7874beb 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -118,4 +118,7 @@ 圖形 信息 操作 + + 开始日期不能早于结束日期 + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 85fe9a4..3109b93 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -145,4 +145,5 @@ Are you sure about deleting this backup file %1$s? It can\'t be restored after. %1$s (%2$d) + End date can\'t be earlier start date From f61696fac3d2c995c571392851425bc8bf4a21b0 Mon Sep 17 00:00:00 2001 From: Bogdan Yevtushenko Date: Tue, 17 Sep 2019 10:58:52 +0300 Subject: [PATCH 3/4] #189. Fix bug connected to show custom period between launches. --- .../com/blogspot/e_kanivets/moneytracker/ui/PeriodSpinner.java | 1 + 1 file changed, 1 insertion(+) 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 9150de6..2f276bc 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 @@ -81,6 +81,7 @@ public void setPeriod(Period period) { case Period.TYPE_CUSTOM: super.setSelection(5); + updatePeriod(period); break; } From e0ed6491af82cc4e5f024363442ccbdaf373c75a Mon Sep 17 00:00:00 2001 From: Bogdan Yevtushenko Date: Tue, 17 Sep 2019 12:38:19 +0300 Subject: [PATCH 4/4] #189. Add review fixes. --- app/src/main/res/values-ru/strings.xml | 2 +- app/src/main/res/values/strings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index dc83673..0796ac7 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -130,6 +130,6 @@ Информация Операции - Конечная дата не может быть раньше началной + Дата конца не может быть раньше даты начала diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3109b93..9f31824 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -145,5 +145,5 @@ Are you sure about deleting this backup file %1$s? It can\'t be restored after. %1$s (%2$d) - End date can\'t be earlier start date + End date can\'t be earlier than start date