Skip to content

Commit

Permalink
Android: font-family is not apply when secureTextEntry is true (fac…
Browse files Browse the repository at this point in the history
…ebook#30164)

Summary:
This pr fixes: facebook#30123 .

When secureTextEntry is true, setInputType will set the inputType of textInput to password type.
Password type default font-family will be monospace font, so we need to setTypeface after the setInputType.

## Changelog

[Android] [Fixed] - Font family is not apply when secureTextEntry is true.

Pull Request resolved: facebook#30164

Test Plan:
Before this pr:
![alt text](https://i.imgur.com/mAxLhnB.png)

After this pr:
![alt text](https://i.imgur.com/zoGYDxN.png)

Please initiated a new project and replaced the App.js with the following code:
```
iimport React from 'react';
import {SafeAreaView, TextInput} from 'react-native';

const App = () => {
  return (
    <SafeAreaView>
      <TextInput
        id={'email'}
        placeholder={'Email'}
        secureTextEntry={false}
        style={{fontFamily: 'Helvetica', fontSize: 14, fontWeight: '400'}}
      />

      <TextInput
        id={'password'}
        placeholder={'Password'}
        secureTextEntry={true}
        style={{fontFamily: 'Helvetica', fontSize: 14, fontWeight: '400'}}
      />
    </SafeAreaView>
  );
};

export default App;
```

Thanks you so much for your code review!

Reviewed By: cpojer

Differential Revision: D24686222

Pulled By: hramos

fbshipit-source-id: 863ebe1dba36cac7d91b2735fe6e914ac839ed44
  • Loading branch information
hank121314 authored and alloy committed Nov 19, 2020
1 parent 9f49f8a commit d5a19a4
Showing 1 changed file with 2 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -419,11 +419,10 @@ public String getReturnKeyType() {
@Override
public void setInputType(int type) {
Typeface tf = super.getTypeface();
// Input type password defaults to monospace font, so we need to re-apply the font
super.setTypeface(tf);

super.setInputType(type);
mStagedInputType = type;
// Input type password defaults to monospace font, so we need to re-apply the font
super.setTypeface(tf);

/**
* If set forces multiline on input, because of a restriction on Android source that enables
Expand Down

0 comments on commit d5a19a4

Please sign in to comment.