summaryrefslogtreecommitdiffstats
path: root/core/java/android/pim
diff options
context:
space:
mode:
authorDaisuke Miyakawa <dmiyakawa@google.com>2010-04-20 17:32:38 +0900
committerDaisuke Miyakawa <dmiyakawa@google.com>2010-04-20 18:27:10 +0900
commit6db2c6cab5dd4970614363d53f08bf51b79de6e7 (patch)
tree365ea998aa9daa68695fb4430d5ad23ca75f1844 /core/java/android/pim
parent394026c53ece15d66bfdc256446474adaf3a6ee7 (diff)
downloadframeworks_base-6db2c6cab5dd4970614363d53f08bf51b79de6e7.zip
frameworks_base-6db2c6cab5dd4970614363d53f08bf51b79de6e7.tar.gz
frameworks_base-6db2c6cab5dd4970614363d53f08bf51b79de6e7.tar.bz2
Refactoring vCard: remove Shift_JIS information from flags.
Change-Id: I34ef498b3312178e7d358b0c8ebc34703abfc771
Diffstat (limited to 'core/java/android/pim')
-rw-r--r--core/java/android/pim/vcard/VCardBuilder.java9
-rw-r--r--core/java/android/pim/vcard/VCardComposer.java44
-rw-r--r--core/java/android/pim/vcard/VCardConfig.java67
3 files changed, 31 insertions, 89 deletions
diff --git a/core/java/android/pim/vcard/VCardBuilder.java b/core/java/android/pim/vcard/VCardBuilder.java
index a44f2e7..789b5f8 100644
--- a/core/java/android/pim/vcard/VCardBuilder.java
+++ b/core/java/android/pim/vcard/VCardBuilder.java
@@ -144,18 +144,13 @@ public class VCardBuilder {
mAppendTypeParamName = VCardConfig.appendTypeParamName(vcardType);
mNeedsToConvertPhoneticString = VCardConfig.needsToConvertPhoneticString(vcardType);
- // TODO: remove this flag since the bit for it is actually 0.
- final boolean shouldUseUtf8 = VCardConfig.shouldUseUtf8ForExport(vcardType);
-
- final boolean shouldUseShiftJis = VCardConfig.shouldUseShiftJisForExport(vcardType);
-
// vCard 2.1 requires charset.
// vCard 3.0 does not allow it but we found some devices use it to determine
// the exact charset.
// We currently append it only when charset other than UTF_8 is used.
- mShouldAppendCharsetParam = !(mIsV30 && shouldUseUtf8);
+ mShouldAppendCharsetParam = !(mIsV30 && "UTF-8".equalsIgnoreCase(charset));
- if (VCardConfig.isDoCoMo(vcardType) || shouldUseShiftJis) {
+ if (VCardConfig.isDoCoMo(vcardType)) {
if (!SHIFT_JIS.equalsIgnoreCase(charset)) {
Log.w(LOG_TAG,
"The charset \"" + charset + "\" is used while "
diff --git a/core/java/android/pim/vcard/VCardComposer.java b/core/java/android/pim/vcard/VCardComposer.java
index 6d4aaa9..8c007fe 100644
--- a/core/java/android/pim/vcard/VCardComposer.java
+++ b/core/java/android/pim/vcard/VCardComposer.java
@@ -290,8 +290,8 @@ public class VCardComposer {
this(context, vcardType, null, true);
}
- public VCardComposer(Context context, String vcardTypeStr, boolean careHandlerErrors) {
- this(context, VCardConfig.getVCardTypeFromString(vcardTypeStr), careHandlerErrors);
+ public VCardComposer(Context context, int vcardType, String charset) {
+ this(context, vcardType, charset, true);
}
/**
@@ -323,24 +323,12 @@ public class VCardComposer {
mIsDoCoMo = VCardConfig.isDoCoMo(vcardType);
mHandlerList = new ArrayList<OneEntryHandler>();
- if (mIsDoCoMo || VCardConfig.shouldUseShiftJisForExport(vcardType)) {
- if (!SHIFT_JIS.equalsIgnoreCase(charset)) {
- Log.w(LOG_TAG,
- "The charset \"" + charset + "\" is used while "
- + SHIFT_JIS + " is needed to be used.");
- if (TextUtils.isEmpty(charset)) {
- mCharset = SHIFT_JIS;
- } else {
- try {
- charset = CharsetUtils.charsetForVendor(charset).name();
- } catch (UnsupportedCharsetException e) {
- Log.i(LOG_TAG,
- "Career-specific \"" + charset + "\" was not found (as usual). "
- + "Use it as is.");
- }
- mCharset = charset;
- }
- } else {
+ charset = (TextUtils.isEmpty(charset) ? VCardConfig.DEFAULT_EXPORT_CHARSET : charset);
+ final boolean shouldAppendCharsetParam = !(
+ VCardConfig.isV30(vcardType) && UTF_8.equalsIgnoreCase(charset));
+
+ if (mIsDoCoMo || shouldAppendCharsetParam) {
+ if (SHIFT_JIS.equalsIgnoreCase(charset)) {
if (mIsDoCoMo) {
try {
charset = CharsetUtils.charsetForVendor(SHIFT_JIS, "docomo").name();
@@ -361,6 +349,22 @@ public class VCardComposer {
}
}
mCharset = charset;
+ } else {
+ Log.w(LOG_TAG,
+ "The charset \"" + charset + "\" is used while "
+ + SHIFT_JIS + " is needed to be used.");
+ if (TextUtils.isEmpty(charset)) {
+ mCharset = SHIFT_JIS;
+ } else {
+ try {
+ charset = CharsetUtils.charsetForVendor(charset).name();
+ } catch (UnsupportedCharsetException e) {
+ Log.i(LOG_TAG,
+ "Career-specific \"" + charset + "\" was not found (as usual). "
+ + "Use it as is.");
+ }
+ mCharset = charset;
+ }
}
} else {
if (TextUtils.isEmpty(charset)) {
diff --git a/core/java/android/pim/vcard/VCardConfig.java b/core/java/android/pim/vcard/VCardConfig.java
index 623572b..657672c 100644
--- a/core/java/android/pim/vcard/VCardConfig.java
+++ b/core/java/android/pim/vcard/VCardConfig.java
@@ -76,15 +76,6 @@ public class VCardConfig {
// 0x10 is reserved for safety
- /*
- * These flags are ignored when charset is explicitly given by a caller.
- *
- * TODO: remove this field. DO NOT USE ANY MORE.
- */
- private static final int FLAG_USE_UTF8_FOR_EXPORT = 0;
- private static final int FLAG_USE_SHIFT_JIS_FOR_EXPORT = 0x100;
- private static final int FLAG_CHARSET_MASK_FOR_EKPORT = 0xF00;
-
/**
* <p>
* The flag indicating the vCard composer will add some "X-" properties used only in Android
@@ -347,36 +338,6 @@ public class VCardConfig {
/**
* <p>
- * vCard 2.1 format for miscellaneous Japanese devices. Shift_Jis is used for
- * parsing/composing the vCard data.
- * </p>
- * <p>
- * Not ready yet. Use with caution when you use this.
- * </p>
- */
- public static final int VCARD_TYPE_V21_JAPANESE_SJIS =
- (FLAG_V21 | NAME_ORDER_JAPANESE | FLAG_USE_SHIFT_JIS_FOR_EXPORT |
- FLAG_USE_DEFACT_PROPERTY | FLAG_USE_ANDROID_PROPERTY);
-
- /* package */ static final String VCARD_TYPE_V21_JAPANESE_SJIS_STR = "v21_japanese_sjis";
-
- /**
- * <p>
- * vCard format for miscellaneous Japanese devices, using Shift_Jis for
- * parsing/composing the vCard data.
- * </p>
- * <p>
- * Not ready yet. Use with caution when you use this.
- * </p>
- */
- public static final int VCARD_TYPE_V30_JAPANESE_SJIS =
- (FLAG_V30 | NAME_ORDER_JAPANESE | FLAG_USE_SHIFT_JIS_FOR_EXPORT |
- FLAG_USE_DEFACT_PROPERTY | FLAG_USE_ANDROID_PROPERTY);
-
- /* package */ static final String VCARD_TYPE_V30_JAPANESE_SJIS_STR = "v30_japanese_sjis";
-
- /**
- * <p>
* The vCard 3.0 format for miscellaneous Japanese devices, using UTF-8 as default charset.
* </p>
* <p>
@@ -392,14 +353,13 @@ public class VCardConfig {
* <p>
* The vCard 2.1 based format which (partially) considers the convention in Japanese
* mobile phones, where phonetic names are translated to half-width katakana if
- * possible, etc.
- * </p>
- * <p>
- * Not ready yet. Use with caution when you use this.
+ * possible, etc. It would be better to use Shift_JIS as a charset for maximum
+ * compatibility.
* </p>
+ * @hide Should not be available world wide.
*/
public static final int VCARD_TYPE_V21_JAPANESE_MOBILE =
- (FLAG_V21 | NAME_ORDER_JAPANESE | FLAG_USE_SHIFT_JIS_FOR_EXPORT |
+ (FLAG_V21 | NAME_ORDER_JAPANESE |
FLAG_CONVERT_PHONETIC_NAME_STRINGS | FLAG_REFRAIN_QP_TO_NAME_PROPERTIES);
/* package */ static final String VCARD_TYPE_V21_JAPANESE_MOBILE_STR = "v21_japanese_mobile";
@@ -413,6 +373,7 @@ public class VCardConfig {
* No Android-specific property nor defact property is included. The "Primary" properties
* are NOT encoded to Quoted-Printable.
* </p>
+ * @hide Should not be available world wide.
*/
public static final int VCARD_TYPE_DOCOMO =
(VCARD_TYPE_V21_JAPANESE_MOBILE | FLAG_DOCOMO);
@@ -430,18 +391,13 @@ public class VCardConfig {
sVCardTypeMap.put(VCARD_TYPE_V30_GENERIC_STR, VCARD_TYPE_V30_GENERIC);
sVCardTypeMap.put(VCARD_TYPE_V21_EUROPE_STR, VCARD_TYPE_V21_EUROPE);
sVCardTypeMap.put(VCARD_TYPE_V30_EUROPE_STR, VCARD_TYPE_V30_EUROPE);
- sVCardTypeMap.put(VCARD_TYPE_V21_JAPANESE_SJIS_STR, VCARD_TYPE_V21_JAPANESE_SJIS);
sVCardTypeMap.put(VCARD_TYPE_V21_JAPANESE_STR, VCARD_TYPE_V21_JAPANESE);
- sVCardTypeMap.put(VCARD_TYPE_V30_JAPANESE_SJIS_STR, VCARD_TYPE_V30_JAPANESE_SJIS);
sVCardTypeMap.put(VCARD_TYPE_V30_JAPANESE_STR, VCARD_TYPE_V30_JAPANESE);
sVCardTypeMap.put(VCARD_TYPE_V21_JAPANESE_MOBILE_STR, VCARD_TYPE_V21_JAPANESE_MOBILE);
sVCardTypeMap.put(VCARD_TYPE_DOCOMO_STR, VCARD_TYPE_DOCOMO);
sJapaneseMobileTypeSet = new HashSet<Integer>();
- sJapaneseMobileTypeSet.add(VCARD_TYPE_V21_JAPANESE_SJIS);
sJapaneseMobileTypeSet.add(VCARD_TYPE_V21_JAPANESE);
- sJapaneseMobileTypeSet.add(VCARD_TYPE_V21_JAPANESE_SJIS);
- sJapaneseMobileTypeSet.add(VCARD_TYPE_V30_JAPANESE_SJIS);
sJapaneseMobileTypeSet.add(VCARD_TYPE_V30_JAPANESE);
sJapaneseMobileTypeSet.add(VCARD_TYPE_V21_JAPANESE_MOBILE);
sJapaneseMobileTypeSet.add(VCARD_TYPE_DOCOMO);
@@ -467,19 +423,6 @@ public class VCardConfig {
return !isV30(vcardType);
}
- /* package */ static boolean shouldUseUtf8ForExport(final int vcardType) {
- return ((vcardType & FLAG_CHARSET_MASK_FOR_EKPORT) == FLAG_USE_UTF8_FOR_EXPORT);
- }
-
- /**
- * Shift_JIS (a charset for Japanese text files) needs special handling to select
- * carrer specific variants.
- * @hide just for test
- */
- public static boolean shouldUseShiftJisForExport(final int vcardType) {
- return ((vcardType & FLAG_CHARSET_MASK_FOR_EKPORT) == FLAG_USE_SHIFT_JIS_FOR_EXPORT);
- }
-
public static int getNameOrderType(final int vcardType) {
return vcardType & NAME_ORDER_MASK;
}