From dee46ef68861e06439c261310d0c2132c335c82c Mon Sep 17 00:00:00 2001 From: Abhijith Date: Mon, 31 Jan 2022 09:46:09 +0000 Subject: [PATCH] update library/src/main/java/com/bumptech/glide/request/target/ViewTarget.java. --- .../glide/request/target/ViewTarget.java | 62 +++++++++++++++++-- 1 file changed, 58 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/com/bumptech/glide/request/target/ViewTarget.java b/library/src/main/java/com/bumptech/glide/request/target/ViewTarget.java index afa7f9503..ebfb41c58 100644 --- a/library/src/main/java/com/bumptech/glide/request/target/ViewTarget.java +++ b/library/src/main/java/com/bumptech/glide/request/target/ViewTarget.java @@ -189,7 +189,21 @@ public abstract class ViewTarget extends BaseTarget { */ @Override public void setRequest(@Nullable Request request) { - setTag(request); + if(getTag() != null) { + Object obj = getTag(); + if(obj instanceof ViewTarget.Tag) { + ((Tag)obj).request = request; + setTag(obj); + } else { + Tag obj2 = new Tag(); + obj2.request = request; + setTag(obj2); + } + } else { + Tag obj = new Tag(); + obj.request = request; + setTag(obj); + } } /** @@ -209,8 +223,11 @@ public abstract class ViewTarget extends BaseTarget { Object tag = getTag(); Request request = null; if (tag != null) { - if (tag instanceof Request) { - request = (Request) tag; + if (tag instanceof ViewTarget.Tag) { + Tag tag1 =(Tag) tag; + if (tag1.request instanceof Request) { + request = (Request) tag1.request; + } } else { throw new IllegalArgumentException( "You must not call setTag() on a view Glide is targeting"); @@ -224,7 +241,44 @@ public abstract class ViewTarget extends BaseTarget { return "Target for: " + view; } - private void setTag(@Nullable Object tag) { + public class Tag{ + Object request; + Object loadModel; + } + + public void setLastModel(Object model){ + if(getTag() !=null){ + Object obj = getTag(); + if(obj instanceof ViewTarget.Tag){ + ((Tag)obj).loadModel = model; + } else{ + Tag obj2 = new Tag(); + obj2.loadModel = model; + setTag(obj2); + } + } else{ + Tag obj = new Tag(); + obj.loadModel = model; + setTag(obj); + } + } + + public Object getLastModel(){ + Object tag = getTag(); + Object model =null; + if (tag != null) { + if(tag instanceof ViewTarget.Tag) { + Tag tag1 = (Tag)tag; + model = tag1.loadModel; + } else { + throw new IllegalArgumentException( + "You must not call setTag() on view Glide is targeting"); + } + } + return model; + } + + private void setTag(@Nullable Object tag) { isTagUsedAtLeastOnce = true; //view.setId(tagId); view.setTag(tag); -- Gitee