summaryrefslogtreecommitdiffstats
path: root/gui/gui.cpp (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Multiple Language SupportEthan Yonker2015-12-191-13/+46
| | | | | | | | | | | | | | | | | | | | | | | This is similar to https://gerrit.omnirom.org/#/c/14014 A lot of the features built in the older patch set have been split out into separate patches, most of which have already been merged. The remaining functionality here should all be directly related to language selection and loading. We always load English as a base before loading other languages over the top of the base. The idea is that if another language is missing a translation, then we will still display the English. Maybe still to do: read the /cache/recovery/last_locale file and load a language based on that. For me, this file contains just: en_US We probably won't bother with region specific translations so we would have to look at either trimming off the _US or using some other method like perhaps a symlink or a combination of the two. Thanks to _that for twmsg.cpp class Change-Id: I9647a22e47883a3ddd2de1da51f64aab7c328f74
* Move reloading of theme outside of the action threadEthan Yonker2015-11-091-0/+2
| | | | | | | | | | | | | | | | | | | | | Reloading the GUI while the GUI is running and rendering is very dangerous as we may be deleting GUI resources before or while we are trying to render those same items. This change will allow us to safely load new resources and delete the old ones. Fixed a double free situation that was causing a crash on every other theme reload. Clear parsed xml documents when we are done loading the theme instead of keeping them in memory for the life of the theme to help save a little memory. Store starting page so that if we request a reload, we can enter the theme at the same starting point, which may come in handy if we allow for language selection on alternate starting pages such as the decrypt prompt or the system read only prompt. Change-Id: I45a7e3fb3daeefac56d70f8d4936938eb1244b99
* Fix a bunch of warningsEthan Yonker2015-10-251-2/+2
| | | | | | Mostly adding __unused where needed. Change-Id: Ia4f675b9b360782728c361ed1699db0cc277c3a5
* Allow multiple overlaysEthan Yonker2015-03-191-0/+1
| | | | | | This effectively allows us to support popup dialogs and the like. Change-Id: Iafb3fa60ed635287cb59dce118f74dc8f2a4e60a
* Allow touch to use a key code to sync touch eventsEthan Yonker2015-03-131-0/+17
| | | | | | | | This is needed to make touch work on the x86-64 emulator target though I have seen the key code used on other devices as a way to synchronize touch events. Change-Id: I31a3cc56e6470f2c707641b537140e44f5e686aa
* Reduce themes to 5 and rely on scalingEthan Yonker2015-03-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will significantly reduce theme maintainence and should be a lot more sustainable over time. Eliminate most themes leaving only 5 remaining in 3 categores: * watch_mdpi: 320x320 * portrait_mdpi: 480x800 * portrait_hdpi: 1080x1920 * landscape_mdpi: 800x480 * landscape_hdpi: 1920x1200 Add handling to map the old DEVICE RESOLUTION to the new TW_THEME build flag. New devices should specify a theme using the new TW_THEME build flag using one of the 5 values from the list above. Long term we will eliminate the use of the DEVICE_RESOLUTION flag in favor of the new flag. Change the way sliders render so that they completely follow the placement="5". This will probably break some custom themes but is necessary so that we can retain the aspect ratio on slider images and still have them rendered at the center of the screen. Add code to the console slideout button so that it can be centered. Centering the slideout button allows us to keep the button at the center of the screen when retaining aspect ratios on the image. Add more retain aspect ratios for home, back, slideout, folder, file, and lock screen images. Change the way we build the top bar in TWRP. It is now mostly drawn using fill objects and the TWRP logo is a separate image so that we can retain its aspect ratio during scaling. Thanks to Mark Norelus for providing the TWRP logo. Change-Id: I801a7b3163cad9ef353461f4c327690a9ccbb3aa
* gui: support string resourcesthat2015-03-111-10/+12
| | | | | | | | | | | | | | | storing strings in a map (for fast lookup) in resource manager To define a string resource in <resources>: <string name="foo">Hello</string> To use a string, e.g.: <text>%@foo%</text> Not yet done: language-specific resources (should be solved not only for strings, but for all kinds of resources - e.g. for localized images) Change-Id: I3ba5cf5298c09e0d28a83973e9662f179271b33f
* gui: don't truncate values to 0 after scalingthat2015-02-231-2/+8
| | | | | | Avoids invisible lines (e.g. input cursor) when scaling down. Change-Id: I595e8bdb2fa468c30f104867ad77be2423ec287f
* Scale the GUI to fit the screenEthan Yonker2015-02-101-3/+61
| | | | | | | | | | | | With this patch set, if needed, we scale the images during early boot. TTF support is needed to properly scale the font. No font scaling is done on the old style fixed width font used in the console. Special thanks to _that for figuring out the scaling and blending function calls to make this possible. Change-Id: If2f79bef16d6db2e1298bfc3d00c9bcca2bee37a
* gui: avoid high CPU usage while waiting for inputthat2015-02-091-11/+20
| | | | | | | | | - add a timeout to ev_get - set timeout to 1 second when idle - delay timeout for 15 frames to keep animation objects working - stop kinetic scrolling immediately at end of list Change-Id: I77138055c464b65b71e296f9c7ef63ea06809bc1
* Reset data manager variables before running runPagesEthan Yonker2015-02-091-1/+3
| | | | | | | | Fixes a problem where, if you decrypt the device, the promtp for installing SuperSU appears briefly before it automatically reboots without letting you confirm or deny. Change-Id: I6f7b1c7096e788ccabd8f5aac9eb01d38bfbc0f7
* gui: fix lag (and event logging)that2015-02-011-18/+18
| | | | | | | | | | | | | | - Process multiple input events per frame even if rendering takes longer than 33 ms. Limit minimum frames per second to 2 instead, allowing us to catch up with the input events. The lag was especially visible when using the mouse. - Move blankTimer calls to the main input function so that moving the mouse also unblanks. - Fix a compile error with event logging. Change-Id: If9e0360f5cc0562c4356611afc61b6d583fb1ec4
* gui: move input handling into a classthat2015-01-301-219/+243
| | | | Change-Id: I97e08a23369af0112875af84b3fb529cf42e929e
* Move input handling into the main threadEthan Yonker2015-01-301-150/+169
| | | | | | | | | This also makes the hardwarekeyboard.cpp file that I created for the Asus Transformer tablets with a keyboard dock the default hardware keyboard handler. USB keyboards should work properly now if present for keyboard input. Change-Id: I724606e91ffe2a55265a9d1cb1ec714de244d38b
* Use TWAtomicInt in gui.cpp to make it thread safeEthan Yonker2015-01-271-35/+23
| | | | Change-Id: If05202355d3773e73541288c922fa6c69b1a9ad7
* Use /twres instead of /res for theme resourcesDees Troy2015-01-221-5/+7
| | | | | | | | | AOSP and other ROM trees now do a rm -rf of the res folder during the ramdisk creation process that removes the TWRP resources. Using /twres instead of /res works around this issue making TWRP more compatible with AOSP and other build trees. Change-Id: I0d4c7e06ca381ac5aa0069b6f2b8c47f7dec49e7
* Move ORS command line into main threadEthan Yonker2015-01-221-139/+110
| | | | | | | Also eliminate the mostly similar runPage function in favor of using a single runPages function to avoid code duplication. Change-Id: I46ef414beb4009fee16d4de13d8a5ab2b9678409
* Fix handling of custom themes after decryptEthan Yonker2015-01-131-0/+32
| | | | | | | | Loading a custom theme from the decrypt action was preventing the runPage function from exiting. This moves the loading of a custom theme out of the action. Change-Id: I86904b63a67a25ded56e3e1e569fe906264dc055
* gui: simplify blanktimerthat2015-01-111-34/+9
| | | | | | | | | - get rid of separate thread, check timer in rendering thread instead - use an enum for the blanking state instead of magic integers - move #ifdefs for TW_NO_SCREEN_TIMEOUT inside blanktimer class - move some #includes and enum TOUCH_STATE to pages.hpp Change-Id: Id4b104e3680dc5db41d8ba85e32d722cf4086299
* Allow for X and Y offsets in GUIEthan Yonker2015-01-091-1/+1
| | | | | | | | | | | | | | These can be used to center a lower resolution theme onto a higher resolution screen. May be useful for Nexus 9 unless or until we decide to do a 1536x2048 theme or on devices like the Moto 360 and LG G Watch R. The build flags will only affect the stock theme. If a custom theme wishes to apply an offset, it can be done by setting tw_x_offset and / or tw_y_offset in the variables section of the XML. Change-Id: I2390769ed861b96a4a3bb8a0f06d9021ec91b6b9
* Use one mizip for allEthan Yonker2014-12-101-5/+0
| | | | | | | | | | | | The new minzip did not compile in older trees due to needing mmap64. For older trees we will just use mmap instead. Remove all files and code pertaining to minzipold. Updater should now build properly in older trees as well. Eliminate use of PLATFORM_VERSION in favor of PLATFORM_SDK_VERSION which should be more consistent and reliable. Change-Id: I38d2b604a73d1b17a2072c7d60e990b81ece0c10
* Fix crash when rapid firing command line commandsEthan Yonker2014-10-221-0/+4
| | | | Change-Id: I0caaa51720fe3608b8c4cb02f046afb3cbaa54f9
* Add command line capabilitiesEthan Yonker2014-08-091-1/+98
| | | | | | | | | | | | | | | Allows sending openrecoveryscript commands to TWRP via shell. This may be handy for visually impaired users, for various one click utilities to drive TWRP commands from a computer, for using TWRP when a catastrophic hardware failure like a shattered screen prevents you from being able to use touch, or even on devices like a TV stick where touch and USB mouse input is unavailable. This patch also includes a few minor changes to openrecoveryscript including proper support for rebooting via the script and for decrypting the device via the command line. Change-Id: I796ad168efdd2da9c25334ac93d1079daaa7b0bc
* Whitespace and minor code cleanupMatt Mower2014-06-041-4/+1
| | | | | | This is by no means comprehensive, but is quite a bit better already. Change-Id: Ibc8654a5dfb0eec39cbd0b64bdb52bb4fbfe2f7e
* Add support for actions triggered by key combinationVojtech Bocek2014-04-161-17/+14
| | | | | Change-Id: I9dfa7de40229f00412d63fc9c1eb3a809a6eb2e6 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
* Fix touch on Sprint HTC One m8Dees Troy2014-04-151-8/+10
| | | | Change-Id: Ia9fba3be16a33b3cb0c4a3458398a2e60ba7f001
* Allow building of an OEM friendly TWRPEthan Yonker2014-04-041-3/+5
| | | | | | | | Disable theming Disable creating the TWRP folder for the settings file Change factory reset on data/media devices to a full wipe Change-Id: I3104282b5dd3f55dfff7c8cf39c72750af08563d
* Merge "Add option to print render time of each frame to log file" into android-4.4Dees Troy2014-02-071-0/+27
|\
| * Add option to print render time of each frame to log fileVojtech Bocek2014-02-061-0/+27
| | | | | | | | | | | | Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Id158a6375fbadf4cdf0a8c7d143759e602419e7f
* | Implement mouse cursorVojtech Bocek2014-02-071-1/+62
|/ | | | | | Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I66d6db7b3ed9cca50b469d125b36224332e06913
* Update licenses to all matchDees Troy2013-10-221-14/+16
|
* Kang in older minzip for building in CM9 & CM7Dees Troy2013-09-101-0/+4
| | | | CM7 and CM9 do not have libselinux needed in the newer minzip.
* Add a TW_NO_TIMEOUT optionRicardo Gomez2013-08-251-0/+30
| | | | Change-Id: Ifb3a5bd9f1e6c2e9810c90b0aec198e91d5956fc
* Unify indentation and little clean-up in TWRP filesVojtech Bocek2013-08-241-433/+407
| | | | Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
* Revert "Fix touch not working due to gr_fb_width returning 0 in some cases"Dees_Troy2013-08-241-3/+1
| | | | | This reverts commit 70e1129612765b14e5aace0155d4683c91cde951. No longer needed after http://review.teamw.in/#/c/655/
* Fix touch not working due to gr_fb_width returning 0 in some casesDees_Troy2013-08-111-1/+3
| | | | Change-Id: Id5ce607a181110118ebc647fc07d387a7a3dc660
* Improve handling of XML errors for fix permissionsDees_Troy2013-04-051-1/+2
|
* Move all AOSP code out of recovery binaryDees_Troy2013-04-041-25/+23
| | | | | | Improves license compatibility between GPL and Apache Change-Id: I2b165aa575bb6213af6b07936f99610c113443f0
* Load user saved setting for blank timer on recovery startupbigbiff bigbiff2013-02-281-0/+3
| | | | Fix persistence of military time
* Check for root and root perms and offer to install/fixDees_Troy2013-02-211-0/+4
| | | | | | Also fix sort order for file selector by date and file sizes Change-Id: Idff9fe4232c19d4ed1082e78fabe6f921aa0a114
* This adds a 60 second screen timeout for TWRP. Might consider making this configurable in the future.bigbiff bigbiff2013-02-131-466/+546
| | | | | | | | | | | | | | | Will also set overlay to lockscreen so we don't have inadvetent screen selections. Touching the screen will bring the display back up. add back check script for poweroff move diff time function to twrp-functions.cpp make sure we chmod after copy_file add read_file and write_file functions to twrp-functions.cpp make single thread try to force update screen add forceRender drop caches after tar processing Change-Id: I3c5c509dd39dbb05451bbfe5d8b56d53c90d8d1b
* Use GUI for ORS instead of console onlyDees_Troy2013-01-251-0/+1
|
* Improve ORS sideload to display GUI with cancel buttonDees_Troy2013-01-181-3/+77
|
* Change curtain to file and remove curtain raiseDees_Troy2012-09-241-36/+6
|
* Add processing of fstab, mounting, and decryptDees_Troy2012-09-071-17/+10
|
* TWRP-ify AOSP codeDees_Troy2012-09-051-0/+629
Pull in most TWRP sources Stub out partition management code Make it compile -- probably will not boot Kind of a mess but have to start somewhere