73 import android.os.IBinder; |
73 import android.os.IBinder; |
74 import android.os.RemoteException; |
74 import android.os.RemoteException; |
75 import android.preference.PreferenceManager; |
75 import android.preference.PreferenceManager; |
76 import android.text.util.Linkify; |
76 import android.text.util.Linkify; |
77 import android.util.Log; |
77 import android.util.Log; |
|
78 import android.view.inputmethod.EditorInfo; |
78 import android.view.KeyEvent; |
79 import android.view.KeyEvent; |
79 import android.view.LayoutInflater; |
80 import android.view.LayoutInflater; |
80 import android.view.Menu; |
81 import android.view.Menu; |
81 import android.view.MenuInflater; |
82 import android.view.MenuInflater; |
82 import android.view.MenuItem; |
83 import android.view.MenuItem; |
83 import android.view.View; |
84 import android.view.View; |
84 import android.view.ViewGroup; |
85 import android.view.ViewGroup; |
85 import android.view.View.OnClickListener; |
86 import android.view.View.OnClickListener; |
86 import android.view.View.OnKeyListener; |
|
87 import android.widget.BaseAdapter; |
87 import android.widget.BaseAdapter; |
88 import android.widget.Button; |
88 import android.widget.Button; |
89 import android.widget.EditText; |
89 import android.widget.EditText; |
90 import android.widget.ImageView; |
90 import android.widget.ImageView; |
91 import android.widget.ListView; |
91 import android.widget.ListView; |
92 import android.widget.TextView; |
92 import android.widget.TextView; |
93 |
93 |
94 import com.beem.project.beem.R; |
94 import com.beem.project.beem.R; |
|
95 import com.beem.project.beem.BeemApplication; |
95 import com.beem.project.beem.providers.AvatarProvider; |
96 import com.beem.project.beem.providers.AvatarProvider; |
96 import com.beem.project.beem.service.Contact; |
97 import com.beem.project.beem.service.Contact; |
97 import com.beem.project.beem.service.Message; |
98 import com.beem.project.beem.service.Message; |
98 import com.beem.project.beem.service.PresenceAdapter; |
99 import com.beem.project.beem.service.PresenceAdapter; |
99 import com.beem.project.beem.service.aidl.IBeemRosterListener; |
100 import com.beem.project.beem.service.aidl.IBeemRosterListener; |
110 |
111 |
111 /** |
112 /** |
112 * This class represents an activity which allows the user to chat with his/her contacts. |
113 * This class represents an activity which allows the user to chat with his/her contacts. |
113 * @author Jean-Manuel Da Silva <dasilvj at beem-project dot com> |
114 * @author Jean-Manuel Da Silva <dasilvj at beem-project dot com> |
114 */ |
115 */ |
115 public class Chat extends Activity implements OnKeyListener { |
116 public class Chat extends Activity implements TextView.OnEditorActionListener { |
116 |
117 |
117 private static final String TAG = "Chat"; |
118 private static final String TAG = "Chat"; |
118 private static final Intent SERVICE_INTENT = new Intent(); |
119 private static final Intent SERVICE_INTENT = new Intent(); |
119 static { |
120 static { |
120 SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService")); |
121 SERVICE_INTENT.setComponent(new ComponentName("com.beem.project.beem", "com.beem.project.beem.BeemService")); |
164 @Override |
165 @Override |
165 protected void onCreate(Bundle savedBundle) { |
166 protected void onCreate(Bundle savedBundle) { |
166 super.onCreate(savedBundle); |
167 super.onCreate(savedBundle); |
167 this.registerReceiver(mBroadcastReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED)); |
168 this.registerReceiver(mBroadcastReceiver, new IntentFilter(BeemBroadcastReceiver.BEEM_CONNECTION_CLOSED)); |
168 SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); |
169 SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(this); |
169 mCompact = settings.getBoolean("settings_chat_compact_key", false); |
170 mCompact = settings.getBoolean(BeemApplication.USE_COMPACT_CHAT_UI_KEY, false); |
170 // UI |
171 // UI |
171 if (!mCompact) { |
172 if (!mCompact) { |
172 setContentView(R.layout.chat); |
173 setContentView(R.layout.chat); |
173 mContactNameTextView = (TextView) findViewById(R.id.chat_contact_name); |
174 mContactNameTextView = (TextView) findViewById(R.id.chat_contact_name); |
174 mContactStatusMsgTextView = (TextView) findViewById(R.id.chat_contact_status_msg); |
175 mContactStatusMsgTextView = (TextView) findViewById(R.id.chat_contact_status_msg); |
181 setContentView(R.layout.chat_compact); |
182 setContentView(R.layout.chat_compact); |
182 } |
183 } |
183 mMessagesListView = (ListView) findViewById(R.id.chat_messages); |
184 mMessagesListView = (ListView) findViewById(R.id.chat_messages); |
184 mMessagesListView.setAdapter(mMessagesListAdapter); |
185 mMessagesListView.setAdapter(mMessagesListAdapter); |
185 mInputField = (EditText) findViewById(R.id.chat_input); |
186 mInputField = (EditText) findViewById(R.id.chat_input); |
186 mInputField.setOnKeyListener(this); |
187 mInputField.setOnEditorActionListener(this); |
187 mInputField.requestFocus(); |
188 mInputField.requestFocus(); |
188 mSendButton = (Button) findViewById(R.id.chat_send_message); |
189 mSendButton = (Button) findViewById(R.id.chat_send_message); |
189 mSendButton.setOnClickListener(new OnClickListener() { |
190 mSendButton.setOnClickListener(new OnClickListener() { |
190 @Override |
191 @Override |
191 public void onClick(View v) { |
192 public void onClick(View v) { |
874 * @param message A String containing the message. |
875 * @param message A String containing the message. |
875 * @param isError if the message is an error message. |
876 * @param isError if the message is an error message. |
876 * @param date the time of the message. |
877 * @param date the time of the message. |
877 */ |
878 */ |
878 public MessageText(final String bareJid, final String name, final String message, |
879 public MessageText(final String bareJid, final String name, final String message, |
879 final boolean isError, Date date) { |
880 final boolean isError, final Date date) { |
880 mBareJid = bareJid; |
881 mBareJid = bareJid; |
881 mName = name; |
882 mName = name; |
882 mMessage = message; |
883 mMessage = message; |
883 mIsError = isError; |
884 mIsError = isError; |
884 mTimestamp = date; |
885 mTimestamp = date; |