diff options
| author | Daniel Sandler <dsandler@android.com> | 2017-06-14 20:12:32 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-06-14 20:12:38 +0000 |
| commit | 0e6a5f8d7e786e22a31fcdac9d75f285fdbb565a (patch) | |
| tree | 97beea725e890c2e59815239023ace15db18608c /core/java/android/widget/RemoteViews.java | |
| parent | 511c95a02277f0245adcd3d8fdf0ac1cdc6db9fe (diff) | |
| parent | 23bb5bf262279ab37cfa109091c1bf0ae75e0685 (diff) | |
Merge "Revert accidental API change to RemoteViews." into oc-dev
Diffstat (limited to 'core/java/android/widget/RemoteViews.java')
| -rw-r--r-- | core/java/android/widget/RemoteViews.java | 30 |
1 files changed, 16 insertions, 14 deletions
diff --git a/core/java/android/widget/RemoteViews.java b/core/java/android/widget/RemoteViews.java index 7117137ce2f8..aa6ffceea9f3 100644 --- a/core/java/android/widget/RemoteViews.java +++ b/core/java/android/widget/RemoteViews.java @@ -2342,24 +2342,26 @@ public class RemoteViews implements Parcelable, Filter { } - public synchronized RemoteViews clone() { - Preconditions.checkState(mIsRoot, "RemoteView has been attached to another RemoteView. " - + "May only clone the root of a RemoteView hierarchy."); + public RemoteViews clone() { + synchronized (this) { + Preconditions.checkState(mIsRoot, "RemoteView has been attached to another RemoteView. " + + "May only clone the root of a RemoteView hierarchy."); - Parcel p = Parcel.obtain(); + Parcel p = Parcel.obtain(); - // Do not parcel the Bitmap cache - doing so creates an expensive copy of all bitmaps. - // Instead pretend we're not owning the cache while parceling. - mIsRoot = false; - writeToParcel(p, PARCELABLE_ELIDE_DUPLICATES); - p.setDataPosition(0); - mIsRoot = true; + // Do not parcel the Bitmap cache - doing so creates an expensive copy of all bitmaps. + // Instead pretend we're not owning the cache while parceling. + mIsRoot = false; + writeToParcel(p, PARCELABLE_ELIDE_DUPLICATES); + p.setDataPosition(0); + mIsRoot = true; - RemoteViews rv = new RemoteViews(p, mBitmapCache.clone(), mApplication, 0); - rv.mIsRoot = true; + RemoteViews rv = new RemoteViews(p, mBitmapCache.clone(), mApplication, 0); + rv.mIsRoot = true; - p.recycle(); - return rv; + p.recycle(); + return rv; + } } public String getPackage() { |
