Skip to content

Commit 75ed107

Browse files
committed
Added libUI. Basic functions complete, will change thread to asynctask
1 parent cc18f93 commit 75ed107

File tree

5 files changed

+143
-91
lines changed

5 files changed

+143
-91
lines changed

app/src/main/java/com/example/chatfull/ChatActivity.java

Lines changed: 42 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -8,39 +8,55 @@
88

99
import androidx.appcompat.app.AppCompatActivity;
1010

11-
public class ChatActivity extends AppCompatActivity {
11+
import com.stfalcon.chatkit.messages.MessageInput;
12+
import com.stfalcon.chatkit.messages.MessagesList;
13+
import com.stfalcon.chatkit.messages.MessagesListAdapter;
14+
15+
import java.util.Calendar;
16+
17+
public class ChatActivity extends AppCompatActivity implements MessageInput.InputListener {
1218

13-
private TextView messageDisplay;
14-
private String clientMsg = null;
15-
private EditText msgInput;
1619
private User user;
1720
private SendMessage sender;
1821
private MessageReceiveServer messageReceiveServer;
1922

23+
MessagesList messagesList;
24+
MessageInput input;
25+
protected final String senderId = "1";
26+
private final User me = new User("1","Sowmen");
27+
MessagesListAdapter<Message> adapter;
28+
int cnt = 0;
29+
2030
@Override
2131
protected void onCreate(Bundle savedInstanceState) {
2232
super.onCreate(savedInstanceState);
23-
setContentView(R.layout.activity_chat);
33+
setContentView(R.layout.activity_message_list);
2434

2535
user = (User) getIntent().getSerializableExtra("user");
36+
user.setId("0");
37+
user.setName("ABAL");
2638

27-
messageDisplay = findViewById(R.id.messageDisplay);
28-
msgInput = findViewById(R.id.msgInput);
39+
messageReceiveServer = new MessageReceiveServer(ShowInfoActivity.getSelfIpAddress(), ShowInfoActivity.getSelfPort(),this);
2940

30-
messageDisplay.setText("Connected to: " + user.getIpAddress() + ":" + user.getPort() + "\n");
31-
messageDisplay.append("Self: " + ShowInfoActivity.getSelfIpAddress() + ":" + ShowInfoActivity.getSelfPort());
41+
this.messagesList = findViewById(R.id.messagesList);
42+
adapter = new MessagesListAdapter<>(senderId, null);
43+
messagesList.setAdapter(adapter);
3244

33-
messageReceiveServer = new MessageReceiveServer(ShowInfoActivity.getSelfIpAddress(), ShowInfoActivity.getSelfPort(),this);
45+
input = findViewById(R.id.input);
46+
input.setInputListener(this);
3447
}
3548

36-
public void OnMsgSendBtnClick(View view){
37-
clientMsg = msgInput.getText().toString();
38-
msgInput.setText("");
39-
messageDisplay.append("\nSent===>" + clientMsg);
4049

41-
sender = new SendMessage(user.getIpAddress(), user.getPort(),clientMsg,this);
50+
@Override
51+
public boolean onSubmit(CharSequence input) {
52+
Message message = new Message(Integer.toString(++cnt), me, input.toString(), Calendar.getInstance().getTime());
53+
adapter.addToStart(message, true);
54+
55+
sender = new SendMessage(user.getIpAddress(), user.getPort(), input.toString(),this);
4256
sender.execute();
57+
return true;
4358
}
59+
4460
public void stopSender(){
4561
if(sender != null)
4662
sender.cancel(true);
@@ -56,24 +72,20 @@ public void setMessage(final String msg){
5672
this.finish();
5773
return;
5874
}
75+
76+
5977
runOnUiThread(new Runnable() {
6078
@Override
6179
public void run() {
62-
messageDisplay.append("\nReceived===>" + msg);
80+
Message message = new Message(Integer.toString(++cnt), user, msg, Calendar.getInstance().getTime());
81+
adapter.addToStart(message, true);
6382
}
6483
});
6584
}
6685

6786
@Override
6887
protected void onDestroy() {
6988
Log.e("CHAT_ACTIVITY","DESTROY");
70-
sender = new SendMessage(user.getIpAddress(), user.getPort(), "OFFLINE",this);
71-
sender.execute();
72-
try {
73-
Thread.sleep(1000);
74-
} catch (InterruptedException e) {
75-
e.printStackTrace();
76-
}
7789
if(sender != null)
7890
sender.cancel(true);
7991
if(messageReceiveServer != null)
@@ -84,6 +96,13 @@ protected void onDestroy() {
8496
@Override
8597
protected void onPause() {
8698
Log.e("CHAT_ACTIVITY", "PAUSE");
99+
sender = new SendMessage(user.getIpAddress(), user.getPort(), "OFFLINE",this);
100+
sender.execute();
101+
try {
102+
Thread.sleep(1000);
103+
} catch (InterruptedException e) {
104+
e.printStackTrace();
105+
}
87106
super.onPause();
88107
if(sender != null && !sender.isCancelled())
89108
sender.cancel(true);
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.example.chatfull;
2+
3+
import com.stfalcon.chatkit.commons.models.IMessage;
4+
import com.stfalcon.chatkit.commons.models.IUser;
5+
6+
import java.util.Date;
7+
8+
public class Message implements IMessage {
9+
10+
String id, text;
11+
User user;
12+
Date createdAt;
13+
14+
public Message(String id, User user, String text) {
15+
this(id, user, text, new Date());
16+
}
17+
18+
public Message(String id, User user, String text, Date createdAt) {
19+
this.id = id;
20+
this.text = text;
21+
this.user = user;
22+
this.createdAt = createdAt;
23+
}
24+
25+
@Override
26+
public String getId() {
27+
return id;
28+
}
29+
30+
@Override
31+
public String getText() {
32+
return text;
33+
}
34+
35+
@Override
36+
public IUser getUser() {
37+
return user;
38+
}
39+
40+
@Override
41+
public Date getCreatedAt() {
42+
return createdAt;
43+
}
44+
}

app/src/main/java/com/example/chatfull/ShowInfoActivity.java

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,9 @@ protected void onCreate(Bundle savedInstanceState) {
3838
@Override
3939
protected void onResume() {
4040
super.onResume();
41-
if(myServer != null)
42-
myServer.onDestroy();
41+
// if(myServer != null)
42+
// myServer.onDestroy();
43+
4344
myServer = new Server(this, getSelfIpAddress(), getSelfPort());
4445
}
4546

@@ -50,13 +51,6 @@ protected void onPause() {
5051
myServer.onDestroy();
5152
}
5253

53-
@Override
54-
protected void onDestroy() {
55-
super.onDestroy();
56-
if(myServer != null)
57-
myServer.onDestroy();
58-
}
59-
6054
public static int getSelfPort() {
6155
return selfPort;
6256
}

app/src/main/java/com/example/chatfull/User.java

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,47 @@
11
package com.example.chatfull;
22

3+
import com.stfalcon.chatkit.commons.models.IUser;
4+
35
import java.io.Serializable;
46

5-
public class User implements Serializable {
7+
public class User implements Serializable, IUser {
68
private String ipAddress;
79
private int port;
10+
private String id, name;
11+
12+
public void setId(String id) {
13+
this.id = id;
14+
}
15+
16+
public void setName(String name) {
17+
this.name = name;
18+
}
19+
20+
public User(String id, String name) {
21+
this.id = id;
22+
this.name = name;
23+
}
824

925
public User(String ipAddress, int port) {
1026
this.ipAddress = ipAddress;
1127
this.port = port;
1228
}
1329

30+
@Override
31+
public String getId() {
32+
return id;
33+
}
34+
35+
@Override
36+
public String getName() {
37+
return name;
38+
}
39+
40+
@Override
41+
public String getAvatar() {
42+
return null;
43+
}
44+
1445
public String getIpAddress() {
1546
return ipAddress;
1647
}
Lines changed: 22 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,66 +1,30 @@
1-
<?xml version="1.0" encoding="utf-8"?>
2-
3-
<android.support.constraint.ConstraintLayout
1+
<RelativeLayout
42
xmlns:android="http://schemas.android.com/apk/res/android"
53
xmlns:app="http://schemas.android.com/apk/res-auto"
6-
xmlns:tools="http://schemas.android.com/tools"
74
android:layout_width="match_parent"
8-
android:layout_height="match_parent"
9-
tools:context="com.example.chatfull.MessageListActivity">
5+
android:layout_height="match_parent">
106

11-
<android.support.v7.widget.RecyclerView
12-
android:id="@+id/reyclerview_message_list"
13-
android:layout_width="0dp"
14-
android:layout_height="0dp"
15-
app:layout_constraintTop_toTopOf="parent"
16-
app:layout_constraintLeft_toLeftOf="parent"
17-
app:layout_constraintRight_toRightOf="parent">
18-
</android.support.v7.widget.RecyclerView>
7+
<com.stfalcon.chatkit.messages.MessagesList
8+
android:id="@+id/messagesList"
9+
android:layout_width="match_parent"
10+
android:layout_height="match_parent"
11+
android:layout_above="@+id/input"
12+
app:textAutoLink="all"/>
1913

20-
<!-- A horizontal line between the chatbox and RecyclerView -->
2114
<View
22-
android:layout_width="0dp"
23-
android:layout_height="2dp"
24-
android:background="#dfdfdf"
25-
android:layout_marginBottom="0dp"
26-
app:layout_constraintBottom_toTopOf="@+id/layout_chatbox"
27-
app:layout_constraintLeft_toLeftOf="parent"
28-
app:layout_constraintRight_toRightOf="parent"/>
29-
30-
<LinearLayout
31-
android:id="@+id/layout_chatbox"
32-
android:layout_width="0dp"
15+
android:layout_width="match_parent"
16+
android:layout_height="1dp"
17+
android:layout_above="@+id/input"
18+
android:layout_marginLeft="16dp"
19+
android:layout_marginRight="16dp"
20+
android:background="#E44B4949"/>
21+
22+
<com.stfalcon.chatkit.messages.MessageInput
23+
android:id="@+id/input"
24+
android:layout_width="match_parent"
3325
android:layout_height="wrap_content"
34-
android:orientation="horizontal"
35-
android:minHeight="48dp"
36-
android:background="#ffffff"
37-
app:layout_constraintBottom_toBottomOf="parent"
38-
app:layout_constraintRight_toRightOf="parent"
39-
app:layout_constraintLeft_toLeftOf="parent">
40-
41-
<EditText
42-
android:id="@+id/edittext_chatbox"
43-
android:hint="Enter message"
44-
android:background="@android:color/transparent"
45-
android:layout_gravity="center"
46-
android:layout_marginLeft="16dp"
47-
android:layout_marginRight="16dp"
48-
android:layout_width="0dp"
49-
android:layout_weight="1"
50-
android:layout_height="wrap_content"
51-
android:maxLines="6"/>
52-
53-
<Button
54-
android:id="@+id/button_chatbox_send"
55-
android:text="SEND"
56-
android:textSize="14dp"
57-
android:background="?attr/selectableItemBackground"
58-
android:clickable="true"
59-
android:layout_width="64dp"
60-
android:layout_height="48dp"
61-
android:gravity="center"
62-
android:layout_gravity="bottom" />
63-
64-
</LinearLayout>
26+
android:layout_alignParentBottom="true"
27+
app:inputHint="Enter Message"
28+
app:showAttachmentButton="false" />
6529

66-
</android.support.constraint.ConstraintLayout>
30+
</RelativeLayout>

0 commit comments

Comments
 (0)