Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 99d4872

Browse files
committed
Loaded messages from sharedpref
1 parent cf8767d commit 99d4872

File tree

1 file changed

+51
-17
lines changed

1 file changed

+51
-17
lines changed

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

Lines changed: 51 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import android.net.Uri;
1212
import android.os.Bundle;
1313
import android.os.Environment;
14+
import android.os.Handler;
1415
import android.provider.OpenableColumns;
1516
import android.util.Base64;
1617
import android.util.Log;
@@ -47,11 +48,13 @@
4748
import java.io.InputStream;
4849
import java.util.ArrayList;
4950
import java.util.Calendar;
51+
import java.util.Date;
5052
import java.util.List;
5153

5254
public class ChatActivity extends AppCompatActivity
5355
implements MessageHolders.ContentChecker<Message>,
54-
MessagesListAdapter.OnMessageLongClickListener<Message> {
56+
MessagesListAdapter.OnMessageLongClickListener<Message>,
57+
MessagesListAdapter.OnLoadMoreListener{
5558

5659
private static final int PICK_FILE_REQUEST = 1;
5760
private static final int PICK_IMAGE_REQUEST = 2;
@@ -68,9 +71,11 @@ public class ChatActivity extends AppCompatActivity
6871

6972
MessagesList messagesList;
7073
protected final String senderId = "1";
74+
private static final int TOTAL_MESSAGES_COUNT = 20;
75+
private Date lastLoadedDate;
7176

7277
MessagesListAdapter<Message> adapter;
73-
int cnt = 0;
78+
int cnt = 0;//Sets message counter id
7479

7580
Button btnSend;
7681
ImageButton btnAttachment, btnImage;
@@ -87,22 +92,7 @@ protected void onCreate(Bundle savedInstanceState) {
8792
setContentView(R.layout.activity_chat_alternate);
8893

8994
user = (User) getIntent().getSerializableExtra("user");
90-
messageArrayList = new ArrayList<Message>();
91-
gson = new Gson();
9295

93-
PREFERENCE_FILE_KEY = user.getId();
94-
sharedPref = this.getSharedPreferences(
95-
PREFERENCE_FILE_KEY, Context.MODE_PRIVATE);
96-
editor = sharedPref.edit();
97-
98-
String jsonDataString = sharedPref.getString(SHARED_PREFERENCES_KEY_MESSAGE_LIST,"");
99-
if(jsonDataString.length() > 0) {
100-
Message messageArray[] = gson.fromJson(jsonDataString, Message[].class);
101-
for (Message msg : messageArray) {
102-
messageArrayList.add(msg);
103-
}
104-
Log.e("MESSAGE_SIZE", messageArrayList.size() + "");
105-
}
10696
messageReceiveServer = new MessageReceiveServer(ShowInfoActivity.getSelfIpAddress(), ShowInfoActivity.getSelfPort(), this);
10797

10898
Toolbar toolbar = findViewById(R.id.toolbar);
@@ -154,6 +144,24 @@ public void loadImage(ImageView imageView, @Nullable String url, @Nullable Objec
154144
ta.recycle();
155145

156146
adapter.setOnMessageLongClickListener(this);
147+
148+
messageArrayList = new ArrayList<Message>();
149+
gson = new Gson();
150+
151+
PREFERENCE_FILE_KEY = user.getId();
152+
sharedPref = this.getSharedPreferences(
153+
PREFERENCE_FILE_KEY, Context.MODE_PRIVATE);
154+
editor = sharedPref.edit();
155+
156+
String jsonDataString = sharedPref.getString(SHARED_PREFERENCES_KEY_MESSAGE_LIST,"");
157+
if(jsonDataString.length() > 0) {
158+
Message messageArray[] = gson.fromJson(jsonDataString, Message[].class);
159+
for (Message msg : messageArray) {
160+
messageArrayList.add(msg);
161+
}
162+
adapter.addToEnd(messageArrayList,false);
163+
Log.e("MESSAGE_SIZE", messageArrayList.size() + "");
164+
}
157165
}
158166

159167
private void setClipboard(Context context, String text) {
@@ -498,4 +506,30 @@ public void onMessageLongClick(Message message) {
498506
downloadManager.addCompletedDownload(message.getId() + message.getFilename(), message.getId() + message.getFilename(), true, "image/*", file.getAbsolutePath(), file.length(), true);
499507
}
500508
}
509+
510+
@Override
511+
public void onLoadMore(int page, int totalItemsCount) {
512+
Log.i("TAG", "onLoadMore: " + page + " " + totalItemsCount);
513+
if (totalItemsCount < TOTAL_MESSAGES_COUNT) {
514+
loadMessages();
515+
}
516+
}
517+
518+
protected void loadMessages() {
519+
new Handler().postDelayed(new Runnable() { //imitation of internet connection
520+
@Override
521+
public void run() {
522+
Log.e("load","Ashche");
523+
ArrayList<Message> more_messages = new ArrayList<>();
524+
for(int i=0, j=0; i<messageArrayList.size() && j<10; i++){
525+
if(messageArrayList.get(i).getCreatedAt().before(lastLoadedDate)){
526+
more_messages.add(messageArrayList.get(i));
527+
j++;
528+
}
529+
}
530+
lastLoadedDate = more_messages.get(more_messages.size() - 1).getCreatedAt();
531+
adapter.addToEnd(more_messages, false);
532+
}
533+
}, 500);
534+
}
501535
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /