diff --git a/src/org/thoughtcrime/securesms/ConversationListActivity.java b/src/org/thoughtcrime/securesms/ConversationListActivity.java index a9db043e0..cdf33d8d4 100644 --- a/src/org/thoughtcrime/securesms/ConversationListActivity.java +++ b/src/org/thoughtcrime/securesms/ConversationListActivity.java @@ -16,7 +16,6 @@ */ package org.thoughtcrime.securesms; -import android.Manifest; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.Toolbar; @@ -32,7 +31,6 @@ import com.google.zxing.integration.android.IntentIntegrator; import com.google.zxing.integration.android.IntentResult; import org.thoughtcrime.securesms.components.SearchToolbar; -import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.qr.QrScanHandler; import org.thoughtcrime.securesms.search.SearchFragment; import org.thoughtcrime.securesms.util.DynamicLanguage; diff --git a/src/org/thoughtcrime/securesms/ConversationListItem.java b/src/org/thoughtcrime/securesms/ConversationListItem.java index e0b651184..5ae3ef5d2 100644 --- a/src/org/thoughtcrime/securesms/ConversationListItem.java +++ b/src/org/thoughtcrime/securesms/ConversationListItem.java @@ -182,7 +182,7 @@ public class ConversationListItem extends RelativeLayout groupIndicator.setColorFilter(color); } - public void bind(@NonNull Recipient contact, + public void bind(@NonNull DcContact contact, @NonNull GlideRequests glideRequests, @NonNull Locale locale, @Nullable String highlightSubstring) @@ -203,7 +203,7 @@ public class ConversationListItem extends RelativeLayout contactPhotoImage.setAvatar(glideRequests, recipient, true); } - public void bind(@NonNull MessageResult messageResult, + public void bind(@NonNull DcMsg messageResult, @NonNull GlideRequests glideRequests, @NonNull Locale locale, @Nullable String highlightSubstring) diff --git a/src/org/thoughtcrime/securesms/search/SearchListAdapter.java b/src/org/thoughtcrime/securesms/search/SearchListAdapter.java index 7599c45a5..9299ab7b3 100644 --- a/src/org/thoughtcrime/securesms/search/SearchListAdapter.java +++ b/src/org/thoughtcrime/securesms/search/SearchListAdapter.java @@ -1,5 +1,6 @@ package org.thoughtcrime.securesms.search; +import android.content.Context; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.support.v7.widget.RecyclerView; @@ -8,10 +9,15 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TextView; +import com.b44t.messenger.DcChat; +import com.b44t.messenger.DcContact; import com.b44t.messenger.DcLot; +import com.b44t.messenger.DcMsg; import org.thoughtcrime.securesms.ConversationListItem; import org.thoughtcrime.securesms.R; +import org.thoughtcrime.securesms.connect.ApplicationDcContext; +import org.thoughtcrime.securesms.connect.DcHelper; import org.thoughtcrime.securesms.database.model.ThreadRecord; import org.thoughtcrime.securesms.mms.GlideRequests; import org.thoughtcrime.securesms.recipients.Recipient; @@ -36,13 +42,17 @@ class SearchListAdapter extends RecyclerView.Adapter= getFirstContactIndex() && position < getFirstMessageIndex()) { - return searchResult.getContacts().get(position - getFirstContactIndex()); + return dcContext.getContact(searchResult.getContacts()[position - getFirstContactIndex()]); } return null; } @Nullable - private MessageResult getMessageResult(int position) { + private DcMsg getMessageResult(int position) { if (position >= getFirstMessageIndex() && position < searchResult.size()) { - return searchResult.getMessages().get(position - getFirstMessageIndex()); + return dcContext.getMsg(searchResult.getMessages()[position - getFirstMessageIndex()]); } return null; } private int getFirstContactIndex() { - return searchResult.getConversations().size(); + return searchResult.getConversations().getCnt(); } private int getFirstMessageIndex() { - return getFirstContactIndex() + searchResult.getContacts().size(); + return getFirstContactIndex() + searchResult.getContacts().length; } public interface EventListener { - void onConversationClicked(@NonNull ThreadRecord threadRecord); - void onContactClicked(@NonNull Recipient contact); - void onMessageClicked(@NonNull MessageResult message); + void onConversationClicked(@NonNull DcChat chat); + void onContactClicked(@NonNull DcContact contact); + void onMessageClicked(@NonNull DcMsg message); } static class SearchResultViewHolder extends RecyclerView.ViewHolder { @@ -159,7 +169,7 @@ class SearchListAdapter extends RecyclerView.Adapter eventListener.onConversationClicked(conversationResult)); } - void bind(@NonNull Recipient contactResult, + void bind(@NonNull DcContact contactResult, @NonNull GlideRequests glideRequests, @NonNull EventListener eventListener, @NonNull Locale locale, @@ -181,7 +191,7 @@ class SearchListAdapter extends RecyclerView.Adapter eventListener.onContactClicked(contactResult)); } - void bind(@NonNull MessageResult messageResult, + void bind(@NonNull DcMsg messageResult, @NonNull GlideRequests glideRequests, @NonNull EventListener eventListener, @NonNull Locale locale, diff --git a/src/org/thoughtcrime/securesms/search/SearchRepository.java b/src/org/thoughtcrime/securesms/search/SearchRepository.java index cdd10a044..aee63fd94 100644 --- a/src/org/thoughtcrime/securesms/search/SearchRepository.java +++ b/src/org/thoughtcrime/securesms/search/SearchRepository.java @@ -1,6 +1,5 @@ package org.thoughtcrime.securesms.search; -import android.Manifest; import android.content.Context; import android.database.Cursor; import android.database.DatabaseUtils; @@ -19,7 +18,6 @@ import org.thoughtcrime.securesms.database.MmsSmsColumns; import org.thoughtcrime.securesms.database.SearchDatabase; import org.thoughtcrime.securesms.database.ThreadDatabase; import org.thoughtcrime.securesms.database.model.ThreadRecord; -import org.thoughtcrime.securesms.permissions.Permissions; import org.thoughtcrime.securesms.recipients.Recipient; import org.thoughtcrime.securesms.search.model.MessageResult; import org.thoughtcrime.securesms.search.model.SearchResult; diff --git a/src/org/thoughtcrime/securesms/search/model/SearchResult.java b/src/org/thoughtcrime/securesms/search/model/SearchResult.java index 9c2577125..d488daea7 100644 --- a/src/org/thoughtcrime/securesms/search/model/SearchResult.java +++ b/src/org/thoughtcrime/securesms/search/model/SearchResult.java @@ -4,6 +4,8 @@ import android.database.ContentObserver; import android.database.DataSetObserver; import android.support.annotation.NonNull; +import com.b44t.messenger.DcChatlist; + import org.thoughtcrime.securesms.database.CursorList; import org.thoughtcrime.securesms.database.model.ThreadRecord; import org.thoughtcrime.securesms.recipients.Recipient; @@ -16,17 +18,17 @@ import java.util.List; */ public class SearchResult { - public static final SearchResult EMPTY = new SearchResult("", CursorList.emptyList(), CursorList.emptyList(), CursorList.emptyList()); + public static final SearchResult EMPTY = new SearchResult("", new int[]{}, new DcChatlist(0), new int[]{}); - private final String query; - private final CursorList contacts; - private final CursorList conversations; - private final CursorList messages; + private final String query; + private final int[] contacts; + private final DcChatlist conversations; + private final int[] messages; - public SearchResult(@NonNull String query, - @NonNull CursorList contacts, - @NonNull CursorList conversations, - @NonNull CursorList messages) + public SearchResult(@NonNull String query, + @NonNull int[] contacts, + @NonNull DcChatlist conversations, + @NonNull int[] messages) { this.query = query; this.contacts = contacts; @@ -34,15 +36,15 @@ public class SearchResult { this.messages = messages; } - public List getContacts() { + public int[] getContacts() { return contacts; } - public List getConversations() { + public DcChatlist getConversations() { return conversations; } - public List getMessages() { + public int[] getMessages() { return messages; } @@ -51,28 +53,10 @@ public class SearchResult { } public int size() { - return contacts.size() + conversations.size() + messages.size(); + return contacts.length + conversations.getCnt() + messages.length; } public boolean isEmpty() { return size() == 0; } - - public void registerContentObserver(@NonNull ContentObserver observer) { - contacts.registerContentObserver(observer); - conversations.registerContentObserver(observer); - messages.registerContentObserver(observer); - } - - public void unregisterContentObserver(@NonNull ContentObserver observer) { - contacts.unregisterContentObserver(observer); - conversations.unregisterContentObserver(observer); - messages.unregisterContentObserver(observer); - } - - public void close() { - contacts.close(); - conversations.close(); - messages.close(); - } }