Commit graph

85 commits

Author SHA1 Message Date
Tao Bao
736d59c567 recovery: Fix the broken UI text.
UI text is broken (doesn't show any text during FDR) due to commit
d530449e54, which reordered the calls to
RecoveryUI::SetLocale() and RecoveryUI::Init().

Because Init() uses the locale info to load the localized texts (from
images), the locale must be set prior to that via SetLocale(). This CL
refactors Init() to take the locale parameter, and removes the odd
SetLocale() API.

Bug: 34029338
Test: 'Run graphics test' under recovery.
Change-Id: I620394a3d4e3705e9af5a1f6299285d143ae1b01
2017-01-03 22:40:03 -08:00
Sen Jiang
d530449e54 Add a stub recovery UI.
This allows recovery to work on devices without screen.
The stub recovery UI does nothing except print to stdout.

Test: write 'recovery\n--wipe_data\n--reason=wipe_data_from_ota\n'
      to misc and boot to recovery on a device without screen.
Bug: 33175036

Change-Id: Icde698aa2e2e29f4b3d0532dfd3c6a939ac2bc63
2016-12-13 13:29:33 -08:00
Elliott Hughes
130f6c86f5 resolve merge conflicts of d5c7d6b to nyc-mr1-dev-plus-aosp
Change-Id: Ia041044547351a3e65b647bb9913aa18c7d2c97c
2016-09-26 12:53:52 -07:00
Elliott Hughes
cb22040c63 Switch to <android-base/properties.h>.
Bug: http://b/23102347
Test: boot into recovery.
Change-Id: Ib2ca560f1312961c21fbaa294bb068de19cb883e
Merged-In: Ib2ca560f1312961c21fbaa294bb068de19cb883e
2016-09-26 09:51:37 -07:00
Damien Bargiacchi
a09b65adae Remove debug log statement; fix build
am: 43d186021a

Change-Id: Iae1fedc578f243eddb9fa8ad9e86fd82f009a958
2016-09-08 00:19:56 +00:00
Damien Bargiacchi
43d186021a Remove debug log statement; fix build
Change-Id: Ief92ec99d902ed58a48be9c2486cb99fdb184d7b
2016-09-07 17:11:07 -07:00
Damien Bargiacchi
49e2aeb353 Remove duplicate methods and variables from WearRecoveryUI
am: 5e7cfb9af6

Change-Id: I0f4dda0f92dcb6b3a230d2ad5d26f9855acb8c82
2016-09-07 23:38:24 +00:00
Damien Bargiacchi
5e7cfb9af6 Remove duplicate methods and variables from WearRecoveryUI
Copy pasta is never as delicious as ones hopes.

Also fix the Pike not rendering recovery bug.

Change-Id: I903da7da436e3347a22ff51633e8a0f28fea2c46
2016-09-07 02:26:50 -07:00
Tianjie Xu
c21edd4654 Switch recovery to libbase logging
Clean up the recovery image and switch to libbase logging.

Bug: 28191554
Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35
(cherry picked from commit 747781433f)
2016-09-01 14:32:55 -07:00
Tianjie Xu
7b0ad9c638 Switch recovery to libbase logging
Clean up the recovery image and switch to libbase logging.

Bug: 28191554
Change-Id: Icd999c3cc832f0639f204b5c36cea8afe303ad35
Merged-In: Icd999c3cc832f0639f204b5c36cea8afe303ad35
2016-09-01 18:33:25 +00:00
Damien Bargiacchi
e3c7184911 Support use of custom fonts in miniui
am: 35fff61b1c

Change-Id: Iac50e95c15c0b4337435d47d3666c2aaf5eb203d
2016-08-24 20:45:14 +00:00
Damien Bargiacchi
35fff61b1c Support use of custom fonts in miniui
Bug: 29547343
Change-Id: I398160c85daac90ffab2fa9bb2e96795b9e9885a
2016-08-18 19:51:45 -07:00
Elliott Hughes
b0728a3c2a Support landscape layouts.
am: 6d089a955f

Change-Id: Iebdce4fe859984257cef027ec6de1aeae51b8d69
2016-07-09 04:29:18 +00:00
Elliott Hughes
6d089a955f Support landscape layouts.
Add support for landscape layouts to the existing portrait support.

Bug: http://b/29418855
Test: tested manually with "Run graphics test" on flounder/fugu/ryu.
Change-Id: Ib4a62bf5f2b8a1cef6028a01f05145104660560a
2016-07-08 18:21:45 -07:00
Tianjie Xu
70b5353274 resolve merge conflicts of 23c7af7 to nyc-mr1-dev-plus-aosp
Change-Id: I04a73db90ddb059dbb5b44fafd8e82d03ea90ca5
2016-05-02 11:17:57 -07:00
Tianjie Xu
cacb47b2a3 resolve merge conflicts of 5823dd4 to nyc-dev-plus-aosp
Change-Id: I4ec33904a6af38d81b422c7be6f40b828fbc7525
2016-05-02 18:09:26 +00:00
Tianjie Xu
35926c4b89 Add ability to show "installing security update"
Add a new command "--security" to boot commands. If this command is
observed as part of BCB, choose a different background text picture
for installing stage in recovery UI. As a result, users will see
"installing security update" instead of "installing system update"
when applying a security update package.

Bug: 27837319
Change-Id: I2e2253a124993ecc24804fa1ee0b918ac96837c5
2016-04-29 12:19:43 -07:00
TreeHugger Robot
ed5b648c0e Merge "Improve the layout-related comments." into nyc-dev am: 343eb72
am: a7f7e70

* commit 'a7f7e7093ea67c3ddda03f52edb440c780d69b0d':
  Improve the layout-related comments.

Change-Id: I957cc75b064b1d0be5cee54af7b27f008a7a22a1
2016-04-28 02:43:30 +00:00
Elliott Hughes
1dc396f8f4 Merge "Improve the layout-related comments." into nyc-dev
am: 343eb72

* commit '343eb722ddd0146e5c752419b3ff9537cfa2d31d':
  Improve the layout-related comments.

Change-Id: Ib4ff24016ae056a61e755cd953739418035cd8e9
2016-04-28 02:40:39 +00:00
Elliott Hughes
3b13de8c9c Merge "Update recovery UI." into nyc-dev am: 2f1eedd
am: 75191f3

* commit '75191f32a56db352722ab9ac1acf9ceb08485a04':
  Update recovery UI.

Change-Id: I190b15530558a9d18fbe7202893bb7a76c5d3ff5
2016-04-28 00:47:09 +00:00
Elliott Hughes
21092a9823 Merge "Update recovery UI." into nyc-dev
am: 2f1eedd

* commit '2f1eedded83eea1956ee8b4d391000584588f094':
  Update recovery UI.

Change-Id: Ib43b37f60902b13d1fc4110ad5b394c3c3b39332
2016-04-28 00:44:24 +00:00
Elliott Hughes
a369104971 Improve the layout-related comments.
Bug: http://b/26548285
Change-Id: I20ae75c4ec2dc64b982a047dba498ebda029c90d
2016-04-27 17:40:11 -07:00
Elliott Hughes
faf36e04ed Update recovery UI.
* Use new animation.
* Use new non-holo progress bars.
* Use recommended spacing for recovery UI.

Bug: http://b/26548285
Change-Id: I8411e89d6a6a9ce638b8645e19e5082d0d968cee
2016-04-27 14:46:01 -07:00
Elliott Hughes
17266d9a65 Go back to the old ear-wiggling Android animation.
am: 692941be79

* commit '692941be79fd765f8873d810ae627a917dfd791b':
  Go back to the old ear-wiggling Android animation.

Change-Id: Ifddb21173e55f9c690dbc0661308575d885f4e76
2016-04-21 23:16:20 +00:00
Elliott Hughes
692941be79 Go back to the old ear-wiggling Android animation.
But keep the new code so we can easily test new animations when we have them.

This change includes tbao's de-interlace script, plus a one-liner that's
necessary to play the animation at the correct speed when there's no
progress bar showing. (This was always a bug, it's just way more noticeable
when your animation only has 7 frames.)

Bug: http://b/28316654
Bug: http://b/26548285
Change-Id: I32c601c352d6be235d1b44f14fca7e125defd77d
2016-04-21 14:26:14 -07:00
Chih-hung Hsieh
0231e7016d Merge "Fix google-runtime-int warnings." am: a1f4a1e
am: bcad1d1

* commit 'bcad1d1ced730478c94f951034d252e777661332':
  Fix google-runtime-int warnings.

Change-Id: Ifad31026502e3375f4833899056662da540319b5
2016-04-18 22:34:41 +00:00
Chih-Hung Hsieh
54a2747ef3 Fix google-runtime-int warnings.
Bug: 28220065
Change-Id: Ida199c66692a1638be6990d583d2ed42583fb592
2016-04-18 12:29:30 -07:00
Elliott Hughes
498cda6ef6 Update the system update animation.
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-04-14 22:44:23 -07:00
Prashant Malani
7a491225bb recovery: Remove SetColor, and other refactoring for WearUI
The only difference from SetColor in ScreenRecoveryUI is the that the
LOG messages have slightly different colors. That's not enough to
warrant a duplicate function. So this patch removes SetColor and uses
the parent class version.

This patch also moves the DrawTextLine* functions into ScreenRecoveryUI
since they're mostly the same. It also moves char_width and char_height
into the class instead of keeping them as static variables.

Bug: 27407422
Change-Id: I30428c9433baab8410cf710a01c9b1c44c217bf1
2016-03-11 15:22:20 -08:00
Prashant Malani
0ba21cff07 recovery: Remove duplicate variables and functions
The function that modifies rtl_locale exists only in the base class,
and so the variable should not have a duplicate in the derived class,
otherwise there may be incosistent values when it is read by the derived
class (the thinking being that invoking the function will modify the
base class version of the variable, and not the derived class version).

Remove the updateMutex variable, and instead re-use the one in the base
class.

Also remove LoadBitmap from WearUI since it is identical to the one in
ScreenRecoveryUI.

Bug: 27407422
Change-Id: Idd823fa93dfa16d7b2c9c7160f8d0c2559d28731
2016-03-10 15:36:31 -08:00
Prashant Malani
f7f9e50528 Revert "recovery: More refactoring of WearUI"
This reverts commit 1c7b2230d8.

This change can lead to the derived class indirectly (and incorrectly) calling some functions from the base class, which can lead to unpredictable behavior.

Bug: 27407422
Change-Id: I126a7489b0787dc195e942e2ceea6769de20d70c
2016-03-10 03:40:20 +00:00
Prashant Malani
1c7b2230d8 recovery: More refactoring of WearUI
This patch performs the following modifications:
- Remove setBackground function, and currentIcon member variable.
- Remove common Progress*, Redraw and EndMenu functions.

Bug: 27407422
Change-Id: Ic3c0e16b67941484c3bc1d04c9b61288e8896808
Signed-off-by: Prashant Malani <pmalani@google.com>
2016-03-08 15:56:54 -08:00
Tao Bao
b723f4f38f res: Embed FPS into icon_installing.png.
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-12-16 11:35:52 -08:00
Elliott Hughes
4b166f0e69 Track rename from base/ to android-base/.
Change-Id: I354a8c424d340a9abe21fd716a4ee0d3b177d86f
2015-12-04 15:30:20 -08:00
Tao Bao
9a7fd80d2d recovery: Remove redirect_stdio() when calling ShowFile().
When calling ScreenRecoveryUI::ShowFile(), the only thing that gets
inadequately logged is the progress bar. Replace the call to
ScreenRecoveryUI::Print() with ScreenRecoveryUI::PrintOnScreenOnly() for
the progress bar, so we can avoid calling redirect_stdio().

Change-Id: I4d7c5d5b39bebe0d5880a99d7a72cee4f0b8f325
2015-09-10 13:42:05 -07:00
Tao Bao
b6918c7c43 Log update outputs in order
Although stdout and stderr are both redirected to log file with no
buffering, we are seeing some outputs are mixed in random order.
This is because ui_print commands from the updater are passed to the
recovery binary via a pipe, which may interleave with other outputs
that go to stderr directly.

In recovery, adding ui::PrintOnScreenOnly() function to handle
ui_print command, which skips printing to stdout. Meanwhile, updater
prints the contents to stderr in addition to piping them to recovery.

Change-Id: Idda93ea940d2e23a0276bb8ead4aa70a3cb97700
2015-06-02 22:15:40 -07:00
Elliott Hughes
c049163234 Add an alternate screen for viewing recovery logs.
This makes it easier to go back and forth without losing current output.

Also make the display more like regular more(1).

Bug: http://b/20834540
Change-Id: Icc5703e9c8a378cc7072d8ebb79e34451267ee1b
2015-05-06 21:17:05 -07:00
Elliott Hughes
0a5cb0c7cd Don't use typedefs that hide *s.
gr_surface was causing confusion for no good reason.

Change-Id: If7120187f9a00dd16297877fc49352185a4d4ea6
2015-04-15 10:58:56 -07:00
Elliott Hughes
8fd86d77f1 Move the menu header out of the menu.
This makes it easier for us to deal with arbitrary information at the
top, and means that headers added by specific commands don't overwrite
the default ones.

Add the fingerprint back, but broken up so it fits even on sprout's
display.

Change-Id: Id71da79ab1aa455a611d72756a3100a97ceb4c1c
2015-04-13 15:46:15 -07:00
Elliott Hughes
eab12de70e Merge "Remove unnecessary globals." 2015-04-13 20:18:57 +00:00
Elliott Hughes
985022a623 Remove unnecessary globals.
Change-Id: I76a042432aede08ceaf250319cf5eeb25d601150
2015-04-13 13:04:32 -07:00
Elliott Hughes
300ed089b3 Treat KEY_ENTER the same as KEY_POWER in the pager.
Our long-press UI sends KEY_ENTER for long presses, which the long-press
UI treats as equivalent to KEY_POWER in the regular UI. So anywhere we accept
KEY_POWER we should accept KEY_ENTER too.

Change-Id: I99d376c961887043cf02037c26d000c8ba4d66f9
2015-04-13 10:47:59 -07:00
Elliott Hughes
95fc63e87b Rewritten file pager.
Most importantly, this one no longer skips lines because of wrapping.

Change-Id: Ic1c1944682ab8cbf3d542418ee86d29819173fc9
2015-04-10 19:12:01 -07:00
Elliott Hughes
642aaa7a3e Fix ScreenRecoveryUI to handle devices without power/up/down.
Currently fugu has a custom subclass to handle this. The default code
supports devices with trackballs but not all shipping Nexus devices?
That's just silly.

Change-Id: Id2779c91284899a26b4bb1af41e7033aa889df10
2015-04-10 12:47:46 -07:00
Elliott Hughes
8de52078a4 Move file paging into ScreenRecoveryUI.
This fixes the N9 performance problem.

Change-Id: I00c10d4162ff266a6243285e5a5e768217f6f799
2015-04-08 20:06:50 -07:00
Elliott Hughes
aa0d6afb61 Remove the fixed screen size assumptions.
Dynamically allocate the text and menu arrays instead.

Change-Id: Idbfc3fe4e4b50db4fee62ac2b6a7323cad369749
2015-04-08 16:16:52 -07:00
Elliott Hughes
01a4d08010 Fix recovery image text rendering.
Previously most devices would lose the character before a line wrap.
The log's text rendering was starting at offset 4 but none of the
arithmetic was taking this into account. It just happened to work
on the Nexus 9's 1536-pixel wide display (1536/18=85.3) but not on
a device such as the Nexus 5 (1080/18=60).

The only active part of this change is the change from 4 to 0 in the
gr_text call. The rest is just a few bits of trivial cleanup while I
was working out what was going on.

Change-Id: I9279ae323c77bc8b6ea87dc0fe009aaaec6bfa0e
2015-03-24 15:21:48 -07:00
Elliott Hughes
fc06f87ecc Make the recovery menus wrap.
The real problem is that the recovery UI is sluggish. But being able
to wrap off the top to the bottom halves the maximum distance you'll
have to go.

Change-Id: Ifebe5b818f9c9a1c4187d4ac609422da1f38537f
2015-03-23 13:45:31 -07:00
Doug Zongker
5b5f6c2fd3 restore holo UI in recovery
Return to the recovery to the holo appearance.

Bug: 15424396
Change-Id: Id4d3f23e0a6251a12aa42f3793cff347f38b4243
2014-06-06 09:01:57 -07:00
Doug Zongker
8c7457a2c5 am 48abd574: am 34ff5fe3: am 74b90b30: Merge "screen_ui: Initialize text buffer"
* commit '48abd574cb1b7b0adbe1de36224fb974182aaa2d':
  screen_ui: Initialize text buffer
2014-05-13 17:38:15 +00:00