Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-10-29 10:49:22 +0300
committerStefan Niedermann <info@niedermann.it>2020-10-29 10:49:22 +0300
commit97049560a1e8d03fddadf9d825be69f88ab096af (patch)
treea779775943b177995cd471853cac291ba5ac1729 /app/src/main
parent090229aa9e411114c9f235e622f042b7aae3f664 (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.java11
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/ui/card/details/CardDetailsFragment.java43
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);