Skip to content

Commit 7871f1f

Browse files
committed
Do not use WeakRef for target in RemoteViews requests.
1 parent 88aa367 commit 7871f1f

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

picasso/src/main/java/com/squareup/picasso/Action.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ public RequestWeakReference(Action action, T referent, ReferenceQueue<? super T>
4848
int errorResId, Drawable errorDrawable, String key, Object tag) {
4949
this.picasso = picasso;
5050
this.request = request;
51-
this.target = new RequestWeakReference<T>(this, target, picasso.referenceQueue);
51+
this.target =
52+
target == null ? null : new RequestWeakReference<T>(this, target, picasso.referenceQueue);
5253
this.skipCache = skipCache;
5354
this.noFade = noFade;
5455
this.errorResId = errorResId;

picasso/src/main/java/com/squareup/picasso/RemoteViewsAction.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,11 @@ abstract class RemoteViewsAction extends Action<RemoteViewsAction.RemoteViewsTar
2828
final RemoteViews remoteViews;
2929
final int viewId;
3030

31+
private RemoteViewsTarget target;
32+
3133
RemoteViewsAction(Picasso picasso, Request data, RemoteViews remoteViews, int viewId,
3234
int errorResId, boolean skipCache, String key, Object tag) {
33-
super(picasso, new RemoteViewsTarget(remoteViews, viewId), data, skipCache, false, errorResId,
35+
super(picasso, null, data, skipCache, false, errorResId,
3436
null, key, tag);
3537
this.remoteViews = remoteViews;
3638
this.viewId = viewId;
@@ -47,6 +49,13 @@ abstract class RemoteViewsAction extends Action<RemoteViewsAction.RemoteViewsTar
4749
}
4850
}
4951

52+
@Override RemoteViewsTarget getTarget() {
53+
if (target == null) {
54+
target = new RemoteViewsTarget(remoteViews, viewId);
55+
}
56+
return target;
57+
}
58+
5059
void setImageResource(int resId) {
5160
remoteViews.setImageViewResource(viewId, resId);
5261
update();

0 commit comments

Comments
 (0)