Loading screen_ui.cpp +29 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ * limitations under the License. */ #include "screen_ui.h" #include <dirent.h> #include <errno.h> #include <fcntl.h> Loading @@ -36,11 +38,10 @@ #include <android-base/properties.h> #include <android-base/stringprintf.h> #include <android-base/strings.h> #include <minui/minui.h> #include "common.h" #include "device.h" #include "minui/minui.h" #include "screen_ui.h" #include "ui.h" // Return the current time as a double (including fractions of a second). Loading Loading @@ -79,6 +80,8 @@ ScreenRecoveryUI::ScreenRecoveryUI() intro_done(false), stage(-1), max_stage(-1), locale_(""), rtl_locale_(false), updateMutex(PTHREAD_MUTEX_INITIALIZER) {} GRSurface* ScreenRecoveryUI::GetCurrentFrame() const { Loading Loading @@ -496,6 +499,7 @@ bool ScreenRecoveryUI::InitTextParams() { bool ScreenRecoveryUI::Init(const std::string& locale) { RecoveryUI::Init(locale); if (!InitTextParams()) { return false; } Loading @@ -510,6 +514,9 @@ bool ScreenRecoveryUI::Init(const std::string& locale) { text_col_ = text_row_ = 0; // Set up the locale info. SetLocale(locale); LoadBitmap("icon_error", &error_icon); LoadBitmap("progress_empty", &progressBarEmpty); Loading Loading @@ -833,3 +840,23 @@ void ScreenRecoveryUI::KeyLongPress(int) { // will change color to indicate a successful long press. Redraw(); } void ScreenRecoveryUI::SetLocale(const std::string& new_locale) { locale_ = new_locale; rtl_locale_ = false; if (!new_locale.empty()) { size_t underscore = new_locale.find('_'); // lang has the language prefix prior to '_', or full string if '_' doesn't exist. std::string lang = new_locale.substr(0, underscore); // A bit cheesy: keep an explicit list of supported RTL languages. if (lang == "ar" || // Arabic lang == "fa" || // Persian (Farsi) lang == "he" || // Hebrew (new language code) lang == "iw" || // Hebrew (old language code) lang == "ur") { // Urdu rtl_locale_ = true; } } } screen_ui.h +7 −0 Original line number Diff line number Diff line Loading @@ -191,7 +191,14 @@ class ScreenRecoveryUI : public RecoveryUI { int char_width_; int char_height_; // The locale that's used to show the rendered texts. std::string locale_; bool rtl_locale_; pthread_mutex_t updateMutex; private: void SetLocale(const std::string&); }; #endif // RECOVERY_UI_H ui.cpp +2 −27 Original line number Diff line number Diff line Loading @@ -50,9 +50,7 @@ static constexpr const char* BRIGHTNESS_FILE = "/sys/class/leds/lcd-backlight/br static constexpr const char* MAX_BRIGHTNESS_FILE = "/sys/class/leds/lcd-backlight/max_brightness"; RecoveryUI::RecoveryUI() : locale_(""), rtl_locale_(false), brightness_normal_(50), : brightness_normal_(50), brightness_dimmed_(25), touch_screen_allowed_(false), kTouchLowThreshold(RECOVERY_UI_TOUCH_LOW_THRESHOLD), Loading Loading @@ -132,10 +130,7 @@ bool RecoveryUI::InitScreensaver() { return true; } bool RecoveryUI::Init(const std::string& locale) { // Set up the locale info. SetLocale(locale); bool RecoveryUI::Init(const std::string& /* locale */) { ev_init(std::bind(&RecoveryUI::OnInputEvent, this, std::placeholders::_1, std::placeholders::_2), touch_screen_allowed_); Loading Loading @@ -574,23 +569,3 @@ void RecoveryUI::SetEnableReboot(bool enabled) { enable_reboot = enabled; pthread_mutex_unlock(&key_queue_mutex); } void RecoveryUI::SetLocale(const std::string& new_locale) { this->locale_ = new_locale; this->rtl_locale_ = false; if (!new_locale.empty()) { size_t underscore = new_locale.find('_'); // lang has the language prefix prior to '_', or full string if '_' doesn't exist. std::string lang = new_locale.substr(0, underscore); // A bit cheesy: keep an explicit list of supported RTL languages. if (lang == "ar" || // Arabic lang == "fa" || // Persian (Farsi) lang == "he" || // Hebrew (new language code) lang == "iw" || // Hebrew (old language code) lang == "ur") { // Urdu rtl_locale_ = true; } } } ui.h +0 −6 Original line number Diff line number Diff line Loading @@ -143,10 +143,6 @@ class RecoveryUI { protected: void EnqueueKey(int key_code); // The locale that's used to show the rendered texts. std::string locale_; bool rtl_locale_; // The normal and dimmed brightness percentages (default: 50 and 25, which means 50% and 25% of // the max_brightness). Because the absolute values may vary across devices. These two values can // be configured via subclassing. Setting brightness_normal_ to 0 to disable screensaver. Loading Loading @@ -184,8 +180,6 @@ class RecoveryUI { static void* time_key_helper(void* cookie); void time_key(int key_code, int count); void SetLocale(const std::string&); bool InitScreensaver(); // Key event input queue Loading Loading
screen_ui.cpp +29 −2 Original line number Diff line number Diff line Loading @@ -14,6 +14,8 @@ * limitations under the License. */ #include "screen_ui.h" #include <dirent.h> #include <errno.h> #include <fcntl.h> Loading @@ -36,11 +38,10 @@ #include <android-base/properties.h> #include <android-base/stringprintf.h> #include <android-base/strings.h> #include <minui/minui.h> #include "common.h" #include "device.h" #include "minui/minui.h" #include "screen_ui.h" #include "ui.h" // Return the current time as a double (including fractions of a second). Loading Loading @@ -79,6 +80,8 @@ ScreenRecoveryUI::ScreenRecoveryUI() intro_done(false), stage(-1), max_stage(-1), locale_(""), rtl_locale_(false), updateMutex(PTHREAD_MUTEX_INITIALIZER) {} GRSurface* ScreenRecoveryUI::GetCurrentFrame() const { Loading Loading @@ -496,6 +499,7 @@ bool ScreenRecoveryUI::InitTextParams() { bool ScreenRecoveryUI::Init(const std::string& locale) { RecoveryUI::Init(locale); if (!InitTextParams()) { return false; } Loading @@ -510,6 +514,9 @@ bool ScreenRecoveryUI::Init(const std::string& locale) { text_col_ = text_row_ = 0; // Set up the locale info. SetLocale(locale); LoadBitmap("icon_error", &error_icon); LoadBitmap("progress_empty", &progressBarEmpty); Loading Loading @@ -833,3 +840,23 @@ void ScreenRecoveryUI::KeyLongPress(int) { // will change color to indicate a successful long press. Redraw(); } void ScreenRecoveryUI::SetLocale(const std::string& new_locale) { locale_ = new_locale; rtl_locale_ = false; if (!new_locale.empty()) { size_t underscore = new_locale.find('_'); // lang has the language prefix prior to '_', or full string if '_' doesn't exist. std::string lang = new_locale.substr(0, underscore); // A bit cheesy: keep an explicit list of supported RTL languages. if (lang == "ar" || // Arabic lang == "fa" || // Persian (Farsi) lang == "he" || // Hebrew (new language code) lang == "iw" || // Hebrew (old language code) lang == "ur") { // Urdu rtl_locale_ = true; } } }
screen_ui.h +7 −0 Original line number Diff line number Diff line Loading @@ -191,7 +191,14 @@ class ScreenRecoveryUI : public RecoveryUI { int char_width_; int char_height_; // The locale that's used to show the rendered texts. std::string locale_; bool rtl_locale_; pthread_mutex_t updateMutex; private: void SetLocale(const std::string&); }; #endif // RECOVERY_UI_H
ui.cpp +2 −27 Original line number Diff line number Diff line Loading @@ -50,9 +50,7 @@ static constexpr const char* BRIGHTNESS_FILE = "/sys/class/leds/lcd-backlight/br static constexpr const char* MAX_BRIGHTNESS_FILE = "/sys/class/leds/lcd-backlight/max_brightness"; RecoveryUI::RecoveryUI() : locale_(""), rtl_locale_(false), brightness_normal_(50), : brightness_normal_(50), brightness_dimmed_(25), touch_screen_allowed_(false), kTouchLowThreshold(RECOVERY_UI_TOUCH_LOW_THRESHOLD), Loading Loading @@ -132,10 +130,7 @@ bool RecoveryUI::InitScreensaver() { return true; } bool RecoveryUI::Init(const std::string& locale) { // Set up the locale info. SetLocale(locale); bool RecoveryUI::Init(const std::string& /* locale */) { ev_init(std::bind(&RecoveryUI::OnInputEvent, this, std::placeholders::_1, std::placeholders::_2), touch_screen_allowed_); Loading Loading @@ -574,23 +569,3 @@ void RecoveryUI::SetEnableReboot(bool enabled) { enable_reboot = enabled; pthread_mutex_unlock(&key_queue_mutex); } void RecoveryUI::SetLocale(const std::string& new_locale) { this->locale_ = new_locale; this->rtl_locale_ = false; if (!new_locale.empty()) { size_t underscore = new_locale.find('_'); // lang has the language prefix prior to '_', or full string if '_' doesn't exist. std::string lang = new_locale.substr(0, underscore); // A bit cheesy: keep an explicit list of supported RTL languages. if (lang == "ar" || // Arabic lang == "fa" || // Persian (Farsi) lang == "he" || // Hebrew (new language code) lang == "iw" || // Hebrew (old language code) lang == "ur") { // Urdu rtl_locale_ = true; } } }
ui.h +0 −6 Original line number Diff line number Diff line Loading @@ -143,10 +143,6 @@ class RecoveryUI { protected: void EnqueueKey(int key_code); // The locale that's used to show the rendered texts. std::string locale_; bool rtl_locale_; // The normal and dimmed brightness percentages (default: 50 and 25, which means 50% and 25% of // the max_brightness). Because the absolute values may vary across devices. These two values can // be configured via subclassing. Setting brightness_normal_ to 0 to disable screensaver. Loading Loading @@ -184,8 +180,6 @@ class RecoveryUI { static void* time_key_helper(void* cookie); void time_key(int key_code, int count); void SetLocale(const std::string&); bool InitScreensaver(); // Key event input queue Loading