vendor/bliss: Rework boot animation generation

Keep the largest bootanimation extracted
and resize it at build-time.

Change-Id: Iee32f18440ff955d13ed85b273e97cbd540721fc
Signed-off-by: Jackeagle <jackeagle102@gmail.com>
diff --git a/bootanimation/Android.mk b/bootanimation/Android.mk
index 19c51c4..e5bfe62 100644
--- a/bootanimation/Android.mk
+++ b/bootanimation/Android.mk
@@ -1,5 +1,6 @@
-# Copyright (C) 2016 The SlimRom Project
-# Copyright (C) 2017 The BlissRoms Project
+#
+# Copyright (C) 2016 The CyanogenMod Project
+#               2017 The LineageOS Project
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -12,12 +13,41 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+#
 
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-LOCAL_MODULE := BlissBootAnimation
-
-BOOTANIMATION := $(shell $(ANDROID_BUILD_TOP)/vendor/bliss/bootanimation/generate-bootanimation.sh \
+define build-bootanimation
+    sh vendor/bliss/bootanimation/generate-bootanimation.sh \
     $(TARGET_SCREEN_WIDTH) \
-    $(TARGET_BOOTANIMATION_HALF_RES))
+    $(TARGET_SCREEN_HEIGHT) \
+    $(TARGET_BOOTANIMATION_HALF_RES)
+endef
 
+TARGET_GENERATED_BOOTANIMATION := $(TARGET_OUT_INTERMEDIATES)/BOOTANIMATION/bootanimation.zip
+$(TARGET_GENERATED_BOOTANIMATION):
+	@echo "Building bootanimation"
+	$(build-bootanimation)
+
+ifeq ($(TARGET_BOOTANIMATION),)
+    TARGET_BOOTANIMATION := $(TARGET_GENERATED_BOOTANIMATION)
+    ifeq ($(shell command -v mogrify),)
+        $(info **********************************************)
+        $(info The boot animation could not be generated as)
+        $(info ImageMagick is not installed in your system.)
+        $(info $(space))
+        $(info Please install ImageMagick from this website:)
+        $(info https://imagemagick.org/script/binary-releases.php)
+        $(info **********************************************)
+        $(error stop)
+    endif
+endif
+
+include $(CLEAR_VARS)
+LOCAL_MODULE := bootanimation.zip
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT)/media
+
+include $(BUILD_SYSTEM)/base_rules.mk
+
+$(LOCAL_BUILT_MODULE): $(TARGET_BOOTANIMATION)
+	@mkdir -p $(dir $@)
+	@cp $(TARGET_BOOTANIMATION) $@
diff --git a/bootanimation/CleanSpec.mk b/bootanimation/CleanSpec.mk
new file mode 100644
index 0000000..a32a883
--- /dev/null
+++ b/bootanimation/CleanSpec.mk
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2017 The LineageOS Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#      http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+$(call add-clean-step, rm -rf $(PRODUCT_OUT)/obj/BOOTANIMATION)
diff --git a/bootanimation/bootanimation.tar b/bootanimation/bootanimation.tar
index 2e43e04..3b97ccd 100644
--- a/bootanimation/bootanimation.tar
+++ b/bootanimation/bootanimation.tar
Binary files differ
diff --git a/bootanimation/desc.txt b/bootanimation/desc.txt
index 5e680a8..6fa3322 100644
--- a/bootanimation/desc.txt
+++ b/bootanimation/desc.txt
@@ -1,3 +1,3 @@
-c 1 0 part0 #44C9F6
-c 0 0 part1 #44C9F6
-c 1 0 part2 #44C9F6
+c 1 0 part0

+c 0 0 part1

+

diff --git a/bootanimation/generate-bootanimation.sh b/bootanimation/generate-bootanimation.sh
old mode 100755
new mode 100644
index 39b5619..1c3937f
--- a/bootanimation/generate-bootanimation.sh
+++ b/bootanimation/generate-bootanimation.sh
@@ -1,37 +1,34 @@
 #!/bin/bash
 
-CWD=`pwd`
-WIDTH=$1
-HEIGHT=$(echo "$WIDTH/1.5" | bc)
-RWIDTH=$WIDTH
-RHEIGHT=$HEIGHT
-HALF_RES=$2
-if [ "$HALF_RES" = "true" ]; then
-    WIDTH=`expr $WIDTH / 2`
-    HEIGHT=`expr $HEIGHT / 2`
-fi
+WIDTH="$1"
+HEIGHT="$2"
+BOOTANIOUT="$ANDROID_PRODUCT_OUT/obj/BOOTANIMATION"
 
-if [ -f "/usr/bin/convert" ]; then
-if [ -f "$ANDROID_PRODUCT_OUT/system/media/bootanimation.zip" ]; then
-    echo "$ANDROID_PRODUCT_OUT/system/media/bootanimation.zip"
+if [ "$HEIGHT" -lt "$WIDTH" ]; then
+    IMAGEWIDTH="$HEIGHT"
 else
-RESOLUTION=""$WIDTH"x"$HEIGHT""
-
-mkdir -p $ANDROID_PRODUCT_OUT/obj/BOOTANIMATION/bootanimation/part{0..4}
-tar xvfp "$PWD/vendor/bliss/bootanimation/bootanimation.tar" --to-command="convert - -resize '$RESOLUTION' \"png8:$ANDROID_PRODUCT_OUT/obj/BOOTANIMATION/bootanimation/\$TAR_FILENAME\""
-# create desc.txt
-echo "$RWIDTH" "$RHEIGHT" 60 > "$ANDROID_PRODUCT_OUT/obj/BOOTANIMATION/bootanimation/desc.txt"
-cat "$PWD/vendor/bliss/bootanimation/desc.txt" >> "$ANDROID_PRODUCT_OUT/obj/BOOTANIMATION/bootanimation/desc.txt"
-
-# create bootanimation.zip
-cd "$ANDROID_PRODUCT_OUT/obj/BOOTANIMATION/bootanimation"
-
-if [ ! -d "$ANDROID_PRODUCT_OUT/system/media" ]; then
-mkdir -p "$ANDROID_PRODUCT_OUT/system/media"
+    IMAGEWIDTH="$WIDTH"
 fi
 
-zip -r0 "$ANDROID_PRODUCT_OUT/system/media/bootanimation.zip" .
-echo "$ANDROID_PRODUCT_OUT/system/media/bootanimation.zip"
+IMAGESCALEWIDTH="$IMAGEWIDTH"
+IMAGESCALEHEIGHT=$(expr $IMAGESCALEWIDTH / 2)
 
-fi
-fi
+IMAGEHEIGHT=$(expr $IMAGEWIDTH / 2)
+
+RESOLUTION=""$IMAGEWIDTH"x"$IMAGEHEIGHT""
+
+for part_cnt in 0 1 2
+do
+    mkdir -p $ANDROID_PRODUCT_OUT/obj/BOOTANIMATION/bootanimation/part$part_cnt
+done
+tar xfp "vendor/bliss/bootanimation/bootanimation.tar" -C "$BOOTANIOUT/bootanimation/"
+mogrify -resize $RESOLUTION -colors 250 "$BOOTANIOUT/bootanimation/"*"/"*".jpg"
+
+# Create desc.txt
+echo "$IMAGESCALEWIDTH $IMAGESCALEHEIGHT" 25 > "$BOOTANIOUT/bootanimation/desc.txt"
+cat "vendor/bliss/bootanimation/desc.txt" >> "$BOOTANIOUT/bootanimation/desc.txt"
+
+# Create bootanimation.zip
+cd "$BOOTANIOUT/bootanimation"
+
+zip -qr0 "$BOOTANIOUT/bootanimation.zip" .
diff --git a/config/bliss_packages.mk b/config/bliss_packages.mk
index f382265..daa438f 100644
--- a/config/bliss_packages.mk
+++ b/config/bliss_packages.mk
@@ -1,3 +1,3 @@
-# Bliss Packages
+# Boot Animation
 PRODUCT_PACKAGES += \
-    BlissBootAnimation
+    bootanimation.zip
diff --git a/prebuilt/common/bin/blacklist b/prebuilt/common/bin/blacklist
old mode 100644
new mode 100755