ui: Move locale and friends into ScreenRecoveryUI class.
Localized texts only make sense on devices with screens. Test: Run fake OTA on angler; check the on-screen texts. Change-Id: I3a644294c8b1f2056cfb78b2d61a598b8ddf2acf
This commit is contained in:
parent
568644197f
commit
efb49add97
4 changed files with 38 additions and 35 deletions
|
@ -14,6 +14,8 @@
|
|||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "screen_ui.h"
|
||||
|
||||
#include <dirent.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
|
@ -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).
|
||||
|
@ -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 {
|
||||
|
@ -496,6 +499,7 @@ bool ScreenRecoveryUI::InitTextParams() {
|
|||
|
||||
bool ScreenRecoveryUI::Init(const std::string& locale) {
|
||||
RecoveryUI::Init(locale);
|
||||
|
||||
if (!InitTextParams()) {
|
||||
return false;
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
29
ui.cpp
29
ui.cpp
|
@ -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),
|
||||
|
@ -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_);
|
||||
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
6
ui.h
6
ui.h
|
@ -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.
|
||||
|
@ -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…
Reference in a new issue