Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8e217ba9 authored by nchalko's avatar nchalko Committed by Gerrit Code Review
Browse files

Merge "Convert to ISO 639-2/B for menu language"

parents a89f04a7 ec0aac9c
Loading
Loading
Loading
Loading
+39 −1
Original line number Diff line number Diff line
@@ -80,8 +80,10 @@ import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import libcore.util.EmptyArray;

/**
@@ -93,6 +95,31 @@ public final class HdmiControlService extends SystemService {
    private final Locale HONG_KONG = new Locale("zh", "HK");
    private final Locale MACAU = new Locale("zh", "MO");

    private static final Map<String, String> mTerminologyToBibliographicMap;
    static {
        mTerminologyToBibliographicMap = new HashMap<>();
        // NOTE: (TERMINOLOGY_CODE, BIBLIOGRAPHIC_CODE)
        mTerminologyToBibliographicMap.put("sqi", "alb"); // Albanian
        mTerminologyToBibliographicMap.put("hye", "arm"); // Armenian
        mTerminologyToBibliographicMap.put("eus", "baq"); // Basque
        mTerminologyToBibliographicMap.put("mya", "bur"); // Burmese
        mTerminologyToBibliographicMap.put("ces", "cze"); // Czech
        mTerminologyToBibliographicMap.put("nld", "dut"); // Dutch
        mTerminologyToBibliographicMap.put("kat", "geo"); // Georgian
        mTerminologyToBibliographicMap.put("deu", "ger"); // German
        mTerminologyToBibliographicMap.put("ell", "gre"); // Greek
        mTerminologyToBibliographicMap.put("fra", "fre"); // French
        mTerminologyToBibliographicMap.put("isl", "ice"); // Icelandic
        mTerminologyToBibliographicMap.put("mkd", "mac"); // Macedonian
        mTerminologyToBibliographicMap.put("mri", "mao"); // Maori
        mTerminologyToBibliographicMap.put("msa", "may"); // Malay
        mTerminologyToBibliographicMap.put("fas", "per"); // Persian
        mTerminologyToBibliographicMap.put("ron", "rum"); // Romanian
        mTerminologyToBibliographicMap.put("slk", "slo"); // Slovak
        mTerminologyToBibliographicMap.put("bod", "tib"); // Tibetan
        mTerminologyToBibliographicMap.put("cym", "wel"); // Welsh
    }

    static final String PERMISSION = "android.permission.HDMI_CEC";

    // The reason code to initiate intializeCec().
@@ -176,7 +203,18 @@ public final class HdmiControlService extends SystemService {
                // Chinese used in Taiwan/Hong Kong/Macau.
                return "chi";
            } else {
                return locale.getISO3Language();
                String language = locale.getISO3Language();

                // locale.getISO3Language() returns terminology code and need to
                // send it as bibliographic code instead since the Bibliographic
                // codes of ISO/FDIS 639-2 shall be used.
                // NOTE: Chinese also has terminology/bibliographic code "zho" and "chi"
                // But, as it depends on the locale, is not handled here.
                if (mTerminologyToBibliographicMap.containsKey(language)) {
                    language = mTerminologyToBibliographicMap.get(language);
                }

                return language;
            }
        }
    }