Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 54deae4c authored by Pierre Barbier de Reuille's avatar Pierre Barbier de Reuille
Browse files

Ensure the view being recycled has been inflated before.

Fix: 183061275
Test: atest CtsWidgetTestCases:RemoteViewsTest
Change-Id: I346fd894bea3ca37ab75871025fa0a92433d061c
parent 3be701e7
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -5339,9 +5339,13 @@ public class RemoteViews implements Parcelable, Filter {

    /** @hide */
    public boolean canRecycleView(View v) {
        Integer previousLayout = (Integer) v.getTag(R.id.widget_frame);
        if (previousLayout == null) {
            return false;
        }
        Integer overrideIdTag = (Integer) v.getTag(R.id.remote_views_override_id);
        int overrideId = overrideIdTag == null ? View.NO_ID : overrideIdTag;
        return (Integer) v.getTag(R.id.widget_frame) == getLayoutId() && mViewId == overrideId;
        return previousLayout == getLayoutId() && mViewId == overrideId;
    }

    // Note: topLevel should be true only for calls on the topLevel RemoteViews, internal calls