diff options
| author | Daisuke Miyakawa <dmiyakawa@google.com> | 2010-04-20 17:32:38 +0900 |
|---|---|---|
| committer | Daisuke Miyakawa <dmiyakawa@google.com> | 2010-04-20 18:27:10 +0900 |
| commit | 6db2c6cab5dd4970614363d53f08bf51b79de6e7 (patch) | |
| tree | 365ea998aa9daa68695fb4430d5ad23ca75f1844 /core/java/android/pim | |
| parent | 394026c53ece15d66bfdc256446474adaf3a6ee7 (diff) | |
| download | frameworks_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.java | 9 | ||||
| -rw-r--r-- | core/java/android/pim/vcard/VCardComposer.java | 44 | ||||
| -rw-r--r-- | core/java/android/pim/vcard/VCardConfig.java | 67 |
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; } |
