Auto reload of history views when a call ends

This commit is contained in:
Sylvain Berfini 2019-11-20 14:41:12 +01:00
parent 2217070995
commit 71efda66ce
2 changed files with 39 additions and 0 deletions

View file

@ -37,12 +37,14 @@ import org.linphone.contacts.ContactsManager;
import org.linphone.contacts.LinphoneContact; import org.linphone.contacts.LinphoneContact;
import org.linphone.contacts.views.ContactAvatar; import org.linphone.contacts.views.ContactAvatar;
import org.linphone.core.Address; import org.linphone.core.Address;
import org.linphone.core.Call;
import org.linphone.core.CallLog; import org.linphone.core.CallLog;
import org.linphone.core.ChatRoom; import org.linphone.core.ChatRoom;
import org.linphone.core.ChatRoomBackend; import org.linphone.core.ChatRoomBackend;
import org.linphone.core.ChatRoomListenerStub; import org.linphone.core.ChatRoomListenerStub;
import org.linphone.core.ChatRoomParams; import org.linphone.core.ChatRoomParams;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub;
import org.linphone.core.Factory; import org.linphone.core.Factory;
import org.linphone.core.FriendCapability; import org.linphone.core.FriendCapability;
import org.linphone.core.ProxyConfig; import org.linphone.core.ProxyConfig;
@ -60,6 +62,7 @@ public class HistoryDetailFragment extends Fragment {
private ChatRoom mChatRoom; private ChatRoom mChatRoom;
private ChatRoomListenerStub mChatRoomCreationListener; private ChatRoomListenerStub mChatRoomCreationListener;
private ListView mLogsList; private ListView mLogsList;
private CoreListenerStub mListener;
@Override @Override
public View onCreateView( public View onCreateView(
@ -167,14 +170,34 @@ public class HistoryDetailFragment extends Fragment {
mLogsList = view.findViewById(R.id.logs_list); mLogsList = view.findViewById(R.id.logs_list);
displayHistory(); displayHistory();
mListener =
new CoreListenerStub() {
@Override
public void onCallStateChanged(
Core core, Call call, Call.State state, String message) {
if (state == Call.State.End || state == Call.State.Error) {
displayHistory();
}
}
};
return view; return view;
} }
@Override
public void onResume() {
super.onResume();
LinphoneManager.getCore().addListener(mListener);
}
@Override @Override
public void onPause() { public void onPause() {
if (mChatRoom != null) { if (mChatRoom != null) {
mChatRoom.removeListener(mChatRoomCreationListener); mChatRoom.removeListener(mChatRoomCreationListener);
} }
LinphoneManager.getCore().removeListener(mListener);
super.onPause(); super.onPause();
} }

View file

@ -45,6 +45,7 @@ import org.linphone.core.Address;
import org.linphone.core.Call; import org.linphone.core.Call;
import org.linphone.core.CallLog; import org.linphone.core.CallLog;
import org.linphone.core.Core; import org.linphone.core.Core;
import org.linphone.core.CoreListenerStub;
import org.linphone.utils.SelectableHelper; import org.linphone.utils.SelectableHelper;
public class HistoryFragment extends Fragment public class HistoryFragment extends Fragment
@ -62,6 +63,7 @@ public class HistoryFragment extends Fragment
private List<CallLog> mLogs; private List<CallLog> mLogs;
private HistoryAdapter mHistoryAdapter; private HistoryAdapter mHistoryAdapter;
private SelectableHelper mSelectionHelper; private SelectableHelper mSelectionHelper;
private CoreListenerStub mListener;
@Override @Override
public View onCreateView( public View onCreateView(
@ -96,14 +98,27 @@ public class HistoryFragment extends Fragment
mAllCalls.setEnabled(false); mAllCalls.setEnabled(false);
mOnlyDisplayMissedCalls = false; mOnlyDisplayMissedCalls = false;
mListener =
new CoreListenerStub() {
@Override
public void onCallStateChanged(
Core core, Call call, Call.State state, String message) {
if (state == Call.State.End || state == Call.State.Error) {
reloadData();
}
}
};
return view; return view;
} }
@Override @Override
public void onResume() { public void onResume() {
super.onResume(); super.onResume();
ContactsManager.getInstance().addContactsListener(this); ContactsManager.getInstance().addContactsListener(this);
LinphoneContext.instance().addCoreStartedListener(this); LinphoneContext.instance().addCoreStartedListener(this);
LinphoneManager.getCore().addListener(mListener);
reloadData(); reloadData();
} }
@ -112,6 +127,7 @@ public class HistoryFragment extends Fragment
public void onPause() { public void onPause() {
ContactsManager.getInstance().removeContactsListener(this); ContactsManager.getInstance().removeContactsListener(this);
LinphoneContext.instance().removeCoreStartedListener(this); LinphoneContext.instance().removeCoreStartedListener(this);
LinphoneManager.getCore().removeListener(mListener);
super.onPause(); super.onPause();
} }