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

Commit 4e92662

Browse files
#189. Save custom period between launches. Refactoring in PeriodSpinner.
1 parent df12a5e commit 4e92662

File tree

2 files changed

+26
-8
lines changed

2 files changed

+26
-8
lines changed

app/src/main/java/com/blogspot/e_kanivets/moneytracker/controller/PeriodController.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public Period readLastUsedPeriod() {
4343
return allTimePeriod();
4444

4545
case Period.TYPE_CUSTOM:
46-
return weekPeriod();
46+
return customPeriod(first, last);
4747

4848
default:
4949
return weekPeriod();
@@ -58,6 +58,16 @@ public void writeLastUsedPeriod(Period period) {
5858
preferenceController.writePeriodType(period.getType());
5959
}
6060

61+
public Period customPeriod(long firstTs, long lastTs) {
62+
Calendar cal = Calendar.getInstance();
63+
cal.setTimeInMillis(firstTs);
64+
Date first = cal.getTime();
65+
cal.setTimeInMillis(lastTs);
66+
Date last = cal.getTime();
67+
68+
return new Period(first, last, Period.TYPE_CUSTOM);
69+
}
70+
6171
public Period dayPeriod() {
6272
Calendar cal = Calendar.getInstance();
6373

app/src/main/java/com/blogspot/e_kanivets/moneytracker/ui/PeriodSpinner.java

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,14 @@ public PeriodSpinner(Context context, AttributeSet attrs, int defStyleAttr) {
4848
init(context);
4949
}
5050

51-
public void setPeriod(Period period) {
51+
public void updatePeriod(Period period) {
5252
if (lastPeriod != null && lastPeriod.equals(period)) return;
5353
if (periodSelectedListener != null) periodSelectedListener.onPeriodSelected(period);
5454

5555
lastPeriod = period;
56+
}
57+
58+
public void setPeriod(Period period) {
5659

5760
switch (period.getType()) {
5861
case Period.TYPE_DAY:
@@ -74,7 +77,12 @@ public void setPeriod(Period period) {
7477
case Period.TYPE_ALL_TIME:
7578
setSelection(4);
7679
break;
80+
81+
case Period.TYPE_CUSTOM:
82+
super.setSelection(5);
83+
break;
7784
}
85+
7886
}
7987

8088
public void setPeriodSelectedListener(OnPeriodSelectedListener periodSelectedListener) {
@@ -107,23 +115,23 @@ public void onItemSelected(AdapterView<?> parent, View view, int position, long
107115

108116
switch (position) {
109117
case 0:
110-
setPeriod(periodController.dayPeriod());
118+
updatePeriod(periodController.dayPeriod());
111119
break;
112120

113121
case 1:
114-
setPeriod(periodController.weekPeriod());
122+
updatePeriod(periodController.weekPeriod());
115123
break;
116124

117125
case 2:
118-
setPeriod(periodController.monthPeriod());
126+
updatePeriod(periodController.monthPeriod());
119127
break;
120128

121129
case 3:
122-
setPeriod(periodController.yearPeriod());
130+
updatePeriod(periodController.yearPeriod());
123131
break;
124132

125133
case 4:
126-
setPeriod(periodController.allTimePeriod());
134+
updatePeriod(periodController.allTimePeriod());
127135
break;
128136

129137
case 5:
@@ -176,7 +184,7 @@ public void OnDataChanged(Date toDate) {
176184
cal.set(Calendar.SECOND, 59);
177185
cal.set(Calendar.MILLISECOND, 999);
178186

179-
setPeriod(new Period(fromDate, cal.getTime(), Period.TYPE_CUSTOM));
187+
updatePeriod(new Period(fromDate, cal.getTime(), Period.TYPE_CUSTOM));
180188
}
181189
});
182190
dialog.show();

0 commit comments

Comments
 (0)