Skip to content

Commit

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

Summary:
This pr fixes: #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: #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

# Conflicts:
#	ReactAndroid/src/main/java/com/facebook/react/views/textinput/ReactEditText.java
  • Loading branch information
hank121314 authored and kelset committed Nov 27, 2020
1 parent 29972f9 commit ec5090a
Showing 1 changed file with 2 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -383,8 +383,6 @@ 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);

int inputType = type;

Expand All @@ -401,6 +399,8 @@ public void setInputType(int type) {

super.setInputType(inputType);
mStagedInputType = inputType;
// 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 ec5090a

Please sign in to comment.