Merge "Check if a view can be recycled in async case." into sc-v2-dev am: 6c20a8f525
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16140774 Change-Id: Id6d5f841f32ba8fdca10a4e8bf404534376357d3
This commit is contained in:
@@ -626,7 +626,7 @@ public class AppWidgetHostView extends FrameLayout {
|
|||||||
|
|
||||||
// If our stale view has been prepared to match active, and the new
|
// If our stale view has been prepared to match active, and the new
|
||||||
// layout matches, try recycling it
|
// layout matches, try recycling it
|
||||||
if (layoutId == mLayoutId && mView != null) {
|
if (remoteViews.canRecycleView(mView)) {
|
||||||
try {
|
try {
|
||||||
mLastExecutionSignal = remoteViews.reapplyAsync(mContext,
|
mLastExecutionSignal = remoteViews.reapplyAsync(mContext,
|
||||||
mView,
|
mView,
|
||||||
|
|||||||
@@ -5795,7 +5795,7 @@ public class RemoteViews implements Parcelable, Filter {
|
|||||||
// across orientation change, and has the RemoteViews re-applied in the new orientation,
|
// across orientation change, and has the RemoteViews re-applied in the new orientation,
|
||||||
// we throw an exception, since the layouts may be completely unrelated.
|
// we throw an exception, since the layouts may be completely unrelated.
|
||||||
if (hasMultipleLayouts()) {
|
if (hasMultipleLayouts()) {
|
||||||
if ((Integer) v.getTag(R.id.widget_frame) != rvToApply.getLayoutId()) {
|
if (!rvToApply.canRecycleView(v)) {
|
||||||
throw new RuntimeException("Attempting to re-apply RemoteViews to a view that" +
|
throw new RuntimeException("Attempting to re-apply RemoteViews to a view that" +
|
||||||
" that does not share the same root layout id.");
|
" that does not share the same root layout id.");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user