Added local Picasso instance instead of singleton

- MessagesActivity now constructs a new Picasso instance each onCreate
  and passes it to ListMessageAdapter
This commit is contained in:
Galen Abell
2018-11-10 15:14:17 -05:00
parent d8d9815d9b
commit ad5be385e8
2 changed files with 16 additions and 11 deletions

View File

@@ -21,12 +21,15 @@ import java.util.List;
public class ListMessageAdapter extends BaseAdapter { public class ListMessageAdapter extends BaseAdapter {
private Context content; private Context content;
private Picasso picasso;
private List<MessageWithImage> items; private List<MessageWithImage> items;
private Delete delete; private Delete delete;
ListMessageAdapter(Context context, List<MessageWithImage> items, Delete delete) { ListMessageAdapter(
Context context, Picasso picasso, List<MessageWithImage> items, Delete delete) {
super(); super();
this.content = context; this.content = context;
this.picasso = picasso;
this.items = items; this.items = items;
this.delete = delete; this.delete = delete;
} }
@@ -62,8 +65,7 @@ public class ListMessageAdapter extends BaseAdapter {
final MessageWithImage message = items.get(position); final MessageWithImage message = items.get(position);
holder.message.setText(message.message.getMessage()); holder.message.setText(message.message.getMessage());
holder.title.setText(message.message.getTitle()); holder.title.setText(message.message.getTitle());
Picasso.get() picasso.load(message.image)
.load(message.image)
.error(R.drawable.ic_alarm) .error(R.drawable.ic_alarm)
.placeholder(R.drawable.ic_placeholder) .placeholder(R.drawable.ic_placeholder)
.into(holder.image); .into(holder.image);

View File

@@ -98,6 +98,8 @@ public class MessagesActivity extends AppCompatActivity
private boolean isLoadMore = false; private boolean isLoadMore = false;
private Integer selectAppIdOnDrawerClose = null; private Integer selectAppIdOnDrawerClose = null;
private Picasso picasso;
// we need to keep the target references otherwise they get gc'ed before they can be called. // we need to keep the target references otherwise they get gc'ed before they can be called.
@SuppressWarnings("MismatchedQueryAndUpdateOfCollection") @SuppressWarnings("MismatchedQueryAndUpdateOfCollection")
private final List<Target> targetReferences = new ArrayList<>(); private final List<Target> targetReferences = new ArrayList<>();
@@ -110,11 +112,7 @@ public class MessagesActivity extends AppCompatActivity
Log.i("Entering " + getClass().getSimpleName()); Log.i("Entering " + getClass().getSimpleName());
settings = new Settings(this); settings = new Settings(this);
try { picasso = makePicasso();
Picasso.setSingletonInstance(makePicasso());
} catch (IllegalStateException e) {
// ignore, singleton has already been set
}
client = client =
ClientFactory.clientToken(settings.url(), settings.sslSettings(), settings.token()); ClientFactory.clientToken(settings.url(), settings.sslSettings(), settings.token());
@@ -126,7 +124,7 @@ public class MessagesActivity extends AppCompatActivity
messages = new MessageFacade(new MessageApi(client), appsHolder); messages = new MessageFacade(new MessageApi(client), appsHolder);
messagesView.setOnScrollListener(this); messagesView.setOnScrollListener(this);
messagesView.setAdapter(new ListMessageAdapter(this, emptyList(), this::delete)); messagesView.setAdapter(new ListMessageAdapter(this, picasso, emptyList(), this::delete));
swipeRefreshLayout.setOnRefreshListener(this::onRefresh); swipeRefreshLayout.setOnRefreshListener(this::onRefresh);
drawer.addDrawerListener( drawer.addDrawerListener(
@@ -168,8 +166,7 @@ public class MessagesActivity extends AppCompatActivity
item.setCheckable(true); item.setCheckable(true);
Target t = Utils.toDrawable(getResources(), item::setIcon); Target t = Utils.toDrawable(getResources(), item::setIcon);
targetReferences.add(t); targetReferences.add(t);
Picasso.get() picasso.load(app.getImage())
.load(app.getImage())
.error(R.drawable.ic_alarm) .error(R.drawable.ic_alarm)
.placeholder(R.drawable.ic_placeholder) .placeholder(R.drawable.ic_placeholder)
.resize(100, 100) .resize(100, 100)
@@ -283,6 +280,12 @@ public class MessagesActivity extends AppCompatActivity
super.onPause(); super.onPause();
} }
@Override
protected void onDestroy() {
super.onDestroy();
picasso.shutdown();
}
@Override @Override
public void onScrollStateChanged(AbsListView view, int scrollState) {} public void onScrollStateChanged(AbsListView view, int scrollState) {}