Commit Graph

344 Commits

Author SHA1 Message Date
Ethan Yonker 090751af9d Fix bracket in watch theme
Change-Id: Ic30b56840f32215c2f171e043c99e679d33957fd
2016-01-25 23:54:07 +01:00
that 235c648a68 gui: use XML-based page for splash screen instead of a static jpg
For devices with an unusual aspect ratio, stretching a bitmap to
the screen resolution is sub-optimal. So let's reuse our XML engine
that allows assembling the splash screen from individual parts.

The splash page is loaded from a separate XML file for quick loading.

Change-Id: I2d3dad26e42fcefaf563dacdf0ffa61f209dada1
2016-01-25 19:25:34 +01:00
Ethan Yonker afde0983df Update mStartPage to make language selection work on other pages
We should offer language selection on any start page such as
decrypt or system read only. However, if the mStartPage variable
was not being updated properly so selecting a different language
was dumping the user back on either the decrypt prompt or the
system read only page. This patch set fixes the problem and places
the user back on the proper page when they choose a new language.

Change-Id: I5153d3b9525d8c93d3863f4b17ecf55b5209e3c7
2016-01-23 08:56:07 -06:00
z31s1g 608d7ff8ad gui: add language selection to several pages
Language selection for decrypt, decrypt_pattern and system_readonly pages.

Done:

portrait
landscape
watch

Change-Id: I5fd595cadcdebdd06e9dbb164d0736c84426ff1b
Signed-off-by: z31s1g <z31s1g@googlemail.com>
2016-01-23 08:17:00 -06:00
Ethan Yonker 4adc33ebff Fix (Auto Generate) handling for backup names
Change-Id: I29f3823d03c005fb55a0e0a98818d40bd1eb039d
2016-01-22 16:08:07 -06:00
z31s1g 6193e73a16 gui: language EN fixes
-swipe to reboot added
-added comment regarding "type yes to confirm format data"
-Remove the word "Settings" from the from some header subheadings (some had it, some don't)


Change-Id: Id3810c4f3aa5c02e94d854118805da7e51d309f3
Signed-off-by: z31s1g <z31s1g@googlemail.com>
2016-01-22 18:51:21 +01:00
Xuefer 579e907d60 Android 6.0 needs permission +x to create screenshot files
Change-Id: Id4a6c04712238b86787696337874239591082d39
Signed-off-by: Xuefer <xuefer@gmail.com>
2016-01-22 18:50:07 +01:00
Tatsuyuki Ishi 548a175182 Improve max brightness handling
If we can detect the directory, why don't we detect maximum as well?

Additional patch by: Matt Mower
Replace clunky /nobrightness handling

Cleanup TWFunc::Set_Brightness() and blanktimer::getBrightness() a
bit, primarily for the purpose of relying on the value in
tw_has_brightnesss_file instead of checking for a phony brightness
path.

Change-Id: Ib22595df53cefa8db7a1172a581984c42ad461c6
2016-01-22 18:06:00 +01:00
Matt Mower 3c36697b2d Fix a bunch of messages
* Find and rename/remove duplicate string variable names
* Add missing string variables to en language file
* Fix display of some strings missing @ in front of variable name
* Fix several %s --> {1}
* Be consistent in usage of cancelled vs. canceled (both spellings
  acceptable)

Tip for finding strings missing from language files:

1) Find all messages:
egrep -hr "gui_msg.+=" > /tmp/msgs.txt

2) Regex replace to trim them down
WHAT: ^\s+gui_msg(?:[^"]+)"([a-zA-Z0-9_]+)=([^"]+).+
WITH: $1
Note that $2 can be used to retain the message

3) Find missing strings:
for i in $(cat /tmp/msgs.txt); do
    if ! grep -q $i gui/theme/common/languages/en.xml; then
        echo $i;
    fi
done

Change-Id: Ic193162e4b5468bf027472928a370be39840ea1d
2016-01-22 05:29:04 +01:00
Ethan Yonker 8e5692ffe0 Ensure that a base language is loaded before custom theme
Main goal of this patch is to improve error handling when a custom
theme does not contain a valid theme version. We were getting a
message saying that the theme_ver_err resource did not exist as
well as an error saying that the package had failed to load. Now
we properly get a single error message about the theme version.

Change-Id: I361ef2d139220bbeaf2e856be919dc3a50ae4299
2016-01-21 11:21:12 -06:00
that d4725ca147 gui: fix return value of NotifyKey
Only the last action got its keys and ate all of them (om nom nom).
This fixes the power button action that activates the lock screen.

Change-Id: Ia724568b159090c2c14a282cf3927915b2dc70e7
2016-01-19 00:15:21 +01:00
z31s1g faa4377e40 gui: make tw_show_kb non-persistent
Change-Id: Icb3dd2342cc3bdc349aaf933d306b9f5315d1e98
Signed-off-by: z31s1g <z31s1g@googlemail.com>
2016-01-18 09:57:45 -06:00
Ethan Yonker dedbb7f782 Make listbox translation work
Change-Id: I446f4499a43e6348a2b95846f3e5ea86967abbdc
2016-01-18 16:46:18 +01:00
that 1cc7fed32e Delete leading spaces after word wrapping in console
Change-Id: I11887ebc1a3afd8f9acb1e85a212e2fe6299441c
2016-01-18 09:44:05 -06:00
Ethan Yonker 9598c07d40 Do not require mounting during zip flashing if path exists
Change-Id: Ideb4bb39b5e864a43b62e807c38b6395c56a8466
2016-01-18 16:16:01 +01:00
Ethan Yonker 1308d53e24 Add theme version checking
Add a themeversion value to the ui.xml details section. Check this
value against a define during early theme loading. If we are
loading a custom theme, then reject the custom theme if the
version does not match (or not defined) and load the stock theme.
If it is the stock theme, show a warning but continue loading.

Also fix an issue with changing overlays. Not sure how it ever
worked before, but it works now.

TLDR: Use the stock theme if the custom theme version does not
match.

Change-Id: I0277cbe035cbec7e16b6327500762dadf9c1c5c8
2016-01-16 08:19:51 -06:00
Ethan Yonker 483e9f45b7 Improve sdcard partitioning process
-Improve code for partitioning sdcards
-Allow user to select a device for partitioning (must be removable)
-Use sgdisk to partition sdcards
-Set default sizes for ext and swap to 0
-Change increments for ext to 256MB and swap to 64MB

Note: sgdisk is included in 6.0. I have included a static prebuilt
sgdisk for trees that do not have sgdisk, however the prebuilt
sgdisk is a decent bit larger than the old parted binary. The old
parted binary is quite old at this point and we only have it for
armv7a. sgdisk should be maintained by AOSP and can be built from
source so it should work across architectures.

Change-Id: Ib80882d9b5776e5e9358b11340fba392e6f1ae09
2016-01-14 17:40:43 +01:00
z31s1g 5618952043 gui: theme changes for terminal
Done:

Portrait HDPI, MDPI
Landscape HDPI, MDPI
Watch

Also still includes ugly changes for the old portrait theme to test the
terminal emulator.

Change-Id: If32af1c69b85417522a8a2fb9c20be515b4d70fc
2016-01-13 22:38:54 +01:00
that a17f175bd3 gui: reap terminal child process to avoid zombies
Change-Id: Ia46d8acb8b13075a2519df1deb91dd30a5969a48
2016-01-11 21:43:00 +01:00
that 1964d19c46 gui: add terminal emulator
Emulates enough of a VT-100 to run busybox vi.

Change-Id: I99c829c6c9de2246194ecb8b8b3cdf4ac34a0606
2016-01-07 22:30:39 +01:00
that 8834a0ffc0 gui: add keyboard support for Ctrl layer and more special keys
- 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-07 22:30:39 +01:00
Ethan Yonker 4c105b9a4c Fix translation spellings
Change-Id: I3fc40c61d78cf017c6753ddd9520aa2ef2e853fc
2016-01-05 16:26:51 -06:00
Greg Wallace 2d65340c0f gui: Fix partition repair message
The message was named something non-existent.  Fix the spelling error
and add the default message into the language files.

Change-Id: I4e9e10d2705b1edf75b185d3badba59eb86ffb8b
2016-01-04 07:29:15 -06:00
Greg Wallace 4b44fef5ca gui: Fix typo of formatting_using message
Change-Id: I6df4937658815350366ed3dd2cf92156f98c96c4
2016-01-04 07:26:43 -06:00
Aleksa Sarai b25a18395e gui: PatternPassword: allow any N*N grid
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>
2016-01-02 19:44:48 +01:00
Andreas Blaesius 54f34fc393 twrp: fix a typo and remove whitespace
Change-Id: I783e2bbc15ad8e10aab81d14d140a995681e860f
2015-12-29 23:47:07 +02:00
that 677b13f74b gui: fix screenshot_saved message
Change-Id: I7d047fe3436100dbe7c7515860a143a97f7ef0d4
2015-12-29 23:46:19 +02:00
that 10ae24ff94 get rid of console thread for OpenRecoveryScript
- 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-29 15:39:57 -06:00
Xing 0af1ac13d1 do not include stlport headers unless link to it
Change-Id: I8344d270ddb601694b5fef0fa7b22ea437030728
2015-12-23 22:36:41 +02:00
LuK1337 62326f4107 Set twrp.action_complete after completing action
Change-Id: I078f0659696cc57564b5db0076a0ed9aaea822d4
2015-12-23 20:32:19 +02:00
Matt Mower 80f7b361f0 exfat: Build fsck and update path to mkfs
* Usage of fsck.exfat is already included in partition.cpp, but the
  tool is missing.
* Update the path to mkexfatfs so the button is available when changing
  filesystem.

Change-Id: I5f4e27357c6b5a8606043d1bdc2488cc83e55d90
2015-12-22 15:26:01 -06:00
Ethan Yonker ab7955d874 Improve string resource lookup in twmsg
Change-Id: Iaac7d3df0bd12a4d817d4ad273254662865b775a
2015-12-21 10:18:03 -06:00
Ethan Yonker 9ce9591cfb twmsg: fix notfound detection
Change-Id: Ie95fdfaed7011994ac11202d070edeb95032b805
2015-12-20 22:50:23 -06:00
that d62d886d9c twmsg: fix build error (isdigit not declared)
Change-Id: I3101d15e5d94241cf8e583d1e06e09f3bc8b31f7
2015-12-20 20:40:15 +01:00
Ethan Yonker 74db157b94 Multiple Language Support
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-12-19 08:31:01 -06:00
z31s1g 28f0a92bb2 gui: stock theme rework
Tries to combine the current theme with a touch of material.
Page structure is untouched for the most part.
Layout grid is changed to achieve a "less random" placement of
objects on a page.

Change-Id: Icaf796be410431b17d5be6ccc1134d40912bef0b
2015-12-19 08:28:11 -06:00
Matt Mower 18794c820f Update dosfstools
* Version 3.0.28
* Update filenames in source
* Remove unnecessary symlink to fsck
* Commit "Recode short filenames from DOS codepage (default 437)." has
  been reverted since we do not have access to iconv
* Commits cherry-picked on top of 3.0.28:
    - mkfs.fat: fix incorrect int type
    - Prevent out of bound array read in date_dos2unix()

Change-Id: I50310235c62ec2e6bc90afcd10f2814d3afb5113
2015-11-26 06:09:55 +02:00
Ethan Yonker e0f1f3b4d1 Move reloading of theme outside of the action thread
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
2015-11-09 14:57:23 -06:00
Ethan Yonker fd52b987e5 Fix bution action position when using textplacement TEXT_ONLY_RIGHT
This makes the touch target include both the text and the image
for buttons masquerading as a check box.

Change-Id: If8432c5863de136b1a215dabb3e06109ccce4410
2015-11-06 15:24:35 -06:00
Ethan Yonker 1673e3d4ea Treat /vendor like /system for read only
The vendor partition is verity checked just like system so we
should treat vendor as read only same as system.

Change-Id: Ida65c9f44d8610e52fcdcef0b4a50faf5c7110d2
2015-11-05 21:07:21 +02:00
that 54e9c839bc gui: fix default styles if object type is in element name
Change-Id: I4bc46d1772fee2ec77d95732fa3f69c267c2c34e
2015-11-05 20:52:46 +02:00
that 35f17402e4 gui: fix initial state of checkboxes in listbox
The GUI is initialized before DataManager loads the settings file,
so we need to update the checkboxes on page change too.

Change-Id: If4c694872608ec4014220364bd759c1399502994
2015-11-05 20:48:24 +02:00
Ethan Yonker 25474e45b8 Fix screen timeout text placement
Change-Id: I7b020c7048f9bbb550e9f5100c604c01809e4fbd
2015-10-26 21:44:22 -05:00
Ethan Yonker 44925ad190 GUI TextBox
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-26 11:54:16 -05:00
Ethan Yonker d0514ba806 Fix a bunch of warnings
Mostly adding __unused where needed.

Change-Id: Ia4f675b9b360782728c361ed1699db0cc277c3a5
2015-10-24 17:36:24 -05:00
Ethan Yonker b7a54a3016 Allow text to scale to fit
Change-Id: Iacd4bb78f551b51d092ecde09521b5541e7dadcd
2015-10-16 22:57:35 +02:00
that 8ab5c13428 gui: support conditions for listbox items
Change-Id: Iea189ac53ec3d7c1bea83da7b77684778b1c0f46
2015-10-16 15:40:31 -05:00
that 20fb95d0a7 gui: extract methods for condition list handling
This is a preparation for list item conditions.

Change-Id: Iec731d1986a53b0362c534adf504dfe8db87d3f0
2015-10-16 22:33:15 +02:00
Ethan Yonker 56ce332315 Allow listbox to have a list of check boxes
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-10-16 15:30:51 -05:00
Ethan Yonker 561c58de19 Use unified LoadFileToBuffer function
Create a single function for loading xml files to a memory buffer
to reduce code duplication.

Change-Id: I0ff64463072118f61a2eb8052f74019715020253
2015-10-16 15:23:56 -05:00