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.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "screen_ui.h"
|
||||||
|
|
||||||
#include <dirent.h>
|
#include <dirent.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
@ -36,11 +38,10 @@
|
||||||
#include <android-base/properties.h>
|
#include <android-base/properties.h>
|
||||||
#include <android-base/stringprintf.h>
|
#include <android-base/stringprintf.h>
|
||||||
#include <android-base/strings.h>
|
#include <android-base/strings.h>
|
||||||
|
#include <minui/minui.h>
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
#include "device.h"
|
#include "device.h"
|
||||||
#include "minui/minui.h"
|
|
||||||
#include "screen_ui.h"
|
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
|
|
||||||
// Return the current time as a double (including fractions of a second).
|
// Return the current time as a double (including fractions of a second).
|
||||||
|
@ -79,6 +80,8 @@ ScreenRecoveryUI::ScreenRecoveryUI()
|
||||||
intro_done(false),
|
intro_done(false),
|
||||||
stage(-1),
|
stage(-1),
|
||||||
max_stage(-1),
|
max_stage(-1),
|
||||||
|
locale_(""),
|
||||||
|
rtl_locale_(false),
|
||||||
updateMutex(PTHREAD_MUTEX_INITIALIZER) {}
|
updateMutex(PTHREAD_MUTEX_INITIALIZER) {}
|
||||||
|
|
||||||
GRSurface* ScreenRecoveryUI::GetCurrentFrame() const {
|
GRSurface* ScreenRecoveryUI::GetCurrentFrame() const {
|
||||||
|
@ -496,6 +499,7 @@ bool ScreenRecoveryUI::InitTextParams() {
|
||||||
|
|
||||||
bool ScreenRecoveryUI::Init(const std::string& locale) {
|
bool ScreenRecoveryUI::Init(const std::string& locale) {
|
||||||
RecoveryUI::Init(locale);
|
RecoveryUI::Init(locale);
|
||||||
|
|
||||||
if (!InitTextParams()) {
|
if (!InitTextParams()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -510,6 +514,9 @@ bool ScreenRecoveryUI::Init(const std::string& locale) {
|
||||||
|
|
||||||
text_col_ = text_row_ = 0;
|
text_col_ = text_row_ = 0;
|
||||||
|
|
||||||
|
// Set up the locale info.
|
||||||
|
SetLocale(locale);
|
||||||
|
|
||||||
LoadBitmap("icon_error", &error_icon);
|
LoadBitmap("icon_error", &error_icon);
|
||||||
|
|
||||||
LoadBitmap("progress_empty", &progressBarEmpty);
|
LoadBitmap("progress_empty", &progressBarEmpty);
|
||||||
|
@ -833,3 +840,23 @@ void ScreenRecoveryUI::KeyLongPress(int) {
|
||||||
// will change color to indicate a successful long press.
|
// will change color to indicate a successful long press.
|
||||||
Redraw();
|
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_width_;
|
||||||
int char_height_;
|
int char_height_;
|
||||||
|
|
||||||
|
// The locale that's used to show the rendered texts.
|
||||||
|
std::string locale_;
|
||||||
|
bool rtl_locale_;
|
||||||
|
|
||||||
pthread_mutex_t updateMutex;
|
pthread_mutex_t updateMutex;
|
||||||
|
|
||||||
|
private:
|
||||||
|
void SetLocale(const std::string&);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // RECOVERY_UI_H
|
#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";
|
static constexpr const char* MAX_BRIGHTNESS_FILE = "/sys/class/leds/lcd-backlight/max_brightness";
|
||||||
|
|
||||||
RecoveryUI::RecoveryUI()
|
RecoveryUI::RecoveryUI()
|
||||||
: locale_(""),
|
: brightness_normal_(50),
|
||||||
rtl_locale_(false),
|
|
||||||
brightness_normal_(50),
|
|
||||||
brightness_dimmed_(25),
|
brightness_dimmed_(25),
|
||||||
touch_screen_allowed_(false),
|
touch_screen_allowed_(false),
|
||||||
kTouchLowThreshold(RECOVERY_UI_TOUCH_LOW_THRESHOLD),
|
kTouchLowThreshold(RECOVERY_UI_TOUCH_LOW_THRESHOLD),
|
||||||
|
@ -132,10 +130,7 @@ bool RecoveryUI::InitScreensaver() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool RecoveryUI::Init(const std::string& locale) {
|
bool RecoveryUI::Init(const std::string& /* locale */) {
|
||||||
// Set up the locale info.
|
|
||||||
SetLocale(locale);
|
|
||||||
|
|
||||||
ev_init(std::bind(&RecoveryUI::OnInputEvent, this, std::placeholders::_1, std::placeholders::_2),
|
ev_init(std::bind(&RecoveryUI::OnInputEvent, this, std::placeholders::_1, std::placeholders::_2),
|
||||||
touch_screen_allowed_);
|
touch_screen_allowed_);
|
||||||
|
|
||||||
|
@ -574,23 +569,3 @@ void RecoveryUI::SetEnableReboot(bool enabled) {
|
||||||
enable_reboot = enabled;
|
enable_reboot = enabled;
|
||||||
pthread_mutex_unlock(&key_queue_mutex);
|
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:
|
protected:
|
||||||
void EnqueueKey(int key_code);
|
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 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
|
// 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.
|
// 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);
|
static void* time_key_helper(void* cookie);
|
||||||
void time_key(int key_code, int count);
|
void time_key(int key_code, int count);
|
||||||
|
|
||||||
void SetLocale(const std::string&);
|
|
||||||
|
|
||||||
bool InitScreensaver();
|
bool InitScreensaver();
|
||||||
|
|
||||||
// Key event input queue
|
// Key event input queue
|
||||||
|
|
Loading…
Reference in a new issue