summaryrefslogtreecommitdiffstats
path: root/minui/resources.cpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-12-20StartsWith allows a std::string prefix now.Elliott Hughes1-1/+1
Bug: N/A Test: builds Change-Id: I5183ec8133f5dc9a81a438223c6d3d2ea11ef0ec
2017-09-29Move the png open and destroy functions into a classTianjie Xu1-286/+279
The open_png() function used to open the png file but didn't close it; and this caused the leak of fd. However, we cannot close the file inside open_png() because the png file needs to remain open until the outer function finishes parsing the file and destroys the png struct. This CL addresses this issue by implementing a PngReader class to handle the creation/destruction of the png struct. Bug: 67010912 Test: Run graphic tests; also run locale tests and check fd. Change-Id: I9a803b3cd8c16f16a9ffe8f0acc7fe0f42e95eb0
2017-09-27Add a new option in recovery menu to test the background textsTianjie Xu1-0/+35
Add a new option "Run locale test" to check the background text images (i.e. texts for "erasing", "error", "no_command" and "installing" with different locales.) Use volume up/down button to cycle through all the locales embedded in the png file, and power button to go back to recovery main menu. Test: Run locale test with bullhead. Change-Id: Ib16e119f372110cdb5e611ef497b0f9b9b418f51
2017-07-19Fix the android-cloexec-* warnings in bootable/recoveryTianjie Xu1-1/+1
Add the O_CLOEXEC or 'e' accordingly. Bug: 63510015 Test: recovery tests pass Change-Id: I7094bcc6af22c9687eb535116b2ca6a59178b303
2017-03-29Merge "Add the missing sr-Latn into png files and rename the png locale header" am: 713d915636 am: dc235b5ab9Tianjie Xu1-10/+23
am: 5ec12126f0 Change-Id: Ia6b861c91958d3be23a4a7456d6d5d8e4a1607c8 (cherry picked from commit 9166f66eee883d6d6cc280a6c355e5528bb4a3f0)
2017-03-25Add the missing sr-Latn into png files and rename the png locale headerTianjie Xu1-10/+23
Switch the locale header in the png files from Locale.toString() to Locale.toLanguageTag(). For example, en_US --> en-us and sr__#Latn --> sr-Latn. Also clean up recovery a bit to expect the new locale format. Bug: 35215015 Test: sr-Latn shows correctly under graphic tests && recovery tests pass Change-Id: Ic62bab7756cdc6e5f98f26076f7c2dd046f811db
2017-02-23Fix "ordered comparison between pointer and zero".MinSeong Kim1-1/+1
From Clang 4.x releases, DR583 and DR1512 will be addressed. This patch, in advance, fixes the error(s). Test: `mmma bootable/recovery` Change-Id: I29dc85ae681307c322ab3a698c3f3bbad1c784ee Signed-off-by: MinSeong Kim <minseong.kim@linaro.org>
2017-01-23minui: Move callback functions to std::function.Tao Bao1-8/+6
Also make minor clean up to the header includes. Test: mmma bootable/recovery system/core/healthd system/extra/slideshow Change-Id: I3bfcf2c0e203c26a98ee08f1f8036c68356a69fd
2017-01-19Add checkers and tests for empty locale in PNG fileTianjie Xu1-1/+3
match_locale() will return false for empty locale string in the PNG file. Also add a manual test to validate if a PNG file is qualified to use under recovery. Bug: 34054052 Test: recovery_manual_test catches invalid PNG files successfully & Locale_test passed Change-Id: Id7e2136e1d8abf20da15825aa7901effbced8b03
2017-01-17minui: Export minui/minui.h.Tao Bao1-1/+1
For libminui static and shared libraries. Test: build Change-Id: Ib30dc5e2ef4a3c8b3ca3a0cec68cb65e229a0c16
2016-11-16Remove unnecessary uses of reinterpret_cast.Rahul Chaudhry1-2/+2
Discovered while looking at compiler warnings (b/26936282). Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma Change-Id: I66f8f6026ed732a504504ade93ff196dc8b727ca
2016-11-16Use static_cast to cast pointers returned by malloc/calloc/realloc/mmap.Rahul Chaudhry1-4/+4
static_cast is preferable to reinterpret_cast when casting from void* pointers returned by malloc/calloc/realloc/mmap calls. Discovered while looking at compiler warnings (b/26936282). Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma Change-Id: Iaffd537784aa857108f6981fdfd82d0496eb5592 Merged-In: I151642d5a60c94f312d0611576ad0143c249ba3d
2016-11-11Fix "ordered comparison between pointer and zero".MinSeong Kim1-1/+1
From Clang 4.x releases, DR583 and DR1512 will be addressed. This patch, in advance, fixes the error(s). Test: `mmma bootable/recovery` Change-Id: I29dc85ae681307c322ab3a698c3f3bbad1c784ee Signed-off-by: MinSeong Kim <minseong.kim@linaro.org>
2016-11-09Use static_cast to cast pointers returned by malloc/calloc/realloc/mmap.Rahul Chaudhry1-4/+4
static_cast is preferable to reinterpret_cast when casting from void* pointers returned by malloc/calloc/realloc/mmap calls. Discovered while looking at compiler warnings (b/26936282). Test: WITH_TIDY=1 WITH_STATIC_ANALYZER=1 mma Change-Id: I151642d5a60c94f312d0611576ad0143c249ba3d
2016-08-26Fix compatibility across the boardEthan Yonker1-0/+6
Change-Id: I6376920775ddabb4d4af505fffd86e404403a64a
2016-04-20Fix matches_locale functionTianjie Xu1-13/+8
matches_locale was expecting input locale string to have at most one underscore; as a result "zh_CN_#Hans" ignores "zh_CN" and matches into "zh". Fix the match function and add unit tests. Bug: 27837319 Change-Id: I4e8a66f91cae6ac2a46b6bf21f670d5ea564c7c8
2016-04-15Update the system update animation.Elliott Hughes1-2/+0
Switch to a Wear-like intro/loop system. We don't have an intro yet, but hopefully this will let Wear delete more code when they move to N. Unlike them, we don't hard-code the number of frames: we just look to see what we have available. We do hard-code the fps though. Also add a graphics test mode so you can see a demo of the UI components without having to actually apply an OTA. Also fix a bug where default locale is null rather than en-US: it's more useful to show _some_ text if we don't have a locale (which should only be during development anyway). Bug: http://b/26548285 Change-Id: I63422e3fef3c41109f924d96fb5ded0b3ae7815d
2016-02-19Fix minui cleanup path on error.Elliott Hughes1-3/+3
bootable/recovery/minui/resources.cpp:321:21: warning: Branch condition evaluates to a garbage value if (surface[i]) free(surface[i]); ^~~~~~~~~~ bootable/recovery/minui/resources.cpp:424:13: warning: Value stored to 'len' during its initialization is never read int len = row[4]; ^~~ ~~~~~~ Bug: http://b/27264652 Change-Id: Icc1a914c59d6a89dab1b752b2cd2b40549566481
2016-02-11Fix some memory leaks.Yabin Cui1-13/+9
Bug: 26906328 Change-Id: Iebaf03db0cb3054f91715f8c849be6087d01b27b
2015-12-16res: Embed FPS into icon_installing.png.Tao Bao1-6/+15
We allow vendor-specific icon installing image but have defined private animation_fps that can't be overridden. This CL changes the image generator to optionally embed FPS (otherwise use the default value of 20) into the generated image. For wear devices, they are using individual images instead of the interlaced one. Change the animation_fps from private to protected so that it can be customized. Bug: 26009230 Change-Id: I9fbf64ec717029d4c54f72316f6cb079e8dbfb5e
2015-04-15Don't use typedefs that hide *s.Elliott Hughes1-19/+17
gr_surface was causing confusion for no good reason. Change-Id: If7120187f9a00dd16297877fc49352185a4d4ea6
2015-04-10Switch minui over to C++.Elliott Hughes1-12/+17
Change-Id: I59e08a304ae514a3fdb6fab58721f11670bc1b01
2015-02-12Fix Droid and animation color in recovery modeTony Kuo1-0/+12
[Problem] Droid and animation color in recovery mode are incorrect [Modify] - Add support for flipping (zero copy) with RECOVERY_ABGR. - Decodes PNG files to BGRA directly, and other fills, text and alpha blending are also done directly in BGRA (i.e. blits can still bypass conversion) - Remove the BGRA workaround added previous for single buffer mode (f766396) Bug:19216535 Change-Id: Ie864419fc6da776ff58b2d02e130f203c194500f Signed-off-by: Tony Kuo <tony.kuo@mediatek.com>
2015-01-30Add missing includes.Elliott Hughes1-0/+1
Change-Id: I06ea08400efa511e627be37a4fd70fbdfadea2e6
2014-12-09Update minui to work properlyEthan Yonker1-143/+132
minui is not used by TWRP but it is included in AOSP recovery source and healthd (formerly charger) uses minui for displaying the battery charging animation during off-mode charging. This patch fixes / updates minui to use updated code to load png files into memory. Change-Id: I706d10d66de95886396d866e80615b1fb905d201
2014-11-07Disable custom theme and fix png loadingEthan Yonker1-2/+2
We will have to update the zip handling later. Now at least TWRP boots up to the GUI. Change-Id: I4182896eb095cab52fb0f1c9c20b6605e35677b9
2014-11-07Fix up old libminui to compileEthan Yonker1-0/+158
Implement some needed updates to libminui to make it compile for healthd. Note that res_create_multi_display_surface is not fully implemented so healthd may still have issues with displaying some graphics. Will update later when we are able to test these changes. Change-Id: Ic1095a998f5dfe7e36a08384c86da28e0524a03f
2014-11-06Revert to old libminui and fix upEthan Yonker1-273/+158
We will wait for CAF to give us a new libminui that supports qualcomm overlay before moving up to the new format if possible. Attempt to fix up old libminui to work with new libpng. Change-Id: I494b7287b347f4730aa8f9d27d4cc17b6e93919a
2014-05-02Update minui to support overlay graphicsDees Troy1-12/+16
Fix path in minuitwrp for includes Change-Id: I9e9e5f67e8574cdcbc6f8873ceeb56eab71143ed
2014-03-20restore minui support for paletted images with < 8 bitsDoug Zongker1-1/+1
The PNG image loaders should support images that use palettes requiring fewer than 8 bits. Change-Id: Ibcb0ff6f04aea8de54b03c0efa7a79e9b3635146
2014-03-18fix error log statementDoug Zongker1-1/+1
We were printing the address of channels instead of the value there. Change-Id: I652340c7c1a0abaf01af555e54d2c0366d21ad78
2014-03-17refactor image resource loading code in minuiDoug Zongker1-233/+207
Reduce the number of copies of libpng boilerplate. Rename res_create_* functions to be more clear. Make explicit the use of the framebuffer pixel format for images, and handle more combinations of input and output (eg, loading a grayscale image for display rather than use as a text alpha channel). Change-Id: I3d41c800a8f4c22b2f0167967ce6ee4d6b2b8846
2014-03-14Recovery 64-bit compile issuesMark Salyzyn1-1/+1
Change-Id: I92d5abd1a628feab3b0246924fab7f97ba3b9d34
2014-03-11remove pixelflinger from recoveryDoug Zongker1-64/+33
Recovery now draws directly to the framebuffer by rolling its own graphics code, rather than depending on libpixelflinger. The recovery UI is modified slightly to eliminate operations that are slow with the software implementation: when the text display / menu is turned on, it now appears on a black background instead of a dimmed version of the recovery icon. There's probably substantial room for optimization of the graphics operations. Bug: 12131110 Change-Id: Iab6520e0a7aaec39e2ce39377c10aef82ae0c595 Conflicts: minui/resources.c
2014-03-11change how recovery animation is implementedDoug Zongker1-3/+179
Instead of one 'base' installing image and a number of overlay images that are drawn on top of it, we represent the installing animation with one PNG that contains all the animation frames, interlaced by row. The PNG is expected to have a text chunk with the keyword 'Frames' and a value that's the number of frames (as an ascii string). This representation provides better compression, removes the need to subclass ScreenRecoveryUI just to change the position of the overlay or number of frames, and doesn't require gr_blit() to support an alpha channel. We also remove the 'indeterminate' progress bar used when wiping data and/or cache. The main animation serves the same purpose (showing that the device is still alive); the spinning progress bar has been redundant for a while. This changes the default recovery animation to include the antenna-wiggling and gear-turning that's used in the Nexus 5 recovery animation. Change-Id: I51930a76035ac09969a25472f4e572b289418729 Conflicts: screen_ui.cpp screen_ui.h
2014-03-11remove pixelflinger from recoveryDoug Zongker1-71/+32
Recovery now draws directly to the framebuffer by rolling its own graphics code, rather than depending on libpixelflinger. The recovery UI is modified slightly to eliminate operations that are slow with the software implementation: when the text display / menu is turned on, it now appears on a black background instead of a dimmed version of the recovery icon. There's probably substantial room for optimization of the graphics operations. Bug: 12131110 Change-Id: Iab6520e0a7aaec39e2ce39377c10aef82ae0c595
2014-03-07change how recovery animation is implementedDoug Zongker1-3/+179
Instead of one 'base' installing image and a number of overlay images that are drawn on top of it, we represent the installing animation with one PNG that contains all the animation frames, interlaced by row. The PNG is expected to have a text chunk with the keyword 'Frames' and a value that's the number of frames (as an ascii string). This representation provides better compression, removes the need to subclass ScreenRecoveryUI just to change the position of the overlay or number of frames, and doesn't require gr_blit() to support an alpha channel. We also remove the 'indeterminate' progress bar used when wiping data and/or cache. The main animation serves the same purpose (showing that the device is still alive); the spinning progress bar has been redundant for a while. This changes the default recovery animation to include the antenna-wiggling and gear-turning that's used in the Nexus 5 recovery animation. Change-Id: I51930a76035ac09969a25472f4e572b289418729
2013-09-26fix use of RGBA images in minuiDoug Zongker1-3/+11
Bug: 10934401 Change-Id: I471b30e5b2e877c620e4a0a524e950cddbc6d2c0
2013-08-27Update libpng API usageJohn Reck1-12/+12
Remove usage of deprecated methods Change-Id: I747568a2c8c0c65ecbc9a3da4bac7b9cac7708ab
2013-08-13Fix libpng API usageJohn Reck1-12/+12
Remove usage of deprecated methods that were removed in 1.6 Change-Id: I2a669bf5201197f60adfdbe512fd729bebb74f9c
2013-03-05recovery: change font for menus to be an imageDoug Zongker1-8/+12
Instead of representing the font used for menus and log messages in the recovery binary, load it from a resource PNG image. This allows different devices to substitute their own font images. Change-Id: Ib36b86db3d01298aa7ae2b62a26ca29e6ef18014
2012-09-04minor recovery fixesDoug Zongker1-5/+2
- protect against missing/malformed bitmaps: fail to display them but don't crash. - don't draw animation overlays until the overlay offset is computed. - logging cleanup Change-Id: Ieb1c155cfbb11e643000bdb5d1a57900c8757739
2012-08-30recovery locale handling fixesDoug Zongker1-8/+0
- change locale filename to "last_locale" so the main system doesn't delete it - clean up some chatty logging - update images with real German (other languages TBD) Change-Id: I2ebb4ed4e054bd1808a3042d9efbb2c18f3a044d
2012-08-23add simple text to recovery UIDoug Zongker1-0/+150
- recovery takes a --locale argument, which will be passed by the main system - the locale is saved in cache, in case the --locale argument is missing (eg, when recovery is started from fastboot) - we include images that have prerendered text for many locales - we split the background states into four (installing update, erasing, no command, error) so that appropriate text can be shown. Change-Id: I731b8108e83d5ccc09a4aacfc1dbf7e86b397aaf
2012-08-21Fixing trivial warnings for libminuiEdwin Vane1-2/+2
After fixing three trivial warnings, libminui builds cleanly with clang. Change-Id: Id7c6228295427a5ed3c774c5f90e88a28336c1f7 Author: Edwin Vane <edwin.vane@intel.com> Reviewed-by: Kevin P Schoedel <kevin.p.schoedel@intel.com>
2011-03-05allow paletted RGB images in recoveryDoug Zongker1-2/+7
Recovery assumes any paletted images are in RGBA format. Make it handle both RGB and RGBA paletted images. Bug: 3514884 Change-Id: I517cd571aa3f434dacacc33a774236260aec20ef
2011-03-01make recovery UI images more general; allow for installation animationDoug Zongker1-0/+2
Change some of the UI parameters (# of indeterminate progress bar frames, fps, etc.) from #defined constants to variables that can be set by the device-specific recovery_ui code (via a new function). Support overlaying different images on top of the base installation icon to animate it. Make the FPS control more accurate. Change-Id: I9268b389b7ea6b3ed9e0c7eae37baf4272e60edd
2009-10-09simplify construction of the recovery progress barDoug Zongker1-3/+8
Instead of six separate images for the left end, right end, and tiled center portion of the full and empty progress bars, just use two images: a full bar and an empty bar. Draw the left side of the full bar and the right side of the empty one, moving the boundary rightward to "fill" the bar. This makes recovery trivially smaller, and allows fancier images to be used as progress bars. Support paletted PNG images as resources.
2009-03-28AI 143289: am: CL 143128 Use PNG instead of BMP for recovery image icons. This savesDoug Zongker1-100/+67
about 60k from the recovery and system images. Original author: dougz Merged from: //branches/donutburger/... Automated import of CL 143289
2009-03-27AI 143128: Use PNG instead of BMP for recovery image icons. This savesDoug Zongker1-100/+67
about 60k from the recovery and system images. Automated import of CL 143128
2009-03-04auto import from //depot/cupcake/@135843The Android Open Source Project1-0/+202
2009-03-04auto import from //depot/cupcake/@135843The Android Open Source Project1-202/+0