package com.phonegap;
import android.accounts.Account;
import android.accounts.AccountManager;
import android.app.Activity;
import android.content.ContentProviderOperation;
import android.content.ContentProviderOperation.Builder;
import android.content.ContentResolver;
import android.content.OperationApplicationException;
import android.database.Cursor;
import android.net.Uri;
import android.os.RemoteException;
import android.provider.ContactsContract.Data;
import android.provider.ContactsContract.RawContacts;
import android.util.Log;
import android.webkit.WebView;
import dalvik.annotation.Signature;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class ContactAccessorSdk5 extends ContactAccessor
{
@Signature({"Ljava/util/Map", "<", "Ljava/lang/String;", "Ljava/lang/String;", ">;"})
private static final Map dbMap = new HashMap();
static
{
dbMap.put("id", "_id");
dbMap.put("displayName", "display_name");
dbMap.put("name", "data1");
dbMap.put("name.formatted", "data1");
dbMap.put("name.familyName", "data3");
dbMap.put("name.givenName", "data2");
dbMap.put("name.middleName", "data5");
dbMap.put("name.honorificPrefix", "data4");
dbMap.put("name.honorificSuffix", "data6");
dbMap.put("nickname", "data1");
dbMap.put("phoneNumbers", "data1");
dbMap.put("phoneNumbers.value", "data1");
dbMap.put("emails", "data1");
dbMap.put("emails.value", "data1");
dbMap.put("addresses", "data1");
dbMap.put("addresses.formatted", "data1");
dbMap.put("addresses.streetAddress", "data4");
dbMap.put("addresses.locality", "data7");
dbMap.put("addresses.region", "data8");
dbMap.put("addresses.postalCode", "data9");
dbMap.put("addresses.country", "data10");
dbMap.put("ims", "data1");
dbMap.put("ims.value", "data1");
dbMap.put("organizations", "data1");
dbMap.put("organizations.name", "data1");
dbMap.put("organizations.department", "data5");
dbMap.put("organizations.title", "data4");
dbMap.put("organizations.location", "data9");
dbMap.put("organizations.description", "data6");
dbMap.put("birthday", "vnd.android.cursor.item/contact_event");
dbMap.put("anniversary", "vnd.android.cursor.item/contact_event");
dbMap.put("note", "data1");
dbMap.put("relationships", "data1");
dbMap.put("relationships.value", "data1");
dbMap.put("urls", "data1");
dbMap.put("urls.value", "data1");
}
public ContactAccessorSdk5(WebView paramWebView, Activity paramActivity)
{
this.mApp = paramActivity;
this.mView = paramWebView;
}
private JSONObject addressQuery(Cursor paramCursor)
{
JSONObject localJSONObject = new JSONObject();
try
{
int i = paramCursor.getColumnIndex("_id");
String str1 = paramCursor.getString(i);
localJSONObject.put("id", str1);
int j = paramCursor.getColumnIndex("data1");
String str2 = paramCursor.getString(j);
localJSONObject.put("formatted", str2);
int k = paramCursor.getColumnIndex("data4");
String str3 = paramCursor.getString(k);
localJSONObject.put("streetAddress", str3);
int l = paramCursor.getColumnIndex("data7");
String str4 = paramCursor.getString(l);
localJSONObject.put("locality", str4);
int i1 = paramCursor.getColumnIndex("data8");
String str5 = paramCursor.getString(i1);
localJSONObject.put("region", str5);
int i2 = paramCursor.getColumnIndex("data9");
String str6 = paramCursor.getString(i2);
localJSONObject.put("postalCode", str6);
int i3 = paramCursor.getColumnIndex("data10");
String str7 = paramCursor.getString(i3);
localJSONObject.put("country", str7);
return localJSONObject;
}
catch (JSONException localJSONException)
{
String str8 = localJSONException.getMessage();
Log.e("ContactsAccessor", str8, localJSONException);
}
}
private ContactAccessor.WhereOptions buildWhereClause(JSONArray paramJSONArray, String paramString)
{
int i = 1;
ArrayList localArrayList1 = new ArrayList();
ArrayList localArrayList2 = new ArrayList();
ContactAccessor.WhereOptions localWhereOptions = new ContactAccessor.WhereOptions(this);
if ("%".equals(paramString))
{
localWhereOptions.setWhere("(display_name LIKE ? )");
String[] arrayOfString1 = new String[i];
arrayOfString1[0] = paramString;
localWhereOptions.setWhereArgs(arrayOfString1);
}
while (true)
{
label64: return localWhereOptions;
int k;
String str2;
try
{
StringBuilder localStringBuilder1 = new StringBuilder().append("How many fields do we have = ");
int j = paramJSONArray.length();
String str1 = j;
Log.d("ContactsAccessor", str1);
for (k = 0; ; ++k)
{
int l = paramJSONArray.length();
if (k >= l)
break label320;
str2 = paramJSONArray.getString(k);
if (!str2.startsWith("displayName"))
break;
StringBuilder localStringBuilder2 = new StringBuilder().append("(");
String str3 = (String)dbMap.get(str2);
String str4 = str3 + " LIKE ? )";
localArrayList1.add(str4);
label202: localArrayList2.add(paramString);
}
if (!str2.startsWith("name"))
break label397;
StringBuilder localStringBuilder3 = new StringBuilder().append("(");
String str5 = (String)dbMap.get(str2);
String str6 = str5 + " LIKE ? AND " + "mimetype" + " = ? )";
localArrayList1.add(str6);
localArrayList2.add(paramString);
label397: label320: label1234: localArrayList2.add("vnd.android.cursor.item/name");
}
catch (JSONException localJSONException)
{
String str7 = localJSONException.getMessage();
Log.e("ContactsAccessor", str7, localJSONException);
StringBuffer localStringBuffer = new StringBuffer();
for (k = null; ; ++k)
{
int i1 = localArrayList1.size();
if (k >= i1)
break label1234;
String str8 = (String)localArrayList1.get(k);
localStringBuffer.append(str8);
int i2 = localArrayList1.size() - i;
if (k == i2)
continue;
localStringBuffer.append(" OR ");
}
if (str2.startsWith("nickname"))
{
StringBuilder localStringBuilder4 = new StringBuilder().append("(");
String str9 = (String)dbMap.get(str2);
String str10 = str9 + " LIKE ? AND " + "mimetype" + " = ? )";
localArrayList1.add(str10);
localArrayList2.add(paramString);
localArrayList2.add("vnd.android.cursor.item/nickname");
}
if (str2.startsWith("phoneNumbers"))
{
StringBuilder localStringBuilder5 = new StringBuilder().append("(");
String str11 = (String)dbMap.get(str2);
String str12 = str11 + " LIKE ? AND " + "mimetype" + " = ? )";
localArrayList1.add(str12);
localArrayList2.add(paramString);
localArrayList2.add("vnd.android.cursor.item/phone_v2");
}
if (str2.startsWith("emails"))
{
StringBuilder localStringBuilder6 = new StringBuilder().append("(");
String str13 = (String)dbMap.get(str2);
String str14 = str13 + " LIKE ? AND " + "mimetype" + " = ? )";
localArrayList1.add(str14);
localArrayList2.add(paramString);
localArrayList2.add("vnd.android.cursor.item/email_v2");
}
if (str2.startsWith("addresses"))
{
StringBuilder loc