Loading ui.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ RecoveryUI::RecoveryUI() has_down_key(false), has_touch_screen(false), touch_slot_(0), is_bootreason_recovery_ui_(false), screensaver_state_(ScreensaverState::DISABLED) { pthread_mutex_init(&key_queue_mutex, nullptr); pthread_cond_init(&key_queue_cond, nullptr); Loading Loading @@ -142,6 +143,19 @@ bool RecoveryUI::Init(const std::string& locale) { if (touch_screen_allowed_) { ev_iterate_touch_inputs(std::bind(&RecoveryUI::OnKeyDetected, this, std::placeholders::_1)); // Parse /proc/cmdline to determine if it's booting into recovery with a bootreason of // "recovery_ui". This specific reason is set by some (wear) bootloaders, to allow an easier way // to turn on text mode. It will only be set if the recovery boot is triggered from fastboot, or // with 'adb reboot recovery'. Note that this applies to all build variants. Otherwise the text // mode will be turned on automatically on debuggable builds, even without a swipe. std::string cmdline; if (android::base::ReadFileToString("/proc/cmdline", &cmdline)) { is_bootreason_recovery_ui_ = cmdline.find("bootreason=recovery_ui") != std::string::npos; } else { // Non-fatal, and won't affect Init() result. PLOG(WARNING) << "Failed to read /proc/cmdline"; } } if (!InitScreensaver()) { Loading @@ -168,6 +182,12 @@ void RecoveryUI::OnTouchDetected(int dx, int dy) { return; } // Allow turning on text mode with any swipe, if bootloader has set a bootreason of recovery_ui. if (is_bootreason_recovery_ui_ && !IsTextVisible()) { ShowText(true); return; } LOG(DEBUG) << "Swipe direction=" << direction; switch (direction) { case SwipeDirection::UP: Loading ui.h +1 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,7 @@ class RecoveryUI { int touch_start_Y_; bool touch_finger_down_; bool touch_swiping_; bool is_bootreason_recovery_ui_; struct key_timer_t { RecoveryUI* ui; Loading Loading
ui.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -69,6 +69,7 @@ RecoveryUI::RecoveryUI() has_down_key(false), has_touch_screen(false), touch_slot_(0), is_bootreason_recovery_ui_(false), screensaver_state_(ScreensaverState::DISABLED) { pthread_mutex_init(&key_queue_mutex, nullptr); pthread_cond_init(&key_queue_cond, nullptr); Loading Loading @@ -142,6 +143,19 @@ bool RecoveryUI::Init(const std::string& locale) { if (touch_screen_allowed_) { ev_iterate_touch_inputs(std::bind(&RecoveryUI::OnKeyDetected, this, std::placeholders::_1)); // Parse /proc/cmdline to determine if it's booting into recovery with a bootreason of // "recovery_ui". This specific reason is set by some (wear) bootloaders, to allow an easier way // to turn on text mode. It will only be set if the recovery boot is triggered from fastboot, or // with 'adb reboot recovery'. Note that this applies to all build variants. Otherwise the text // mode will be turned on automatically on debuggable builds, even without a swipe. std::string cmdline; if (android::base::ReadFileToString("/proc/cmdline", &cmdline)) { is_bootreason_recovery_ui_ = cmdline.find("bootreason=recovery_ui") != std::string::npos; } else { // Non-fatal, and won't affect Init() result. PLOG(WARNING) << "Failed to read /proc/cmdline"; } } if (!InitScreensaver()) { Loading @@ -168,6 +182,12 @@ void RecoveryUI::OnTouchDetected(int dx, int dy) { return; } // Allow turning on text mode with any swipe, if bootloader has set a bootreason of recovery_ui. if (is_bootreason_recovery_ui_ && !IsTextVisible()) { ShowText(true); return; } LOG(DEBUG) << "Swipe direction=" << direction; switch (direction) { case SwipeDirection::UP: Loading
ui.h +1 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,7 @@ class RecoveryUI { int touch_start_Y_; bool touch_finger_down_; bool touch_swiping_; bool is_bootreason_recovery_ui_; struct key_timer_t { RecoveryUI* ui; Loading