Merge "Fixing display option for KO, JA, ZH" into nyc-mr1-dev
diff --git a/src/com/android/dialer/settings/DialerSettingsActivity.java b/src/com/android/dialer/settings/DialerSettingsActivity.java
index fbdb4f9..dc1e214 100644
--- a/src/com/android/dialer/settings/DialerSettingsActivity.java
+++ b/src/com/android/dialer/settings/DialerSettingsActivity.java
@@ -61,10 +61,12 @@
 
     @Override
     public void onBuildHeaders(List<Header> target) {
-        Header displayOptionsHeader = new Header();
-        displayOptionsHeader.titleRes = R.string.display_options_title;
-        displayOptionsHeader.fragment = DisplayOptionsSettingsFragment.class.getName();
-        target.add(displayOptionsHeader);
+        if (showDisplayOptions()) {
+            Header displayOptionsHeader = new Header();
+            displayOptionsHeader.titleRes = R.string.display_options_title;
+            displayOptionsHeader.fragment = DisplayOptionsSettingsFragment.class.getName();
+            target.add(displayOptionsHeader);
+        }
 
         Header soundSettingsHeader = new Header();
         soundSettingsHeader.titleRes = R.string.sounds_and_vibration_title;
@@ -127,6 +129,18 @@
         }
     }
 
+    /**
+    * Returns {@code true} or {@code false} based on whether the display options setting should be
+    * shown. For languages such as Chinese, Japanese, or Korean, display options aren't useful
+    * since contacts are sorted and displayed family name first by default.
+    *
+    * @return {@code true} if the display options should be shown, {@code false} otherwise.
+    */
+    private boolean showDisplayOptions() {
+        return getResources().getBoolean(R.bool.config_display_order_user_changeable)
+                && getResources().getBoolean(R.bool.config_sort_order_user_changeable);
+    }
+
     @Override
     public void onHeaderClick(Header header, int position) {
         if (header.id == R.id.settings_header_sounds_and_vibration) {