Skip to content
This repository was archived by the owner on Jul 25, 2024. It is now read-only.

Commit 1880726

Browse files
Sam1301timabbott
authored andcommitted
Use notifyItemChanged instead of notifyDataSetChanged.
1 parent e259ba6 commit 1880726

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

app/src/main/java/com/zulip/android/networking/AsyncGetEvents.java

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import com.zulip.android.R;
1414
import com.zulip.android.ZulipApp;
1515
import com.zulip.android.activities.LoginActivity;
16+
import com.zulip.android.activities.RecyclerMessageAdapter;
1617
import com.zulip.android.activities.ZulipActivity;
1718
import com.zulip.android.models.Message;
1819
import com.zulip.android.models.MessageRange;
@@ -36,6 +37,7 @@
3637
import java.io.IOException;
3738
import java.net.SocketTimeoutException;
3839
import java.sql.SQLException;
40+
import java.util.ArrayList;
3941
import java.util.List;
4042
import java.util.concurrent.Callable;
4143

@@ -482,6 +484,7 @@ private void processMessageEditParam(List<EventsBranch> messageEditLimitEvents)
482484
* @param updateEvents list of events {@link EventsBranch.BranchType#UPDATE_MESSAGE}
483485
*/
484486
private void processUpdateMessages(List<EventsBranch> updateEvents) {
487+
final List<Integer> messageIds = new ArrayList<>();
485488
for (EventsBranch event : updateEvents) {
486489
UpdateMessageWrapper updateEvent = (UpdateMessageWrapper) event;
487490
Message message = updateEvent.getMessage();
@@ -492,6 +495,7 @@ private void processUpdateMessages(List<EventsBranch> updateEvents) {
492495
Dao<Message, Integer> messageDao = app.getDao(Message.class);
493496
try {
494497
messageDao.update(message);
498+
messageIds.add(message.getId());
495499
} catch (SQLException e) {
496500
ZLog.logException(e);
497501
}
@@ -501,8 +505,11 @@ private void processUpdateMessages(List<EventsBranch> updateEvents) {
501505
mActivity.runOnUiThread(new Runnable() {
502506
@Override
503507
public void run() {
504-
// notify adapter dataset changed
505-
mActivity.getCurrentMessageList().getAdapter().notifyDataSetChanged();
508+
RecyclerMessageAdapter adapter = mActivity.getCurrentMessageList().getAdapter();
509+
for (int id : messageIds) {
510+
// notify adapter data item changed
511+
adapter.notifyItemChanged(adapter.getItemIndex(id));
512+
}
506513
}
507514
});
508515
}

0 commit comments

Comments
 (0)