directory changes to use number instead of token, group ui progress

This commit is contained in:
Jake McGinty
2014-02-06 18:06:23 -08:00
parent 0af473d880
commit 9cd5a67ec5
21 changed files with 581 additions and 316 deletions

View File

@@ -20,7 +20,9 @@ import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.MatrixCursor;
import android.database.MergeCursor;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Parcel;
import android.os.Parcelable;
@@ -36,6 +38,7 @@ import android.util.Log;
import org.whispersystems.textsecure.crypto.IdentityKey;
import org.whispersystems.textsecure.crypto.InvalidKeyException;
import org.whispersystems.textsecure.directory.Directory;
import org.whispersystems.textsecure.util.Base64;
import java.io.IOException;
@@ -58,6 +61,8 @@ import java.util.List;
public class ContactAccessor {
public static final String PUSH_COLUMN = "push";
private static final ContactAccessor instance = new ContactAccessor();
public static synchronized ContactAccessor getInstance() {
@@ -85,6 +90,27 @@ public class ContactAccessor {
ContactsContract.Contacts.DISPLAY_NAME + " ASC");
}
public Cursor getCursorForContactsWithPush(Context context) {
final ContentResolver resolver = context.getContentResolver();
final String[] inProjection = new String[]{PhoneLookup._ID, PhoneLookup.DISPLAY_NAME};
final String[] outProjection = new String[]{PhoneLookup._ID, PhoneLookup.DISPLAY_NAME, PUSH_COLUMN};
MatrixCursor cursor = new MatrixCursor(outProjection);
List<String> pushNumbers = Directory.getInstance(context).getActiveNumbers();
for (String pushNumber : pushNumbers) {
Uri uri = Uri.withAppendedPath(PhoneLookup.CONTENT_FILTER_URI, Uri.encode(pushNumber));
Cursor lookupCursor = resolver.query(uri, inProjection, null, null, null);
try {
if (lookupCursor != null && lookupCursor.moveToFirst()) {
cursor.addRow(new Object[]{lookupCursor.getLong(0), lookupCursor.getString(1), 1});
}
} finally {
if (lookupCursor != null)
lookupCursor.close();
}
}
return cursor;
}
public String getNameFromContact(Context context, Uri uri) {
Cursor cursor = null;