Add DialpadView's OnPreDrawListener in onFinishInflate() to ensure the layout is inflated before adjustments are made.
Bug: 69665429
Test: DialpadFragmentIntegrationTest
PiperOrigin-RevId: 178031541
Change-Id: I8e8799fd26a151a5357cd0bf4e2d886c802a15a5
diff --git a/java/com/android/dialer/dialpadview/DialpadView.java b/java/com/android/dialer/dialpadview/DialpadView.java
index e7e3c7c..2f494e4 100644
--- a/java/com/android/dialer/dialpadview/DialpadView.java
+++ b/java/com/android/dialer/dialpadview/DialpadView.java
@@ -116,13 +116,6 @@
}
@Override
- protected void onAttachedToWindow() {
- super.onAttachedToWindow();
- getViewTreeObserver().removeOnPreDrawListener(mOnPreDrawListenerForKeyLayoutAdjust);
- getViewTreeObserver().addOnPreDrawListener(mOnPreDrawListenerForKeyLayoutAdjust);
- }
-
- @Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
getViewTreeObserver().removeOnPreDrawListener(mOnPreDrawListenerForKeyLayoutAdjust);
@@ -146,6 +139,11 @@
// The text view must be selected to send accessibility events.
mDigits.setSelected(true);
}
+
+ // As OnPreDrawListenerForKeyLayoutAdjust makes changes to LayoutParams, it is added here to
+ // ensure it can only be triggered after the layout is inflated.
+ getViewTreeObserver().removeOnPreDrawListener(mOnPreDrawListenerForKeyLayoutAdjust);
+ getViewTreeObserver().addOnPreDrawListener(mOnPreDrawListenerForKeyLayoutAdjust);
}
private void setupKeypad() {