Merge in lollipop and attempt to fix merge conflicts
This will probably not compile and may need additional work. For tracking purposes so we know what might still need looking at as none of this has been compiled and tested, here is a list of the merge conflicts that I attempted to fix before pushing this set of changes: git pull aosp lollipop-release remote: Finding sources: 100% (992/992) remote: Total 992 (delta 473), reused 992 (delta 473) Receiving objects: 100% (992/992), 1.51 MiB | 516.00 KiB/s, done. Resolving deltas: 100% (473/473), completed with 42 local objects. From https://android.googlesource.com/platform/bootable/recovery * branch lollipop-release -> FETCH_HEAD * [new branch] lollipop-release -> aosp/lollipop-release Auto-merging verifier_test.cpp CONFLICT (content): Merge conflict in verifier_test.cpp Auto-merging verifier.h CONFLICT (content): Merge conflict in verifier.h Auto-merging verifier.cpp CONFLICT (content): Merge conflict in verifier.cpp Auto-merging updater/updater.c Auto-merging updater/install.c CONFLICT (content): Merge conflict in updater/install.c Auto-merging updater/Android.mk CONFLICT (content): Merge conflict in updater/Android.mk Auto-merging uncrypt/Android.mk CONFLICT (content): Merge conflict in uncrypt/Android.mk Auto-merging ui.cpp CONFLICT (content): Merge conflict in ui.cpp Auto-merging screen_ui.cpp Auto-merging roots.cpp CONFLICT (content): Merge conflict in roots.cpp CONFLICT (rename/delete): res-hdpi/images/progress_fill.png deleted in HEAD and renamed incddb68b5ea. Versioncddb68b5eaof res-hdpi/images/progress_fill.png left in tree. CONFLICT (rename/delete): res-hdpi/images/progress_empty.png deleted in HEAD and renamed incddb68b5ea. Versioncddb68b5eaof res-hdpi/images/progress_empty.png left in tree. CONFLICT (rename/delete): res-hdpi/images/icon_error.png deleted in HEAD and renamed incddb68b5ea. Versioncddb68b5eaof res-hdpi/images/icon_error.png left in tree. Auto-merging recovery.cpp CONFLICT (content): Merge conflict in recovery.cpp Auto-merging minui/resources.c CONFLICT (content): Merge conflict in minui/resources.c Auto-merging minui/minui.h CONFLICT (content): Merge conflict in minui/minui.h Auto-merging minui/graphics.c CONFLICT (content): Merge conflict in minui/graphics.c Auto-merging minui/Android.mk CONFLICT (content): Merge conflict in minui/Android.mk Removing minelf/Retouch.h Removing minelf/Retouch.c Auto-merging minadbd/usb_linux_client.c CONFLICT (content): Merge conflict in minadbd/usb_linux_client.c Auto-merging minadbd/adb.h CONFLICT (content): Merge conflict in minadbd/adb.h Auto-merging minadbd/adb.c CONFLICT (content): Merge conflict in minadbd/adb.c Auto-merging minadbd/Android.mk CONFLICT (content): Merge conflict in minadbd/Android.mk Removing make-overlay.py Auto-merging install.h CONFLICT (content): Merge conflict in install.h Auto-merging etc/init.rc CONFLICT (content): Merge conflict in etc/init.rc Auto-merging bootloader.h Auto-merging applypatch/applypatch.c Auto-merging applypatch/Android.mk CONFLICT (content): Merge conflict in applypatch/Android.mk Auto-merging adb_install.cpp CONFLICT (content): Merge conflict in adb_install.cpp Auto-merging Android.mk CONFLICT (content): Merge conflict in Android.mk Automatic merge failed; fix conflicts and then commit the result. Change-Id: I3e0e03e48ad8550912111c7a5c9a140ed0267e2c
This commit is contained in:
+60
-98
@@ -58,6 +58,7 @@ static double now() {
|
||||
ScreenRecoveryUI::ScreenRecoveryUI() :
|
||||
currentIcon(NONE),
|
||||
installingFrame(0),
|
||||
locale(NULL),
|
||||
rtl_locale(false),
|
||||
progressBarType(EMPTY),
|
||||
progressScopeStart(0),
|
||||
@@ -75,67 +76,59 @@ ScreenRecoveryUI::ScreenRecoveryUI() :
|
||||
menu_top(0),
|
||||
menu_items(0),
|
||||
menu_sel(0),
|
||||
|
||||
// These values are correct for the default image resources
|
||||
// provided with the android platform. Devices which use
|
||||
// different resources should have a subclass of ScreenRecoveryUI
|
||||
// that overrides Init() to set these values appropriately and
|
||||
// then call the superclass Init().
|
||||
animation_fps(20),
|
||||
indeterminate_frames(6),
|
||||
installing_frames(7),
|
||||
install_overlay_offset_x(13),
|
||||
install_overlay_offset_y(190),
|
||||
overlay_offset_x(-1),
|
||||
overlay_offset_y(-1) {
|
||||
installing_frames(-1),
|
||||
stage(-1),
|
||||
max_stage(-1) {
|
||||
|
||||
for (int i = 0; i < 5; i++)
|
||||
backgroundIcon[i] = NULL;
|
||||
|
||||
memset(text, 0, sizeof(text));
|
||||
|
||||
pthread_mutex_init(&updateMutex, NULL);
|
||||
self = this;
|
||||
}
|
||||
|
||||
// Draw the given frame over the installation overlay animation. The
|
||||
// background is not cleared or draw with the base icon first; we
|
||||
// assume that the frame already contains some other frame of the
|
||||
// animation. Does nothing if no overlay animation is defined.
|
||||
// Should only be called with updateMutex locked.
|
||||
void ScreenRecoveryUI::draw_install_overlay_locked(int frame) {
|
||||
if (installationOverlay == NULL || overlay_offset_x < 0) return;
|
||||
gr_surface surface = installationOverlay[frame];
|
||||
int iconWidth = gr_get_width(surface);
|
||||
int iconHeight = gr_get_height(surface);
|
||||
gr_blit(surface, 0, 0, iconWidth, iconHeight,
|
||||
overlay_offset_x, overlay_offset_y);
|
||||
}
|
||||
|
||||
// Clear the screen and draw the currently selected background icon (if any).
|
||||
// Should only be called with updateMutex locked.
|
||||
void ScreenRecoveryUI::draw_background_locked(Icon icon)
|
||||
{
|
||||
pagesIdentical = false;
|
||||
gr_color(0, 0, 0, 255);
|
||||
gr_fill(0, 0, gr_fb_width(), gr_fb_height());
|
||||
gr_clear();
|
||||
|
||||
if (icon) {
|
||||
gr_surface surface = backgroundIcon[icon];
|
||||
if (icon == INSTALLING_UPDATE || icon == ERASING) {
|
||||
surface = installation[installingFrame];
|
||||
}
|
||||
gr_surface text_surface = backgroundText[icon];
|
||||
|
||||
int iconWidth = gr_get_width(surface);
|
||||
int iconHeight = gr_get_height(surface);
|
||||
int textWidth = gr_get_width(text_surface);
|
||||
int textHeight = gr_get_height(text_surface);
|
||||
int stageHeight = gr_get_height(stageMarkerEmpty);
|
||||
|
||||
int iconX = (gr_fb_width() - iconWidth) / 2;
|
||||
int iconY = (gr_fb_height() - (iconHeight+textHeight+40)) / 2;
|
||||
int sh = (max_stage >= 0) ? stageHeight : 0;
|
||||
|
||||
iconX = (gr_fb_width() - iconWidth) / 2;
|
||||
iconY = (gr_fb_height() - (iconHeight+textHeight+40+sh)) / 2;
|
||||
|
||||
int textX = (gr_fb_width() - textWidth) / 2;
|
||||
int textY = ((gr_fb_height() - (iconHeight+textHeight+40)) / 2) + iconHeight + 40;
|
||||
int textY = ((gr_fb_height() - (iconHeight+textHeight+40+sh)) / 2) + iconHeight + 40;
|
||||
|
||||
gr_blit(surface, 0, 0, iconWidth, iconHeight, iconX, iconY);
|
||||
if (icon == INSTALLING_UPDATE || icon == ERASING) {
|
||||
draw_install_overlay_locked(installingFrame);
|
||||
if (stageHeight > 0) {
|
||||
int sw = gr_get_width(stageMarkerEmpty);
|
||||
int x = (gr_fb_width() - max_stage * gr_get_width(stageMarkerEmpty)) / 2;
|
||||
int y = iconY + iconHeight + 20;
|
||||
for (int i = 0; i < max_stage; ++i) {
|
||||
gr_blit((i < stage) ? stageMarkerFill : stageMarkerEmpty,
|
||||
0, 0, sw, stageHeight, x, y);
|
||||
x += sw;
|
||||
}
|
||||
}
|
||||
|
||||
gr_color(255, 255, 255, 255);
|
||||
@@ -150,7 +143,8 @@ void ScreenRecoveryUI::draw_progress_locked()
|
||||
if (currentIcon == ERROR) return;
|
||||
|
||||
if (currentIcon == INSTALLING_UPDATE || currentIcon == ERASING) {
|
||||
draw_install_overlay_locked(installingFrame);
|
||||
gr_surface icon = installation[installingFrame];
|
||||
gr_blit(icon, 0, 0, gr_get_width(icon), gr_get_height(icon), iconX, iconY);
|
||||
}
|
||||
|
||||
if (progressBarType != EMPTY) {
|
||||
@@ -187,18 +181,6 @@ void ScreenRecoveryUI::draw_progress_locked()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (progressBarType == INDETERMINATE) {
|
||||
static int frame = 0;
|
||||
gr_blit(progressBarIndeterminate[frame], 0, 0, width, height, dx, dy);
|
||||
// in RTL locales, we run the animation backwards, which
|
||||
// makes the spinner spin the other way.
|
||||
if (rtl_locale) {
|
||||
frame = (frame + indeterminate_frames - 1) % indeterminate_frames;
|
||||
} else {
|
||||
frame = (frame + 1) % indeterminate_frames;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -230,12 +212,12 @@ void ScreenRecoveryUI::SetColor(UIElement e) {
|
||||
// Should only be called with updateMutex locked.
|
||||
void ScreenRecoveryUI::draw_screen_locked()
|
||||
{
|
||||
draw_background_locked(currentIcon);
|
||||
draw_progress_locked();
|
||||
|
||||
if (show_text) {
|
||||
SetColor(TEXT_FILL);
|
||||
gr_fill(0, 0, gr_fb_width(), gr_fb_height());
|
||||
if (!show_text) {
|
||||
draw_background_locked(currentIcon);
|
||||
draw_progress_locked();
|
||||
} else {
|
||||
gr_color(0, 0, 0, 255);
|
||||
gr_clear();
|
||||
|
||||
int y = 0;
|
||||
int i = 0;
|
||||
@@ -325,12 +307,6 @@ void ScreenRecoveryUI::progress_loop() {
|
||||
redraw = 1;
|
||||
}
|
||||
|
||||
// update the progress bar animation, if active
|
||||
// skip this if we have a text overlay (too expensive to update)
|
||||
if (progressBarType == INDETERMINATE && !show_text) {
|
||||
redraw = 1;
|
||||
}
|
||||
|
||||
// move the progress bar forward on timed intervals, if configured
|
||||
int duration = progressScopeDuration;
|
||||
if (progressBarType == DETERMINATE && duration > 0) {
|
||||
@@ -355,14 +331,21 @@ void ScreenRecoveryUI::progress_loop() {
|
||||
}
|
||||
|
||||
void ScreenRecoveryUI::LoadBitmap(const char* filename, gr_surface* surface) {
|
||||
int result = res_create_surface(filename, surface);
|
||||
int result = res_create_display_surface(filename, surface);
|
||||
if (result < 0) {
|
||||
LOGE("missing bitmap %s\n(Code %d)\n", filename, result);
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenRecoveryUI::LoadBitmapArray(const char* filename, int* frames, gr_surface** surface) {
|
||||
int result = res_create_multi_display_surface(filename, frames, surface);
|
||||
if (result < 0) {
|
||||
LOGE("missing bitmap %s\n(Code %d)\n", filename, result);
|
||||
}
|
||||
}
|
||||
|
||||
void ScreenRecoveryUI::LoadLocalizedBitmap(const char* filename, gr_surface* surface) {
|
||||
int result = res_create_localized_surface(filename, surface);
|
||||
int result = res_create_localized_alpha_surface(filename, locale, surface);
|
||||
if (result < 0) {
|
||||
LOGE("missing bitmap %s\n(Code %d)\n", filename, result);
|
||||
}
|
||||
@@ -382,51 +365,31 @@ void ScreenRecoveryUI::Init()
|
||||
text_cols = gr_fb_width() / char_width;
|
||||
if (text_cols > kMaxCols - 1) text_cols = kMaxCols - 1;
|
||||
|
||||
LoadBitmap("icon_installing", &backgroundIcon[INSTALLING_UPDATE]);
|
||||
backgroundIcon[NONE] = NULL;
|
||||
LoadBitmapArray("icon_installing", &installing_frames, &installation);
|
||||
backgroundIcon[INSTALLING_UPDATE] = installing_frames ? installation[0] : NULL;
|
||||
backgroundIcon[ERASING] = backgroundIcon[INSTALLING_UPDATE];
|
||||
LoadBitmap("icon_error", &backgroundIcon[ERROR]);
|
||||
backgroundIcon[NO_COMMAND] = backgroundIcon[ERROR];
|
||||
|
||||
LoadBitmap("progress_empty", &progressBarEmpty);
|
||||
LoadBitmap("progress_fill", &progressBarFill);
|
||||
LoadBitmap("stage_empty", &stageMarkerEmpty);
|
||||
LoadBitmap("stage_fill", &stageMarkerFill);
|
||||
|
||||
LoadLocalizedBitmap("installing_text", &backgroundText[INSTALLING_UPDATE]);
|
||||
LoadLocalizedBitmap("erasing_text", &backgroundText[ERASING]);
|
||||
LoadLocalizedBitmap("no_command_text", &backgroundText[NO_COMMAND]);
|
||||
LoadLocalizedBitmap("error_text", &backgroundText[ERROR]);
|
||||
|
||||
int i;
|
||||
|
||||
progressBarIndeterminate = (gr_surface*)malloc(indeterminate_frames *
|
||||
sizeof(gr_surface));
|
||||
for (i = 0; i < indeterminate_frames; ++i) {
|
||||
char filename[40];
|
||||
// "indeterminate01.png", "indeterminate02.png", ...
|
||||
sprintf(filename, "indeterminate%02d", i+1);
|
||||
LoadBitmap(filename, progressBarIndeterminate+i);
|
||||
}
|
||||
|
||||
if (installing_frames > 0) {
|
||||
installationOverlay = (gr_surface*)malloc(installing_frames *
|
||||
sizeof(gr_surface));
|
||||
for (i = 0; i < installing_frames; ++i) {
|
||||
char filename[40];
|
||||
// "icon_installing_overlay01.png",
|
||||
// "icon_installing_overlay02.png", ...
|
||||
sprintf(filename, "icon_installing_overlay%02d", i+1);
|
||||
LoadBitmap(filename, installationOverlay+i);
|
||||
}
|
||||
} else {
|
||||
installationOverlay = NULL;
|
||||
}
|
||||
|
||||
pthread_create(&progress_t, NULL, progress_thread, NULL);
|
||||
|
||||
RecoveryUI::Init();
|
||||
}
|
||||
|
||||
void ScreenRecoveryUI::SetLocale(const char* locale) {
|
||||
if (locale) {
|
||||
void ScreenRecoveryUI::SetLocale(const char* new_locale) {
|
||||
if (new_locale) {
|
||||
this->locale = new_locale;
|
||||
char* lang = strdup(locale);
|
||||
for (char* p = lang; *p; ++p) {
|
||||
if (*p == '_') {
|
||||
@@ -445,6 +408,8 @@ void ScreenRecoveryUI::SetLocale(const char* locale) {
|
||||
rtl_locale = true;
|
||||
}
|
||||
free(lang);
|
||||
} else {
|
||||
new_locale = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -452,16 +417,6 @@ void ScreenRecoveryUI::SetBackground(Icon icon)
|
||||
{
|
||||
pthread_mutex_lock(&updateMutex);
|
||||
|
||||
// Adjust the offset to account for the positioning of the
|
||||
// base image on the screen.
|
||||
if (backgroundIcon[icon] != NULL) {
|
||||
gr_surface bg = backgroundIcon[icon];
|
||||
gr_surface text = backgroundText[icon];
|
||||
overlay_offset_x = install_overlay_offset_x + (gr_fb_width() - gr_get_width(bg)) / 2;
|
||||
overlay_offset_y = install_overlay_offset_y +
|
||||
(gr_fb_height() - (gr_get_height(bg) + gr_get_height(text) + 40)) / 2;
|
||||
}
|
||||
|
||||
currentIcon = icon;
|
||||
update_screen_locked();
|
||||
|
||||
@@ -506,7 +461,7 @@ void ScreenRecoveryUI::SetProgress(float fraction)
|
||||
if (fraction > 1.0) fraction = 1.0;
|
||||
if (progressBarType == DETERMINATE && fraction > progress) {
|
||||
// Skip updates that aren't visibly different.
|
||||
int width = gr_get_width(progressBarIndeterminate[0]);
|
||||
int width = gr_get_width(progressBarEmpty);
|
||||
float scale = width * progressScopeSize;
|
||||
if ((int) (progress * scale) != (int) (fraction * scale)) {
|
||||
progress = fraction;
|
||||
@@ -516,6 +471,13 @@ void ScreenRecoveryUI::SetProgress(float fraction)
|
||||
pthread_mutex_unlock(&updateMutex);
|
||||
}
|
||||
|
||||
void ScreenRecoveryUI::SetStage(int current, int max) {
|
||||
pthread_mutex_lock(&updateMutex);
|
||||
stage = current;
|
||||
max_stage = max;
|
||||
pthread_mutex_unlock(&updateMutex);
|
||||
}
|
||||
|
||||
void ScreenRecoveryUI::Print(const char *fmt, ...)
|
||||
{
|
||||
char buf[256];
|
||||
|
||||
Reference in New Issue
Block a user