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
Resources are deleted by ~PageSet and do not need to be deleted
by the the scrollable list elements. This fixes a crash when
reloading the theme.
Also remove some deletes for items that should not be deleted in
button and input GUI elements.
Change-Id: Ie1c1b85c81c10f648d085746a5fdba6220468a5f
- 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
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
Speeding up scrolling after releasing is distracting, get rid of it.
Instead reduce friction to its previous value.
Change-Id: I5c99cc71b631747697e967bd75669aa3d908c637
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
-Create a separate function to disable stock recovery flashing
-Add a call to that function to the reboot section of the ORS
action so that an OTA update will not inadvertantly replace TWRP
Change-Id: I43eae81e0e76971b6e8d34c38785dc73772242d2
- 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
- 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
- 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
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
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
(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
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
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
Also eliminate the mostly similar runPage function in favor of
using a single runPages function to avoid code duplication.
Change-Id: I46ef414beb4009fee16d4de13d8a5ab2b9678409
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
- 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
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
- 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
- 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
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
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>
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
- "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
We need to set the value of tw_operation_state a little sooner to
make the decrypt page work correctly. Without this change, decrypt
would incorrectly display the main page during the first decrypt
cycle. This fix may also fix ORS and possibly other things that
use the runPage function.
Change-Id: I85ad6e4add6726a2746eeb7116f3eab3f7ff5d84
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
Indenting the warnings with tab resulted in a make error
"*** commands commence before first target. Stop."
instead of the intended message. Using spaces instead.
Also fixed the web link to point to the current build guide on XDA
instead of the outdated one on rootzwiki.
Change-Id: I8b25d39edae16dbc479c0e36bd11e12b49b4fbb0
- avoid parsing permission strings
- fix memory leaks, a fix new/free mismatch and a compiler warning
- fix that only first updated-package was processed
- fix a potential stack overflow if packages.xml is huge
- minor refactoring for reducing duplicated code
- don't process packages without codePath
- fix path for deleting app data (currently unused anyway)
- fix file ownership on libs
- try not to mess up Android 5.0 app permissions
Patch set 4
- make fixing SELinux contexts an option with a check box
- add some notes / text to the themes
Patch set 6
- decouple "fix permissions" from "fix contexts"
Change-Id: Icc77ecc581befc5ce6e419b1f3b8ca189208c234
With 5.0 L, we decrypt automatically if the default_password is
used. Non datamedia devices do not get the format data button so
they cannot wipe encryption off the device. This patch add a wipe
encryption button where the format data button would normally be
located on the Wipe page.
This patch also attempts to remove / delete the dm-crypt block
device before formatting.
Change-Id: I100d5d154d6c49254fd48e23279df973db5f23ae
Implement a pipe between TWRP and MTP to allow TWRP to tell MTP
to remove storage partitions as they become unavailable (e.g.
during a wipe, unmount, etc) instead of disabling MTP completely.
This includes some fixes and improvements in destructors to
properly remove / delete various items. This also means that we
will not be toggling adb off and on quite as often.
I do not like that we had to add another thread, but we were
unable to use select() on the mtp_usb character device because
this device does not support polling. Select always returned
indicating that the mtp file descriptor was ready to be read and
the resulting read would block. The read block prevented us from
being able to include reading of the pipe between TWRP and MTP in
the main MTP thread.
We might want to add a return pipe letting TWRP know if the
removal of the storage device was successful, but I am not sure
how we want to implement this. It would invovle timeouts in both
TWRP and MTP to ensure that we returned a failure indicator in a
timely manner to TWRP and prevent deleting the storage device in
the case of a failure. Right now we make no attempt to ensure that
an MTP operation is underway like a large file transfer, but we
were not doing anything like this in the past. In some respects we
have limited control over what happens. If the user installs a
zip that unmounts a storage partition, we will not know about the
change in storage status anyway. Regular Android does not have
these troubles because partitions rarely get unmounted like in
recovery. At some point, we have to hold the user accountable for
performing actions that may remove a storage partition while they
are using MTP anyway.
Ideally we do not want to toggle the USB IDs and thus toggle adb
off and on during early boot, but I am not sure what the best way
to handle that at this time.
Change-Id: I9343e5396bf6023d3b994de1bf01ed91d129bc14
Windows does not do very well if you try to sideload while MTP is
enabled due to drivers. This will toggle MTP off and back on if
MTP is currently enabled before and after a sideload operation.
Change-Id: I022dbedecc97565b50b6ae1fda8922b822f63440
Actually display the name of the item or the filename of the item
that we were unable to load in the log to make it easier to
determine what went wrong.
Change-Id: I027b35aab286e4d0f1957bcfb28ed40d81f9bbb2
Files and folders that we create during backups, copy log, or MTP
operations often do not have the proper uid/gid/contexts assigned.
We will attempt to read the proper contexts from the settings
storage path and assign those same contexts to any files or dirs
that we create.
Change-Id: I769f9479854122b49b499de2175e6e2d026f8afd
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
The button vibration slider was not showing up on portrat layouts.
This commit fixes that issue and maybe some other issues.
Change-Id: Ia0c0ed319358db3b99887b3b37aa7737c7caf0cc