diff --git a/.idea/.name b/.idea/.name index d49b424..97b3d1a 100644 --- a/.idea/.name +++ b/.idea/.name @@ -1 +1 @@ -Chat Bubbles Demo \ No newline at end of file +whatsapp-android \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml index 217af47..96cc43e 100644 --- a/.idea/compiler.xml +++ b/.idea/compiler.xml @@ -1,7 +1,6 @@ - - - + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml deleted file mode 100644 index e206d70..0000000 --- a/.idea/encodings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/.idea/gradle.xml b/.idea/gradle.xml index fe865d3..bd4202c 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,8 @@ - - + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 59436c9..4f1b27e 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -3,8 +3,66 @@ - + + + + + + + + + + + + + Java + + + Resource management issuesJava + + + + + Android + + + + + + + + + + + + + + + + - - + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 79707d2..9c7d0bb 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -2,9 +2,8 @@ - + - - + \ No newline at end of file diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml deleted file mode 100644 index 922003b..0000000 --- a/.idea/scopes/scope_settings.xml +++ /dev/null @@ -1,5 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 9d32e50..6564d52 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,7 +2,5 @@ - - - + \ No newline at end of file diff --git a/README.md b/README.md index 5bae90d..2f1fc17 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,8 @@ -##Android Chat Starter +##Disclaimer + +This Open Source project is in no way related to Whatsapp or Facebook, it's just a sample application for chats based on an universally recognized interface for faster understending of its functionalities. + +##Android Chat Starter (Original description) A sample Android App which can be used as a starter application for a chat application. @@ -9,5 +13,5 @@ A sample Android App which can be used as a starter application for a chat appli ###Screenshots - - + + \ No newline at end of file diff --git a/app/app.iml b/app/app.iml index 31c177a..456ace0 100644 --- a/app/app.iml +++ b/app/app.iml @@ -1,5 +1,5 @@ - + @@ -12,9 +12,12 @@ - + - + @@ -34,12 +37,12 @@ - - - - - - + + + + + + @@ -67,6 +70,8 @@ + + @@ -85,8 +90,7 @@ - + - - + \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c7e2c5d..f7b036e 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,12 +9,11 @@ android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > - + android:label="@string/app_name"> - diff --git a/app/src/main/java/in/co/madhur/chatbubblesdemo/ChatListAdapter.java b/app/src/main/java/in/co/madhur/chatbubblesdemo/ChatListAdapter.java index 50d41a2..354a37c 100644 --- a/app/src/main/java/in/co/madhur/chatbubblesdemo/ChatListAdapter.java +++ b/app/src/main/java/in/co/madhur/chatbubblesdemo/ChatListAdapter.java @@ -1,6 +1,7 @@ package in.co.madhur.chatbubblesdemo; import android.content.Context; +import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -10,20 +11,18 @@ import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Locale; import in.co.madhur.chatbubblesdemo.model.ChatMessage; import in.co.madhur.chatbubblesdemo.model.Status; import in.co.madhur.chatbubblesdemo.model.UserType; import in.co.madhur.chatbubblesdemo.widgets.Emoji; -/** - * Created by madhur on 17/01/15. - */ public class ChatListAdapter extends BaseAdapter { private ArrayList chatMessages; private Context context; - public static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("HH:mm"); + public static final SimpleDateFormat SIMPLE_DATE_FORMAT = new SimpleDateFormat("h:mm a", Locale.US); public ChatListAdapter(ArrayList chatMessages, Context context) { this.chatMessages = chatMessages; @@ -60,8 +59,8 @@ public View getView(int position, View convertView, ViewGroup parent) { holder1 = new ViewHolder1(); - holder1.messageTextView = (TextView) v.findViewById(R.id.message_text); - holder1.timeTextView = (TextView) v.findViewById(R.id.time_text); + holder1.messageTextView = (TextView) v.findViewById(R.id.textview_message); + holder1.timeTextView = (TextView) v.findViewById(R.id.textview_time); v.setTag(holder1); } else { @@ -70,7 +69,9 @@ public View getView(int position, View convertView, ViewGroup parent) { } - holder1.messageTextView.setText(Emoji.replaceEmoji(message.getMessageText(), holder1.messageTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(16))); + holder1.messageTextView.setText(Html.fromHtml(Emoji.replaceEmoji(message.getMessageText(), + holder1.messageTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(16)) + + "             ")); holder1.timeTextView.setText(SIMPLE_DATE_FORMAT.format(message.getMessageTime())); } else if (message.getUserType() == UserType.OTHER) { @@ -81,8 +82,8 @@ public View getView(int position, View convertView, ViewGroup parent) { holder2 = new ViewHolder2(); - holder2.messageTextView = (TextView) v.findViewById(R.id.message_text); - holder2.timeTextView = (TextView) v.findViewById(R.id.time_text); + holder2.messageTextView = (TextView) v.findViewById(R.id.textview_message); + holder2.timeTextView = (TextView) v.findViewById(R.id.textview_time); holder2.messageStatus = (ImageView) v.findViewById(R.id.user_reply_status); v.setTag(holder2); @@ -92,14 +93,17 @@ public View getView(int position, View convertView, ViewGroup parent) { } - holder2.messageTextView.setText(Emoji.replaceEmoji(message.getMessageText(), holder2.messageTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(16) )); + holder2.messageTextView.setText(Html.fromHtml(Emoji.replaceEmoji(message.getMessageText(), + holder2.messageTextView.getPaint().getFontMetricsInt(), AndroidUtilities.dp(16)) + + "             " + + "       ")); //holder2.messageTextView.setText(message.getMessageText()); holder2.timeTextView.setText(SIMPLE_DATE_FORMAT.format(message.getMessageTime())); if (message.getMessageStatus() == Status.DELIVERED) { - holder2.messageStatus.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_double_tick)); + holder2.messageStatus.setImageDrawable(context.getResources().getDrawable(R.drawable.message_got_receipt_from_target)); } else if (message.getMessageStatus() == Status.SENT) { - holder2.messageStatus.setImageDrawable(context.getResources().getDrawable(R.drawable.ic_single_tick)); + holder2.messageStatus.setImageDrawable(context.getResources().getDrawable(R.drawable.message_got_receipt_from_server)); } diff --git a/app/src/main/java/in/co/madhur/chatbubblesdemo/MainActivity.java b/app/src/main/java/in/co/madhur/chatbubblesdemo/MainActivity.java index ba5c895..0e03c25 100644 --- a/app/src/main/java/in/co/madhur/chatbubblesdemo/MainActivity.java +++ b/app/src/main/java/in/co/madhur/chatbubblesdemo/MainActivity.java @@ -31,14 +31,14 @@ import in.co.madhur.chatbubblesdemo.widgets.SizeNotifierRelativeLayout; -public class MainActivity extends ActionBarActivity implements SizeNotifierRelativeLayout.SizeNotifierRelativeLayoutDelegate, NotificationCenter.NotificationCenterDelegate { +public class MainActivity extends ActionBarActivity implements NotificationCenter.NotificationCenterDelegate { private ListView chatListView; private EditText chatEditText1; private ArrayList chatMessages; private ImageView enterChatView1, emojiButton; - private ChatListAdapter listAdapter; private EmojiView emojiView; + private ChatListAdapter listAdapter; private SizeNotifierRelativeLayout sizeNotifierRelativeLayout; private boolean showingEmoji; private int keyboardHeight; @@ -95,7 +95,7 @@ public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { if (chatEditText1.getText().toString().equals("")) { } else { - enterChatView1.setImageResource(R.drawable.ic_chat_send); + enterChatView1.setImageResource(R.drawable.input_send); } } @@ -103,9 +103,9 @@ public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) { @Override public void afterTextChanged(Editable editable) { if(editable.length()==0){ - enterChatView1.setImageResource(R.drawable.ic_chat_send); + enterChatView1.setImageResource(R.drawable.input_send); }else{ - enterChatView1.setImageResource(R.drawable.ic_chat_send_active); + enterChatView1.setImageResource(R.drawable.input_send); } } }; @@ -118,6 +118,8 @@ protected void onCreate(Bundle savedInstanceState) { AndroidUtilities.statusBarHeight = getStatusBarHeight(); + getWindow().setBackgroundDrawable(getResources().getDrawable(R.drawable.background)); + chatMessages = new ArrayList<>(); chatListView = (ListView) findViewById(R.id.chat_list_view); @@ -154,8 +156,8 @@ public void onClick(View v) { chatEditText1.addTextChangedListener(watcher1); - sizeNotifierRelativeLayout = (SizeNotifierRelativeLayout) findViewById(R.id.chat_layout); - sizeNotifierRelativeLayout.delegate = this; + //sizeNotifierRelativeLayout = (SizeNotifierRelativeLayout) findViewById(R.id.chat_layout); + //sizeNotifierRelativeLayout.delegate = this; NotificationCenter.getInstance().addObserver(this, NotificationCenter.emojiDidLoaded); } @@ -179,14 +181,14 @@ private void sendMessage(final String messageText, final UserType userType) final ScheduledExecutorService exec = Executors.newScheduledThreadPool(1); - exec.schedule(new Runnable(){ + exec.schedule(new Runnable() { @Override - public void run(){ - message.setMessageStatus(Status.DELIVERED); + public void run() { + message.setMessageStatus(Status.DELIVERED); final ChatMessage message = new ChatMessage(); message.setMessageStatus(Status.SENT); - message.setMessageText(messageText); + message.setMessageText(messageText); // 10 spaces; message.setUserType(UserType.SELF); message.setMessageTime(new Date().getTime()); chatMessages.add(message); @@ -208,6 +210,58 @@ private Activity getActivity() return this; } + //@Override + public void onSizeChanged(int height) { + + Rect localRect = new Rect(); + getActivity().getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect); + + WindowManager wm = (WindowManager) App.getInstance().getSystemService(Activity.WINDOW_SERVICE); + if (wm == null || wm.getDefaultDisplay() == null) { + return; + } + + + if (height > AndroidUtilities.dp(50) && keyboardVisible) { + keyboardHeight = height; + App.getInstance().getSharedPreferences("emoji", 0).edit().putInt("kbd_height", keyboardHeight).commit(); + } + + + if (showingEmoji) { + int newHeight = 0; + + newHeight = keyboardHeight; + + if (windowLayoutParams.width != AndroidUtilities.displaySize.x || windowLayoutParams.height != newHeight) { + windowLayoutParams.width = AndroidUtilities.displaySize.x; + windowLayoutParams.height = newHeight; + + wm.updateViewLayout(emojiView, windowLayoutParams); + if (!keyboardVisible) { + sizeNotifierRelativeLayout.post(new Runnable() { + @Override + public void run() { + if (sizeNotifierRelativeLayout != null) { + sizeNotifierRelativeLayout.setPadding(0, 0, 0, windowLayoutParams.height); + sizeNotifierRelativeLayout.requestLayout(); + } + } + }); + } + } + } + + + boolean oldValue = keyboardVisible; + keyboardVisible = height > 0; + if (keyboardVisible && sizeNotifierRelativeLayout.getPaddingBottom() > 0) { + showEmojiPopup(false); + } else if (!keyboardVisible && keyboardVisible != oldValue && showingEmoji) { + showEmojiPopup(false); + } + + } /** * Show or hide the emoji popup @@ -309,6 +363,32 @@ public void run() { } + @Override + public void onDestroy() { + super.onDestroy(); + + NotificationCenter.getInstance().removeObserver(this, NotificationCenter.emojiDidLoaded); + } + + /** + * Get the system status bar height + * @return + */ + public int getStatusBarHeight() { + int result = 0; + int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); + if (resourceId > 0) { + result = getResources().getDimensionPixelSize(resourceId); + } + return result; + } + + @Override + protected void onPause() { + super.onPause(); + + hideEmojiPopup(); + } /** * Remove emoji window @@ -347,8 +427,6 @@ public boolean isEmojiPopupShowing() { return showingEmoji; } - - /** * Updates emoji views when they are complete loading * @@ -368,83 +446,4 @@ public void didReceivedNotification(int id, Object... args) { } } - @Override - public void onSizeChanged(int height) { - - Rect localRect = new Rect(); - getActivity().getWindow().getDecorView().getWindowVisibleDisplayFrame(localRect); - - WindowManager wm = (WindowManager) App.getInstance().getSystemService(Activity.WINDOW_SERVICE); - if (wm == null || wm.getDefaultDisplay() == null) { - return; - } - - - if (height > AndroidUtilities.dp(50) && keyboardVisible) { - keyboardHeight = height; - App.getInstance().getSharedPreferences("emoji", 0).edit().putInt("kbd_height", keyboardHeight).commit(); - } - - - if (showingEmoji) { - int newHeight = 0; - - newHeight = keyboardHeight; - - if (windowLayoutParams.width != AndroidUtilities.displaySize.x || windowLayoutParams.height != newHeight) { - windowLayoutParams.width = AndroidUtilities.displaySize.x; - windowLayoutParams.height = newHeight; - - wm.updateViewLayout(emojiView, windowLayoutParams); - if (!keyboardVisible) { - sizeNotifierRelativeLayout.post(new Runnable() { - @Override - public void run() { - if (sizeNotifierRelativeLayout != null) { - sizeNotifierRelativeLayout.setPadding(0, 0, 0, windowLayoutParams.height); - sizeNotifierRelativeLayout.requestLayout(); - } - } - }); - } - } - } - - - boolean oldValue = keyboardVisible; - keyboardVisible = height > 0; - if (keyboardVisible && sizeNotifierRelativeLayout.getPaddingBottom() > 0) { - showEmojiPopup(false); - } else if (!keyboardVisible && keyboardVisible != oldValue && showingEmoji) { - showEmojiPopup(false); - } - - } - - @Override - public void onDestroy() { - super.onDestroy(); - - NotificationCenter.getInstance().removeObserver(this, NotificationCenter.emojiDidLoaded); - } - - /** - * Get the system status bar height - * @return - */ - public int getStatusBarHeight() { - int result = 0; - int resourceId = getResources().getIdentifier("status_bar_height", "dimen", "android"); - if (resourceId > 0) { - result = getResources().getDimensionPixelSize(resourceId); - } - return result; - } - - @Override - protected void onPause() { - super.onPause(); - - hideEmojiPopup(); - } } diff --git a/app/src/main/res/drawable-hdpi/background.jpg b/app/src/main/res/drawable-hdpi/background.jpg new file mode 100644 index 0000000..4c140ba Binary files /dev/null and b/app/src/main/res/drawable-hdpi/background.jpg differ diff --git a/app/src/main/res/drawable-hdpi/balloon_incoming_normal.9.png b/app/src/main/res/drawable-hdpi/balloon_incoming_normal.9.png old mode 100755 new mode 100644 index b21152e..ed45372 Binary files a/app/src/main/res/drawable-hdpi/balloon_incoming_normal.9.png and b/app/src/main/res/drawable-hdpi/balloon_incoming_normal.9.png differ diff --git a/app/src/main/res/drawable-hdpi/balloon_outgoing_normal.9.png b/app/src/main/res/drawable-hdpi/balloon_outgoing_normal.9.png old mode 100755 new mode 100644 index 1e80e40..70bdeee Binary files a/app/src/main/res/drawable-hdpi/balloon_outgoing_normal.9.png and b/app/src/main/res/drawable-hdpi/balloon_outgoing_normal.9.png differ diff --git a/app/src/main/res/drawable-hdpi/ic_chat_send.png b/app/src/main/res/drawable-hdpi/ic_chat_send.png deleted file mode 100755 index 0ec8276..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_chat_send.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_chat_send_active.png b/app/src/main/res/drawable-hdpi/ic_chat_send_active.png deleted file mode 100644 index 5777f31..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_chat_send_active.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_double_tick.png b/app/src/main/res/drawable-hdpi/ic_double_tick.png deleted file mode 100755 index 9aafdb5..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_double_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_single_tick.png b/app/src/main/res/drawable-hdpi/ic_single_tick.png deleted file mode 100755 index b8aedcc..0000000 Binary files a/app/src/main/res/drawable-hdpi/ic_single_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/input.9.png b/app/src/main/res/drawable-hdpi/input.9.png new file mode 100644 index 0000000..fcf0a77 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/input.9.png differ diff --git a/app/src/main/res/drawable-hdpi/input_circle_normal.png b/app/src/main/res/drawable-hdpi/input_circle_normal.png new file mode 100644 index 0000000..f39c0b3 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/input_circle_normal.png differ diff --git a/app/src/main/res/drawable-hdpi/input_emoji.png b/app/src/main/res/drawable-hdpi/input_emoji.png new file mode 100644 index 0000000..b07213f Binary files /dev/null and b/app/src/main/res/drawable-hdpi/input_emoji.png differ diff --git a/app/src/main/res/drawable-hdpi/input_send.png b/app/src/main/res/drawable-hdpi/input_send.png new file mode 100644 index 0000000..6f2f339 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/input_send.png differ diff --git a/app/src/main/res/drawable-hdpi/message_got_read_receipt_from_target.png b/app/src/main/res/drawable-hdpi/message_got_read_receipt_from_target.png new file mode 100644 index 0000000..1f62332 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/message_got_read_receipt_from_target.png differ diff --git a/app/src/main/res/drawable-hdpi/message_got_read_receipt_from_target_onmedia.png b/app/src/main/res/drawable-hdpi/message_got_read_receipt_from_target_onmedia.png new file mode 100644 index 0000000..cb34884 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/message_got_read_receipt_from_target_onmedia.png differ diff --git a/app/src/main/res/drawable-hdpi/message_got_receipt_from_server.png b/app/src/main/res/drawable-hdpi/message_got_receipt_from_server.png new file mode 100644 index 0000000..7aea9f9 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/message_got_receipt_from_server.png differ diff --git a/app/src/main/res/drawable-hdpi/message_got_receipt_from_server_onmedia.png b/app/src/main/res/drawable-hdpi/message_got_receipt_from_server_onmedia.png new file mode 100644 index 0000000..e43ca4d Binary files /dev/null and b/app/src/main/res/drawable-hdpi/message_got_receipt_from_server_onmedia.png differ diff --git a/app/src/main/res/drawable-hdpi/message_got_receipt_from_target.png b/app/src/main/res/drawable-hdpi/message_got_receipt_from_target.png new file mode 100644 index 0000000..7dda025 Binary files /dev/null and b/app/src/main/res/drawable-hdpi/message_got_receipt_from_target.png differ diff --git a/app/src/main/res/drawable-hdpi/message_got_receipt_from_target_onmedia.png b/app/src/main/res/drawable-hdpi/message_got_receipt_from_target_onmedia.png new file mode 100644 index 0000000..f74de8c Binary files /dev/null and b/app/src/main/res/drawable-hdpi/message_got_receipt_from_target_onmedia.png differ diff --git a/app/src/main/res/drawable-mdpi/balloon_incoming_normal.9.png b/app/src/main/res/drawable-mdpi/balloon_incoming_normal.9.png old mode 100755 new mode 100644 index b7eca88..ba79c0a Binary files a/app/src/main/res/drawable-mdpi/balloon_incoming_normal.9.png and b/app/src/main/res/drawable-mdpi/balloon_incoming_normal.9.png differ diff --git a/app/src/main/res/drawable-mdpi/balloon_outgoing_normal.9.png b/app/src/main/res/drawable-mdpi/balloon_outgoing_normal.9.png old mode 100755 new mode 100644 index fd5f02d..c893525 Binary files a/app/src/main/res/drawable-mdpi/balloon_outgoing_normal.9.png and b/app/src/main/res/drawable-mdpi/balloon_outgoing_normal.9.png differ diff --git a/app/src/main/res/drawable-mdpi/ic_chat_send.png b/app/src/main/res/drawable-mdpi/ic_chat_send.png deleted file mode 100755 index f4c2973..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_chat_send.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_chat_send_active.png b/app/src/main/res/drawable-mdpi/ic_chat_send_active.png deleted file mode 100644 index 316be21..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_chat_send_active.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_double_tick.png b/app/src/main/res/drawable-mdpi/ic_double_tick.png deleted file mode 100755 index 3e9d341..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_double_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_single_tick.png b/app/src/main/res/drawable-mdpi/ic_single_tick.png deleted file mode 100755 index caba283..0000000 Binary files a/app/src/main/res/drawable-mdpi/ic_single_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/balloon_incoming_normal.9.png b/app/src/main/res/drawable-xhdpi/balloon_incoming_normal.9.png old mode 100755 new mode 100644 index c457224..cc4545d Binary files a/app/src/main/res/drawable-xhdpi/balloon_incoming_normal.9.png and b/app/src/main/res/drawable-xhdpi/balloon_incoming_normal.9.png differ diff --git a/app/src/main/res/drawable-xhdpi/balloon_outgoing_normal.9.png b/app/src/main/res/drawable-xhdpi/balloon_outgoing_normal.9.png old mode 100755 new mode 100644 index c636530..0eebab5 Binary files a/app/src/main/res/drawable-xhdpi/balloon_outgoing_normal.9.png and b/app/src/main/res/drawable-xhdpi/balloon_outgoing_normal.9.png differ diff --git a/app/src/main/res/drawable-xhdpi/default_wallpaper.jpg b/app/src/main/res/drawable-xhdpi/default_wallpaper.jpg new file mode 100644 index 0000000..5e76fc1 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/default_wallpaper.jpg differ diff --git a/app/src/main/res/drawable-xhdpi/ic_chat_send.png b/app/src/main/res/drawable-xhdpi/ic_chat_send.png deleted file mode 100755 index f06caa7..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_chat_send.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_chat_send_active.png b/app/src/main/res/drawable-xhdpi/ic_chat_send_active.png deleted file mode 100644 index a201224..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_chat_send_active.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_double_tick.png b/app/src/main/res/drawable-xhdpi/ic_double_tick.png deleted file mode 100755 index 7788714..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_double_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_single_tick.png b/app/src/main/res/drawable-xhdpi/ic_single_tick.png deleted file mode 100755 index f6fcb12..0000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_single_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/input_emoji.png b/app/src/main/res/drawable-xhdpi/input_emoji.png new file mode 100644 index 0000000..a4e3c08 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/input_emoji.png differ diff --git a/app/src/main/res/drawable-xhdpi/message_got_read_receipt_from_target.png b/app/src/main/res/drawable-xhdpi/message_got_read_receipt_from_target.png new file mode 100644 index 0000000..9d182f2 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/message_got_read_receipt_from_target.png differ diff --git a/app/src/main/res/drawable-xhdpi/message_got_read_receipt_from_target_onmedia.png b/app/src/main/res/drawable-xhdpi/message_got_read_receipt_from_target_onmedia.png new file mode 100644 index 0000000..8b88ce5 Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/message_got_read_receipt_from_target_onmedia.png differ diff --git a/app/src/main/res/drawable-xhdpi/message_got_receipt_from_server.png b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_server.png new file mode 100644 index 0000000..5d9afab Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_server.png differ diff --git a/app/src/main/res/drawable-xhdpi/message_got_receipt_from_server_onmedia.png b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_server_onmedia.png new file mode 100644 index 0000000..fb4013d Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_server_onmedia.png differ diff --git a/app/src/main/res/drawable-xhdpi/message_got_receipt_from_target.png b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_target.png new file mode 100644 index 0000000..a9795fa Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_target.png differ diff --git a/app/src/main/res/drawable-xhdpi/message_got_receipt_from_target_onmedia.png b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_target_onmedia.png new file mode 100644 index 0000000..6e6da5b Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/message_got_receipt_from_target_onmedia.png differ diff --git a/app/src/main/res/drawable-xxhdpi/background.jpg b/app/src/main/res/drawable-xxhdpi/background.jpg new file mode 100644 index 0000000..5e76fc1 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/background.jpg differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_chat_send.png b/app/src/main/res/drawable-xxhdpi/ic_chat_send.png deleted file mode 100755 index fb8fa3c..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_chat_send.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_chat_send_active.png b/app/src/main/res/drawable-xxhdpi/ic_chat_send_active.png deleted file mode 100644 index b2beef4..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_chat_send_active.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_double_tick.png b/app/src/main/res/drawable-xxhdpi/ic_double_tick.png deleted file mode 100755 index d559e43..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_double_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_single_tick.png b/app/src/main/res/drawable-xxhdpi/ic_single_tick.png deleted file mode 100755 index c5611e1..0000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_single_tick.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/input.9.png b/app/src/main/res/drawable-xxhdpi/input.9.png new file mode 100644 index 0000000..4514e7b Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/input.9.png differ diff --git a/app/src/main/res/drawable-xxhdpi/input_circle_normal.png b/app/src/main/res/drawable-xxhdpi/input_circle_normal.png new file mode 100644 index 0000000..ca09d54 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/input_circle_normal.png differ diff --git a/app/src/main/res/drawable-xxhdpi/input_emoji.png b/app/src/main/res/drawable-xxhdpi/input_emoji.png new file mode 100644 index 0000000..fc6334e Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/input_emoji.png differ diff --git a/app/src/main/res/drawable-xxhdpi/input_send.png b/app/src/main/res/drawable-xxhdpi/input_send.png new file mode 100644 index 0000000..925d968 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/input_send.png differ diff --git a/app/src/main/res/drawable-xxhdpi/message_got_read_receipt_from_target.png b/app/src/main/res/drawable-xxhdpi/message_got_read_receipt_from_target.png new file mode 100644 index 0000000..ba3a6b6 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/message_got_read_receipt_from_target.png differ diff --git a/app/src/main/res/drawable-xxhdpi/message_got_read_receipt_from_target_onmedia.png b/app/src/main/res/drawable-xxhdpi/message_got_read_receipt_from_target_onmedia.png new file mode 100644 index 0000000..3677d66 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/message_got_read_receipt_from_target_onmedia.png differ diff --git a/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_server.png b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_server.png new file mode 100644 index 0000000..4d7eea4 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_server.png differ diff --git a/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_server_onmedia.png b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_server_onmedia.png new file mode 100644 index 0000000..9d5f45e Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_server_onmedia.png differ diff --git a/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_target.png b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_target.png new file mode 100644 index 0000000..dc6b1ad Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_target.png differ diff --git a/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_target_onmedia.png b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_target_onmedia.png new file mode 100644 index 0000000..ff06792 Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/message_got_receipt_from_target_onmedia.png differ diff --git a/app/src/main/res/drawable/background.jpg b/app/src/main/res/drawable/background.jpg deleted file mode 100755 index b49cbf7..0000000 Binary files a/app/src/main/res/drawable/background.jpg and /dev/null differ diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 1c91f3b..f9f7460 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -1,75 +1,79 @@ - + - + android:stackFromBottom="false" + android:transcriptMode="normal"/> + android:layout_marginRight="8dp" + android:layout_marginLeft="8dp" + android:layout_marginBottom="8dp"> - + - + - - - - + android:textColorHint="#c4c0bd" + android:background="@null"/> + + - + diff --git a/app/src/main/res/layout/chat_user1_item.xml b/app/src/main/res/layout/chat_user1_item.xml index 2ac7bb0..d216e2e 100644 --- a/app/src/main/res/layout/chat_user1_item.xml +++ b/app/src/main/res/layout/chat_user1_item.xml @@ -1,62 +1,36 @@ - - - - - - - - - - - - + + + + android:layout_gravity="bottom|right"/> + + - + \ No newline at end of file diff --git a/app/src/main/res/layout/chat_user2_item.xml b/app/src/main/res/layout/chat_user2_item.xml index c81aed4..67f3bb4 100644 --- a/app/src/main/res/layout/chat_user2_item.xml +++ b/app/src/main/res/layout/chat_user2_item.xml @@ -1,58 +1,52 @@ - - - - - - + + + + + android:orientation="horizontal" + android:layout_gravity="bottom|right" + android:paddingRight="5dp"> + + + + + + - - - + android:text="Rahul Agrawal is a good boy but he does not know what he wants." + style="@style/chat_text_message_style"/> + - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 45d0428..86e8adf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,7 +2,7 @@ Chat Starter - Enter msg + Type a message No recent diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 8607550..6e1af55 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -1,27 +1,28 @@ - - diff --git a/build.gradle b/build.gradle index 6356aab..9405f3f 100644 --- a/build.gradle +++ b/build.gradle @@ -5,7 +5,7 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:1.0.0' + classpath 'com.android.tools.build:gradle:1.2.3' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files diff --git a/whatsapp-android.iml b/whatsapp-android.iml new file mode 100644 index 0000000..a3ce164 --- /dev/null +++ b/whatsapp-android.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file