Find best matched font in TypefaceCompatApi29Impl - #212
Closed
RikkaW wants to merge 1 commit into
Closed
Conversation
dlam
approved these changes
Oct 6, 2021
Contributor
|
Thanks for submitting this and also filing a bug for tracking! Sorry it took awhile to get to this, we're not "officially" taking PRs from Github for text, but spoke with the owner and he seems okay with this change 😃 |
Collaborator
|
Thank you so much for the change 🥳 ! It looks like it should merge. I will see this CL through the rest of the way on the gerrit side. Sorry about the delay in reviewing. |
harryzz
pushed a commit
to harryzz/compose-multiplatform-core
that referenced
this pull request
Jul 28, 2026
## Proposed Changes
Use best-matched font rather than "hardcoded"
The original part
```
final FontStyle defaultStyle = new FontStyle(
(style & Typeface.BOLD) != 0 ? FontStyle.FONT_WEIGHT_BOLD
: FontStyle.FONT_WEIGHT_NORMAL,
(style & Typeface.ITALIC) != 0 ? FontStyle.FONT_SLANT_ITALIC
: FontStyle.FONT_SLANT_UPRIGHT
);
return new Typeface.CustomFallbackBuilder(familyBuilder.build())
.setStyle(defaultStyle)
.build();
```
This will make the final `Typeface` ALWAYS have either 400 (FONT_WEIGHT_NORMAL) or 700 (FONT_WEIGHT_BOLD) weight. It is incorrect since fonts passed to these methods could have other font-weight. For example, pass only one font with 500 weight, the final `Typeface` will have 400 weight, making the fallback font displayed as 400 weight rather than 500.
This pull request copies the platform's algorithm to find the best-match font from the font family.
## Testing
Test: Observed that the font weight is correct
## Issues Fixed
Fixes: Fix https://issuetracker.google.com/issues/194553426
This is an imported pull request from androidx#212.
Resolves JetBrains#212
Github-Pr-Head-Sha: 6d53f95
GitOrigin-RevId: f7c3c64
Change-Id: Ife725d32e207b713811d6be3a728874ad6f2df76
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Proposed Changes
Use best-matched font rather than "hardcoded"
The original part
This will make the final
TypefaceALWAYS have either 400 (FONT_WEIGHT_NORMAL) or 700 (FONT_WEIGHT_BOLD) weight. It is incorrect since fonts passed to these methods could have other font-weight. For example, pass only one font with 500 weight, the finalTypefacewill have 400 weight, making the fallback font displayed as 400 weight rather than 500.This pull request copies the platform's algorithm to find the best-match font from the font family.
Testing
Test: Observed that the font weight is correct
Issues Fixed
Fixes: Fix https://issuetracker.google.com/issues/194553426