diff options
| author | TreeHugger Robot <treehugger-gerrit@google.com> | 2020-06-23 17:35:37 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2020-06-23 17:35:37 +0000 |
| commit | f33516115a53e6344ac0c1e7d4fea005fcd7df64 (patch) | |
| tree | a0bb5a85642f2d561398c7d0d5d954daafe49b35 /core/java | |
| parent | 24804d2a8f7a3098b4c8c2f99f469556ef504f2f (diff) | |
| parent | 1b0f20efee82c9eb3112fb83617525188d2fcea4 (diff) | |
Merge "Remove circular ref from MessagingLinearLayout" into rvc-dev
Diffstat (limited to 'core/java')
3 files changed, 13 insertions, 9 deletions
diff --git a/core/java/com/android/internal/widget/ConversationLayout.java b/core/java/com/android/internal/widget/ConversationLayout.java index 5d4407bf8370..3fcedd9156a6 100644 --- a/core/java/com/android/internal/widget/ConversationLayout.java +++ b/core/java/com/android/internal/widget/ConversationLayout.java @@ -197,7 +197,6 @@ public class ConversationLayout extends FrameLayout super.onFinishInflate(); mMessagingLinearLayout = findViewById(R.id.notification_messaging); mActions = findViewById(R.id.actions); - mMessagingLinearLayout.setMessagingLayout(this); mImageMessageContainer = findViewById(R.id.conversation_image_message_container); // We still want to clip, but only on the top, since views can temporarily out of bounds // during transitions. diff --git a/core/java/com/android/internal/widget/MessagingLayout.java b/core/java/com/android/internal/widget/MessagingLayout.java index a162e4e10c71..27cd6e13d86c 100644 --- a/core/java/com/android/internal/widget/MessagingLayout.java +++ b/core/java/com/android/internal/widget/MessagingLayout.java @@ -124,7 +124,6 @@ public class MessagingLayout extends FrameLayout protected void onFinishInflate() { super.onFinishInflate(); mMessagingLinearLayout = findViewById(R.id.notification_messaging); - mMessagingLinearLayout.setMessagingLayout(this); // We still want to clip, but only on the top, since views can temporarily out of bounds // during transitions. DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); diff --git a/core/java/com/android/internal/widget/MessagingLinearLayout.java b/core/java/com/android/internal/widget/MessagingLinearLayout.java index 4ee647a42116..7cfd46c880fc 100644 --- a/core/java/com/android/internal/widget/MessagingLinearLayout.java +++ b/core/java/com/android/internal/widget/MessagingLinearLayout.java @@ -24,6 +24,7 @@ import android.util.AttributeSet; import android.view.RemotableViewMethod; import android.view.View; import android.view.ViewGroup; +import android.view.ViewParent; import android.widget.RemoteViews; import com.android.internal.R; @@ -43,8 +44,6 @@ public class MessagingLinearLayout extends ViewGroup { private int mMaxDisplayedLines = Integer.MAX_VALUE; - private IMessagingLayout mMessagingLayout; - public MessagingLinearLayout(Context context, @Nullable AttributeSet attrs) { super(context, attrs); @@ -292,12 +291,19 @@ public class MessagingLinearLayout extends ViewGroup { mMaxDisplayedLines = numberLines; } - public void setMessagingLayout(IMessagingLayout layout) { - mMessagingLayout = layout; - } - public IMessagingLayout getMessagingLayout() { - return mMessagingLayout; + View view = this; + while (true) { + ViewParent p = view.getParent(); + if (p instanceof View) { + view = (View) p; + if (view instanceof IMessagingLayout) { + return (IMessagingLayout) view; + } + } else { + return null; + } + } } @Override |
