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) {