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 @@
-
@@ -12,6 +11,7 @@
+
@@ -19,5 +19,4 @@
-
-
+
\ 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 @@
-
+
+
@@ -15,5 +16,4 @@
-
-
+
\ 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 @@
-
-
-
+
+
+
+ generateDebugAndroidTestSources
+ generateDebugSources
+
@@ -23,9 +26,9 @@
-
+
-
+
@@ -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