public ist<SMSModelsDto> getSMS() { Uri uriSMSURI = Uri.parse("content://sms/"); ContentResolver cr = getContentResolver(); c = cr.query(uriSMSURI, null, null, null, null); startManagingCursor(c); if (c.moveToFirst()) { for (int i = 0; i < c.getCount(); i++) { String header = c.getString(c.getColumnIndexOrThrow("address")); if (stringSMSModelsDtoHashMap.containsKey(header)) { smsModelsDto = stringSMSModelsDtoHashMap.get(header); smsModelsDto.setRepeatCount(smsModelsDto.getRepeatCount() + 1); stringSMSModelsDtoHashMap.put(header, smsModelsDto); } else { smsModelsDto = new SMSModelsDto(); smsModelsDto.setId(c.getString(c.getColumnIndexOrThrow("_id"))); String threadId = null; threadId = c.getString(c.getColumnIndexOrThrow("thread_id"));; if(threadId != null){ smsModelsDto.setThreadId(threadId); } smsModelsDto.setHeader(header); smsModelsDto.setName(header); smsModelsDto.setBody(c.getString(c.getColumnIndexOrThrow("body"))); smsModelsDto.setRead(Byte.parseByte(c.getString(c.getColumnIndex("read")))); smsModelsDto.setDate(Long.parseLong(c.getString(c.getColumnIndexOrThrow("date")))); if (c.getString(c.getColumnIndexOrThrow("type")).contains("1")) { smsModelsDto.setType((byte) 1); } else { smsModelsDto.setType((byte) 0); } stringSMSModelsDtoHashMap.put(header, smsModelsDto); } if (sms.contains(smsModelsDto)) { sms.set(sms.indexOf(smsModelsDto), smsModelsDto); } else { sms.add(smsModelsDto); } runOnUiThread(new Runnable() { @Override public void run() { adapter.notifyDataSetChanged(); } }); c.moveToNext(); } if (PermissionCheck.readAndWriteContacts(HomeActivity.this)) { loadContactsData(); } } return sms; } public class SMSModelsDto{ private String id; private String threadId; private String header; private String body; private long date; private String name; private String image; private byte type; private byte read; private int repeatCount = 1; private boolean supportReply = false; public String getThreadId() { return threadId; } public void setThreadId(String threadId) { this.threadId = threadId; } public boolean isSupportReply() { return supportReply; } public void setSupportReply(boolean supportReply) { this.supportReply = supportReply; } public String getHeader(){ return header; } public void setHeader(String header){ this.header = header; } public String getBody(){ return body; } public void setBody(String body){ this.body = body; } public long getDate() { return date; } public void setDate(long date) { this.date = date; } public byte getType(){ return type; } public void setType(byte type){ this.type = type; } public String getId(){ return id; } public void setId(String id){ this.id = id; } public byte getRead(){ return read; } public void setRead(byte read){ this.read = read; } public String getImage() { return image; } public void setImage(String image) { this.image = image; } public int getRepeatCount(){ return repeatCount; } public void setRepeatCount(int repeatCount){ this.repeatCount = repeatCount; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString(){ return "SMSModelsDto{" + "id='" + id + '\'' + ", header='" + header + '\'' + ", body='" + body + '\'' + ", date='" + date + '\'' + ", image=" + image + ", type=" + type + ", read=" + read + '}'; } }