diff options
author | Thomas <tschneider.ac@gmail.com> | 2023-07-27 14:46:05 +0200 |
---|---|---|
committer | Thomas <tschneider.ac@gmail.com> | 2023-07-27 14:46:05 +0200 |
commit | 44752cc329c46a62fdde1c1f2c294fb27baa42a8 (patch) | |
tree | cb7ea44496cc0692a9a8116fddb7bace6b225a02 | |
parent | 28501e792932477232987da194734d426ce6f0f4 (diff) |
Fix Punycode not supported for domains
25 files changed, 54 insertions, 29 deletions
diff --git a/app/src/main/java/app/fedilab/android/BaseMainActivity.java b/app/src/main/java/app/fedilab/android/BaseMainActivity.java index 2483855d2..025814b15 100644 --- a/app/src/main/java/app/fedilab/android/BaseMainActivity.java +++ b/app/src/main/java/app/fedilab/android/BaseMainActivity.java @@ -110,6 +110,7 @@ import org.jsoup.nodes.Element; import java.io.File; import java.io.IOException; import java.lang.ref.WeakReference; +import java.net.IDN; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -1113,7 +1114,7 @@ public abstract class BaseMainActivity extends BaseActivity implements NetworkSt .proxy(Helper.getProxy(getApplication().getApplicationContext())) .build(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + MainActivity.currentInstance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(MainActivity.currentInstance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java b/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java index b9455c649..fbc78ad70 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java +++ b/app/src/main/java/app/fedilab/android/mastodon/client/entities/nitter/Nitter.java @@ -25,6 +25,7 @@ import org.simpleframework.xml.Path; import org.simpleframework.xml.Root; import java.io.Serializable; +import java.net.IDN; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -68,7 +69,7 @@ public class Nitter implements Serializable { .proxy(Helper.getProxy(context)) .build(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance) + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED)) .addConverterFactory(SimpleXmlConverterFactory.create()) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java index c56335120..949d0ccb1 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/CrossActionHelper.java @@ -31,6 +31,7 @@ import androidx.preference.PreferenceManager; import com.google.android.material.dialog.MaterialAlertDialogBuilder; import java.io.IOException; +import java.net.IDN; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -265,7 +266,7 @@ public class CrossActionHelper { .proxy(Helper.getProxy(context)) .build(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v2/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v2/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java index da3ad43ff..9855c663d 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/NotificationsHelper.java @@ -37,6 +37,7 @@ import com.bumptech.glide.Glide; import com.bumptech.glide.request.target.CustomTarget; import com.bumptech.glide.request.transition.Transition; +import java.net.IDN; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -142,7 +143,7 @@ public class NotificationsHelper { .proxy(Helper.getProxy(context)) .build(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/PushNotifications.java b/app/src/main/java/app/fedilab/android/mastodon/helper/PushNotifications.java index c08551747..a9902ce5d 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/PushNotifications.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/PushNotifications.java @@ -23,6 +23,7 @@ import android.os.Looper; import androidx.annotation.NonNull; import androidx.preference.PreferenceManager; +import java.net.IDN; import java.util.concurrent.TimeUnit; import app.fedilab.android.R; @@ -137,7 +138,7 @@ public class PushNotifications { .proxy(Helper.getProxy(context.getApplicationContext())) .build(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java b/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java index e7e03ae18..ce335726b 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java +++ b/app/src/main/java/app/fedilab/android/mastodon/helper/TimelineHelper.java @@ -29,6 +29,7 @@ import androidx.lifecycle.ViewModelStoreOwner; import androidx.preference.PreferenceManager; import java.io.IOException; +import java.net.IDN; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -61,7 +62,7 @@ public class TimelineHelper { .proxy(Helper.getProxy(context)) .build(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + BaseMainActivity.currentInstance + "/api/v2/") + .baseUrl("https://" + IDN.toASCII(BaseMainActivity.currentInstance, IDN.ALLOW_UNASSIGNED) + "/api/v2/") .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/jobs/ComposeWorker.java b/app/src/main/java/app/fedilab/android/mastodon/jobs/ComposeWorker.java index 6e6633740..d07a31e0e 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/jobs/ComposeWorker.java +++ b/app/src/main/java/app/fedilab/android/mastodon/jobs/ComposeWorker.java @@ -44,6 +44,7 @@ import com.google.common.util.concurrent.ListenableFuture; import com.google.gson.Gson; import java.io.IOException; +import java.net.IDN; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -98,7 +99,7 @@ public class ComposeWorker extends Worker { private static MastodonStatusesService init(Context context, @NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(getOkHttpClient(context)) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/jobs/FetchHomeWorker.java b/app/src/main/java/app/fedilab/android/mastodon/jobs/FetchHomeWorker.java index adc032ffb..76e13a597 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/jobs/FetchHomeWorker.java +++ b/app/src/main/java/app/fedilab/android/mastodon/jobs/FetchHomeWorker.java @@ -37,6 +37,7 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.io.IOException; +import java.net.IDN; import java.util.List; import java.util.concurrent.TimeUnit; @@ -251,7 +252,7 @@ public class FetchHomeWorker extends Worker { private MastodonTimelinesService init(String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/jobs/ScheduleBoostWorker.java b/app/src/main/java/app/fedilab/android/mastodon/jobs/ScheduleBoostWorker.java index 19462a7c0..3d36df42f 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/jobs/ScheduleBoostWorker.java +++ b/app/src/main/java/app/fedilab/android/mastodon/jobs/ScheduleBoostWorker.java @@ -32,6 +32,7 @@ import com.google.common.util.concurrent.Futures; import com.google.common.util.concurrent.ListenableFuture; import java.io.IOException; +import java.net.IDN; import java.util.concurrent.TimeUnit; import app.fedilab.android.R; @@ -110,7 +111,7 @@ public class ScheduleBoostWorker extends Worker { private MastodonStatusesService init(@NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create()) .client(getOkHttpClient()) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AccountsVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AccountsVM.java index 86b86c203..a018695aa 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AccountsVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AccountsVM.java @@ -24,6 +24,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.LinkedHashMap; import java.util.List; import java.util.concurrent.TimeUnit; @@ -105,7 +106,7 @@ public class AccountsVM extends AndroidViewModel { private MastodonAccountsService init(String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); @@ -114,7 +115,7 @@ public class AccountsVM extends AndroidViewModel { private MastodonAccountsService initv2(String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v2/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v2/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AdminVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AdminVM.java index 5db5eed12..f0a705d02 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AdminVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AdminVM.java @@ -23,6 +23,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.List; import java.util.concurrent.TimeUnit; @@ -64,7 +65,7 @@ public class AdminVM extends AndroidViewModel { private MastodonAdminService init(@NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); @@ -73,7 +74,7 @@ public class AdminVM extends AndroidViewModel { private MastodonAdminService initv2(@NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v2/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v2/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AnnouncementsVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AnnouncementsVM.java index 3412b3c7a..3287499ad 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AnnouncementsVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AnnouncementsVM.java @@ -23,6 +23,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.List; import java.util.concurrent.TimeUnit; @@ -52,7 +53,7 @@ public class AnnouncementsVM extends AndroidViewModel { private MastodonAnnouncementsService init(@NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AppsVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AppsVM.java index 9fc4ba2a3..9ef5f65f7 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AppsVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/AppsVM.java @@ -26,6 +26,7 @@ import androidx.lifecycle.MutableLiveData; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import java.net.IDN; import java.util.concurrent.TimeUnit; import app.fedilab.android.mastodon.client.endpoints.MastodonAppsService; @@ -60,7 +61,7 @@ public class AppsVM extends AndroidViewModel { private MastodonAppsService init(String instance) throws IllegalArgumentException { Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/FiltersVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/FiltersVM.java index f69ae079b..edb8cf036 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/FiltersVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/FiltersVM.java @@ -24,6 +24,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.List; import java.util.concurrent.TimeUnit; @@ -57,7 +58,7 @@ public class FiltersVM extends AndroidViewModel { private MastodonFiltersService initV2(String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v2/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v2/") // .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient) diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/InstancesVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/InstancesVM.java index 894fa6164..1843df80c 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/InstancesVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/InstancesVM.java @@ -26,6 +26,7 @@ import androidx.lifecycle.MutableLiveData; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import java.net.IDN; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -63,7 +64,7 @@ public class InstancesVM extends AndroidViewModel { private MastodonInstanceService init(@NonNull String instance) { Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NodeInfoVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NodeInfoVM.java index 06a219ad3..f2a77a708 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NodeInfoVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NodeInfoVM.java @@ -24,6 +24,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.concurrent.TimeUnit; import app.fedilab.android.mastodon.client.NodeInfoService; @@ -52,7 +53,7 @@ public class NodeInfoVM extends AndroidViewModel { private NodeInfoService init(String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/") .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NotificationsVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NotificationsVM.java index 0887c4518..5fb42ffdb 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NotificationsVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/NotificationsVM.java @@ -23,6 +23,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -94,7 +95,7 @@ public class NotificationsVM extends AndroidViewModel { private MastodonNotificationsService init(@NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OauthVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OauthVM.java index 7ecdb407b..c8c985b1b 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OauthVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OauthVM.java @@ -26,6 +26,7 @@ import androidx.lifecycle.MutableLiveData; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import java.net.IDN; import java.util.concurrent.TimeUnit; import app.fedilab.android.mastodon.client.endpoints.MastodonAppsService; @@ -61,7 +62,7 @@ public class OauthVM extends AndroidViewModel { private MastodonAppsService init(@NonNull String instance) { Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OembedVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OembedVM.java index 2200fc00e..173a48a54 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OembedVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/OembedVM.java @@ -19,6 +19,7 @@ import android.app.Application; import androidx.annotation.NonNull; import androidx.lifecycle.AndroidViewModel; +import java.net.IDN; import java.util.concurrent.TimeUnit; import app.fedilab.android.mastodon.client.endpoints.MastodonOembedService; @@ -42,7 +43,7 @@ public class OembedVM extends AndroidViewModel { private MastodonOembedService init(@NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create()) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/SearchVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/SearchVM.java index 47a291db1..491fd0ae9 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/SearchVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/SearchVM.java @@ -26,6 +26,7 @@ import androidx.lifecycle.MutableLiveData; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import java.net.IDN; import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -59,7 +60,7 @@ public class SearchVM extends AndroidViewModel { private MastodonSearchService init(@NonNull String instance) { Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssZ").create(); Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v2/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v2/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/StatusesVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/StatusesVM.java index 48b953b41..b601c47ed 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/StatusesVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/StatusesVM.java @@ -25,6 +25,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.Date; import java.util.List; import java.util.concurrent.TimeUnit; @@ -92,7 +93,7 @@ public class StatusesVM extends AndroidViewModel { private MastodonStatusesService init(@NonNull String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(getOkHttpClient()) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TagVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TagVM.java index 75f1763e8..e6779dbc0 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TagVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TagVM.java @@ -23,6 +23,7 @@ import androidx.lifecycle.AndroidViewModel; import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; +import java.net.IDN; import java.util.List; import java.util.concurrent.TimeUnit; @@ -63,7 +64,7 @@ public class TagVM extends AndroidViewModel { private MastodonTagService init(String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance + "/api/v1/") + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED) + "/api/v1/") .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); diff --git a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java index afef54bb8..8eab91594 100644 --- a/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java +++ b/app/src/main/java/app/fedilab/android/mastodon/viewmodel/mastodon/TimelinesVM.java @@ -31,6 +31,7 @@ import androidx.lifecycle.LiveData; import androidx.lifecycle.MutableLiveData; import androidx.preference.PreferenceManager; +import java.net.IDN; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -157,7 +158,7 @@ public class TimelinesVM extends AndroidViewModel { private MastodonTimelinesService initInstanceOnly(String instance) { Retrofit retrofit = new Retrofit.Builder() - .baseUrl("https://" + instance) + .baseUrl("https://" + IDN.toASCII(instance, IDN.ALLOW_UNASSIGNED)) .addConverterFactory(GsonConverterFactory.create(Helper.getDateBuilder())) .client(okHttpClient) .build(); @@ -166,7 +167,7 @@ public class TimelinesVM extends AndroidViewModel { private MastodonTimelinesService initInstanceXMLOnly(String instance) { Retrofit retrofit = new Retrofit.Builder() |