Fix getLineLeft crashes when alignment is null
Bug: 119221721 Test: atest StaticLayoutGetLineLeftRightTest Change-Id: If83ac95f47d76052cf088b7d977ee5cded9a8fee
This commit is contained in:
@@ -1270,7 +1270,13 @@ public abstract class Layout {
|
||||
*/
|
||||
public float getLineLeft(int line) {
|
||||
final int dir = getParagraphDirection(line);
|
||||
final Alignment align = getParagraphAlignment(line);
|
||||
Alignment align = getParagraphAlignment(line);
|
||||
// Before Q, StaticLayout.Builder.setAlignment didn't check whether the input alignment
|
||||
// is null. And when it is null, the old behavior is the same as ALIGN_CENTER.
|
||||
// To keep consistency, we convert a null alignment to ALIGN_CENTER.
|
||||
if (align == null) {
|
||||
align = Alignment.ALIGN_CENTER;
|
||||
}
|
||||
|
||||
// First convert combinations of alignment and direction settings to
|
||||
// three basic cases: ALIGN_LEFT, ALIGN_RIGHT and ALIGN_CENTER.
|
||||
@@ -1319,7 +1325,13 @@ public abstract class Layout {
|
||||
*/
|
||||
public float getLineRight(int line) {
|
||||
final int dir = getParagraphDirection(line);
|
||||
final Alignment align = getParagraphAlignment(line);
|
||||
Alignment align = getParagraphAlignment(line);
|
||||
// Before Q, StaticLayout.Builder.setAlignment didn't check whether the input alignment
|
||||
// is null. And when it is null, the old behavior is the same as ALIGN_CENTER.
|
||||
// To keep consistency, we convert a null alignment to ALIGN_CENTER.
|
||||
if (align == null) {
|
||||
align = Alignment.ALIGN_CENTER;
|
||||
}
|
||||
|
||||
final Alignment resultAlign;
|
||||
switch(align) {
|
||||
|
||||
Reference in New Issue
Block a user