Email split, part dix

* The coup de grĂ¢ce for Exchange in Email
* Remove Exchange bits from AndroidManifest
* Update Android.mk to create static jar for emailcommon
* Delete all com.android.exchange files
* Delete all exchange-only strings
* Change loadAttachment service method to take only attachment id and
  background flag
* Add code to AttachmentProvider.openFile() that opens an output file
  for attachment writes
* Make sure deviceId is determined in Email app (not Exchange)

Bug: 3442973
Change-Id: I775600252fd121f474d51cb26fefbfcc50e387af
diff --git a/Android.mk b/Android.mk
index 3dd43e7..1a84cf5 100644
--- a/Android.mk
+++ b/Android.mk
@@ -12,38 +12,58 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-LOCAL_PATH:= $(call my-dir)
+LOCAL_PATH := $(call my-dir)
+
+# Build the Email application itself, along with its tests and tests for the emailcommon
+# static library.  All tests can be run via runtest email
+
 include $(CLEAR_VARS)
 
 LOCAL_MODULE_TAGS := optional
 
-LOCAL_SRC_FILES := $(call all-java-files-under, src)
-LOCAL_SRC_FILES += \
-    src/com/android/emailcommon/service/IEmailService.aidl \
-    src/com/android/emailcommon/service/IEmailServiceCallback.aidl \
-    src/com/android/emailcommon/service/IPolicyService.aidl \
-    src/com/android/emailcommon/service/IAccountService.aidl
-
-LOCAL_STATIC_JAVA_LIBRARIES := android-common
-# Revive this when the app is unbundled.
-# LOCAL_SDK_VERSION := current
+LOCAL_SRC_FILES := $(call all-java-files-under, src/com/android/email)
+LOCAL_SRC_FILES += $(call all-java-files-under, src/com/beetstra)
+LOCAL_STATIC_JAVA_LIBRARIES := android-common com.android.emailcommon
 
 LOCAL_PACKAGE_NAME := Email
 
 LOCAL_PROGUARD_FLAG_FILES := proguard.flags
 
+LOCAL_SDK_VERSION := current
+
 # The Emma tool analyzes code coverage when running unit tests on the
 # application. This configuration line selects which packages will be analyzed,
 # leaving out code which is tested by other means (e.g. static libraries) that
 # would dilute the coverage results. These options do not affect regular
 # production builds.
-LOCAL_EMMA_COVERAGE_FILTER := +com.android.email.*,+org.apache.james.mime4j.* \
-	+com.beetstra.jutf7.*,+org.apache.commons.io.*
-# EXCHANGE-REMOVE-SECTION-START
-LOCAL_EMMA_COVERAGE_FILTER += +com.android.exchange.*
-# EXCHANGE-REMOVE-SECTION-END
+LOCAL_EMMA_COVERAGE_FILTER := +com.android.emailcommon.*,+com.android.email.*, \
+    +org.apache.james.mime4j.*,+com.beetstra.jutf7.*,+org.apache.commons.io.*
 
 include $(BUILD_PACKAGE)
 
+# only include rules to build other stuff for the original package, not derived package.
+ifeq ($(strip $(LOCAL_PACKAGE_OVERRIDES)),)
+
+# Build the com.android.emailcommon static library. At the moment, this includes
+# the emailcommon files themselves plus everything under src/org (apache code).  All of our
+# AIDL files are also compiled into the static library
+
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := com.android.emailcommon
+LOCAL_SRC_FILES := $(call all-java-files-under, src/com/android/emailcommon)
+LOCAL_SRC_FILES += $(call all-java-files-under, src/org)
+LOCAL_SRC_FILES += \
+    src/com/android/emailcommon/service/IEmailService.aidl \
+    src/com/android/emailcommon/service/IEmailServiceCallback.aidl \
+    src/com/android/emailcommon/service/IPolicyService.aidl \
+    src/com/android/emailcommon/service/IAccountService.aidl
+
+LOCAL_SDK_VERSION := current
+
+include $(BUILD_STATIC_JAVA_LIBRARY)
+
 # additionally, build unit tests in a separate .apk
 include $(call all-makefiles-under,$(LOCAL_PATH))
+
+endif