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();