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

Commit 5fe3a6cb authored by Jinsuk Kim's avatar Jinsuk Kim
Browse files

CEC: Use language code "chi" for Traditional Chinese

Android by default returns "zho" for all sorts of Chinese variants.
Use "chi" for traditional one used in Taiwan/Hong Kong/Macau
as required in CEC standard.

Bug: 18149804

Change-Id: I86ac7e2f0f1121641c52032a0d98a6405554457c
parent 571cc6b1
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -90,6 +90,8 @@ import java.util.Locale;
 */
public final class HdmiControlService extends SystemService {
    private static final String TAG = "HdmiControlService";
    private final Locale HONG_KONG = new Locale("zh", "HK");
    private final Locale MACAU = new Locale("zh", "MO");

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

@@ -146,13 +148,25 @@ public final class HdmiControlService extends SystemService {
                    }
                    break;
                case Intent.ACTION_CONFIGURATION_CHANGED:
                    String language = Locale.getDefault().getISO3Language();
                    String language = getMenuLanguage();
                    if (!mLanguage.equals(language)) {
                        onLanguageChanged(language);
                    }
                    break;
            }
        }

        private String getMenuLanguage() {
            Locale locale = Locale.getDefault();
            if (locale.equals(Locale.TAIWAN) || locale.equals(HONG_KONG) || locale.equals(MACAU)) {
                // Android always returns "zho" for all Chinese variants.
                // Use "bibliographic" code defined in CEC639-2 for traditional
                // Chinese used in Taiwan/Hong Kong/Macau.
                return "chi";
            } else {
                return locale.getISO3Language();
            }
        }
    }

    // A thread to handle synchronous IO of CEC and MHL control service.