diff --git a/res/drawable-hdpi/chat_progressbar_background.jpg b/res/drawable-hdpi/chat_progressbar_background.jpg
deleted file mode 100644
index bddac059f..000000000
Binary files a/res/drawable-hdpi/chat_progressbar_background.jpg and /dev/null differ
diff --git a/res/layout/chatlist.xml b/res/layout/chatlist.xml
index 103f35762..c22c1fe38 100644
--- a/res/layout/chatlist.xml
+++ b/res/layout/chatlist.xml
@@ -43,6 +43,14 @@
+
+
Numéro ou adresse
Conférence
+ Entrez une adresse SIP avec qui discuter…
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 682a63cf8..369ac497e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -251,6 +251,7 @@
Number or address
Conference
+ Enter a SIP address to chat with…
Add to contacts button
diff --git a/src/org/linphone/ChatListFragment.java b/src/org/linphone/ChatListFragment.java
index b8da09b73..6c74c245e 100644
--- a/src/org/linphone/ChatListFragment.java
+++ b/src/org/linphone/ChatListFragment.java
@@ -24,6 +24,8 @@ import org.linphone.core.LinphoneCoreFactory;
import android.os.Bundle;
import android.support.v4.app.Fragment;
+import android.text.Editable;
+import android.text.TextWatcher;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
@@ -35,6 +37,7 @@ import android.widget.AdapterView;
import android.widget.AdapterView.AdapterContextMenuInfo;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
+import android.widget.EditText;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
@@ -46,7 +49,8 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
private LayoutInflater mInflater;
private List mConversations;
private ListView chatList;
- private ImageView edit, ok, newDiscussion;
+ private ImageView edit, ok, newDiscussion, isFastNewChatAddressOk;
+ private EditText fastNewChat;
private boolean isEditMode = false;
@Override
@@ -66,6 +70,7 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
ok = (ImageView) view.findViewById(R.id.ok);
ok.setOnClickListener(this);
+ fastNewChat = (EditText) view.findViewById(R.id.newFastChat);
return view;
}
@@ -117,7 +122,18 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
chatList.setAdapter(new ChatListAdapter());
}
else if (id == R.id.newDiscussion) {
- LinphoneActivity.instance().displayContacts();
+ String sipUri = fastNewChat.getText().toString();
+ if (sipUri.equals("")) {
+ LinphoneActivity.instance().displayContacts();
+ } else {
+ if (!LinphoneUtils.isSipAddress(sipUri)) {
+ sipUri = sipUri + "@" + LinphoneManager.getLc().getDefaultProxyConfig().getDomain();
+ }
+ if (!LinphoneUtils.isStrictSipAddress(sipUri)) {
+ sipUri = "sip:" + sipUri;
+ }
+ LinphoneActivity.instance().displayChat(sipUri);
+ }
}
}
diff --git a/src/org/linphone/ChatStorage.java b/src/org/linphone/ChatStorage.java
index 5c7855381..7aed175e6 100644
--- a/src/org/linphone/ChatStorage.java
+++ b/src/org/linphone/ChatStorage.java
@@ -116,16 +116,20 @@ public class ChatStorage {
Cursor c = db.query(TABLE_NAME, null, "remoteContact LIKE \"" + correspondent + "\"", null, null, null, "id ASC");
while (c.moveToNext()) {
- String message, timestamp;
- int id = c.getInt(c.getColumnIndex("id"));
- int direction = c.getInt(c.getColumnIndex("direction"));
- message = c.getString(c.getColumnIndex("message"));
- timestamp = c.getString(c.getColumnIndex("time"));
- int status = c.getInt(c.getColumnIndex("status"));
- byte[] rawImage = c.getBlob(c.getColumnIndex("image"));
-
- ChatMessage chatMessage = new ChatMessage(id, message, rawImage, timestamp, direction == INCOMING, status);
- chatMessages.add(chatMessage);
+ try {
+ String message, timestamp;
+ int id = c.getInt(c.getColumnIndex("id"));
+ int direction = c.getInt(c.getColumnIndex("direction"));
+ message = c.getString(c.getColumnIndex("message"));
+ timestamp = c.getString(c.getColumnIndex("time"));
+ int status = c.getInt(c.getColumnIndex("status"));
+ byte[] rawImage = c.getBlob(c.getColumnIndex("image"));
+
+ ChatMessage chatMessage = new ChatMessage(id, message, rawImage, timestamp, direction == INCOMING, status);
+ chatMessages.add(chatMessage);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
c.close();