diff --git a/email2/Android.mk b/email2/Android.mk index 4f3763b68..ec39ac4f8 100644 --- a/email2/Android.mk +++ b/email2/Android.mk @@ -44,7 +44,7 @@ LOCAL_STATIC_JAVA_LIBRARIES := android-common com.android.emailcommon guava andr LOCAL_PACKAGE_NAME := Email2 -LOCAL_PROGUARD_FLAG_FILES := proguard.flags +LOCAL_PROGUARD_FLAG_FILES := proguard.flags $(unified_email_dir)/proguard.flags LOCAL_SDK_VERSION := current diff --git a/email2/proguard.flags b/email2/proguard.flags index 325f366a3..4ead936ec 100644 --- a/email2/proguard.flags +++ b/email2/proguard.flags @@ -1,2 +1,217 @@ -#Email-specific proguard flags that are not covered by UnifiedEmail go here (none so far) +#Email-specific proguard flags that are not covered by UnifiedEmail go here +-keep class com.android.emailcommon.provider.Account + +-keepclasseswithmembers class * { + public static void actionEditIncomingSettings(android.app.Activity, int, com.android.emailcommon.provider.Account); +} + +-keepclasseswithmembers class * { + public static void actionEditOutgoingSettings(android.app.Activity, int, com.android.emailcommon.provider.Account); +} + +-keepclasseswithmembers class * { + public *** newInstance(com.android.emailcommon.provider.Account, android.content.Context); +} + +-keepclasseswithmembers class * { + public *** newInstance(com.android.emailcommon.provider.Account, android.content.Context); +} + +-keepclasseswithmembers class android.content.SharedPreferences$Editor { + *** apply(); +} + +-keepclasseswithmembers class com.android.emailcommon.utility.Utility$CloseTraceCursorWrapper { + *** getTraceIfAvailable(android.database.Cursor); + *** log(android.database.Cursor); +} + +-keep class * extends org.apache.james.mime4j.util.TempStorage + +# Keep names that are used only by unit tests or by animators +-keep class ** { + *** *ForTest(...); + *** *Anim(...); +} + +-keepclasseswithmembers class com.android.email.activity.RecentMailboxManager { + *** touch(long); + *** getInstance(android.content.Context); + *** getMostRecent(long, boolean); +} + +-keepclasseswithmembers class com.android.email.activity.setup.AccountSetupAccountType { + *** checkAccountInstanceLimit(com.android.email.mail.Store$StoreInfo); +} + +-keepclasseswithmembers class com.android.email.GroupMessagingListener { + *** removeListener(com.android.email.MessagingListener); +} + +-keepclasseswithmembers class com.android.email.Controller { + *** setProviderContext(android.content.Context); +} + +-keepclasseswithmembers class com.android.emailcommon.internet.Rfc822Output { + *** getHtmlBody(java.lang.String); + *** buildBodyText(android.content.Context, com.android.emailcommon.provider.EmailContent$Message, boolean); +} + +-keepclasseswithmembers class com.android.emailcommon.mail.Address { + (java.lang.String); + (java.lang.String,java.lang.String); + *** parseAndPack(java.lang.String); +} + +-keepclasseswithmembers class com.android.email.SecurityPolicy { + *** setContext(android.content.Context); +} + +-keepclasseswithmembers class com.android.email.MessagingController { + *** injectMockController(com.android.email.MessagingController); +} + +-keepclasseswithmembers class com.android.emailcommon.utility.Utility { + *** dumpCursor(android.database.Cursor); + *** fromUtf8(byte[]); + *** isFirstUtf8Byte(byte); + *** replaceBareLfWithCrlf(java.lang.String); +} +-keepclasseswithmembers class com.android.emailcommon.utility.Utility$CloseTraceCursorWrapper { + *** getTraceIfAvailable(android.database.Cursor); + *** log(android.database.Cursor); +} + +-keepclasseswithmembers class com.android.email.provider.EmailProvider { + *** getReadableDatabase(android.content.Context); +} + +-keepclasseswithmembers class com.android.emailcommon.provider.EmailContent$Attachment { + *** createUniqueFile(java.lang.String); +} + +-keepclasseswithmembers class com.android.email.service.AttachmentDownloadService { + *** addServiceClass(long, java.lang.Class); +} + +-keepclasseswithmembers class com.android.email.service.AttachmentDownloadService$AccountManagerStub { + *** setNumberOfAccounts(int); +} + +-keepclasseswithmembers class com.android.email.Preferences { + *** getAccountByContentUri(android.net.Uri); +} + +-keep class com.android.emailcommon.mail.Message$RecipientType + +-keepclasseswithmembers class com.android.emailcommon.mail.Message { + *** setRecipient(com.android.emailcommon.mail.Message$RecipientType, com.android.emailcommon.mail.Address); +} + +-keepclasseswithmembers class com.android.emailcommon.internet.MimeHeader { + *** writeToString(); +} + +-keepclasseswithmembers class com.android.emailcommon.internet.MimeMessage { + (); + (java.io.InputStream); + *** getExtendedHeader(java.lang.String); + *** setExtendedHeader(java.lang.String, java.lang.String); + *** getExtendedHeaders(); + *** setExtendedHeaders(java.lang.String); +} + +-keepclasseswithmembers class com.android.emailcommon.internet.MimeUtility { + *** foldAndEncode(java.lang.String); + *** findPartByContentId(com.android.emailcommon.mail.Part, java.lang.String); + *** findFirstPartByMimeType(com.android.emailcommon.mail.Part, java.lang.String); +} + +-keepclasseswithmembers class com.android.email.mail.transport.SmtpSender { + *** setTransport(com.android.email.mail.Transport); +} + +-keepclasseswithmembers class com.android.email.mail.Store { + *** requireStructurePrefetch(); +} + +-keepclasseswithmembers class com.android.email.mail.store.ImapStore { + *** setTransport(com.android.email.mail.Transport); +} + +-keepclasseswithmembers class com.android.email.mail.store.ImapFolder { + *** getMessages(int, int, com.android.emailcommon.mail.Folder$MessageRetrievalListener); + *** getMessages(com.android.emailcommon.mail.Folder$MessageRetrievalListener); + *** getMessages(java.lang.String[], com.android.emailcommon.mail.Folder$MessageRetrievalListener); + *** getUnreadMessageCount(); +} + +-keepclasseswithmembers class com.android.email.mail.store.Pop3Store { + *** setTransport(com.android.email.mail.Transport); +} + +-keepclasseswithmembers class com.android.email.mail.store.Pop3Store$Pop3Folder { + *** getMessages(int, int, com.android.emailcommon.mail.Folder$MessageRetrievalListener); + *** getMessages(com.android.emailcommon.mail.Folder$MessageRetrievalListener); + *** getMessages(java.lang.String[], com.android.emailcommon.mail.Folder$MessageRetrievalListener); + *** getUnreadMessageCount(); + *** isOpen(); +} + +-keep class com.android.emailcommon.mail.Flag + +-keepclasseswithmembers class com.android.emailcommon.mail.Folder { + *** getUnreadMessageCount(); + *** delete(boolean); + *** getRole(); +} + +-keep class com.android.emailcommon.mail.Folder$FolderRole + +-keepclasseswithmembers class com.android.emailcommon.mail.PackedString$Builder { + (); + (java.lang.String); + *** get(java.lang.String); + *** put(java.lang.String, java.lang.String); +} + +-keepclasseswithmembers class com.android.email.provider.ContentCache$CounterMap { + *** getCount(...); + *** size(); +} + +-keepclasseswithmembers class com.android.emailcommon.provider.Account { + *** getShortcutSafeUri(); + *** refresh(android.content.Context); +} + +-keepclasseswithmembers class com.android.emailcommon.provider.Policy { + *** setAttachmentFlagsForNewPolicy(android.content.Context, + com.android.emailcommon.provider.Account, + com.android.emailcommon.provider.Policy); + *** clearAccountPolicy(android.content.Context, + com.android.emailcommon.provider.Account); +} + +-keep class org.apache.james.mime4j.field.Field { + *** getBody(); +} + +-keepclasseswithmembers class com.android.email.FolderProperties { + *** getDisplayName(int); +} + +# The following classes are used only by unit tests. +# We should move them into tests/ if possible. + +-keep class org.apache.james.mime4j.message.Message { + *; +} + +-keepclasseswithmembers class org.apache.commons.io.IOUtils { + *** toByteArray(java.io.InputStream); + *** toByteArray(java.io.Reader); + *** toByteArray(java.io.Reader, java.lang.String); + *** toByteArray(java.lang.String); +}