diff --git a/res/layout/chatlist.xml b/res/layout/chatlist.xml
index e6afaea73..c7ff77728 100644
--- a/res/layout/chatlist.xml
+++ b/res/layout/chatlist.xml
@@ -22,6 +22,16 @@
android:layout_alignParentLeft="true"
android:padding="15dp"/>
+
+
-
false
false
sip.linphone.org
diff --git a/src/org/linphone/CallActivity.java b/src/org/linphone/CallActivity.java
index fadd84ba0..85e5c02f8 100644
--- a/src/org/linphone/CallActivity.java
+++ b/src/org/linphone/CallActivity.java
@@ -84,7 +84,7 @@ public class CallActivity extends Activity implements OnClickListener {
private ImageView switchCamera;
private RelativeLayout mActiveCallHeader, sideMenuContent, avatar_layout;
private ImageView pause, hangUp, dialer, video, micro, speaker, options, addCall, transfer, conference, conferenceStatus, contactPicture;
- private ImageView audioRoute, routeSpeaker, routeEarpiece, routeBluetooth, menu;
+ private ImageView audioRoute, routeSpeaker, routeEarpiece, routeBluetooth, menu, chat;
private LinearLayout mNoCurrentCall, callInfo, mCallPaused;
private ProgressBar videoProgress;
private StatusFragment status;
@@ -327,6 +327,9 @@ public class CallActivity extends Activity implements OnClickListener {
numpad = (Numpad) findViewById(R.id.numpad);
numpad.getBackground().setAlpha(240);
+ chat = (ImageView) findViewById(R.id.chat);
+ chat.setOnClickListener(this);
+
//Others
//Active Call
@@ -569,6 +572,9 @@ public class CallActivity extends Activity implements OnClickListener {
else if (id == R.id.dialer) {
hideOrDisplayNumpad();
}
+ else if (id == R.id.chat) {
+ goToChatList();
+ }
else if (id == R.id.conference) {
enterConference();
hideOrDisplayCallOptions();
@@ -653,7 +659,7 @@ public class CallActivity extends Activity implements OnClickListener {
}
private void enabledConferenceButton(boolean enabled){
- if(enabled) {
+ if (enabled) {
conference.setEnabled(true);
conference.setImageAlpha(250);
} else {
@@ -1236,6 +1242,13 @@ public class CallActivity extends Activity implements OnClickListener {
finish();
}
+ private void goToChatList() {
+ Intent intent = new Intent();
+ intent.putExtra("chat", true);
+ setResult(Activity.RESULT_FIRST_USER, intent);
+ finish();
+ }
+
public void acceptCallUpdate(boolean accept) {
if (timer != null) {
timer.cancel();
@@ -1450,7 +1463,6 @@ public class CallActivity extends Activity implements OnClickListener {
//CALL INFORMATION
-
private void displayCurrentCall(LinphoneCall call){
//if(!isVideoEnabled(call)){
// mActiveCallHeader.setVisibility(View.VISIBLE);
@@ -1527,14 +1539,6 @@ public class CallActivity extends Activity implements OnClickListener {
return isCallPaused || isInConference;
}
- private void displayOrHideContactPicture(LinearLayout callView, Uri pictureUri, Uri thumbnailUri, boolean hide) {
- /*ImageView contactPicture = (ImageView) callView.findViewById(R.id.contactPicture);
- if (pictureUri != null) {
-
- }
- callView.setVisibility(hide ? View.GONE : View.VISIBLE);*/
- }
-
private void registerCallDurationTimer(View v, LinphoneCall call) {
int callDuration = call.getDuration();
if (callDuration == 0 && call.getState() != State.StreamsRunning) {
diff --git a/src/org/linphone/ChatListFragment.java b/src/org/linphone/ChatListFragment.java
index d3349c770..0efec2d03 100644
--- a/src/org/linphone/ChatListFragment.java
+++ b/src/org/linphone/ChatListFragment.java
@@ -69,7 +69,7 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
private List mConversations, mDrafts;
private ListView chatList;
private TextView noChatHistory;
- private ImageView edit, selectAll, deselectAll, delete, newDiscussion, contactPicture, cancel;
+ private ImageView edit, selectAll, deselectAll, delete, newDiscussion, contactPicture, cancel, backInCall;
private RelativeLayout editList, topbar;
private boolean isEditMode = false;
@@ -103,6 +103,9 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
deselectAll = (ImageView) view.findViewById(R.id.deselect_all);
deselectAll.setOnClickListener(this);
+ backInCall = (ImageView) view.findViewById(R.id.back_in_call);
+ backInCall.setOnClickListener(this);
+
delete = (ImageView) view.findViewById(R.id.delete);
delete.setOnClickListener(this);
return view;
@@ -195,6 +198,12 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
public void onResume() {
super.onResume();
+ if (LinphoneManager.getLc().getCallsNb() > 0) {
+ backInCall.setVisibility(View.VISIBLE);
+ } else {
+ backInCall.setVisibility(View.GONE);
+ }
+
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LinphoneActivity.instance());
boolean updateNeeded = prefs.getBoolean(getString(R.string.pref_first_time_linphone_chat_storage), true);
updateNeeded = updateNeeded && !isVersionUsingNewChatStorage();
@@ -265,6 +274,11 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
public void onClick(View v) {
int id = v.getId();
+ if (id == R.id.back_in_call) {
+ LinphoneActivity.instance().resetClassicMenuLayoutAndGoBackToCallIfStillRunning();
+ return;
+ }
+
if (id == R.id.select_all) {
deselectAll.setVisibility(View.VISIBLE);
selectAll.setVisibility(View.GONE);
diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java
index 2beb09e05..d72d3de39 100644
--- a/src/org/linphone/LinphoneActivity.java
+++ b/src/org/linphone/LinphoneActivity.java
@@ -603,6 +603,11 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta
preferLinphoneContacts = false;
}
+ public void displayChatList() {
+ Bundle extras = new Bundle();
+ changeCurrentFragment(FragmentsAvailable.CHATLIST, extras);
+ }
+
public void displayContactsForEdition(String sipAddress) {
Bundle extras = new Bundle();
extras.putBoolean("EditOnClick", true);
@@ -881,6 +886,8 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta
}
}
+
+
public void displayCustomToast(final String message, final int duration) {
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast, (ViewGroup) findViewById(R.id.toastRoot));
@@ -1087,6 +1094,10 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta
} else if (resultCode == Activity.RESULT_FIRST_USER && requestCode == CALL_ACTIVITY) {
getIntent().putExtra("PreviousActivity", CALL_ACTIVITY);
boolean callTransfer = data == null ? false : data.getBooleanExtra("Transfer", false);
+ boolean chat = data == null ? false : data.getBooleanExtra("chat", false);
+ if(chat){
+ displayChatList();
+ }
if (LinphoneManager.getLc().getCallsNb() > 0) {
initInCallMenuLayout(callTransfer);
} else {