From 9ae81e2af07219bfad26c882516343e83c16d926 Mon Sep 17 00:00:00 2001 From: Yu Ping Hu Date: Thu, 14 Mar 2013 19:58:21 -0700 Subject: [PATCH] Move system folder string resources to emailcommon. This permits us to move shared code for looking up system folder names to emailcommon, which is also in this change. Also renames emailcommon2 to emailcommon. This is part of a multi-project submit with I4a071a07c3e33aaa4ea404eb66a8db1eabc9ef0e and I5746c0353783f9b29d52d6540472588c6542a6a2. Bug: 8383232 Change-Id: I6c6eec4f1bcf2abd54c1ed05da1add8d894ee403 --- Android.mk | 9 +++-- CleanSpec.mk | 3 +- emailcommon/Android.mk | 4 +- emailcommon/AndroidManifest.xml | 5 +++ emailcommon/res/values/strings.xml | 38 +++++++++++++++++++ .../android/emailcommon/provider/Mailbox.java | 36 +++++++++++++++++- emailsync/Android.mk | 2 +- res/values/strings.xml | 14 ------- .../android/email/mail/store/Pop3Store.java | 34 +---------------- .../android/email/provider/EmailProvider.java | 37 ++---------------- 10 files changed, 92 insertions(+), 90 deletions(-) create mode 100644 emailcommon/AndroidManifest.xml create mode 100644 emailcommon/res/values/strings.xml diff --git a/Android.mk b/Android.mk index 8d61024a2..cc9a53549 100644 --- a/Android.mk +++ b/Android.mk @@ -19,11 +19,12 @@ LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) -# Include res dir from chips, unified, and photoviewer +# Include res dir from chips, unified, emailcommon, and photoviewer chips_dir := ../../../frameworks/ex/chips/res unified_email_dir := ../UnifiedEmail photo_dir := ../../../frameworks/opt/photoviewer/res -res_dir := $(chips_dir) res $(unified_email_dir)/res $(photo_dir) build/res +emailcommon_dir := emailcommon +res_dir := $(chips_dir) res $(unified_email_dir)/res $(photo_dir) $(emailcommon_dir)/res build/res LOCAL_MODULE_TAGS := optional @@ -38,9 +39,9 @@ LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(res_dir)) LOCAL_ASSET_DIR := $(LOCAL_PATH)/$(unified_email_dir)/assets LOCAL_AAPT_FLAGS := --auto-add-overlay -LOCAL_AAPT_FLAGS += --extra-packages com.android.ex.chips:com.android.mail:com.android.email:com.android.ex.photo +LOCAL_AAPT_FLAGS += --extra-packages com.android.ex.chips:com.android.mail:com.android.email:com.android.emailcommon:com.android.ex.photo -LOCAL_STATIC_JAVA_LIBRARIES := android-common com.android.emailcommon2 com.android.emailsync guava android-common-chips libphotoviewer +LOCAL_STATIC_JAVA_LIBRARIES := android-common com.android.emailcommon com.android.emailsync guava android-common-chips libphotoviewer LOCAL_STATIC_JAVA_LIBRARIES += android-support-v4 LOCAL_STATIC_JAVA_LIBRARIES += android-support-v13 diff --git a/CleanSpec.mk b/CleanSpec.mk index 8a60b6966..289e65b24 100644 --- a/CleanSpec.mk +++ b/CleanSpec.mk @@ -50,4 +50,5 @@ $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.email*) $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Email*) $(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.email*) -$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Email*) \ No newline at end of file +$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/Email*) +$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/com.android.email*) \ No newline at end of file diff --git a/emailcommon/Android.mk b/emailcommon/Android.mk index 872e6c227..55f9525ca 100644 --- a/emailcommon/Android.mk +++ b/emailcommon/Android.mk @@ -31,7 +31,7 @@ imported_unified_email_files := \ $(unified_email_src_dir)/com/android/mail/utils/LogUtils.java \ $(unified_email_src_dir)/com/android/mail/providers/UIProvider.java -LOCAL_MODULE := com.android.emailcommon2 +LOCAL_MODULE := com.android.emailcommon LOCAL_STATIC_JAVA_LIBRARIES := guava android-common LOCAL_SRC_FILES := $(call all-java-files-under, src/com/android/emailcommon) LOCAL_SRC_FILES += \ @@ -44,4 +44,6 @@ LOCAL_SRC_FILES += $(imported_unified_email_files) LOCAL_SDK_VERSION := 14 +LOCAL_RESOURCE_DIR := $(LOCAL_PATH)/res + include $(BUILD_STATIC_JAVA_LIBRARY) diff --git a/emailcommon/AndroidManifest.xml b/emailcommon/AndroidManifest.xml new file mode 100644 index 000000000..a31137da4 --- /dev/null +++ b/emailcommon/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + diff --git a/emailcommon/res/values/strings.xml b/emailcommon/res/values/strings.xml new file mode 100644 index 000000000..15acd80e8 --- /dev/null +++ b/emailcommon/res/values/strings.xml @@ -0,0 +1,38 @@ + + + + + + Inbox + + Outbox + + Drafts + + Trash + + Sent + + Junk + + Starred + diff --git a/emailcommon/src/com/android/emailcommon/provider/Mailbox.java b/emailcommon/src/com/android/emailcommon/provider/Mailbox.java index 77d5138b0..e8d5c1c55 100644 --- a/emailcommon/src/com/android/emailcommon/provider/Mailbox.java +++ b/emailcommon/src/com/android/emailcommon/provider/Mailbox.java @@ -27,6 +27,7 @@ import android.os.Parcelable; import android.util.Log; import com.android.emailcommon.Logging; +import com.android.emailcommon.R; import com.android.emailcommon.provider.EmailContent.MailboxColumns; import com.android.emailcommon.provider.EmailContent.SyncColumns; import com.android.emailcommon.utility.Utility; @@ -229,6 +230,36 @@ public class Mailbox extends EmailContent implements SyncColumns, MailboxColumns mBaseUri = CONTENT_URI; } + public static String getSystemMailboxName(Context context, int mailboxType) { + int resId = -1; + switch (mailboxType) { + case Mailbox.TYPE_INBOX: + resId = R.string.mailbox_name_server_inbox; + break; + case Mailbox.TYPE_OUTBOX: + resId = R.string.mailbox_name_server_outbox; + break; + case Mailbox.TYPE_DRAFTS: + resId = R.string.mailbox_name_server_drafts; + break; + case Mailbox.TYPE_TRASH: + resId = R.string.mailbox_name_server_trash; + break; + case Mailbox.TYPE_SENT: + resId = R.string.mailbox_name_server_sent; + break; + case Mailbox.TYPE_JUNK: + resId = R.string.mailbox_name_server_junk; + break; + case Mailbox.TYPE_STARRED: + resId = R.string.mailbox_name_server_starred; + break; + default: + throw new IllegalArgumentException("Illegal mailbox type"); + } + return context.getString(resId); + } + /** * Restore a Mailbox from the database, given its unique id * @param context @@ -246,7 +277,7 @@ public class Mailbox extends EmailContent implements SyncColumns, MailboxColumns * system mailboxes synced with the server. * Note: the mailbox is not persisted - clients must call {@link #save} themselves. */ - public static Mailbox newSystemMailbox(long accountId, int mailboxType, String name) { + public static Mailbox newSystemMailbox(Context context, long accountId, int mailboxType) { if (mailboxType == Mailbox.TYPE_MAIL) { throw new IllegalArgumentException("Cannot specify TYPE_MAIL for a system mailbox"); } @@ -255,7 +286,8 @@ public class Mailbox extends EmailContent implements SyncColumns, MailboxColumns box.mType = mailboxType; box.mSyncInterval = Account.CHECK_INTERVAL_NEVER; box.mFlagVisible = true; - box.mServerId = box.mDisplayName = name; + // TODO: Fix how display names work. + box.mServerId = box.mDisplayName = getSystemMailboxName(context, mailboxType); box.mParentKey = Mailbox.NO_MAILBOX; box.mFlags = Mailbox.FLAG_HOLDS_MAIL; return box; diff --git a/emailsync/Android.mk b/emailsync/Android.mk index 0076c5d72..5f18d175d 100644 --- a/emailsync/Android.mk +++ b/emailsync/Android.mk @@ -23,7 +23,7 @@ include $(CLEAR_VARS) LOCAL_MODULE := com.android.emailsync LOCAL_SRC_FILES := $(call all-java-files-under, src/com/android/emailsync) -LOCAL_STATIC_JAVA_LIBRARIES := com.android.emailcommon2 +LOCAL_STATIC_JAVA_LIBRARIES := com.android.emailcommon LOCAL_SDK_VERSION := 14 diff --git a/res/values/strings.xml b/res/values/strings.xml index 72d1261ca..d53cfd618 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -179,20 +179,6 @@ %1$d account %1$d accounts - - - Inbox - - Outbox - - Drafts - - Trash - - Sent - - Junk - Inbox diff --git a/src/com/android/email/mail/store/Pop3Store.java b/src/com/android/email/mail/store/Pop3Store.java index e7814029b..26ccfe824 100644 --- a/src/com/android/email/mail/store/Pop3Store.java +++ b/src/com/android/email/mail/store/Pop3Store.java @@ -126,8 +126,7 @@ public class Pop3Store extends Store { // Build default mailboxes as well, in case they're not already made. for (int type : DEFAULT_FOLDERS) { if (Mailbox.findMailboxOfType(mContext, mAccount.mId, type) == Mailbox.NO_MAILBOX) { - String name = getMailboxServerName(mContext, type); - mailbox = Mailbox.newSystemMailbox(mAccount.mId, type, name); + mailbox = Mailbox.newSystemMailbox(mContext, mAccount.mId, type); mailbox.save(mContext); } } @@ -135,37 +134,6 @@ public class Pop3Store extends Store { return new Folder[] { getFolder(inboxName) }; } - - /** - * Returns the server-side name for a specific mailbox. - * - * @return the resource string corresponding to the mailbox type, empty if not found. - */ - public String getMailboxServerName(Context context, int mailboxType) { - int resId = -1; - switch (mailboxType) { - case Mailbox.TYPE_INBOX: - resId = R.string.mailbox_name_server_inbox; - break; - case Mailbox.TYPE_OUTBOX: - resId = R.string.mailbox_name_server_outbox; - break; - case Mailbox.TYPE_DRAFTS: - resId = R.string.mailbox_name_server_drafts; - break; - case Mailbox.TYPE_TRASH: - resId = R.string.mailbox_name_server_trash; - break; - case Mailbox.TYPE_SENT: - resId = R.string.mailbox_name_server_sent; - break; - case Mailbox.TYPE_JUNK: - resId = R.string.mailbox_name_server_junk; - break; - } - return resId != -1 ? context.getString(resId) : ""; - } - /** * Used by account setup to test if an account's settings are appropriate. The definition * of "checked" here is simply, can you log into the account and does it meet some minimum set diff --git a/src/com/android/email/provider/EmailProvider.java b/src/com/android/email/provider/EmailProvider.java index bee90637d..c1492e0bf 100644 --- a/src/com/android/email/provider/EmailProvider.java +++ b/src/com/android/email/provider/EmailProvider.java @@ -3027,7 +3027,8 @@ outer: Object[] values = new Object[UIProvider.FOLDERS_PROJECTION.length]; values[UIProvider.FOLDER_ID_COLUMN] = 0; values[UIProvider.FOLDER_URI_COLUMN] = combinedUriString("uifolder", idString); - values[UIProvider.FOLDER_NAME_COLUMN] = getMailboxNameForType(mailboxType); + values[UIProvider.FOLDER_NAME_COLUMN] = + Mailbox.getSystemMailboxName(getContext(), mailboxType); values[UIProvider.FOLDER_HAS_CHILDREN_COLUMN] = 0; values[UIProvider.FOLDER_CAPABILITIES_COLUMN] = UIProvider.FolderCapabilities.IS_VIRTUAL; values[UIProvider.FOLDER_CONVERSATION_LIST_URI_COLUMN] = combinedUriString("uimessages", @@ -3485,44 +3486,12 @@ outer: return att; } - private String getMailboxNameForType(int mailboxType) { - Context context = getContext(); - int resId; - switch (mailboxType) { - case Mailbox.TYPE_INBOX: - resId = R.string.mailbox_name_server_inbox; - break; - case Mailbox.TYPE_OUTBOX: - resId = R.string.mailbox_name_server_outbox; - break; - case Mailbox.TYPE_DRAFTS: - resId = R.string.mailbox_name_server_drafts; - break; - case Mailbox.TYPE_TRASH: - resId = R.string.mailbox_name_server_trash; - break; - case Mailbox.TYPE_SENT: - resId = R.string.mailbox_name_server_sent; - break; - case Mailbox.TYPE_JUNK: - resId = R.string.mailbox_name_server_junk; - break; - case Mailbox.TYPE_STARRED: - resId = R.string.widget_starred; - break; - default: - throw new IllegalArgumentException("Illegal mailbox type"); - } - return context.getString(resId); - } - /** * Create a mailbox given the account and mailboxType. */ private Mailbox createMailbox(long accountId, int mailboxType) { Context context = getContext(); - Mailbox box = Mailbox.newSystemMailbox(accountId, mailboxType, - getMailboxNameForType(mailboxType)); + Mailbox box = Mailbox.newSystemMailbox(context, accountId, mailboxType); // Make sure drafts and save will show up in recents... // If these already exist (from old Email app), they will have touch times switch (mailboxType) {