summaryrefslogtreecommitdiffstats
path: root/core/java/android/pim/vcard
diff options
context:
space:
mode:
authorDaisuke Miyakawa <dmiyakawa@google.com>2009-09-15 19:18:53 -0700
committerDaisuke Miyakawa <dmiyakawa@google.com>2009-09-15 19:28:40 -0700
commitd5bc296d9463ed147d142a8d0a6502a27eafa3e1 (patch)
tree3cc88419acca81276bc320a6b190485d5e03d404 /core/java/android/pim/vcard
parentf5a760f17527b91c864336ea10b52322d0667ec5 (diff)
downloadframeworks_base-d5bc296d9463ed147d142a8d0a6502a27eafa3e1.zip
frameworks_base-d5bc296d9463ed147d142a8d0a6502a27eafa3e1.tar.gz
frameworks_base-d5bc296d9463ed147d142a8d0a6502a27eafa3e1.tar.bz2
Make vCard importer code use Account information if possible.
Internal isssue: 2116216, 2102720
Diffstat (limited to 'core/java/android/pim/vcard')
-rw-r--r--core/java/android/pim/vcard/ContactStruct.java20
-rw-r--r--core/java/android/pim/vcard/VCardDataBuilder.java19
2 files changed, 28 insertions, 11 deletions
diff --git a/core/java/android/pim/vcard/ContactStruct.java b/core/java/android/pim/vcard/ContactStruct.java
index 0064bf2..06b0636 100644
--- a/core/java/android/pim/vcard/ContactStruct.java
+++ b/core/java/android/pim/vcard/ContactStruct.java
@@ -15,6 +15,7 @@
*/
package android.pim.vcard;
+import android.accounts.Account;
import android.content.ContentProviderOperation;
import android.content.ContentResolver;
import android.content.ContentValues;
@@ -416,7 +417,8 @@ public class ContactStruct {
private List<String> mWebsiteList;
private final int mVCardType;
-
+ private final Account mAccount;
+
// Each Column of four properties has ISPRIMARY field
// (See android.provider.Contacts)
// If false even after the parsing loop, we choose the first entry as a "primary"
@@ -429,9 +431,14 @@ public class ContactStruct {
public ContactStruct() {
this(VCardConfig.VCARD_TYPE_V21_GENERIC);
}
-
+
public ContactStruct(int vcardType) {
+ this(vcardType, null);
+ }
+
+ public ContactStruct(int vcardType, Account account) {
mVCardType = vcardType;
+ mAccount = account;
}
/**
@@ -1021,7 +1028,12 @@ public class ContactStruct {
new ArrayList<ContentProviderOperation>();
ContentProviderOperation.Builder builder =
ContentProviderOperation.newInsert(RawContacts.CONTENT_URI);
- builder.withValues(new ContentValues());
+ if (mAccount != null) {
+ builder.withValue(RawContacts.ACCOUNT_NAME, mAccount.name);
+ builder.withValue(RawContacts.ACCOUNT_TYPE, mAccount.type);
+ } else {
+ builder.withValues(new ContentValues());
+ }
operationList.add(builder.build());
{
@@ -1183,7 +1195,7 @@ public class ContactStruct {
builder.withValue(Miscellaneous.BIRTHDAY, mBirthday);
operationList.add(builder.build());
}
-
+
try {
resolver.applyBatch(ContactsContract.AUTHORITY, operationList);
} catch (RemoteException e) {
diff --git a/core/java/android/pim/vcard/VCardDataBuilder.java b/core/java/android/pim/vcard/VCardDataBuilder.java
index fd165e9..d2026d0 100644
--- a/core/java/android/pim/vcard/VCardDataBuilder.java
+++ b/core/java/android/pim/vcard/VCardDataBuilder.java
@@ -15,6 +15,7 @@
*/
package android.pim.vcard;
+import android.accounts.Account;
import android.util.CharsetUtils;
import android.util.Log;
@@ -59,7 +60,8 @@ public class VCardDataBuilder implements VCardBuilder {
private String mTargetCharset;
private boolean mStrictLineBreakParsing;
- private int mVCardType;
+ final private int mVCardType;
+ final private Account mAccount;
// Just for testing.
private long mTimePushIntoContentResolver;
@@ -67,21 +69,22 @@ public class VCardDataBuilder implements VCardBuilder {
private List<EntryHandler> mEntryHandlers = new ArrayList<EntryHandler>();
public VCardDataBuilder() {
- this(null, null, false, VCardConfig.VCARD_TYPE_V21_GENERIC);
+ this(null, null, false, VCardConfig.VCARD_TYPE_V21_GENERIC, null);
}
/**
* @hide
*/
public VCardDataBuilder(int vcardType) {
- this(null, null, false, vcardType);
+ this(null, null, false, vcardType, null);
}
/**
* @hide
*/
- public VCardDataBuilder(String charset, boolean strictLineBreakParsing, int vcardType) {
- this(null, charset, strictLineBreakParsing, vcardType);
+ public VCardDataBuilder(String charset,
+ boolean strictLineBreakParsing, int vcardType, Account account) {
+ this(null, charset, strictLineBreakParsing, vcardType, account);
}
/**
@@ -90,7 +93,8 @@ public class VCardDataBuilder implements VCardBuilder {
public VCardDataBuilder(String sourceCharset,
String targetCharset,
boolean strictLineBreakParsing,
- int vcardType) {
+ int vcardType,
+ Account account) {
if (sourceCharset != null) {
mSourceCharset = sourceCharset;
} else {
@@ -103,6 +107,7 @@ public class VCardDataBuilder implements VCardBuilder {
}
mStrictLineBreakParsing = strictLineBreakParsing;
mVCardType = vcardType;
+ mAccount = account;
}
public void addEntryHandler(EntryHandler entryHandler) {
@@ -136,7 +141,7 @@ public class VCardDataBuilder implements VCardBuilder {
Log.e(LOG_TAG, "This is not VCARD!");
}
- mCurrentContactStruct = new ContactStruct(mVCardType);
+ mCurrentContactStruct = new ContactStruct(mVCardType, mAccount);
}
public void endRecord() {