diff options
author | Daisuke Miyakawa <dmiyakawa@google.com> | 2009-09-07 13:00:11 +0900 |
---|---|---|
committer | Daisuke Miyakawa <dmiyakawa@google.com> | 2009-09-07 22:14:08 +0900 |
commit | 718eaff0fadd999f488417fab1c05dca13ca0451 (patch) | |
tree | 77763d29209e0c23b96c19c539d3ede038a902aa /core/java/android/pim | |
parent | d4344ba9ba5091c7f10c927c3ca8917ee496e87b (diff) | |
download | frameworks_base-718eaff0fadd999f488417fab1c05dca13ca0451.zip frameworks_base-718eaff0fadd999f488417fab1c05dca13ca0451.tar.gz frameworks_base-718eaff0fadd999f488417fab1c05dca13ca0451.tar.bz2 |
Fix small bugs in VCardComposer.java.
- The logic for emitting "FN" is wrong.
- FileWriter's "double close" problem should occur in the current implementation.
- Let VCardParser_V31.java ignore AGENT field instead of throwing an unkind VCardNotSupportedException.
Diffstat (limited to 'core/java/android/pim')
-rw-r--r-- | core/java/android/pim/vcard/VCardComposer.java | 12 | ||||
-rw-r--r-- | core/java/android/pim/vcard/VCardParser_V30.java | 11 |
2 files changed, 17 insertions, 6 deletions
diff --git a/core/java/android/pim/vcard/VCardComposer.java b/core/java/android/pim/vcard/VCardComposer.java index 5a09c64..6554827 100644 --- a/core/java/android/pim/vcard/VCardComposer.java +++ b/core/java/android/pim/vcard/VCardComposer.java @@ -103,7 +103,7 @@ public class VCardComposer { private OutputStream mOutputStream; // mWriter will close this. private Writer mWriter; - private boolean mFinishIsCalled = false; + private boolean mOnTerminateIsCalled = false; /** * Input stream will be closed on the detruction of this object. @@ -152,6 +152,7 @@ public class VCardComposer { } public void onTerminate() { + mOnTerminateIsCalled = true; if (mWriter != null) { try { // Flush and sync the data so that a user is able to pull @@ -177,7 +178,7 @@ public class VCardComposer { @Override public void finalize() { - if (!mFinishIsCalled) { + if (!mOnTerminateIsCalled) { onTerminate(); } } @@ -604,11 +605,11 @@ public class VCardComposer { // FN property builder.append(VCARD_PROPERTY_FULL_NAME); - builder.append(VCARD_ATTR_SEPARATOR); if (!VCardUtils.containsOnlyAscii(encodedFullname)) { + builder.append(VCARD_ATTR_SEPARATOR); builder.append(mVCardAttributeCharset); - builder.append(VCARD_DATA_SEPARATOR); } + builder.append(VCARD_DATA_SEPARATOR); builder.append(encodedFullname); builder.append(VCARD_COL_SEPARATOR); } else if (!TextUtils.isEmpty(displayName)) { @@ -1242,6 +1243,9 @@ public class VCardComposer { case Email.TYPE_OTHER: builder.append(Constants.ATTR_TYPE_INTERNET); break; + case Email.TYPE_MOBILE: + builder.append(Constants.ATTR_TYPE_CELL); + break; default: Log.e(LOG_TAG, "Unknown Email type: " + type); builder.append(Constants.ATTR_TYPE_INTERNET); diff --git a/core/java/android/pim/vcard/VCardParser_V30.java b/core/java/android/pim/vcard/VCardParser_V30.java index 475be4e..384649a 100644 --- a/core/java/android/pim/vcard/VCardParser_V30.java +++ b/core/java/android/pim/vcard/VCardParser_V30.java @@ -47,6 +47,8 @@ public class VCardParser_V30 extends VCardParser_V21 { private String mPreviousLine; + private boolean mEmittedAgentWarning = false; + @Override protected String getVersion() { return Constants.VERSION_V30; @@ -221,7 +223,7 @@ public class VCardParser_V30 extends VCardParser_V21 { } @Override - protected void handleAgent(String propertyValue) throws VCardException { + protected void handleAgent(String propertyValue) { // The way how vCard 3.0 supports "AGENT" is completely different from vCard 2.0. // // e.g. @@ -238,7 +240,12 @@ public class VCardParser_V30 extends VCardParser_V21 { // CID:JQPUBLIC.part3.960129T083020.xyzMail@host3.com // // This is not VCARD. Should we support this? - throw new VCardException("AGENT in vCard 3.0 is not supported yet."); + // throw new VCardException("AGENT in vCard 3.0 is not supported yet."); + if (!mEmittedAgentWarning) { + Log.w(LOG_TAG, "AGENT in vCard 3.0 is not supported yet. Ignore it"); + mEmittedAgentWarning = true; + } + // Just ignore the line for now, since we cannot know how to handle it... } /** |