Why are there two methods to set the background color in TextBoxBase.java, setBackgrondColor or setBackroundDrawable, depending on the "High Contrast" setting?
The default textbox appearance is a nine-patch drawable to provide the outline of the text box (provided by Android). In the high contrast mode, we blanket replace the background with a color to simplify things and ensure that it always appears the same way.
So in normal mode TextBox is a drawing specified by android(widget). And when we set High Contrast or otherwise set the background, the field is filled with plain color using method from View class. Now I understand why after changing the background color, the text box no longer has visible focus.
Method setBackgroundDrawable() is depracated:
if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.JELLY_BEAN) {
view.setBackgroundDrawable(drawable);
} else {
view.setBackground(drawable);
}