Fix various memory leaks reported by LeakCanary
- In some places, we weren't nulling out references to destroyed objects. This fixes that. - (These were all discovered via LeakCanary instrumentation, and the fixes are hopefully rather straightforward-looking.)
This commit is contained in:
parent
b4805ac2c5
commit
364502d1a3
|
@ -1048,6 +1048,14 @@ public class ConversationFragment extends XmppFragment implements EditMessage.Ke
|
||||||
|
|
||||||
return binding.getRoot();
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void onDestroyView() {
|
||||||
|
super.onDestroyView();
|
||||||
|
Log.d(Config.LOGTAG,"ConversationFragment.onDestroyView()");
|
||||||
|
messageListAdapter.setOnContactPictureClicked(null);
|
||||||
|
messageListAdapter.setOnContactPictureLongClicked(null);
|
||||||
|
messageListAdapter.setOnQuoteListener(null);
|
||||||
|
}
|
||||||
|
|
||||||
private void quoteText(String text) {
|
private void quoteText(String text) {
|
||||||
if (binding.textinput.isEnabled()) {
|
if (binding.textinput.isEnabled()) {
|
||||||
|
|
|
@ -192,7 +192,7 @@ public class ConversationsOverviewFragment extends XmppFragment {
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private ItemTouchHelper touchHelper = new ItemTouchHelper(callback);
|
private ItemTouchHelper touchHelper;
|
||||||
|
|
||||||
public static Conversation getSuggestion(Activity activity) {
|
public static Conversation getSuggestion(Activity activity) {
|
||||||
final Conversation exception;
|
final Conversation exception;
|
||||||
|
@ -242,7 +242,20 @@ public class ConversationsOverviewFragment extends XmppFragment {
|
||||||
throw new IllegalStateException("Trying to attach fragment to activity that is not an XmppActivity");
|
throw new IllegalStateException("Trying to attach fragment to activity that is not an XmppActivity");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public void onDestroyView() {
|
||||||
|
Log.d(Config.LOGTAG,"ConversationsOverviewFragment.onDestroyView()");
|
||||||
|
super.onDestroyView();
|
||||||
|
this.binding = null;
|
||||||
|
this.conversationsAdapter = null;
|
||||||
|
this.touchHelper = null;
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void onDestroy() {
|
||||||
|
Log.d(Config.LOGTAG,"ConversationsOverviewFragment.onDestroy()");
|
||||||
|
super.onDestroy();
|
||||||
|
|
||||||
|
}
|
||||||
@Override
|
@Override
|
||||||
public void onPause() {
|
public void onPause() {
|
||||||
Log.d(Config.LOGTAG,"ConversationsOverviewFragment.onPause()");
|
Log.d(Config.LOGTAG,"ConversationsOverviewFragment.onPause()");
|
||||||
|
@ -278,6 +291,7 @@ public class ConversationsOverviewFragment extends XmppFragment {
|
||||||
});
|
});
|
||||||
this.binding.list.setAdapter(this.conversationsAdapter);
|
this.binding.list.setAdapter(this.conversationsAdapter);
|
||||||
this.binding.list.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
|
this.binding.list.setLayoutManager(new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false));
|
||||||
|
this.touchHelper = new ItemTouchHelper(this.callback);
|
||||||
this.touchHelper.attachToRecyclerView(this.binding.list);
|
this.touchHelper.attachToRecyclerView(this.binding.list);
|
||||||
return binding.getRoot();
|
return binding.getRoot();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue