Fix decimal point internationalization

Bug: 32874470
Test: manual - verfied in US English, Brazilian Portuguese, Mexican
Spanish, Canadian French, and Farsi.

Change-Id: Ie7a4e2970de3290423796a6690cc0c89f457dbc9
diff --git a/res/layout/pad_numeric.xml b/res/layout/pad_numeric.xml
index e9f7c9b..2f301e8 100644
--- a/res/layout/pad_numeric.xml
+++ b/res/layout/pad_numeric.xml
@@ -91,7 +91,6 @@
         android:id="@+id/dec_point"
         style="@style/PadButtonStyle.Numeric"
         android:contentDescription="@string/desc_dec_point"
-        android:text="@string/dec_point"
         app:layout_row="3"
         app:layout_column="0" />
 
diff --git a/src/com/android/calculator2/Calculator.java b/src/com/android/calculator2/Calculator.java
index f13a9ed..0a5612b 100644
--- a/src/com/android/calculator2/Calculator.java
+++ b/src/com/android/calculator2/Calculator.java
@@ -79,6 +79,7 @@
 import java.io.ObjectInputStream;
 import java.io.ObjectOutput;
 import java.io.ObjectOutputStream;
+import java.text.DecimalFormatSymbols;
 
 import static com.android.calculator2.CalculatorFormula.OnFormulaContextMenuClickListener;
 
@@ -323,10 +324,13 @@
         mPadViewPager = (ViewPager) findViewById(R.id.pad_pager);
         mDeleteButton = findViewById(R.id.del);
         mClearButton = findViewById(R.id.clr);
-        mEqualButton = findViewById(R.id.pad_numeric).findViewById(R.id.eq);
+        final View numberPad = findViewById(R.id.pad_numeric);
+        mEqualButton = numberPad.findViewById(R.id.eq);
         if (mEqualButton == null || mEqualButton.getVisibility() != View.VISIBLE) {
             mEqualButton = findViewById(R.id.pad_operator).findViewById(R.id.eq);
         }
+        final TextView decimalPointButton = (TextView) numberPad.findViewById(R.id.dec_point);
+        decimalPointButton.setText(getDecimalSeparator());
 
         mInverseToggle = (TextView) findViewById(R.id.toggle_inv);
         mModeToggle = (TextView) findViewById(R.id.toggle_mode);
@@ -1352,6 +1356,15 @@
     }
 
     /**
+     * Since we only support LTR format, using the RTL comma does not make sense.
+     */
+    private String getDecimalSeparator() {
+        final char defaultSeparator = DecimalFormatSymbols.getInstance().getDecimalSeparator();
+        final char rtlComma = '\u066b';
+        return defaultSeparator == rtlComma ? "," : String.valueOf(defaultSeparator);
+    }
+
+    /**
      * Clean up animation for context menu.
      */
     @Override