Skip to content

Commit 836d9b2

Browse files
Copilotkirklandsign
andcommitted
Refactor: Extract isDuplicateSystemMessage() to MessageAdapter
- Move duplicate message check logic to MessageAdapter for cleaner code - Add reusable isDuplicateSystemMessage() helper method with documentation - Simplify askUserToSelectModel() in MainActivity Co-authored-by: kirklandsign <107070759+kirklandsign@users.noreply.github.com>
1 parent 4aa9cd7 commit 836d9b2

2 files changed

Lines changed: 18 additions & 8 deletions

File tree

llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MainActivity.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -461,14 +461,7 @@ private void askUserToSelectModel() {
461461
ETLogging.getInstance().log(askLoadModel);
462462
runOnUiThread(
463463
() -> {
464-
// Only add the message if it's not already the last message in the chat
465-
int messageCount = mMessageAdapter.getCount();
466-
Message lastMessage = messageCount > 0 ? mMessageAdapter.getItem(messageCount - 1) : null;
467-
boolean isDuplicate =
468-
lastMessage != null
469-
&& lastMessage.getMessageType() == MessageType.SYSTEM
470-
&& askLoadModel.equals(lastMessage.getText());
471-
if (!isDuplicate) {
464+
if (!mMessageAdapter.isDuplicateSystemMessage(askLoadModel)) {
472465
mMessageAdapter.add(askLoadModelMessage);
473466
mMessageAdapter.notifyDataSetChanged();
474467
}

llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MessageAdapter.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,4 +132,21 @@ public int getMaxPromptID() {
132132
}
133133
return maxPromptID;
134134
}
135+
136+
/**
137+
* Checks if the last message is a duplicate system message with the given text.
138+
*
139+
* @param text The text to check against the last message
140+
* @return true if the last message is a system message with matching text, false otherwise
141+
*/
142+
public boolean isDuplicateSystemMessage(String text) {
143+
int count = getCount();
144+
if (count == 0) {
145+
return false;
146+
}
147+
Message lastMessage = getItem(count - 1);
148+
return lastMessage != null
149+
&& lastMessage.getMessageType() == MessageType.SYSTEM
150+
&& text.equals(lastMessage.getText());
151+
}
135152
}

0 commit comments

Comments
 (0)