From f56f6dc6c82e6ae22dfa7a4c33cc4ac7219e56b3 Mon Sep 17 00:00:00 2001 From: Erfan Sn <50053121+ErfanSn@users.noreply.github.com> Date: Thu, 29 Aug 2024 15:24:16 +0330 Subject: [PATCH 1/2] Add CountryCodeExtensions --- .../oblivion/utils/CountryCodeExtensions.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 app/src/main/java/org/bepass/oblivion/utils/CountryCodeExtensions.kt diff --git a/app/src/main/java/org/bepass/oblivion/utils/CountryCodeExtensions.kt b/app/src/main/java/org/bepass/oblivion/utils/CountryCodeExtensions.kt new file mode 100644 index 00000000..ca4d6551 --- /dev/null +++ b/app/src/main/java/org/bepass/oblivion/utils/CountryCodeExtensions.kt @@ -0,0 +1,17 @@ +@file:JvmName("CountryCodeUtils") + +package org.bepass.oblivion.utils + +import java.util.Locale + +fun CountryCode.toCountryFlagEmoji() = value.uppercase() + .fold(charArrayOf()) { acc, c -> + acc + Character.toChars(c.code + 0x1F1A5) + } + .joinToString(separator = "") + +class CountryCode(val value: String) { + init { + require(value in Locale.getISOCountries()) + } +} From 5a688a3299b0dc66b1ed9481e621927d81b8967f Mon Sep 17 00:00:00 2001 From: Erfan Sn <50053121+ErfanSn@users.noreply.github.com> Date: Thu, 29 Aug 2024 15:26:34 +0330 Subject: [PATCH 2/2] Correct country code to emoji flag --- app/build.gradle | 1 - .../main/java/org/bepass/oblivion/utils/PublicIPUtils.java | 5 +---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 898acc1c..440be9a4 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -61,7 +61,6 @@ dependencies { implementation 'androidx.recyclerview:recyclerview:1.3.2' implementation 'com.github.bumptech.glide:glide:4.16.0' implementation 'com.squareup.okhttp3:okhttp:4.12.0' - implementation 'com.vdurmont:emoji-java:5.1.1' implementation 'com.github.erfansn:locale-config-x:1.0.1' implementation 'com.tencent:mmkv:1.3.7' implementation fileTree(dir: 'libs', include: ['*.aar', '*.jar']) diff --git a/app/src/main/java/org/bepass/oblivion/utils/PublicIPUtils.java b/app/src/main/java/org/bepass/oblivion/utils/PublicIPUtils.java index 01b55048..0410076c 100644 --- a/app/src/main/java/org/bepass/oblivion/utils/PublicIPUtils.java +++ b/app/src/main/java/org/bepass/oblivion/utils/PublicIPUtils.java @@ -3,14 +3,11 @@ import android.os.Handler; import android.util.Log; -import com.vdurmont.emoji.EmojiManager; - import org.bepass.oblivion.model.IPDetails; import org.json.JSONObject; import java.net.InetSocketAddress; import java.net.Proxy; -import java.util.Locale; import java.util.Objects; import java.util.concurrent.Executors; import java.util.concurrent.ScheduledExecutorService; @@ -91,7 +88,7 @@ public void getIPDetails(IPDetailsCallback callback) { JSONObject jsonData = new JSONObject(Objects.requireNonNull(response.body()).string()); details.ip = jsonData.getString("ip"); details.country = jsonData.getString("country"); - details.flag = EmojiManager.getForAlias(details.country.toLowerCase(Locale.ROOT)).getUnicode(); + details.flag = CountryCodeUtils.toCountryFlagEmoji(new CountryCode(details.country)); Log.d(TAG, "IP details retrieved successfully"); } handler.post(() -> callback.onDetailsReceived(details));