summaryrefslogtreecommitdiffstats
path: root/wear_ui.cpp
diff options
context:
space:
mode:
authorPrashant Malani <pmalani@google.com>2016-02-26 03:27:03 +0100
committerPrashant Malani <pmalani@google.com>2016-02-27 02:01:37 +0100
commit0eb41c3f370e89ff40cf1a3bd17e7b785b74641e (patch)
tree6897046ab6238e1879afeb16be5397787099b672 /wear_ui.cpp
parentMove recovery's convert_fbe folder to /tmp (diff)
downloadandroid_bootable_recovery-0eb41c3f370e89ff40cf1a3bd17e7b785b74641e.tar
android_bootable_recovery-0eb41c3f370e89ff40cf1a3bd17e7b785b74641e.tar.gz
android_bootable_recovery-0eb41c3f370e89ff40cf1a3bd17e7b785b74641e.tar.bz2
android_bootable_recovery-0eb41c3f370e89ff40cf1a3bd17e7b785b74641e.tar.lz
android_bootable_recovery-0eb41c3f370e89ff40cf1a3bd17e7b785b74641e.tar.xz
android_bootable_recovery-0eb41c3f370e89ff40cf1a3bd17e7b785b74641e.tar.zst
android_bootable_recovery-0eb41c3f370e89ff40cf1a3bd17e7b785b74641e.zip
Diffstat (limited to 'wear_ui.cpp')
-rw-r--r--wear_ui.cpp33
1 files changed, 33 insertions, 0 deletions
diff --git a/wear_ui.cpp b/wear_ui.cpp
index 50aeb3849..8a57cfffa 100644
--- a/wear_ui.cpp
+++ b/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);
+}