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