diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-10-29 10:49:22 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-10-29 10:49:22 +0300 |
commit | 97049560a1e8d03fddadf9d825be69f88ab096af (patch) | |
tree | a779775943b177995cd471853cac291ba5ac1729 /app/src/main | |
parent | 090229aa9e411114c9f235e622f042b7aae3f664 (diff) |
#715 Use java.time.*
Signed-off-by: Stefan Niedermann <info@niedermann.it>
Diffstat (limited to 'app/src/main')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java | 11 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java | 43 |
2 files changed, 30 insertions, 24 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java b/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java index 8db7f7cf1..40b6d6719 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/model/Card.java @@ -8,8 +8,7 @@ import androidx.room.Index; import com.google.gson.annotations.SerializedName; -import java.time.LocalDateTime; -import java.time.ZoneId; +import java.time.Instant; import java.util.Date; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -207,8 +206,8 @@ public class Card extends AbstractRemoteEntity { } @Ignore - public LocalDateTime getDueDateLocalDateTime() { - return LocalDateTime.ofInstant(getDueDate().toInstant(), ZoneId.systemDefault()); + public Instant getDueDateInstant() { + return dueDate == null ? null : dueDate.toInstant(); } public void setDueDate(Date dueDate) { @@ -216,8 +215,8 @@ public class Card extends AbstractRemoteEntity { } @Ignore - public void setDueDateLocalDateTime(@NonNull LocalDateTime dateTime) { - this.dueDate = Date.from(dateTime.atZone(ZoneId.systemDefault()).toInstant()); + public void setDueDateInstant(@NonNull Instant dateTime) { + this.dueDate = Date.from(dateTime); } public int getOverdue() { diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java index 744f24c3d..45f50c10f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java @@ -5,6 +5,7 @@ import android.content.res.ColorStateList; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.text.Editable; +import android.text.TextUtils; import android.text.TextWatcher; import android.view.LayoutInflater; import android.view.View; @@ -31,10 +32,11 @@ import com.yydcdut.markdown.MarkdownProcessor; import com.yydcdut.markdown.syntax.edit.EditFactory; import java.text.DateFormat; +import java.time.Instant; import java.time.LocalDate; -import java.time.LocalDateTime; import java.time.LocalTime; import java.time.ZoneId; +import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; import it.niedermann.android.util.ColorUtil; @@ -180,7 +182,7 @@ public class CardDetailsFragment extends BrandedFragment implements OnDateSetLis private void setupDueDate() { if (this.viewModel.getFullCard().getCard().getDueDate() != null) { binding.dueDateDate.setText(dateFormat.format(this.viewModel.getFullCard().getCard().getDueDate())); - LocalDateTime dueDate = this.viewModel.getFullCard().getCard().getDueDateLocalDateTime(); + ZonedDateTime dueDate = this.viewModel.getFullCard().getCard().getDueDateInstant().atZone(ZoneId.systemDefault()); binding.dueDateTime.setText(dueDate == null ? null : dueDate.toLocalTime().format(timeFormatter)); binding.clearDueDate.setVisibility(VISIBLE); } else { @@ -194,7 +196,7 @@ public class CardDetailsFragment extends BrandedFragment implements OnDateSetLis binding.dueDateDate.setOnClickListener(v -> { final LocalDate date; if (viewModel.getFullCard() != null && viewModel.getFullCard().getCard() != null && viewModel.getFullCard().getCard().getDueDate() != null) { - date = LocalDateTime.ofInstant(viewModel.getFullCard().getCard().getDueDate().toInstant(), ZoneId.systemDefault()).toLocalDate(); + date = viewModel.getFullCard().getCard().getDueDateInstant().atZone(ZoneId.systemDefault()).toLocalDate(); } else { date = LocalDate.now(); } @@ -205,7 +207,7 @@ public class CardDetailsFragment extends BrandedFragment implements OnDateSetLis binding.dueDateTime.setOnClickListener(v -> { final LocalTime time; if (viewModel.getFullCard() != null && viewModel.getFullCard().getCard() != null && viewModel.getFullCard().getCard().getDueDate() != null) { - time = LocalDateTime.ofInstant(viewModel.getFullCard().getCard().getDueDate().toInstant(), ZoneId.systemDefault()).toLocalTime(); + time = viewModel.getFullCard().getCard().getDueDateInstant().atZone(ZoneId.systemDefault()).toLocalTime(); } else { time = LocalTime.now(); } @@ -339,17 +341,23 @@ public class CardDetailsFragment extends BrandedFragment implements OnDateSetLis int hourOfDay; int minute; - if (binding.dueDateTime.getText() != null && binding.dueDateTime.length() > 0) { - hourOfDay = this.viewModel.getFullCard().getCard().getDueDateLocalDateTime().getHour(); - minute = this.viewModel.getFullCard().getCard().getDueDateLocalDateTime().getMinute(); - } else { + final CharSequence selectedTime = binding.dueDateTime.getText(); + if (TextUtils.isEmpty(selectedTime)) { hourOfDay = 0; minute = 0; + } else { + final LocalTime oldTime = LocalTime.from(this.viewModel.getFullCard().getCard().getDueDateInstant().atZone(ZoneId.systemDefault())); + hourOfDay = oldTime.getHour(); + minute = oldTime.getMinute(); } - LocalDateTime newDateTime = LocalDateTime.of(year, monthOfYear + 1, dayOfMonth, hourOfDay, minute); - this.viewModel.getFullCard().getCard().setDueDateLocalDateTime(newDateTime); - binding.dueDateDate.setText(dateFormat.format(newDateTime.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli())); + final ZonedDateTime newDateTime = ZonedDateTime.of( + LocalDate.of(year, monthOfYear + 1, dayOfMonth), + LocalTime.of(hourOfDay, minute), + ZoneId.systemDefault() + ); + this.viewModel.getFullCard().getCard().setDueDateInstant(newDateTime.toInstant()); + binding.dueDateDate.setText(dateFormat.format(newDateTime.toInstant().toEpochMilli())); if (this.viewModel.getFullCard().getCard().getDueDate() == null || this.viewModel.getFullCard().getCard().getDueDate().getTime() == 0) { binding.clearDueDate.setVisibility(GONE); @@ -360,14 +368,13 @@ public class CardDetailsFragment extends BrandedFragment implements OnDateSetLis @Override public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second) { - if (this.viewModel.getFullCard().getCard().getDueDate() == null) { - this.viewModel.getFullCard().getCard().setDueDateLocalDateTime(LocalDateTime.now()); - } - - final LocalDateTime oldDateTime = this.viewModel.getFullCard().getCard().getDueDateLocalDateTime(); - final LocalDateTime newDateTime = LocalDateTime.of(oldDateTime.toLocalDate(), LocalTime.of(hourOfDay, minute)); + final Instant oldInstant = this.viewModel.getFullCard().getCard().getDueDateInstant(); + final ZonedDateTime oldDateTime = oldInstant == null ? ZonedDateTime.now() : oldInstant.atZone(ZoneId.systemDefault()); + final ZonedDateTime newDateTime = oldDateTime.with( + LocalTime.of(hourOfDay, minute) + ); - this.viewModel.getFullCard().getCard().setDueDateLocalDateTime(newDateTime); + this.viewModel.getFullCard().getCard().setDueDateInstant(newDateTime.toInstant()); binding.dueDateTime.setText(newDateTime.format(timeFormatter)); if (this.viewModel.getFullCard().getCard().getDueDate() == null || this.viewModel.getFullCard().getCard().getDueDate().getTime() == 0) { binding.clearDueDate.setVisibility(GONE); |