Skip to content

Commit

Permalink
Restore ImageView picasso callback
Browse files Browse the repository at this point in the history
Signed-off-by: Jorge Ruesga <jorge@ruesga.com>
  • Loading branch information
jruesga committed Apr 11, 2017
1 parent ed8649e commit 8efc34d
Showing 1 changed file with 37 additions and 13 deletions.
50 changes: 37 additions & 13 deletions app/src/main/java/com/ruesga/rview/misc/PicassoHelper.java
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
import com.ruesga.rview.gerrit.model.AccountInfo;
import com.ruesga.rview.model.Account;
import com.ruesga.rview.preferences.Preferences;
import com.squareup.picasso.Callback;
import com.squareup.picasso.Picasso;
import com.squareup.picasso.Target;
import com.squareup.picasso.Transformation;
Expand Down Expand Up @@ -84,26 +85,49 @@ public static void bindAvatar(Context context, Picasso picasso, AccountInfo acco
ImageView view, Drawable placeholder) {
final Account acct = Preferences.getAccount(context);
final List<String> avatarUrls = ModelHelper.getAvatarUrl(context, acct, account);
loadWithFallbackUrls(context, picasso, view, placeholder, avatarUrls);
loadWithFallbackUrls(picasso, view, placeholder, avatarUrls);
}

public static void bindAvatar(Context context, Picasso picasso, Account acct,
AccountInfo account, ImageView view, Drawable placeholder) {
final List<String> avatarUrls = ModelHelper.getAvatarUrl(context, acct, account);
loadWithFallbackUrls(context, picasso, view, placeholder, avatarUrls);
}

public static void bindAvatar(Context context, Picasso picasso, AccountInfo account,
MenuItem item, Drawable placeholder) {
final Account acct = Preferences.getAccount(context);
AccountInfo account, MenuItem item, Drawable placeholder) {
final List<String> avatarUrls = ModelHelper.getAvatarUrl(context, acct, account);
loadWithFallbackUrls(context, picasso, item, placeholder, avatarUrls);
}

public static void bindAvatar(Context context, Picasso picasso, Account acct,
AccountInfo account, MenuItem item, Drawable placeholder) {
final List<String> avatarUrls = ModelHelper.getAvatarUrl(context, acct, account);
loadWithFallbackUrls(context, picasso, item, placeholder, avatarUrls);
private static void loadWithFallbackUrls(final Picasso picasso, final ImageView view,
final Drawable placeholder, final List<String> urls) {
final String nextUrl;
synchronized (urls) {
nextUrl = urls.isEmpty() ? null : urls.get(0);
}
if (nextUrl != null) {
picasso.load(nextUrl)
.placeholder(placeholder)
.transform(new CircleTransform())
.into(view, new Callback() {
@Override
public void onSuccess() {
synchronized (urls) {
urls.clear();
urls.add(nextUrl);
}
}

@Override
public void onError() {
// Next url
synchronized (urls) {
if (urls.contains(nextUrl)) {
urls.remove(nextUrl);
}
}
loadWithFallbackUrls(picasso, view, placeholder, urls);
}
});
} else {
// Placeholder
view.setImageDrawable(placeholder);
}
}

private static void loadWithFallbackUrls(final Context context, final Picasso picasso,
Expand Down

0 comments on commit 8efc34d

Please sign in to comment.