summaryrefslogtreecommitdiffstats
path: root/gui/objects.hpp (unfollow)
Commit message (Collapse)AuthorFilesLines
2017-03-01gui: preserve order of gui_print vs gui_msgthat1-0/+2
- rename __gui_print to internal_gui_print (__* is reserved for compiler) - translate outstanding messages in internal_gui_print - add locking because background thread could print while we render - minor cleanup Change-Id: Ib687d2cfb4763ad08ad4d4b76daf5b129d61d2e2
2017-01-18gui: Actions: Toggle backlight on power keyMatt Mower1-0/+1
Create GUIAction to handle KEY_POWER with a screen backlight toggle. Change-Id: Iad0a7923b4a776e0336722db74d6fc46cd0107a2
2017-01-18Whitespace cleanupMatt Mower1-2/+0
Change-Id: I93c65973679894bb8587da4b38b410d38036b8bd
2017-01-11Support theme width and height offsetsJames Christopher Adduono1-0/+6
Current use condition is LG V20, where the secondary screen is actually just a corner chunk of the main screen. In this case, we need to shift the UI down some pixels in order to see it all, but just using Y offsets resulted in losing the rest of the GUI below. Example in BoardConfig.mk: # Shift TWRP off the secondary screen TW_Y_OFFSET := 160 TW_H_OFFSET := -160 Change-Id: I5a06638ba0d05e5b9fd8a6245c630d6ea3394f78
2016-12-16Add TWRP app install via TWRP recoveryEthan Yonker1-0/+2
Note: I will have to add a build flag for excluding the app later for watches and maybe Android TV. I will also have to add support in the tablet and watch layouts later. I will merge this for the initial roll out to select devices and finish up later. Change-Id: Ia4ce5522fae542afa1539b10c0691315392a19ab
2016-12-13Add boot slot supportEthan Yonker1-0/+1
Change-Id: I7eaf80e327985f53791f90fbdebad022a9650d31
2016-08-19GUI: Add countdown & cancel to install auto-rebootMatt Mower1-0/+1
Provide a countdown from 5 sec for the automated reboot after install. Include a cancel button to interrupt the process. Change-Id: Ib5e1447918adfde45eba361c088800812b690890
2016-04-04gui: don't mix up display value with actual valueSultan Qasim Khan1-4/+3
In the case of password entry, the two differ. Password entry was broken by the earlier commit entitled "Improve input box text handling" because it started using the displayValue as the actual value, even in cases where they differ because of a mask value. Change-Id: Iaf5a67e1d928f34595962a1f1b80eebb64e8b493
2016-03-29Improve input box text handlingEthan Yonker1-6/+8
Change-Id: I79cfaac1adf85d1ee5514bf5266930823c1a15ff
2016-02-03gui: remove unused struct translate_later_structthat1-9/+0
Change-Id: I663f327585b4037eba62508a1f6484ca152bf3c5
2016-01-29Replace fix permissions with fix contexts for emulated storageEthan Yonker1-0/+1
Fix permissions rarely fixed anything on more recent versions of Android and usually made things worse. Instead we will replace it with a more dumbed down option that should fix contexts on /data/media with a few improvements to ensure that contexts get fixed for multiple users and on adopted storage. Change-Id: If5523781936a0b04196e2ad871cae767ebae2583
2016-01-18Make listbox translation workEthan Yonker1-0/+1
Change-Id: I446f4499a43e6348a2b95846f3e5ea86967abbdc
2016-01-07gui: add terminal emulatorthat1-0/+38
Emulates enough of a VT-100 to run busybox vi. Change-Id: I99c829c6c9de2246194ecb8b8b3cdf4ac34a0606
2016-01-07gui: add keyboard support for Ctrl layer and more special keysthat1-22/+22
- rename NotifyKeyboard to NotifyCharInput - input: handle arrow keys in NotifyKey with standard KEY_* codes - fix page handler to return 0 from NotifyKey if key was handled - fix GUIAction::NotifyKey to not swallow all keys - change home button code from KEY_HOME to KEY_HOMEPAGE (to avoid collision with Home/End, conforms to Android 3.0+) Change-Id: Ib138afa492df8d0c1975415e8b5334c8778ccc90
2016-01-02gui: PatternPassword: allow any N*N gridAleksa Sarai1-3/+8
Rather than only supporting a 3x3 grid, allow for multiple grid sizes (using the CyanogenMod method of generating passphrases for non-3x3 grids). Also fix the detection of touches, as the old code was far too sensitive for larger grids (and also didn't make much sense). Change-Id: I343ef654e6d29ce0cb790a28281be7c7c9b171d9 Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
2015-12-29get rid of console thread for OpenRecoveryScriptthat1-0/+1
- CLI commands run in a threaded action "twcmd" - Console is displayed via "singleaction_page" - move ORS execution code from GUI action to OpenRecoveryScript class - remove unused function gui_changePackage - don't change PageManager package in home action - fix that /tmp/openrecoveryscript was not deleted after execution Change-Id: Ic688c0b04647ce09e9db979b0bc5123f47cf4f70
2015-12-19Multiple Language SupportEthan Yonker1-0/+11
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
2015-10-26GUI TextBoxEthan Yonker1-1/+28
Allows the GUI to create a scrollable text box for long text that may not all fit on the screen. Also includes code to allow the console to wrap on spaces and other such characters instead of wrapping in the middle of a word. To see an example of how to add a text box to the XML, see: https://gerrit.omnirom.org/#/c/14183/ Change-Id: Ifd139172ede290046b58ea3fe526e2e06da1d4ef
2015-10-25Fix a bunch of warningsEthan Yonker1-5/+5
Mostly adding __unused where needed. Change-Id: Ia4f675b9b360782728c361ed1699db0cc277c3a5
2015-10-16Allow text to scale to fitEthan Yonker1-12/+4
Change-Id: Iacd4bb78f551b51d092ecde09521b5541e7dadcd
2015-10-16gui: support conditions for listbox itemsthat1-2/+4
Change-Id: Iea189ac53ec3d7c1bea83da7b77684778b1c0f46
2015-10-16gui: extract methods for condition list handlingthat1-2/+4
This is a preparation for list item conditions. Change-Id: Iec731d1986a53b0362c534adf504dfe8db87d3f0
2015-10-16Allow listbox to have a list of check boxesEthan Yonker1-0/+2
For an example of how to implement a list of check boxes, see: http://bit.ly/1Giacw2 https://gerrit.omnirom.org/#/c/14284/2/ Change-Id: I0752a084625f4a0ef8cc6d99597f2fb9aa2ab9e0
2015-07-14gui: allow listbox to be used as menu and as read-only listthat1-0/+1
Also enable string insertion for list items. Example how to make a menu item: <listitem name="Lights on!"> <action> <action function="setbrightness">255</action> </action> </listitem> If no <data> element and no actions on any items exist, the list is read only and no item selection is possible. Change-Id: Ib2668a982df2514484d44faa0396dd17550f39f3
2015-07-14gui: keyboard: support longpress label offset, code cleanupthat1-1/+4
To position the longpress label: <longpress font="..." textcolor="..." x="5" y="0"/> x and y is the distance from the upper right corner. - extract method GUIKeyboard::DrawKey - clean up handling of currently pressed key - integrate key highlighting into main key drawing loops Change-Id: I80ccf2975d30cffa2a48627a74ab3693c84e4fa4
2015-06-20[WIP] gui: software drawn keyboard (code only)that1-1/+21
Change-Id: I9f05c85f8d43ab012228a78b79220a27876a299d
2015-05-28Add resize2fs and ability to run resize2fs via GUIEthan Yonker1-0/+1
Note: Only works on ext2/3/4 partitions. Only tested on ext4. We can use this in some cases to resize the data partition if an incorrect fstab caused recovery to not reserve the 16KB for a crypto footer. Sometimes the BoardConfig for a custom ROM does not have the correct size for the system partition and if the ROM flashes a raw system image, that image will not take up the full block device. Running resize2fs can fix the size and may allow more room in the system partition for customizations like busybox or a larger gapps package. Sometimes flashing a factory image may flash userdata with an image with a file system that does not take up the full size of the block device (e.g. factory images for the Nexus 6 will flash userdata with a ~24GB userdata image, wasting ~30GB of space). Using resize2fs we can easily fix this issue without having to do a full format data. Change-Id: I631f5c6f567bbc6a9241e5dd95f1e435820a1b13
2015-05-27Mount system as read-only by defaultEthan Yonker1-0/+2
Mounting system as rw can prevent future OTA updates. The purpose of this patch set is to prevent TWRP from mounting sytem as rw on the first boot. Device maintainers should update their twrp.fstab files on these devices to include an additional line: /system_image emmc /dev/block/../system This line will allow TWRP to create a raw system image backup to ensure that the user can return to an original state for future OTA updates. Change-Id: I8929d85bc3a5b96cc564bc7f734b58d5612ec833
2015-03-15gui: keyboard: introduce struct Layout and simplify caps handlingthat1-10/+13
Also minor cleanups: - move array limits from #defines to a protected enum - zero fill layouts in ctor Change-Id: I8fe0f8465ebc646ad3bf3cc3f8490dbdd384f43d
2015-03-14gui: keyboard: add HitTestKey method, minor simplificationsthat1-7/+7
Change-Id: I6cd0251dd9d933e6ebef977a553be7473e2d7034
2015-03-14gui: keyboard doesn't need its own actionthat1-1/+0
This was questionable design and is unused anyway. Also reduced a few redundant #includes. Change-Id: I65bb01120e6072c5695755920242f6f9d73c816e
2015-03-13Add UI for entering pattern for device decryptionVojtech Bocek1-0/+52
Change-Id: Ia2d3268a96423e9ca3846500c57e674c4f8fa60b Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2015-03-11gui: support string resourcesthat1-3/+0
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
2015-03-05gui: kinetic scrolling for consolethat1-61/+51
- Rebase console on ScrollList - Add fastscroll bar to console - ScrollList now has a mode that ignores selections - Increase kinetic scrolling speed for lists showing many items Change-Id: I6298d717d2e403f3e85e2c633d53c4284a066012
2015-03-05gui: introduce virtual RenderItem method in ScrollListthat1-7/+8
- so derived lists can draw whatever they want (multi-line etc.) - replace GetListItem with RenderItem - minor cleanup Change-Id: I062e0a354f1c18ce0a5232b7542c4987b480e232
2015-02-23gui: don't truncate values to 0 after scalingthat1-1/+0
Avoids invisible lines (e.g. input cursor) when scaling down. Change-Id: I595e8bdb2fa468c30f104867ad77be2423ec287f
2015-02-21gui: proportional scrollbarsthat1-2/+7
- Attribute "recth" in the <fastscroll> element is now the *minimum* height for the scrollbar. - Dragging the scrollbar moves the list. - Touching outside the scrollbar jumps to the relative position. Change-Id: Ic1f20b5ec68cf49e5be56be34f0c58c0f474618b
2015-02-21GUI: Support styles in xml to reduce xml file sizeEthan Yonker1-1/+6
Also allow sliders to have their own text label instead of requiring a whole separate text object for the label in the xml. Change-Id: I6e314efb4bb454d496555ff7e003d743063a1308
2015-02-15gui: support scrollable lists without headersthat1-5/+4
If the <header> element doesn't exist, the header is not drawn. - minuitwrp: add function for clipping all drawing to a rectangle ...and another one to cancel it. Change-Id: If0f688a5debee6ebd9c457999fe571705a42c5cc
2015-02-15gui: make resources type safethat1-42/+44
- add string, int, color and resource loading helpers - use typed resource classes, and some cleanup in loading code - remove abstract GetResource() to enforce type safe access - add height and width query methods to resources and use them - minor cleanup - simplify LoadPlacement Change-Id: I9b81785109a80b3806ad6b50cba4d893b87b0db1
2015-02-15Retain and display previous selection for image flashingEthan Yonker1-1/+1
Change-Id: Ib9963d8d393cf4428e43a3d6552d98ae67c1d7bf
2015-02-06gui: fix console lockup when scrollingthat1-5/+5
Apparently fixing all the signed/unsigned warnings was good. :) Change-Id: I62faa23179e8b2436fe0d24d2152af341cd42fe9
2015-02-05Unify scrollable list codeEthan Yonker1-165/+130
The goal of this patch set is to eliminate the code duplication caused by copy/paste of the code in the file selector, listbox, and partition list GUI elements. Those classes will now utilize a single GUIScrollList class that will handle rendering and scrolling. Change-Id: I0cb98ab36cf47178296034293435225658c779cd
2015-02-01gui: simplify code in GUIKeyboardthat1-5/+5
- merge duplicated code into new ParseKey method - convert some unsigned int to int to avoid warnings - add local variable for current key in NotifyTouch to reduce clutter Change-Id: I98ddbaca50d487c97ab6e98938df91ef03b9aed5
2015-02-01gui: fix hardware keyboardthat1-4/+9
- Power+voldown works again for taking screenshots - Right shift key isn't stuck until users presses "s" - Don't use DataManager for local variables - Simplify handling of Shift keys - Clean up #includes a bit Change-Id: Iff0453107beaa336a9c04422b43e92225fdbe069
2015-01-30gui: run cancel action in another threadthat1-20/+3
Some actions did not have an operation_end where needed especially when dealing with cancel actions. Cancel actions now do not run operation_start or operation_end and let the original action handle the operation_end so that the GUI waits until the original action acutally cancels. Change-Id: I28e6260abb058acb982cecd108c09fc89e0ffeed
2015-01-29gui: fix IsInRegionthat1-3/+3
(0,0) was inside the region of "locationless" action objects, leading to all kinds of strange behavior when clicking in the upper left corner. Change-Id: I222db4ff499f3c30605b05267f005accb2e0dc99
2015-01-27Add cancel backup capability.bigbiff1-0/+1
This will stop the iteration of the partition objects, kill the current twrpTar thread and remove the backup directory. Implement TWAtomicInt class to give us a wrapper that automatically uses mutexes before the read and write to help ensure that the reads and writes will be atomic based on documentation. Change-Id: I645b22bc980a292e9c7202acb24ffd22ebe68c63
2015-01-09Allow for X and Y offsets in GUIEthan Yonker1-0/+7
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
2015-01-09Improve GUI handling of zip flashingEthan Yonker1-1/+1
- change the page sooner so that users cannot activate the slider twice - improve GUI messaging if a zip requests a cache wipe - move update of the file count to the end so it is less visible to the user (e.g. during a cache wipe the counter should not read 0) Change-Id: I5d478f07effe61ca37f3521a77c9e9243a9cb692
2015-01-09Allow flashing of images via the GUIEthan Yonker1-0/+1
- Use the Images... button in the lower right of the zip install page - Unify image flashing functions between restore and image flash - boot and recovery partitions are flashable by default - use fstab flag flashimg=1 or 0 to override defaults - file system partitions are currently not flashable Change-Id: I822dc446030543c55d2153e219d67a1292374ffc
2015-01-09gui: fix action threading if background thread is busythat1-2/+1
When the background thread is already running and we have at least one threaded action in the list, we should not run any non-threaded actions before ignoring the threaded action and following ones - it might cause invalid state variables to be set. Run or ignore the whole list in the background thread instead. Change-Id: Ie634105b80f038893898a21539886bd757eb47ce
2015-01-09Run some actions in a separate threadthat1-4/+25
Some actions need to be threaded so we will run those in a separate thread and deny requests to thread more actions if new requests come in while a thread is already running. Change-Id: I966c538e67860a6d8fe556e5a2eb7f7d1a987e74 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2015-01-05Thread openrecoveryscript action to properly display action pageEthan Yonker1-0/+1
The action page fails to display properly during ORS processing unless we thread the ORS action. Based upon the work done in this patch set by _that: https://gerrit.omnirom.org/#/c/11226 Change-Id: I6dac790ac26d9b3a02df778516fea011d67aea70
2015-01-04fix adb sideloadthat1-0/+2
- "Cancel" button handling requires another thread - simplify handling of child pid - merge duplicated code for reinjecting TWRP after installation - fix error that showed on host PC after sideload finished - fix problem where adbd sometimes does not stop correctly Change-Id: I536877f024b606756c6a3289c6ddfdba423a60d6
2014-12-30gui: Move action functions to function pointer map.that1-5/+68
This allows the functions to be more readable and make doActions readable. Patch set 5: gui: remove threading in GUIAction Multiple actions were started in another thread that was joined immediately after starting it, so the input thread was blocked anyway. Selected single actions were started in their own thread, but this caused bugs like being able to install the same package twice in parallel by quickly swiping the slider twice. Change-Id: I28adadaedd032efc7bff3aaa48e659627aa3a3b3
2014-12-10Use one mizip for allEthan Yonker1-8/+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
2014-08-07Add possibility to use images as background or handle of slidevalueVojtech Bocek1-1/+5
* Add tag <resource background="x" handle="y" handlehover="z" /> to the slidervalue object. * All images are optional, e.g. you can use just handle or just background image or no images whatsoever Change-Id: Ie0fee92965c6e883c4e532732756008dcc9e385e Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-07-09Color in the consoleEthan Yonker1-0/+1
Allow each gui_print command to specify a color Change LOGERR to use the error color Theme should specify colors for error, warning, and highlight Change-Id: Ie8ece34111f604e25fcb79e5b731cd4e61038ff9
2014-04-16Add support for actions triggered by key combinationVojtech Bocek1-3/+9
Change-Id: I9dfa7de40229f00412d63fc9c1eb3a809a6eb2e6 Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2014-02-26Add word wrap to console output and fix scrolling in consoleDees Troy1-1/+3
Change-Id: Ibcf89952ee1391350c715f1ec82cf0cdb9b0ca7d
2014-02-17Add capslock support to keyboardEthan Yonker1-1/+9
Change-Id: I4be3849ff0485536575395d798aa5edbe12651a7
2014-02-12Cache results of GUIObject::isConditionTrue()Vojtech Bocek1-13/+19
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Ia50f7c365b2dc0a65ee046bb42972e3594264878
2014-02-12Conditional -> GUIObject and make all gui objects children of GUIObjectVojtech Bocek1-18/+19
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Ic0a7d6354dabe5919b83942f2f1aa0715625e522
2014-02-07Implement mouse cursorVojtech Bocek1-0/+25
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I66d6db7b3ed9cca50b469d125b36224332e06913
2014-02-06Add haptic feedbackSamer Diab (S.a.M.e.R_d)1-0/+2
Change-Id: I15d723f73c0b0bb4a40645d1c3f4c1c616f36998
2013-10-24Update licenses to all matchDees Troy1-1/+2
Change-Id: I3be70a897e563658736b2dec3a9ea2697b69b225
2013-10-22Update licenses to all matchDees Troy1-1/+2
2013-10-11Add conditions support to GUIImageVojtech Bocek1-1/+1
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2013-09-12Pull ROM info from build.prop for backup namesDees Troy1-0/+1
Change-Id: I7847fca22b5d4f0a35da41625b15bd677a1e9768
2013-09-10Kang in older minzip for building in CM9 & CM7Dees Troy1-0/+4
CM7 and CM9 do not have libselinux needed in the newer minzip.
2013-08-24Unify indentation and little clean-up in TWRP filesVojtech Bocek1-410/+405
Signed-off-by: Vojtech Bocek <vbocek@gmail.com>
2013-04-04Add new SliderValue GUI widgetVojtech Bocek1-0/+66
Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: Ic5d44314f501341140dd7059d1cb753341f5844c
2013-03-30Add partition list GUI elementDees_Troy1-0/+106
Add partition list GUI element and update backup, restore, mount, storage selection, and wipe sections of GUI and partition manager code to reflect the new GUI element. Update ORS engine to handle new backup and restore setup. Fix a bug with decrypt. Add 1080x1920 layout. Change-Id: Iaa2f44cb707167e66f935452f076ba00e68a2aa4
2013-03-11Remove mutex from file seselectorDees_Troy1-1/+0
mutex would, in some rare cases fail to lock and cause a freeze of the GUI. Also restored some code that was removed before and should not have been removed to fix a bug with folder selection where you select the same file or folder twice (e.g. select a backup on the restore page, press back, then select that backup again.)
2013-03-04More file selector fixesDees_Troy1-0/+1
Fix a freeze that occurs when you move or delete a file in the file manager Make file sort buttons work again Change-Id: Ifcb68edf3c29c475946d538748729485d0840842
2013-02-28Fix file selector crashDees_Troy1-0/+1
Sometimes a var change event came in while the file selector was being rendered. Changes to the mFolderList or mFileList vectors sometimes resulted in a crash. This patch set moves the GetFileList call to the Render function to prevent the vectors from changing while the render is taking place.
2013-02-27Copy fast scroll feature to listboxDees_Troy1-0/+8
2013-02-27Add fast scroll bar to fileselectorVojtech Bocek1-0/+8
Also fix build problems with libblkid in CM7 Signed-off-by: Vojtech Bocek <vbocek@gmail.com> Change-Id: I1cd4573e25b247171e4bd8cc05b70543f897a454
2013-02-15Update listbox codeDees_Troy1-2/+22
2013-02-15Add highlight to file selectorDees_Troy1-0/+6
2013-02-15Add button highlightDees_Troy1-0/+3
2012-10-20Add keyboard key highlightDees_Troy1-0/+2
2012-10-19Add ability for buttons to have highlights on touchDees_Troy1-0/+9
2012-09-11Zip install works againDees_Troy1-1/+1
2012-09-05TWRP-ify AOSP codeDees_Troy1-0/+753
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