Fixes to wear recovery for N
Bug: 27336841 Change-Id: If4632e9791cce2c39590a4012687271f59a60af1
This commit is contained in:
parent
661f8a69f2
commit
0eb41c3f37
2 changed files with 35 additions and 0 deletions
33
wear_ui.cpp
33
wear_ui.cpp
|
@ -36,6 +36,7 @@
|
|||
#include "ui.h"
|
||||
#include "cutils/properties.h"
|
||||
#include "android-base/strings.h"
|
||||
#include "android-base/stringprintf.h"
|
||||
|
||||
static int char_width;
|
||||
static int char_height;
|
||||
|
@ -653,3 +654,35 @@ void WearRecoveryUI::ClearText() {
|
|||
}
|
||||
pthread_mutex_unlock(&updateMutex);
|
||||
}
|
||||
|
||||
void WearRecoveryUI::PrintOnScreenOnly(const char *fmt, ...) {
|
||||
va_list ap;
|
||||
va_start(ap, fmt);
|
||||
PrintV(fmt, false, ap);
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void WearRecoveryUI::PrintV(const char* fmt, bool copy_to_stdout, va_list ap) {
|
||||
std::string str;
|
||||
android::base::StringAppendV(&str, fmt, ap);
|
||||
|
||||
if (copy_to_stdout) {
|
||||
fputs(str.c_str(), stdout);
|
||||
}
|
||||
|
||||
pthread_mutex_lock(&updateMutex);
|
||||
if (text_rows > 0 && text_cols > 0) {
|
||||
for (const char* ptr = str.c_str(); *ptr != '\0'; ++ptr) {
|
||||
if (*ptr == '\n' || text_col >= text_cols) {
|
||||
text[text_row][text_col] = '\0';
|
||||
text_col = 0;
|
||||
text_row = (text_row + 1) % text_rows;
|
||||
if (text_row == text_top) text_top = (text_top + 1) % text_rows;
|
||||
}
|
||||
if (*ptr != '\n') text[text_row][text_col++] = *ptr;
|
||||
}
|
||||
text[text_row][text_col] = '\0';
|
||||
update_screen_locked();
|
||||
}
|
||||
pthread_mutex_unlock(&updateMutex);
|
||||
}
|
||||
|
|
|
@ -47,6 +47,7 @@ class WearRecoveryUI : public RecoveryUI {
|
|||
|
||||
// printing messages
|
||||
void Print(const char* fmt, ...);
|
||||
void PrintOnScreenOnly(const char* fmt, ...) __printflike(2, 3);
|
||||
void ShowFile(const char* filename);
|
||||
void ShowFile(FILE* fp);
|
||||
|
||||
|
@ -133,6 +134,7 @@ class WearRecoveryUI : public RecoveryUI {
|
|||
void ClearText();
|
||||
void DrawTextLine(int x, int* y, const char* line, bool bold);
|
||||
void DrawTextLines(int x, int* y, const char* const* lines);
|
||||
void PrintV(const char*, bool, va_list);
|
||||
};
|
||||
|
||||
#endif // RECOVERY_WEAR_UI_H
|
||||
|
|
Loading…
Reference in a new issue