Allow boot clock to be toggled between 12 and 24 hour format
am: 9071db1d37
Change-Id: Ief7d44034df3a59adc2f65ba79154a1ee933040c
This commit is contained in:
@@ -74,6 +74,7 @@ static const char LAST_TIME_CHANGED_FILE_NAME[] = "last_time_change";
|
|||||||
static const char LAST_TIME_CHANGED_FILE_PATH[] = "/data/system/time/last_time_change";
|
static const char LAST_TIME_CHANGED_FILE_PATH[] = "/data/system/time/last_time_change";
|
||||||
static const char ACCURATE_TIME_FLAG_FILE_NAME[] = "time_is_accurate";
|
static const char ACCURATE_TIME_FLAG_FILE_NAME[] = "time_is_accurate";
|
||||||
static const char ACCURATE_TIME_FLAG_FILE_PATH[] = "/data/system/time/time_is_accurate";
|
static const char ACCURATE_TIME_FLAG_FILE_PATH[] = "/data/system/time/time_is_accurate";
|
||||||
|
static const char TIME_FORMAT_12_HOUR_FLAG_FILE_PATH[] = "/data/system/time/time_format_12_hour";
|
||||||
// Java timestamp format. Don't show the clock if the date is before 2000-01-01 00:00:00.
|
// Java timestamp format. Don't show the clock if the date is before 2000-01-01 00:00:00.
|
||||||
static const long long ACCURATE_TIME_EPOCH = 946684800000;
|
static const long long ACCURATE_TIME_EPOCH = 946684800000;
|
||||||
static constexpr char FONT_BEGIN_CHAR = ' ';
|
static constexpr char FONT_BEGIN_CHAR = ' ';
|
||||||
@@ -99,7 +100,7 @@ static const std::vector<std::string> PLAY_SOUND_BOOTREASON_BLACKLIST {
|
|||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
BootAnimation::BootAnimation() : Thread(false), mClockEnabled(true), mTimeIsAccurate(false),
|
BootAnimation::BootAnimation() : Thread(false), mClockEnabled(true), mTimeIsAccurate(false),
|
||||||
mTimeCheckThread(NULL) {
|
mTimeFormat12Hour(false), mTimeCheckThread(NULL) {
|
||||||
mSession = new SurfaceComposerClient();
|
mSession = new SurfaceComposerClient();
|
||||||
|
|
||||||
// If the system has already booted, the animation is not being used for a boot.
|
// If the system has already booted, the animation is not being used for a boot.
|
||||||
@@ -589,9 +590,10 @@ void BootAnimation::drawText(const char* str, const Font& font, bool bold, int*
|
|||||||
glBindTexture(GL_TEXTURE_2D, 0);
|
glBindTexture(GL_TEXTURE_2D, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// We render 24 hour time.
|
// We render 12 or 24 hour time.
|
||||||
void BootAnimation::drawClock(const Font& font, const int xPos, const int yPos) {
|
void BootAnimation::drawClock(const Font& font, const int xPos, const int yPos) {
|
||||||
static constexpr char TIME_FORMAT[] = "%H:%M";
|
static constexpr char TIME_FORMAT_12[] = "%l:%M";
|
||||||
|
static constexpr char TIME_FORMAT_24[] = "%H:%M";
|
||||||
static constexpr int TIME_LENGTH = 6;
|
static constexpr int TIME_LENGTH = 6;
|
||||||
|
|
||||||
time_t rawtime;
|
time_t rawtime;
|
||||||
@@ -599,7 +601,8 @@ void BootAnimation::drawClock(const Font& font, const int xPos, const int yPos)
|
|||||||
struct tm* timeInfo = localtime(&rawtime);
|
struct tm* timeInfo = localtime(&rawtime);
|
||||||
|
|
||||||
char timeBuff[TIME_LENGTH];
|
char timeBuff[TIME_LENGTH];
|
||||||
size_t length = strftime(timeBuff, TIME_LENGTH, TIME_FORMAT, timeInfo);
|
const char* timeFormat = mTimeFormat12Hour ? TIME_FORMAT_12 : TIME_FORMAT_24;
|
||||||
|
size_t length = strftime(timeBuff, TIME_LENGTH, timeFormat, timeInfo);
|
||||||
|
|
||||||
if (length != TIME_LENGTH - 1) {
|
if (length != TIME_LENGTH - 1) {
|
||||||
ALOGE("Couldn't format time; abandoning boot animation clock");
|
ALOGE("Couldn't format time; abandoning boot animation clock");
|
||||||
@@ -1061,6 +1064,11 @@ bool BootAnimation::updateIsTimeAccurate() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct stat statResult;
|
struct stat statResult;
|
||||||
|
|
||||||
|
if(stat(TIME_FORMAT_12_HOUR_FLAG_FILE_PATH, &statResult) == 0) {
|
||||||
|
mTimeFormat12Hour = true;
|
||||||
|
}
|
||||||
|
|
||||||
if(stat(ACCURATE_TIME_FLAG_FILE_PATH, &statResult) == 0) {
|
if(stat(ACCURATE_TIME_FLAG_FILE_PATH, &statResult) == 0) {
|
||||||
mTimeIsAccurate = true;
|
mTimeIsAccurate = true;
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -152,6 +152,7 @@ private:
|
|||||||
sp<Surface> mFlingerSurface;
|
sp<Surface> mFlingerSurface;
|
||||||
bool mClockEnabled;
|
bool mClockEnabled;
|
||||||
bool mTimeIsAccurate;
|
bool mTimeIsAccurate;
|
||||||
|
bool mTimeFormat12Hour;
|
||||||
bool mSystemBoot;
|
bool mSystemBoot;
|
||||||
String8 mZipFileName;
|
String8 mZipFileName;
|
||||||
SortedVector<String8> mLoadedFiles;
|
SortedVector<String8> mLoadedFiles;
|
||||||
|
|||||||
Reference in New Issue
Block a user