diff --git a/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java b/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java
index 2e60583..64642d7 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/ScreenOnTimeController.java
@@ -30,6 +30,7 @@
 import com.android.settings.core.BasePreferenceController;
 import com.android.settingslib.utils.StringUtil;
 
+import java.util.Locale;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -39,6 +40,7 @@
     private static final String ROOT_PREFERENCE_KEY = "screen_on_time_category";
     private static final String SCREEN_ON_TIME_TEXT_PREFERENCE_KEY = "screen_on_time_text";
     private static final Pattern NUMBER_PATTERN = Pattern.compile("[\\d]*[\\.,]?[\\d]+");
+    private static final Locale IW_LOCALE = new Locale("iw");
 
     @VisibleForTesting
     Context mPrefContext;
@@ -89,16 +91,22 @@
         final CharSequence timeSequence =
                 StringUtil.formatElapsedTime(mPrefContext, (double) screenOnTime,
                         /*withSeconds=*/ false, /*collapseTimeUnit=*/ false);
-        mScreenOnTimeTextPreference.setText(enlargeFontOfNumber(removeCommas(timeSequence)));
+        mScreenOnTimeTextPreference.setText(
+                enlargeFontOfNumberIfNeeded(mPrefContext, removeCommas(timeSequence)));
         mScreenOnTimeTextPreference.setVisible(true);
     }
 
     @VisibleForTesting
-    static CharSequence enlargeFontOfNumber(CharSequence text) {
+    static CharSequence enlargeFontOfNumberIfNeeded(Context context, CharSequence text) {
         if (TextUtils.isEmpty(text)) {
             return "";
         }
 
+        final Locale locale = context.getResources().getConfiguration().getLocales().get(0);
+        if (locale != null && IW_LOCALE.getLanguage().equals(locale.getLanguage())) {
+            return text;
+        }
+
         final SpannableString spannableText =  new SpannableString(text);
         final Matcher matcher = NUMBER_PATTERN.matcher(text);
         while (matcher.find()) {
