title: Strange bug in EditText.setText() method for RTL languages in Lenovo devices
body: <p>I received a <strong>bug report</strong> from my customers about my android application in Lenovo devices.</p>
  
  <p>I noticed when I set the locale of app to a <code>RTL</code> language like <strong>Persian</strong> or change the language of Android OS to <strong>Persian</strong>, the <code>setTex()</code> method of <code>EditText</code>s or <code>Textview</code>s inserts two extra characters at the beginning and the end of the original string.</p>
  
  <p>For example:</p>
  
  <pre><code>String myString1 = "original string";
  int length1 = myString1.length(); // length1 is 15
  
  myEditText.setText(myString1);
  String myString2 = myEditText.getText().toString();
  int length2 = myString2.length(); // length2 is 17
  </code></pre>
  
  <p>This problem occurs only on Lenovo devices. The <code>setText()</code> method adds <code>LEFT-TO-RIGHT OVERRIDE (U+202D)</code> at the beginning and <code>POP DIRECTIONAL FORMATTING (U+202C)</code>at the end of my string in RTL mode. 
  This causes big problems in my application. I have lots of <code>setText()</code> methods.
  Is there any short solution for solving this this problem?</p>
  
  <p><strong>Device info:</strong> <code>Lenovo Tablet TB-8504X, Android 7.1.1</code></p>
  
  <p><strong>Update:</strong>
  Is the problem with <code>Android OS</code>? Can I find any fix for the device?</p>