From be6d4d10529860037c165e4441a2d23f539e7b00 Mon Sep 17 00:00:00 2001 From: Doug Zongker Date: Wed, 2 Mar 2011 10:38:02 -0800 Subject: change the default recovery assets to be in holograph style Also remove the weird backwards compatibility thing for animations with fewer than 10 frames. Frames are always named "name01.png", "name02.png", ..., no matter how many there are. Change-Id: I7af64fdec1bfcdb0464998b735ec8d6c626ffe9d --- make-overlay.py | 102 +++++++++++++++++++++++++++++++ res/images/icon_error.png | Bin 10398 -> 28117 bytes res/images/icon_installing.png | Bin 11493 -> 14222 bytes res/images/icon_installing_overlay01.png | Bin 0 -> 32367 bytes res/images/icon_installing_overlay02.png | Bin 0 -> 32545 bytes res/images/icon_installing_overlay03.png | Bin 0 -> 32693 bytes res/images/icon_installing_overlay04.png | Bin 0 -> 32515 bytes res/images/icon_installing_overlay05.png | Bin 0 -> 32160 bytes res/images/icon_installing_overlay06.png | Bin 0 -> 32537 bytes res/images/icon_installing_overlay07.png | Bin 0 -> 32399 bytes res/images/indeterminate01.png | Bin 0 -> 929 bytes res/images/indeterminate02.png | Bin 0 -> 972 bytes res/images/indeterminate03.png | Bin 0 -> 976 bytes res/images/indeterminate04.png | Bin 0 -> 977 bytes res/images/indeterminate05.png | Bin 0 -> 1024 bytes res/images/indeterminate06.png | Bin 0 -> 968 bytes res/images/indeterminate1.png | Bin 1919 -> 0 bytes res/images/indeterminate2.png | Bin 1912 -> 0 bytes res/images/indeterminate3.png | Bin 1917 -> 0 bytes res/images/indeterminate4.png | Bin 1912 -> 0 bytes res/images/indeterminate5.png | Bin 1902 -> 0 bytes res/images/indeterminate6.png | Bin 1914 -> 0 bytes res/images/progress_empty.png | Bin 361 -> 1117 bytes res/images/progress_fill.png | Bin 286 -> 2885 bytes ui.c | 20 +++--- 25 files changed, 111 insertions(+), 11 deletions(-) create mode 100644 make-overlay.py mode change 100755 => 100644 res/images/icon_error.png mode change 100755 => 100644 res/images/icon_installing.png create mode 100644 res/images/icon_installing_overlay01.png create mode 100644 res/images/icon_installing_overlay02.png create mode 100644 res/images/icon_installing_overlay03.png create mode 100644 res/images/icon_installing_overlay04.png create mode 100644 res/images/icon_installing_overlay05.png create mode 100644 res/images/icon_installing_overlay06.png create mode 100644 res/images/icon_installing_overlay07.png create mode 100644 res/images/indeterminate01.png create mode 100644 res/images/indeterminate02.png create mode 100644 res/images/indeterminate03.png create mode 100644 res/images/indeterminate04.png create mode 100644 res/images/indeterminate05.png create mode 100644 res/images/indeterminate06.png delete mode 100644 res/images/indeterminate1.png delete mode 100644 res/images/indeterminate2.png delete mode 100644 res/images/indeterminate3.png delete mode 100644 res/images/indeterminate4.png delete mode 100644 res/images/indeterminate5.png delete mode 100644 res/images/indeterminate6.png diff --git a/make-overlay.py b/make-overlay.py new file mode 100644 index 000000000..7f931b373 --- /dev/null +++ b/make-overlay.py @@ -0,0 +1,102 @@ +# Copyright (C) 2011 The Android Open Source 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. + +"""Script to take a set of frames (PNG files) for a recovery +"installing" icon animation and turn it into a base image plus a set +of overlays, as needed by the recovery UI code. Run with the names of +all the input frames on the command line, in order.""" + +import sys +try: + import Image +except ImportError: + print "This script requires the Python Imaging Library to be installed." + sys.exit(1) + +# Find the smallest box that contains all the pixels which change +# between images. + +print "reading", sys.argv[1] +base = Image.open(sys.argv[1]) + +minmini = base.size[0]-1 +maxmaxi = 0 +minminj = base.size[1]-1 +maxmaxj = 0 + +for top_name in sys.argv[2:]: + print "reading", top_name + top = Image.open(top_name) + + assert base.size == top.size + + mini = base.size[0]-1 + maxi = 0 + minj = base.size[1]-1 + maxj = 0 + + h, w = base.size + for j in range(w): + for i in range(h): + b = base.getpixel((i,j)) + t = top.getpixel((i,j)) + if b != t: + if i < mini: mini = i + if i > maxi: maxi = i + if j < minj: minj = j + if j > maxj: maxj = j + + minmini = min(minmini, mini) + maxmaxi = max(maxmaxi, maxi) + minminj = min(minminj, minj) + maxmaxj = max(maxmaxj, maxj) + +w = maxmaxi - minmini + 1 +h = maxmaxj - minminj + 1 + +# Now write out an image containing just that box, for each frame. + +for num, top_name in enumerate(sys.argv[1:]): + top = Image.open(top_name) + + out = Image.new("RGB", (w, h)) + for i in range(w): + for j in range(h): + t = top.getpixel((i+minmini, j+minminj)) + out.putpixel((i, j), t) + + fn = "icon_installing_overlay%02d.png" % (num+1,) + out.save(fn) + print "saved", fn + +# Write out the base icon, which is the first frame with that box +# blacked out (just to make the file smaller, since it's always +# displayed with one of the overlays on top of it). + +for i in range(w): + for j in range(h): + base.putpixel((i+minmini, j+minminj), (0, 0, 0)) +fn = "icon_installing.png" +base.save(fn) +print "saved", fn + +# The device_ui_init() function needs to tell the recovery UI the +# position of the overlay box. + +print +print "add this to your device_ui_init() function:" +print "-" * 40 +print " ui_parameters->install_overlay_offset_x = %d;" % (minmini,) +print " ui_parameters->install_overlay_offset_y = %d;" % (minminj,) +print "-" * 40 diff --git a/res/images/icon_error.png b/res/images/icon_error.png old mode 100755 new mode 100644 index 90c8d878a..6cfcc8a61 Binary files a/res/images/icon_error.png and b/res/images/icon_error.png differ diff --git a/res/images/icon_installing.png b/res/images/icon_installing.png old mode 100755 new mode 100644 index d428f57d1..2866b044a Binary files a/res/images/icon_installing.png and b/res/images/icon_installing.png differ diff --git a/res/images/icon_installing_overlay01.png b/res/images/icon_installing_overlay01.png new file mode 100644 index 000000000..c71d8406f Binary files /dev/null and b/res/images/icon_installing_overlay01.png differ diff --git a/res/images/icon_installing_overlay02.png b/res/images/icon_installing_overlay02.png new file mode 100644 index 000000000..4c97c7822 Binary files /dev/null and b/res/images/icon_installing_overlay02.png differ diff --git a/res/images/icon_installing_overlay03.png b/res/images/icon_installing_overlay03.png new file mode 100644 index 000000000..ff4ee946f Binary files /dev/null and b/res/images/icon_installing_overlay03.png differ diff --git a/res/images/icon_installing_overlay04.png b/res/images/icon_installing_overlay04.png new file mode 100644 index 000000000..48998ce5b Binary files /dev/null and b/res/images/icon_installing_overlay04.png differ diff --git a/res/images/icon_installing_overlay05.png b/res/images/icon_installing_overlay05.png new file mode 100644 index 000000000..9f056b1e5 Binary files /dev/null and b/res/images/icon_installing_overlay05.png differ diff --git a/res/images/icon_installing_overlay06.png b/res/images/icon_installing_overlay06.png new file mode 100644 index 000000000..e5872fd6c Binary files /dev/null and b/res/images/icon_installing_overlay06.png differ diff --git a/res/images/icon_installing_overlay07.png b/res/images/icon_installing_overlay07.png new file mode 100644 index 000000000..4ad8bf3ec Binary files /dev/null and b/res/images/icon_installing_overlay07.png differ diff --git a/res/images/indeterminate01.png b/res/images/indeterminate01.png new file mode 100644 index 000000000..84f04b0d2 Binary files /dev/null and b/res/images/indeterminate01.png differ diff --git a/res/images/indeterminate02.png b/res/images/indeterminate02.png new file mode 100644 index 000000000..21d012168 Binary files /dev/null and b/res/images/indeterminate02.png differ diff --git a/res/images/indeterminate03.png b/res/images/indeterminate03.png new file mode 100644 index 000000000..8a190a8c6 Binary files /dev/null and b/res/images/indeterminate03.png differ diff --git a/res/images/indeterminate04.png b/res/images/indeterminate04.png new file mode 100644 index 000000000..baf8d63e4 Binary files /dev/null and b/res/images/indeterminate04.png differ diff --git a/res/images/indeterminate05.png b/res/images/indeterminate05.png new file mode 100644 index 000000000..5653c7b06 Binary files /dev/null and b/res/images/indeterminate05.png differ diff --git a/res/images/indeterminate06.png b/res/images/indeterminate06.png new file mode 100644 index 000000000..858de85a5 Binary files /dev/null and b/res/images/indeterminate06.png differ diff --git a/res/images/indeterminate1.png b/res/images/indeterminate1.png deleted file mode 100644 index 90cb9fba9..000000000 Binary files a/res/images/indeterminate1.png and /dev/null differ diff --git a/res/images/indeterminate2.png b/res/images/indeterminate2.png deleted file mode 100644 index f7fb28989..000000000 Binary files a/res/images/indeterminate2.png and /dev/null differ diff --git a/res/images/indeterminate3.png b/res/images/indeterminate3.png deleted file mode 100644 index ba10dfa53..000000000 Binary files a/res/images/indeterminate3.png and /dev/null differ diff --git a/res/images/indeterminate4.png b/res/images/indeterminate4.png deleted file mode 100644 index ad5d9a542..000000000 Binary files a/res/images/indeterminate4.png and /dev/null differ diff --git a/res/images/indeterminate5.png b/res/images/indeterminate5.png deleted file mode 100644 index 8c19c8d57..000000000 Binary files a/res/images/indeterminate5.png and /dev/null differ diff --git a/res/images/indeterminate6.png b/res/images/indeterminate6.png deleted file mode 100644 index c0c66386a..000000000 Binary files a/res/images/indeterminate6.png and /dev/null differ diff --git a/res/images/progress_empty.png b/res/images/progress_empty.png index 4cb4998dd..c6820159b 100644 Binary files a/res/images/progress_empty.png and b/res/images/progress_empty.png differ diff --git a/res/images/progress_fill.png b/res/images/progress_fill.png index eb71754db..9748435f5 100644 Binary files a/res/images/progress_fill.png and b/res/images/progress_fill.png differ diff --git a/ui.c b/ui.c index 054e53f60..5a2a83715 100644 --- a/ui.c +++ b/ui.c @@ -39,10 +39,10 @@ #define UI_WAIT_KEY_TIMEOUT_SEC 120 UIParameters ui_parameters = { - 6, // indeterminate progress bar frames - 15, // fps - 0, // installation icon frames (0 == static image) - 0, 0, // installation icon overlay offset + 6, // indeterminate progress bar frames + 20, // fps + 7, // installation icon frames (0 == static image) + 23, 83, // installation icon overlay offset }; static pthread_mutex_t gUpdateMutex = PTHREAD_MUTEX_INITIALIZER; @@ -386,10 +386,8 @@ void ui_init(void) sizeof(gr_surface)); for (i = 0; i < ui_parameters.indeterminate_frames; ++i) { char filename[40]; - // "indeterminateN" if fewer than 10 frames, else "indeterminateNN". - sprintf(filename, "indeterminate%0*d", - ui_parameters.indeterminate_frames < 10 ? 1 : 2, - i+1); + // "indeterminate01.png", "indeterminate02.png", ... + sprintf(filename, "indeterminate%02d", i+1); int result = res_create_surface(filename, gProgressBarIndeterminate+i); if (result < 0) { LOGE("Missing bitmap %s\n(Code %d)\n", filename, result); @@ -401,9 +399,9 @@ void ui_init(void) sizeof(gr_surface)); for (i = 0; i < ui_parameters.installing_frames; ++i) { char filename[40]; - sprintf(filename, "icon_installing_overlay%0*d", - ui_parameters.installing_frames < 10 ? 1 : 2, - i+1); + // "icon_installing_overlay01.png", + // "icon_installing_overlay02.png", ... + sprintf(filename, "icon_installing_overlay%02d", i+1); int result = res_create_surface(filename, gInstallationOverlay+i); if (result < 0) { LOGE("Missing bitmap %s\n(Code %d)\n", filename, result); -- cgit v1.2.3