From 951fceaa4d83a7e2f7556d61dfe2ef9d20a2c9fe Mon Sep 17 00:00:00 2001 From: Thomas Date: Fri, 1 Jul 2022 09:31:47 +0200 Subject: [PATCH] Fix an issue with Pleroma & date parsing --- .../app/fedilab/android/services/PostMessageService.java | 6 +++++- .../app/fedilab/android/viewmodel/mastodon/AccountsVM.java | 2 +- .../app/fedilab/android/viewmodel/mastodon/AdminVM.java | 6 +++++- .../fedilab/android/viewmodel/mastodon/AnnouncementsVM.java | 6 +++++- .../java/app/fedilab/android/viewmodel/mastodon/AppsVM.java | 6 +++++- .../app/fedilab/android/viewmodel/mastodon/InstancesVM.java | 6 +++++- .../fedilab/android/viewmodel/mastodon/NotificationsVM.java | 2 +- .../app/fedilab/android/viewmodel/mastodon/OauthVM.java | 6 +++++- .../app/fedilab/android/viewmodel/mastodon/SearchVM.java | 2 +- .../app/fedilab/android/viewmodel/mastodon/StatusesVM.java | 2 +- .../app/fedilab/android/viewmodel/mastodon/TimelinesVM.java | 6 +++--- 11 files changed, 37 insertions(+), 13 deletions(-) diff --git a/app/src/main/java/app/fedilab/android/services/PostMessageService.java b/app/src/main/java/app/fedilab/android/services/PostMessageService.java index e842aad0..c6896555 100644 --- a/app/src/main/java/app/fedilab/android/services/PostMessageService.java +++ b/app/src/main/java/app/fedilab/android/services/PostMessageService.java @@ -31,6 +31,9 @@ import androidx.core.app.NotificationCompat; import androidx.localbroadcastmanager.content.LocalBroadcastManager; import androidx.preference.PreferenceManager; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + import java.io.IOException; import java.util.ArrayList; import java.util.List; @@ -87,9 +90,10 @@ public class PostMessageService extends IntentService { } private static MastodonStatusesService init(Context context, @NonNull String instance) { + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") - .addConverterFactory(GsonConverterFactory.create()) + .addConverterFactory(GsonConverterFactory.create(gson)) .client(getOkHttpClient(context)) .build(); return retrofit.create(MastodonStatusesService.class); diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java index 547e64c6..dca4fc22 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AccountsVM.java @@ -95,7 +95,7 @@ public class AccountsVM extends AndroidViewModel { } private MastodonAccountsService init(String instance) { - Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy HH:mm:ss").create(); + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(gson)) diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AdminVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AdminVM.java index 254566e6..7723aa72 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AdminVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AdminVM.java @@ -23,6 +23,9 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + import java.util.List; import java.util.concurrent.TimeUnit; @@ -57,9 +60,10 @@ public class AdminVM extends AndroidViewModel { } private MastodonAdminService init(@NonNull String instance) { + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") - .addConverterFactory(GsonConverterFactory.create()) + .addConverterFactory(GsonConverterFactory.create(gson)) .client(okHttpClient) .build(); return retrofit.create(MastodonAdminService.class); diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AnnouncementsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AnnouncementsVM.java index 5b916e26..a1b3d537 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AnnouncementsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AnnouncementsVM.java @@ -23,6 +23,9 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + import java.util.List; import java.util.concurrent.TimeUnit; @@ -52,9 +55,10 @@ public class AnnouncementsVM extends AndroidViewModel { } private MastodonAnnouncementsService init(@NonNull String instance) { + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") - .addConverterFactory(GsonConverterFactory.create()) + .addConverterFactory(GsonConverterFactory.create(gson)) .client(okHttpClient) .build(); return retrofit.create(MastodonAnnouncementsService.class); diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AppsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AppsVM.java index bfa73628..d3ae5e86 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AppsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/AppsVM.java @@ -23,6 +23,9 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + import java.util.concurrent.TimeUnit; import app.fedilab.android.client.endpoints.MastodonAppsService; @@ -55,9 +58,10 @@ public class AppsVM extends AndroidViewModel { } private MastodonAppsService init(String instance) { + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") - .addConverterFactory(GsonConverterFactory.create()) + .addConverterFactory(GsonConverterFactory.create(gson)) .client(okHttpClient) .build(); return retrofit.create(MastodonAppsService.class); diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/InstancesVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/InstancesVM.java index e44bf7f6..288d3cdc 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/InstancesVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/InstancesVM.java @@ -23,6 +23,9 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -58,9 +61,10 @@ public class InstancesVM extends AndroidViewModel { } private MastodonInstanceService init(@NonNull String instance) { + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") - .addConverterFactory(GsonConverterFactory.create()) + .addConverterFactory(GsonConverterFactory.create(gson)) .client(okHttpClient) .build(); return retrofit.create(MastodonInstanceService.class); diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java index d2df890c..24cd28de 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/NotificationsVM.java @@ -63,7 +63,7 @@ public class NotificationsVM extends AndroidViewModel { } private MastodonNotificationsService init(@NonNull String instance) { - Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy HH:mm:ss").create(); + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(gson)) diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/OauthVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/OauthVM.java index 4e1646f0..727f328c 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/OauthVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/OauthVM.java @@ -23,6 +23,9 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; + import java.util.concurrent.TimeUnit; import app.fedilab.android.client.endpoints.MastodonAppsService; @@ -56,9 +59,10 @@ public class OauthVM extends AndroidViewModel { } private MastodonAppsService init(@NonNull String instance) { + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/") - .addConverterFactory(GsonConverterFactory.create()) + .addConverterFactory(GsonConverterFactory.create(gson)) .client(okHttpClient) .build(); return retrofit.create(MastodonAppsService.class); diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/SearchVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/SearchVM.java index 4a86f333..ab1a1077 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/SearchVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/SearchVM.java @@ -58,7 +58,7 @@ public class SearchVM extends AndroidViewModel { } private MastodonSearchService init(@NonNull String instance) { - Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy HH:mm:ss").create(); + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v2/") .addConverterFactory(GsonConverterFactory.create(gson)) diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/StatusesVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/StatusesVM.java index d31da33b..0133b812 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/StatusesVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/StatusesVM.java @@ -90,7 +90,7 @@ public class StatusesVM extends AndroidViewModel { } private MastodonStatusesService init(@NonNull String instance) { - Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy HH:mm:ss").create(); + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(gson)) diff --git a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java index 13ffbb49..d6c9dc38 100644 --- a/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java +++ b/app/src/main/java/app/fedilab/android/viewmodel/mastodon/TimelinesVM.java @@ -84,10 +84,10 @@ public class TimelinesVM extends AndroidViewModel { } private MastodonTimelinesService initInstanceOnly(String instance) { - Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy HH:mm:ss").create(); + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance) - .addConverterFactory(GsonConverterFactory.create(gson)) + // .addConverterFactory(GsonConverterFactory.create(gson)) .client(okHttpClient) .build(); return retrofit.create(MastodonTimelinesService.class); @@ -103,7 +103,7 @@ public class TimelinesVM extends AndroidViewModel { } private MastodonTimelinesService init(String instance) { - Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy HH:mm:ss").create(); + Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ss").create(); Retrofit retrofit = new Retrofit.Builder() .baseUrl("https://" + instance + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(gson))