Revert "Do not remove chatRoomListener in onPause, can lead to crashes", linphone updates now allows to remove a callback from a callback
This reverts commit 8e4627d7da
.
This commit is contained in:
parent
ce638695b0
commit
585daf2fe3
5 changed files with 49 additions and 14 deletions
|
@ -67,6 +67,7 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
|||
private ProgressBar mContactsFetchInProgress;
|
||||
private SearchContactsListAdapter mSearchAdapter;
|
||||
private String mChatRoomSubject, mChatRoomAddress;
|
||||
private ChatRoom mChatRoom;
|
||||
private ChatRoomListenerStub mChatRoomCreationListener;
|
||||
|
||||
@Override
|
||||
|
@ -179,6 +180,14 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
|||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (mChatRoom != null) {
|
||||
mChatRoom.removeListener(mChatRoomCreationListener);
|
||||
}
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
private void displayChatCreation() {
|
||||
mNextButton.setVisibility(View.VISIBLE);
|
||||
mNextButton.setEnabled(mContactsSelected.size() > 0);
|
||||
|
@ -316,9 +325,9 @@ public class ChatCreationFragment extends Fragment implements View.OnClickListen
|
|||
Address participant = mContactsSelected.get(0).getAddress();
|
||||
ChatRoom chatRoom = lc.findOneToOneChatRoom(lc.getDefaultProxyConfig().getContact(), participant);
|
||||
if (chatRoom == null) {
|
||||
chatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||
chatRoom.addListener(mChatRoomCreationListener);
|
||||
chatRoom.addParticipant(participant);
|
||||
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||
mChatRoom.addListener(mChatRoomCreationListener);
|
||||
mChatRoom.addParticipant(participant);
|
||||
} else {
|
||||
LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asStringUriOnly());
|
||||
}
|
||||
|
|
|
@ -66,7 +66,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
|||
private boolean mIsEditionEnabled;
|
||||
private ArrayList<ContactAddress> mParticipants;
|
||||
private String mSubject;
|
||||
private ChatRoom mChatRoom;
|
||||
private ChatRoom mChatRoom, mTempChatRoom;
|
||||
private Dialog mAdminStateChangedDialog;
|
||||
private ChatRoomListenerStub mChatRoomCreationListener;
|
||||
|
||||
|
@ -215,8 +215,8 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
|||
public void onClick(View view) {
|
||||
if (!mIsAlreadyCreatedGroup) {
|
||||
mWaitLayout.setVisibility(View.VISIBLE);
|
||||
ChatRoom room = LinphoneManager.getLc().createClientGroupChatRoom(mSubjectField.getText().toString());
|
||||
room.addListener(mChatRoomCreationListener);
|
||||
mTempChatRoom = LinphoneManager.getLc().createClientGroupChatRoom(mSubjectField.getText().toString());
|
||||
mTempChatRoom.addListener(mChatRoomCreationListener);
|
||||
|
||||
Address addresses[] = new Address[mParticipants.size()];
|
||||
int index = 0;
|
||||
|
@ -224,7 +224,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
|||
addresses[index] = ca.getAddress();
|
||||
index++;
|
||||
}
|
||||
room.addParticipants(addresses);
|
||||
mTempChatRoom.addParticipants(addresses);
|
||||
} else {
|
||||
// Subject
|
||||
String newSubject = mSubjectField.getText().toString();
|
||||
|
@ -299,6 +299,14 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener {
|
|||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (mTempChatRoom != null) {
|
||||
mTempChatRoom.removeListener(mChatRoomCreationListener);
|
||||
}
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
if (mChatRoom != null) {
|
||||
|
|
|
@ -54,6 +54,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
|||
private LayoutInflater inflater;
|
||||
private View view;
|
||||
private boolean displayChatAddressOnly = false;
|
||||
private ChatRoom mChatRoom;
|
||||
private ChatRoomListenerStub mChatRoomCreationListener;
|
||||
|
||||
private OnClickListener dialListener = new OnClickListener() {
|
||||
|
@ -78,9 +79,9 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
|||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
||||
} else {
|
||||
mWaitLayout.setVisibility(View.VISIBLE);
|
||||
room = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||
room.addListener(mChatRoomCreationListener);
|
||||
room.addParticipant(participant);
|
||||
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||
mChatRoom.addListener(mChatRoomCreationListener);
|
||||
mChatRoom.addParticipant(participant);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -138,6 +139,14 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
|
|||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (mChatRoom != null) {
|
||||
mChatRoom.removeListener(mChatRoomCreationListener);
|
||||
}
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
public void changeDisplayedContact(LinphoneContact newContact) {
|
||||
contact = newContact;
|
||||
displayContact(inflater, view);
|
||||
|
|
|
@ -51,6 +51,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
|||
private String sipUri, displayName, pictureUri;
|
||||
private RelativeLayout mWaitLayout;
|
||||
private LinphoneContact contact;
|
||||
private ChatRoom mChatRoom;
|
||||
private ChatRoomListenerStub mChatRoomCreationListener;
|
||||
|
||||
@Override
|
||||
|
@ -118,6 +119,14 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
|||
return view;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onPause() {
|
||||
if (mChatRoom != null) {
|
||||
mChatRoom.removeListener(mChatRoomCreationListener);
|
||||
}
|
||||
super.onPause();
|
||||
}
|
||||
|
||||
private void displayHistory(String status, String callTime, String callDate) {
|
||||
if (status.equals(getResources().getString(R.string.missed))) {
|
||||
callDirection.setImageResource(R.drawable.call_missed);
|
||||
|
@ -191,9 +200,9 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
|||
LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly());
|
||||
} else {
|
||||
mWaitLayout.setVisibility(View.VISIBLE);
|
||||
room = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||
room.addListener(mChatRoomCreationListener);
|
||||
room.addParticipant(participant);
|
||||
mChatRoom = lc.createClientGroupChatRoom(getString(R.string.dummy_group_chat_subject));
|
||||
mChatRoom.addListener(mChatRoomCreationListener);
|
||||
mChatRoom.addParticipant(participant);
|
||||
}
|
||||
} else if (id == R.id.add_contact) {
|
||||
Address addr = Factory.instance().createAddress(sipUri);
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 86493a151c0d8af59140675a548dec0a87554491
|
||||
Subproject commit 247c2877a832c84de0d1af547dd5350b2bddf9f3
|
Loading…
Reference in a new issue