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:
authordesperateCoder <echotodevnull@gmail.com>2020-10-30 22:09:49 +0300
committerdesperateCoder <echotodevnull@gmail.com>2020-10-30 22:09:49 +0300
commit58903257509071f9d245132697d20ace6be17600 (patch)
tree9089b89bd785cb079db6f77b05f66f2d1ed3e947 /app/src/main/java/it/niedermann/nextcloud/deck/api
parente1e9d7c76976c53d8d3f38b8f3ae0622015f282f (diff)
parenta60dd0bcf606b061681fd9cb3ca6edb72bcfc4da (diff)
Merge branch 'master' of github.com:stefan-niedermann/nextcloud-deck
Diffstat (limited to 'app/src/main/java/it/niedermann/nextcloud/deck/api')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/GsonConfig.java6
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCDateAdapter.java48
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCInstantAdapter.java43
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java17
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/api/LastSyncUtil.java14
5 files changed, 61 insertions, 67 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonConfig.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonConfig.java
index 5da408e44..4e61abfb3 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonConfig.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonConfig.java
@@ -5,7 +5,7 @@ import com.google.gson.GsonBuilder;
import com.google.gson.reflect.TypeToken;
import java.lang.reflect.Type;
-import java.util.Date;
+import java.time.Instant;
import java.util.List;
import it.niedermann.nextcloud.deck.model.Attachment;
@@ -54,7 +54,7 @@ public class GsonConfig {
INSTANCE = new GsonBuilder()
.setDateFormat(DATE_PATTERN)
.setLenient()
- .registerTypeAdapter(Date.class, new GsonUTCDateAdapter())
+ .registerTypeAdapter(Instant.class, new GsonUTCInstantAdapter())
.registerTypeAdapter(boardList, new NextcloudArrayDeserializer<>("boards", FullBoard.class))
.registerTypeAdapter(board, new NextcloudDeserializer<>("board", FullBoard.class))
.registerTypeAdapter(cardList, new NextcloudArrayDeserializer<>("cards", FullCard.class))
@@ -72,7 +72,7 @@ public class GsonConfig {
.registerTypeAdapter(attachment, new NextcloudDeserializer<>("attachment", Attachment.class))
.registerTypeAdapter(comment, new NextcloudDeserializer<>("comment", OcsComment.class))
.registerTypeAdapter(projectList, new NextcloudDeserializer<>("projectList", OcsProjectList.class))
- .registerTypeAdapter(groupMembers, new NextcloudDeserializer<>("groupMembers", GroupMemberUIDs.class))
+ .registerTypeAdapter(groupMembers, new NextcloudDeserializer<>("groupMembers", GroupMemberUIDs.class))
.create();
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCDateAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCDateAdapter.java
deleted file mode 100644
index 4d30b3e81..000000000
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCDateAdapter.java
+++ /dev/null
@@ -1,48 +0,0 @@
-package it.niedermann.nextcloud.deck.api;
-
-import com.google.gson.JsonDeserializationContext;
-import com.google.gson.JsonDeserializer;
-import com.google.gson.JsonElement;
-import com.google.gson.JsonParseException;
-import com.google.gson.JsonPrimitive;
-import com.google.gson.JsonSerializationContext;
-import com.google.gson.JsonSerializer;
-
-import java.lang.reflect.Type;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Locale;
-import java.util.TimeZone;
-import java.util.regex.Pattern;
-
-public class GsonUTCDateAdapter implements JsonSerializer<Date>, JsonDeserializer<Date> {
-
- private final DateFormat dateFormat;
- private final Pattern UNIX_TIMESTAMP = Pattern.compile("^[0-9]+$");
-
- public GsonUTCDateAdapter() {
- //This is the format I need
- dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US);
- //This is the key line which converts the date to UTC which cannot be accessed with the default serializer
- dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
- }
-
- @Override public synchronized JsonElement serialize(Date date, Type type, JsonSerializationContext jsonSerializationContext) {
- return new JsonPrimitive(dateFormat.format(date));
- }
-
- @Override public synchronized Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) {
- String dateValue = jsonElement.getAsString();
- try {
- return dateFormat.parse(dateValue);
- } catch (ParseException e) {
- // fallback to unix timestamp?
- if (UNIX_TIMESTAMP.matcher(dateValue).matches()){
- return new Date(Long.valueOf(dateValue));
- }
- throw new JsonParseException(e);
- }
- }
-} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCInstantAdapter.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCInstantAdapter.java
new file mode 100644
index 000000000..5a6b5b0c0
--- /dev/null
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/GsonUTCInstantAdapter.java
@@ -0,0 +1,43 @@
+package it.niedermann.nextcloud.deck.api;
+
+import com.google.gson.JsonDeserializationContext;
+import com.google.gson.JsonDeserializer;
+import com.google.gson.JsonElement;
+import com.google.gson.JsonParseException;
+import com.google.gson.JsonPrimitive;
+import com.google.gson.JsonSerializationContext;
+import com.google.gson.JsonSerializer;
+
+import java.lang.reflect.Type;
+import java.text.ParseException;
+import java.time.Instant;
+import java.time.format.DateTimeFormatter;
+import java.util.regex.Pattern;
+
+public class GsonUTCInstantAdapter implements JsonSerializer<Instant>, JsonDeserializer<Instant> {
+
+ private static final Pattern UNIX_TIMESTAMP = Pattern.compile("^[0-9]+$");
+
+ @Override
+ public synchronized JsonElement serialize(Instant date, Type type, JsonSerializationContext jsonSerializationContext) {
+ return new JsonPrimitive(DateTimeFormatter.ISO_INSTANT.format(date));
+ }
+
+ @Override
+ public synchronized Instant deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) {
+ String dateValue = jsonElement.getAsString();
+ try {
+ final Instant parsedDate = Instant.parse(dateValue);
+ if (parsedDate == null) {
+ throw new ParseException("Parsed date is null", 0);
+ }
+ return parsedDate;
+ } catch (ParseException e) {
+ // fallback to unix timestamp?
+ if (UNIX_TIMESTAMP.matcher(dateValue).matches()) {
+ return Instant.ofEpochMilli(Long.parseLong(dateValue));
+ }
+ throw new JsonParseException(e);
+ }
+ }
+} \ No newline at end of file
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
index c552a7f9e..8601cab41 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/JsonToEntityParser.java
@@ -6,12 +6,10 @@ import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
-import org.threeten.bp.DateTimeUtils;
-import org.threeten.bp.ZonedDateTime;
-import org.threeten.bp.format.DateTimeFormatter;
-
+import java.time.Instant;
+import java.time.ZonedDateTime;
+import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
-import java.util.Date;
import java.util.List;
import it.niedermann.android.util.ColorUtil;
@@ -46,6 +44,7 @@ import static it.niedermann.nextcloud.deck.exceptions.TraceableException.makeTra
public class JsonToEntityParser {
+ @SuppressWarnings("unchecked")
protected static <T> T parseJsonObject(JsonObject obj, Class<T> mType) {
if (mType == FullBoard.class) {
return (T) parseBoard(obj);
@@ -645,20 +644,20 @@ public class JsonToEntityParser {
return jsonElement.isJsonNull() ? "" : jsonElement.getAsString();
}
- private static Date getTimestampFromString(JsonElement jsonElement) {
+ private static Instant getTimestampFromString(JsonElement jsonElement) {
if (jsonElement.isJsonNull()) {
return null;
} else {
String dateAsString = jsonElement.getAsString();
- return DateTimeUtils.toDate(ZonedDateTime.from(DateTimeFormatter.ISO_DATE_TIME.parse(dateAsString)).toInstant());
+ return ZonedDateTime.from(DateTimeFormatter.ISO_DATE_TIME.parse(dateAsString)).toInstant();
}
}
- private static Date getTimestampFromLong(JsonElement jsonElement) {
+ private static Instant getTimestampFromLong(JsonElement jsonElement) {
if (jsonElement.isJsonNull()) {
return null;
} else {
- return new Date(jsonElement.getAsLong() * 1000);
+ return Instant.ofEpochMilli(jsonElement.getAsLong() * 1000);
}
}
}
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/api/LastSyncUtil.java b/app/src/main/java/it/niedermann/nextcloud/deck/api/LastSyncUtil.java
index 1d44bfe13..1492d78ac 100644
--- a/app/src/main/java/it/niedermann/nextcloud/deck/api/LastSyncUtil.java
+++ b/app/src/main/java/it/niedermann/nextcloud/deck/api/LastSyncUtil.java
@@ -3,7 +3,7 @@ package it.niedermann.nextcloud.deck.api;
import android.content.Context;
import android.content.SharedPreferences;
-import java.util.Date;
+import java.time.Instant;
import it.niedermann.nextcloud.deck.R;
@@ -22,19 +22,19 @@ public class LastSyncUtil {
}
- public static long getLastSync(long accountId){
+ public static long getLastSync(long accountId) {
return INSTANCE.lastSyncPref.getLong(getSyncKeyForAccount(accountId), 0L);
}
- public static Date getLastSyncDate(long accountId){
- return new Date(getLastSync(accountId));
+ public static Instant getLastSyncDate(long accountId) {
+ return Instant.ofEpochMilli(getLastSync(accountId));
}
- public static void setLastSyncDate(long accountId, Date value){
- INSTANCE.lastSyncPref.edit().putLong(getSyncKeyForAccount(accountId), value.getTime()).apply();
+ public static void setLastSyncDate(long accountId, Instant value) {
+ INSTANCE.lastSyncPref.edit().putLong(getSyncKeyForAccount(accountId), value.toEpochMilli()).apply();
}
- public static void resetLastSyncDate(long accountId){
+ public static void resetLastSyncDate(long accountId) {
INSTANCE.lastSyncPref.edit().remove(getSyncKeyForAccount(accountId)).apply();
}