Update Dialer make file.

* Dynamically generate packages to make automatic merging easier.
* Remove unused dependencies.
* Remove unecessary flags.
* Add new dependencies and missing assets.

Test: Make
Change-Id: Ibbebb3e79eda55c5293c4e4f6b86811ac7751b75
diff --git a/Android.mk b/Android.mk
index 6bd0eb2..ff7b0a3 100644
--- a/Android.mk
+++ b/Android.mk
@@ -14,12 +14,6 @@
 LOCAL_PATH:= $(call my-dir)
 include $(CLEAR_VARS)
 
-ifeq ($(TARGET_BUILD_APPS),)
-support_library_root_dir := frameworks/support
-else
-support_library_root_dir := prebuilts/sdk/current/support
-endif
-
 # The base directory for Dialer sources.
 BASE_DIR := java/com/android
 
@@ -63,130 +57,22 @@
 	$(BASE_DIR)/dialer/binary/google/GoogleStubDialerRootComponent.java \
 	$(BASE_DIR)/dialer/binary/google/GoogleStubDialerApplication.java
 
+EXCLUDE_RESOURCE_DIRECTORIES := \
+	java/com/android/incallui/maps/impl/res \
+
 # All Dialers resources.
-# find . -type d -name "res" | uniq | sort
-RES_DIRS := \
-	assets/product/res \
-	assets/quantum/res \
-	$(BASE_DIR)/contacts/common/res \
-	$(BASE_DIR)/dialer/about/res \
-	$(BASE_DIR)/dialer/app/res \
-	$(BASE_DIR)/dialer/app/voicemail/error/res \
-	$(BASE_DIR)/dialer/blocking/res \
-	$(BASE_DIR)/dialer/callcomposer/camera/camerafocus/res \
-	$(BASE_DIR)/dialer/callcomposer/cameraui/res \
-	$(BASE_DIR)/dialer/callcomposer/res \
-	$(BASE_DIR)/dialer/calldetails/res \
-	$(BASE_DIR)/dialer/calllog/ui/res \
-	$(BASE_DIR)/dialer/calllogutils/res \
-	$(BASE_DIR)/dialer/common/res \
-	$(BASE_DIR)/dialer/contactactions/res \
-	$(BASE_DIR)/dialer/contactphoto/res \
-	$(BASE_DIR)/dialer/contactsfragment/res \
-	$(BASE_DIR)/dialer/dialpadview/res \
-	$(BASE_DIR)/dialer/enrichedcall/simulator/res \
-	$(BASE_DIR)/dialer/interactions/res \
-	$(BASE_DIR)/dialer/lettertile/res \
-	$(BASE_DIR)/dialer/main/impl/res \
-	$(BASE_DIR)/dialer/notification/res \
-	$(BASE_DIR)/dialer/oem/res \
-	$(BASE_DIR)/dialer/phonenumberutil/res \
-	$(BASE_DIR)/dialer/postcall/res \
-	$(BASE_DIR)/dialer/searchfragment/common/res \
-	$(BASE_DIR)/dialer/searchfragment/list/res \
-	$(BASE_DIR)/dialer/searchfragment/nearbyplaces/res \
-	$(BASE_DIR)/dialershared/bubble/res \
-	$(BASE_DIR)/dialer/shortcuts/res \
-	$(BASE_DIR)/dialer/speeddial/res \
-	$(BASE_DIR)/dialer/theme/res \
-	$(BASE_DIR)/dialer/util/res \
-	$(BASE_DIR)/dialer/voicemailstatus/res \
-	$(BASE_DIR)/dialer/widget/res \
-	$(BASE_DIR)/incallui/answer/impl/affordance/res \
-	$(BASE_DIR)/incallui/answer/impl/answermethod/res \
-	$(BASE_DIR)/incallui/answer/impl/hint/res \
-	$(BASE_DIR)/incallui/answer/impl/res \
-	$(BASE_DIR)/incallui/audioroute/res \
-	$(BASE_DIR)/incallui/autoresizetext/res \
-	$(BASE_DIR)/incallui/calllocation/impl/res \
-	$(BASE_DIR)/incallui/commontheme/res \
-	$(BASE_DIR)/incallui/contactgrid/res \
-	$(BASE_DIR)/incallui/disconnectdialog/res \
-	$(BASE_DIR)/incallui/hold/res \
-	$(BASE_DIR)/incallui/incall/impl/res \
-	$(BASE_DIR)/incallui/res \
-	$(BASE_DIR)/incallui/sessiondata/res \
-	$(BASE_DIR)/incallui/speakerbuttonlogic/res \
-	$(BASE_DIR)/incallui/telecomeventui/res \
-	$(BASE_DIR)/incallui/video/impl/res \
-	$(BASE_DIR)/incallui/video/protocol/res \
-	$(BASE_DIR)/voicemail/impl/configui/res \
-	$(BASE_DIR)/voicemail/impl/res \
+RES_DIRS := $(call all-subdir-named-dirs,res,.)
+RES_DIRS := $(filter-out $(EXCLUDE_RESOURCE_DIRECTORIES),$(RES_DIRS))
 
-
+EXCLUDE_MANIFESTS := \
+	$(BASE_DIR)/dialer/binary/aosp/testing/AndroidManifest.xml \
+	$(BASE_DIR)/dialer/binary/google/AndroidManifest.xml \
+	$(BASE_DIR)/incallui/calllocation/impl/AndroidManifest.xml \
+	$(BASE_DIR)/incallui/maps/impl/AndroidManifest.xml \
 
 # Dialer manifest files to merge.
-# find . -type f -name "AndroidManifest.xml" | uniq | sort
-DIALER_MANIFEST_FILES += \
-	$(BASE_DIR)/contacts/common/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/about/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/app/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/app/manifests/activities/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/app/voicemail/error/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/backup/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/blocking/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/callcomposer/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/callcomposer/camera/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/callcomposer/camera/camerafocus/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/callcomposer/cameraui/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/calldetails/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/calllog/ui/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/calllogutils/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/common/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/contactactions/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/contactphoto/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/contactsfragment/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/dialpadview/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/enrichedcall/simulator/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/interactions/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/main/impl/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/lettertile/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/notification/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/oem/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/phonenumberutil/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/postcall/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/searchfragment/common/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/searchfragment/list/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/searchfragment/nearbyplaces/AndroidManifest.xml \
-	$(BASE_DIR)/dialershared/bubble/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/shortcuts/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/simulator/impl/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/speeddial/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/theme/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/util/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/voicemailstatus/AndroidManifest.xml \
-	$(BASE_DIR)/dialer/widget/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/answer/impl/affordance/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/answer/impl/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/answer/impl/answermethod/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/answer/impl/hint/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/audioroute/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/autoresizetext/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/commontheme/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/contactgrid/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/disconnectdialog/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/hold/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/incall/impl/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/sessiondata/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/speakerbuttonlogic/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/telecomeventui/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/video/impl/AndroidManifest.xml \
-	$(BASE_DIR)/incallui/video/protocol/AndroidManifest.xml \
-	$(BASE_DIR)/voicemail/AndroidManifest.xml \
-	$(BASE_DIR)/voicemail/impl/configui/AndroidManifest.xml \
-	$(BASE_DIR)/voicemail/impl/AndroidManifest.xml \
-
+DIALER_MANIFEST_FILES := $(call all-named-files-under,AndroidManifest.xml,.)
+DIALER_MANIFEST_FILES := $(filter-out $(EXCLUDE_MANIFESTS),$(DIALER_MANIFEST_FILES))
 
 # Merge all manifest files.
 LOCAL_FULL_LIBS_MANIFEST_FILES := \
@@ -196,85 +82,27 @@
 LOCAL_SRC_FILES += $(call all-proto-files-under, $(SRC_DIRS))
 LOCAL_PROTOC_FLAGS := --proto_path=$(LOCAL_PATH)
 
-LOCAL_RESOURCE_DIR := \
-	$(addprefix $(LOCAL_PATH)/, $(RES_DIRS)) \
-	$(support_library_root_dir)/core-ui/res \
-	$(support_library_root_dir)/design/res \
-	$(support_library_root_dir)/transition/res \
-	$(support_library_root_dir)/v7/appcompat/res \
-	$(support_library_root_dir)/v7/cardview/res \
-	$(support_library_root_dir)/v7/recyclerview/res
+LOCAL_RESOURCE_DIR := $(addprefix $(LOCAL_PATH)/, $(RES_DIRS))
+
+define all-dialer-manifest-extra-packages
+  $(shell cd $(LOCAL_PATH) ; \
+          find . -type f -name "AndroidManifest.xml" | uniq | sort | cut -c 8- | rev | cut -c 21- | rev | sed 's/\//./g')
+endef
+
+EXCLUDE_EXTRA_PACKAGES := \
+	com.android.dialer.binary.aosp.testing \
+	com.android.dialer.binary.google \
+	com.android.incallui.calllocation.impl \
+	com.android.incallui.maps.impl \
 
 # We specify each package explicitly to glob resource files.
-LOCAL_AAPT_FLAGS := \
+LOCAL_AAPT_FLAGS := $(call all-dialer-manifest-extra-packages)
+LOCAL_AAPT_FLAGS := $(filter-out $(EXCLUDE_EXTRA_PACKAGES),$(LOCAL_AAPT_FLAGS))
+LOCAL_AAPT_FLAGS := $(addprefix --extra-packages , $(LOCAL_AAPT_FLAGS))
+LOCAL_AAPT_FLAGS += \
 	--auto-add-overlay \
-	--extra-packages com.android.contacts.common \
-	--extra-packages com.android.dialer.about \
-	--extra-packages com.android.dialer.app \
-	--extra-packages com.android.dialer.app.voicemail.error \
-	--extra-packages com.android.dialer.blocking \
-	--extra-packages com.android.dialer.callcomposer \
-	--extra-packages com.android.dialer.callcomposer \
-	--extra-packages com.android.dialer.callcomposer.camera \
-	--extra-packages com.android.dialer.callcomposer.camera.camerafocus \
-	--extra-packages com.android.dialer.callcomposer.cameraui \
-	--extra-packages com.android.dialer.calldetails \
-	--extra-packages com.android.dialer.calllog.ui \
-	--extra-packages com.android.dialer.calllogutils \
-	--extra-packages com.android.dialer.common \
-        --extra-packages com.android.dialer.contactactions \
-        --extra-packages com.android.dialer.contactphoto \
-	--extra-packages com.android.dialer.contactsfragment \
-	--extra-packages com.android.dialer.dialpadview \
-	--extra-packages com.android.dialer.enrichedcall.simulator \
-	--extra-packages com.android.dialer.interactions \
-	--extra-packages com.android.dialer.main.impl \
-	--extra-packages com.android.dialer.lettertile \
-	--extra-packages com.android.dialer.notification \
-	--extra-packages com.android.dialer.oem \
-	--extra-packages com.android.dialer.phonenumberutil \
-	--extra-packages com.android.dialer.postcall \
-	--extra-packages com.android.dialer.searchfragment.common \
-	--extra-packages com.android.dialer.searchfragment.list \
-	--extra-packages com.android.dialer.searchfragment.nearbyplaces \
-	--extra-packages com.android.dialershared.bubble \
-	--extra-packages com.android.dialer.shortcuts \
-	--extra-packages com.android.dialer.speeddial \
-	--extra-packages com.android.dialer.theme \
-	--extra-packages com.android.dialer.util \
-	--extra-packages com.android.dialer.voicemailstatus \
-	--extra-packages com.android.dialer.widget \
-	--extra-packages com.android.incallui \
-	--extra-packages com.android.incallui.answer.impl \
-	--extra-packages com.android.incallui.answer.impl.affordance \
-	--extra-packages com.android.incallui.answer.impl.affordance \
-	--extra-packages com.android.incallui.answer.impl.answermethod \
-	--extra-packages com.android.incallui.answer.impl.hint \
-	--extra-packages com.android.incallui.audioroute \
-	--extra-packages com.android.incallui.autoresizetext \
-	--extra-packages com.android.incallui.calllocation \
-	--extra-packages com.android.incallui.calllocation.impl \
-	--extra-packages com.android.incallui.commontheme \
-	--extra-packages com.android.incallui.contactgrid \
-	--extra-packages com.android.incallui.disconnectdialog \
-	--extra-packages com.android.incallui.hold \
-	--extra-packages com.android.incallui.incall.impl \
-	--extra-packages com.android.incallui.maps.impl \
-	--extra-packages com.android.incallui.sessiondata \
-	--extra-packages com.android.incallui.speakerbuttonlogic \
-	--extra-packages com.android.incallui.telecomeventui \
-	--extra-packages com.android.incallui.video \
-	--extra-packages com.android.incallui.video.impl \
-	--extra-packages com.android.phone.common \
-	--extra-packages com.android.voicemail \
-	--extra-packages com.android.voicemail.impl.configui \
-	--extra-packages com.android.voicemail.impl \
-	--extra-packages com.android.voicemail.impl.fetch \
-	--extra-packages com.android.voicemail.impl.settings \
-	--extra-packages com.android.voicemail.settings \
 	--extra-packages me.leolin.shortcutbadger \
 
-
 LOCAL_STATIC_JAVA_LIBRARIES := \
 	android-common \
 	android-support-dynamic-animation \
@@ -298,10 +126,10 @@
 	dialer-mime4j-dom-target \
 	jsr305 \
 	libphonenumber \
-	okhttp \
 	volley \
 
 LOCAL_STATIC_ANDROID_LIBRARIES := \
+	android-support-core-ui \
 	android-support-design \
 	android-support-transition \
 	android-support-v13 \
@@ -339,13 +167,14 @@
 
 LOCAL_PROGUARD_ENABLED := disabled
 ifdef LOCAL_JACK_ENABLED
+
+define all-dialer-proguard-flags
+  $(shell cd $(LOCAL_PATH) ; \
+          find . -type f -name "proguard.*flags" | uniq | sort | cut -c 3-)
+endef
+
 # Proguard includes
-LOCAL_PROGUARD_FLAG_FILES := \
-    java/com/android/dialer/common/proguard.flags \
-    java/com/android/dialer/proguard/proguard_base.flags \
-    java/com/android/dialer/proguard/proguard.flags \
-    java/com/android/dialer/proguard/proguard_release.flags \
-    java/com/android/incallui/answer/impl/proguard.flags
+LOCAL_PROGUARD_FLAG_FILES := $(call all-dialer-proguard-flags)
 LOCAL_PROGUARD_ENABLED := custom
 
 LOCAL_PROGUARD_ENABLED += optimization
@@ -373,6 +202,8 @@
 DIALER_MANIFEST_FILES :=
 PROCESSOR_LIBRARIES_TARGET :=
 PROCESSOR_JARS :=
+EXCLUDE_MANIFESTS :=
+EXCLUDE_EXTRA_PACKAGES :=
 
 # Create references to prebuilt libraries.
 include $(CLEAR_VARS)
diff --git a/assets/quantum/res/drawable-hdpi/quantum_ic_report_grey600_24.png b/assets/quantum/res/drawable-hdpi/quantum_ic_report_grey600_24.png
new file mode 100644
index 0000000..63edb42
--- /dev/null
+++ b/assets/quantum/res/drawable-hdpi/quantum_ic_report_grey600_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-mdpi/quantum_ic_report_grey600_24.png b/assets/quantum/res/drawable-mdpi/quantum_ic_report_grey600_24.png
new file mode 100644
index 0000000..88fa794
--- /dev/null
+++ b/assets/quantum/res/drawable-mdpi/quantum_ic_report_grey600_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xhdpi/quantum_ic_report_grey600_24.png b/assets/quantum/res/drawable-xhdpi/quantum_ic_report_grey600_24.png
new file mode 100644
index 0000000..9b9d49f
--- /dev/null
+++ b/assets/quantum/res/drawable-xhdpi/quantum_ic_report_grey600_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_grey600_24.png b/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_grey600_24.png
new file mode 100644
index 0000000..e0721e6
--- /dev/null
+++ b/assets/quantum/res/drawable-xxhdpi/quantum_ic_report_grey600_24.png
Binary files differ
diff --git a/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_grey600_24.png b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_grey600_24.png
new file mode 100644
index 0000000..29ac881
--- /dev/null
+++ b/assets/quantum/res/drawable-xxxhdpi/quantum_ic_report_grey600_24.png
Binary files differ