Make AFont_getLocale work

There are multiple problems here:
- Java Font.equals and hashCode doesn't look at locale list. Due to this
issue, the CTS tests have been passing unexpectedly.
- The null pointer check in the AFont_getLoacle was inversed. Should
return only when it is non-null.
- Looks like we cannot get the parent's attribute which always returns
null. Instead, read the "lang" attribute when we read the family tag.

Bug: 139201432
Test: atest NativeSystemFontTest
Test: atest TypefaceEqualsTest
Change-Id: I0514847bbf46a73358afab374ccfce2db09b2ec0
This commit is contained in:
Seigo Nonaka
2019-10-24 18:50:51 -07:00
parent d3ba36e312
commit 01709c7469
3 changed files with 94 additions and 28 deletions

View File

@@ -519,12 +519,13 @@ public final class Font {
}
Font f = (Font) o;
return mFontStyle.equals(f.mFontStyle) && f.mTtcIndex == mTtcIndex
&& Arrays.equals(f.mAxes, mAxes) && f.mBuffer.equals(mBuffer);
&& Arrays.equals(f.mAxes, mAxes) && f.mBuffer.equals(mBuffer)
&& Objects.equals(f.mLocaleList, mLocaleList);
}
@Override
public int hashCode() {
return Objects.hash(mFontStyle, mTtcIndex, Arrays.hashCode(mAxes), mBuffer);
return Objects.hash(mFontStyle, mTtcIndex, Arrays.hashCode(mAxes), mBuffer, mLocaleList);
}
@Override