Store the appropriate layout id for the infrated view, so that
it can be used for verification during reapply. Bug: 28815495 Change-Id: I8516661ef97f529851069331a6c2bb64429c7766
This commit is contained in:
@@ -3176,7 +3176,9 @@ public class RemoteViews implements Parcelable, Filter {
|
||||
// we don't add a filter to the static version returned by getSystemService.
|
||||
inflater = inflater.cloneInContext(inflationContext);
|
||||
inflater.setFilter(this);
|
||||
return inflater.inflate(rv.getLayoutId(), parent, false);
|
||||
View v = inflater.inflate(rv.getLayoutId(), parent, false);
|
||||
v.setTagInternal(R.id.widget_frame, rv.getLayoutId());
|
||||
return v;
|
||||
}
|
||||
|
||||
private static void loadTransitionOverride(Context context,
|
||||
@@ -3354,7 +3356,7 @@ public class RemoteViews implements Parcelable, Filter {
|
||||
// across orientation change, and has the RemoteViews re-applied in the new orientation,
|
||||
// we throw an exception, since the layouts may be completely unrelated.
|
||||
if (hasLandscapeAndPortraitLayouts()) {
|
||||
if (v.getId() != rvToApply.getLayoutId()) {
|
||||
if ((Integer) v.getTag(R.id.widget_frame) != rvToApply.getLayoutId()) {
|
||||
throw new RuntimeException("Attempting to re-apply RemoteViews to a view that" +
|
||||
" that does not share the same root layout id.");
|
||||
}
|
||||
@@ -3390,7 +3392,7 @@ public class RemoteViews implements Parcelable, Filter {
|
||||
// across orientation change, and has the RemoteViews re-applied in the new orientation,
|
||||
// we throw an exception, since the layouts may be completely unrelated.
|
||||
if (hasLandscapeAndPortraitLayouts()) {
|
||||
if (v.getId() != rvToApply.getLayoutId()) {
|
||||
if ((Integer) v.getTag(R.id.widget_frame) != rvToApply.getLayoutId()) {
|
||||
throw new RuntimeException("Attempting to re-apply RemoteViews to a view that" +
|
||||
" that does not share the same root layout id.");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user