summaryrefslogtreecommitdiffstats
path: root/core/java/android/pim
diff options
context:
space:
mode:
authorDaisuke Miyakawa <dmiyakawa@google.com>2009-09-07 13:00:11 +0900
committerDaisuke Miyakawa <dmiyakawa@google.com>2009-09-07 22:14:08 +0900
commit718eaff0fadd999f488417fab1c05dca13ca0451 (patch)
tree77763d29209e0c23b96c19c539d3ede038a902aa /core/java/android/pim
parentd4344ba9ba5091c7f10c927c3ca8917ee496e87b (diff)
downloadframeworks_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.java12
-rw-r--r--core/java/android/pim/vcard/VCardParser_V30.java11
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...
}
/**