Skip to content

Commit 1a49bf4

Browse files
committed
code simplified.
1 parent f8e0581 commit 1a49bf4

File tree

13 files changed

+45
-37
lines changed

13 files changed

+45
-37
lines changed

mobile/src/androidTest/java/io/syslogic/socketio/MainActivityTest.java

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import androidx.test.espresso.action.ViewActions;
66
import androidx.test.espresso.matcher.ViewMatchers;
77

8-
import io.syslogic.socketio.activity.MainActivity;
98
import io.syslogic.socketio.base.BaseActivityTest;
109
import io.syslogic.socketio.fragment.ChatFragment;
1110

mobile/src/androidTest/java/io/syslogic/socketio/base/BaseActivityTest.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
import java.lang.ref.WeakReference;
2121

22-
import io.syslogic.socketio.activity.MainActivity;
22+
import io.syslogic.socketio.MainActivity;
2323

2424
/**
2525
* Abstract {@link TestCase} for {@link MainActivity}.

mobile/src/main/AndroidManifest.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
tools:ignore="AllowBackup">
1818

1919
<activity
20-
android:name=".activity.MainActivity"
20+
android:name=".MainActivity"
2121
android:exported="true">
2222

2323
<intent-filter>

mobile/src/main/java/io/syslogic/socketio/activity/MainActivity.java renamed to mobile/src/main/java/io/syslogic/socketio/MainActivity.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.syslogic.socketio.activity;
1+
package io.syslogic.socketio;
22

33
import android.os.Bundle;
44
import android.util.Log;
@@ -20,7 +20,6 @@
2020
import io.socket.client.IO;
2121
import io.socket.client.Socket;
2222

23-
import io.syslogic.socketio.R;
2423
import io.syslogic.socketio.databinding.FragmentNavHostBinding;
2524
import io.syslogic.socketio.fragment.BaseFragment;
2625
import io.syslogic.socketio.menu.ChatMenuProvider;

mobile/src/main/java/io/syslogic/socketio/recyclerview/MessageAdapter.java renamed to mobile/src/main/java/io/syslogic/socketio/adapter/MessageAdapter.java

+21-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.syslogic.socketio.recyclerview;
1+
package io.syslogic.socketio.adapter;
22

33
import static io.syslogic.socketio.model.ChatMessage.TYPE_ACTION;
44
import static io.syslogic.socketio.model.ChatMessage.TYPE_LOG;
@@ -22,15 +22,19 @@
2222
* @author Martin Zeitler
2323
*/
2424
public class MessageAdapter extends RecyclerView.Adapter<MessageAdapter.ViewHolder> {
25-
private final ArrayList<ChatMessage> mItems;
25+
private ArrayList<ChatMessage> mItems = new ArrayList<>();
2626

2727
public MessageAdapter(@NonNull ArrayList<ChatMessage> items) {
2828
this.mItems = items;
2929
}
3030

31+
public MessageAdapter() {
32+
33+
}
34+
3135
@Override
3236
public int getItemCount() {
33-
return mItems.size();
37+
return this.mItems.size();
3438
}
3539

3640
@Override
@@ -59,7 +63,20 @@ public void onBindViewHolder(@NonNull ViewHolder viewHolder, int position) {
5963
}
6064

6165
private ChatMessage getItem(int position) {
62-
return mItems.get(position);
66+
return this.mItems.get(position);
67+
}
68+
69+
public void addItem(ChatMessage item) {
70+
this.mItems.add(item);
71+
this.notifyItemInserted(this.getItemCount() - 1);
72+
}
73+
public void removeItem(int position) {
74+
this.mItems.remove(position);
75+
this.notifyItemRemoved(position);
76+
}
77+
78+
public ChatMessage getItemAt(int position) {
79+
return this.mItems.get(position);
6380
}
6481

6582
public static class ViewHolder extends RecyclerView.ViewHolder {

mobile/src/main/java/io/syslogic/socketio/recyclerview/SocketAdapter.java renamed to mobile/src/main/java/io/syslogic/socketio/adapter/SocketAdapter.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package io.syslogic.socketio.recyclerview;
1+
package io.syslogic.socketio.adapter;
22

33
// import static io.syslogic.socketio.model.ChatUser.TYPE_DEFAULT;
44
import static io.syslogic.socketio.model.ClientSocket.TYPE_OPERATOR;

mobile/src/main/java/io/syslogic/socketio/dialog/BaseDialogFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import java.util.ArrayList;
1616

1717
import io.socket.client.Socket;
18-
import io.syslogic.socketio.activity.MainActivity;
18+
import io.syslogic.socketio.MainActivity;
1919
import io.syslogic.socketio.model.ClientSocket;
2020

2121
/**

mobile/src/main/java/io/syslogic/socketio/dialog/SocketsDialogFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
import io.syslogic.socketio.Constants;
2323
import io.syslogic.socketio.databinding.DialogSocketsBinding;
2424
import io.syslogic.socketio.model.ClientSocket;
25-
import io.syslogic.socketio.recyclerview.SocketAdapter;
25+
import io.syslogic.socketio.adapter.SocketAdapter;
2626

2727
/**
2828
* Sockets {@link BaseDialogFragment}

mobile/src/main/java/io/syslogic/socketio/fragment/BaseFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
import io.syslogic.socketio.Constants;
2525
import io.syslogic.socketio.R;
26-
import io.syslogic.socketio.activity.MainActivity;
26+
import io.syslogic.socketio.MainActivity;
2727
import io.syslogic.socketio.model.ClientSocket;
2828

2929
/**

mobile/src/main/java/io/syslogic/socketio/fragment/ChatFragment.java

+14-20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.syslogic.socketio.fragment;
22

3-
import android.content.Context;
43
import android.os.Bundle;
54
import android.os.Handler;
65
import android.os.Looper;
@@ -20,19 +19,18 @@
2019
import org.json.JSONException;
2120
import org.json.JSONObject;
2221

23-
import java.util.ArrayList;
2422
import java.util.Objects;
2523

2624
import io.socket.client.Socket;
2725
import io.socket.emitter.Emitter;
2826

2927
import io.syslogic.socketio.Constants;
3028
import io.syslogic.socketio.R;
31-
import io.syslogic.socketio.activity.MainActivity;
29+
import io.syslogic.socketio.MainActivity;
3230
import io.syslogic.socketio.databinding.FragmentChatBinding;
3331
import io.syslogic.socketio.model.ChatMessage;
3432
import io.syslogic.socketio.model.ChatRoom;
35-
import io.syslogic.socketio.recyclerview.MessageAdapter;
33+
import io.syslogic.socketio.adapter.MessageAdapter;
3634

3735
/**
3836
* Chat {@link BaseFragment}
@@ -41,8 +39,6 @@
4139
public class ChatFragment extends BaseFragment implements FragmentResultListener {
4240
private static final String LOG_TAG = ChatFragment.class.getSimpleName();
4341
private FragmentChatBinding mDataBinding = null;
44-
private final ArrayList<ChatMessage> mItems = new ArrayList<>();
45-
private MessageAdapter mAdapter;
4642
private static final int TYPING_TIMER_DURATION = 600;
4743
private final Handler mTypingHandler = new Handler(Looper.getMainLooper());
4844
private boolean mTyping = false;
@@ -84,12 +80,6 @@ public void onDestroy() {
8480
super.onDestroy();
8581
}
8682

87-
@Override
88-
public void onAttach(@NonNull Context context) {
89-
super.onAttach(context);
90-
this.mAdapter = new MessageAdapter(this.mItems);
91-
}
92-
9383
@Override
9484
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
9585
this.setDataBinding(inflater, container);
@@ -98,7 +88,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container,
9888
}
9989

10090
this.mDataBinding.recyclerviewMessages.setLayoutManager(new LinearLayoutManager(requireContext()));
101-
this.mDataBinding.recyclerviewMessages.setAdapter(this.mAdapter);
91+
this.mDataBinding.recyclerviewMessages.setAdapter(new MessageAdapter());
10292

10393
this.mDataBinding.buttonSend.setOnClickListener(view -> {
10494
attemptSend();
@@ -161,11 +151,14 @@ private void addUserCount(int numUsers) {
161151
}
162152

163153
private void addItem(ChatMessage item) {
164-
this.mItems.add(item);
165-
mAdapter.notifyItemInserted(this.mItems.size() - 1);
154+
getRecyclerViewAdapter().addItem(item);
166155
scrollToBottom();
167156
}
168157

158+
private MessageAdapter getRecyclerViewAdapter() {
159+
return ((MessageAdapter) this.mDataBinding.recyclerviewMessages.getAdapter());
160+
}
161+
169162
private void addLog(String message) {
170163
addItem(new ChatMessage.Builder(ChatMessage.TYPE_LOG).setMessage(message).build());
171164
}
@@ -182,11 +175,11 @@ private void addTyping(String username) {
182175
}
183176

184177
private void removeTyping(String username) {
185-
for (int i = this.mItems.size() - 1; i >= 0; i--) {
186-
ChatMessage message = this.mItems.get(i);
178+
MessageAdapter adapter = getRecyclerViewAdapter();
179+
for (int i = adapter.getItemCount() - 1; i >= 0; i--) {
180+
ChatMessage message = adapter.getItemAt(i);
187181
if (message.getType() == ChatMessage.TYPE_ACTION && message.getUsername().equals(username)) {
188-
this.mItems.remove(i);
189-
mAdapter.notifyItemRemoved(i);
182+
adapter.removeItem(i);
190183
}
191184
}
192185
}
@@ -219,7 +212,8 @@ public void leaveRoom(@NonNull MainActivity activity) {
219212
}
220213

221214
private void scrollToBottom() {
222-
this.mDataBinding.recyclerviewMessages.scrollToPosition(mAdapter.getItemCount() - 1);
215+
this.mDataBinding.recyclerviewMessages
216+
.scrollToPosition(getRecyclerViewAdapter().getItemCount() - 1);
223217
}
224218

225219
private final Emitter.Listener onChatMessage = args -> requireActivity().runOnUiThread(() -> {

mobile/src/main/java/io/syslogic/socketio/fragment/LoginFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
import io.syslogic.socketio.Constants;
2727
import io.syslogic.socketio.R;
28-
import io.syslogic.socketio.activity.MainActivity;
28+
import io.syslogic.socketio.MainActivity;
2929
import io.syslogic.socketio.databinding.FragmentLoginBinding;
3030
import io.syslogic.socketio.model.ClientSocket;
3131

mobile/src/main/java/io/syslogic/socketio/menu/ChatMenuProvider.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,7 @@
1010
import java.lang.ref.WeakReference;
1111

1212
import io.syslogic.socketio.R;
13-
import io.syslogic.socketio.activity.MainActivity;
14-
import io.syslogic.socketio.fragment.BaseFragment;
13+
import io.syslogic.socketio.MainActivity;
1514

1615
/**
1716
* Chat {@link MenuProvider}

mobile/src/main/res/menu/menu_chat.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
xmlns:android="http://schemas.android.com/apk/res/android"
44
xmlns:app="http://schemas.android.com/apk/res-auto"
55
xmlns:tools="http://schemas.android.com/tools"
6-
tools:context="io.syslogic.socketio.activity.MainActivity">
6+
tools:context="io.syslogic.socketio.MainActivity">
77

88
<item
99
android:id="@+id/menu_menu_action_sockets"

0 commit comments

Comments
 (0)