summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTianjie Xu <xunchang@google.com>2019-12-06 23:46:01 +0100
committerGerrit Code Review <noreply-gerritcodereview@google.com>2019-12-06 23:46:01 +0100
commitd81bb36b5bfc01ebd4f108ab4965ea6451b0072b (patch)
tree8c28c76983ef981b271d70c3f285992865a15653
parentMerge "Merge Android10 QPR1 into AOSP master" (diff)
parentAdd mechanism for device-specific loop images (diff)
downloadandroid_bootable_recovery-d81bb36b5bfc01ebd4f108ab4965ea6451b0072b.tar
android_bootable_recovery-d81bb36b5bfc01ebd4f108ab4965ea6451b0072b.tar.gz
android_bootable_recovery-d81bb36b5bfc01ebd4f108ab4965ea6451b0072b.tar.bz2
android_bootable_recovery-d81bb36b5bfc01ebd4f108ab4965ea6451b0072b.tar.lz
android_bootable_recovery-d81bb36b5bfc01ebd4f108ab4965ea6451b0072b.tar.xz
android_bootable_recovery-d81bb36b5bfc01ebd4f108ab4965ea6451b0072b.tar.zst
android_bootable_recovery-d81bb36b5bfc01ebd4f108ab4965ea6451b0072b.zip
-rw-r--r--recovery_ui/screen_ui.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/recovery_ui/screen_ui.cpp b/recovery_ui/screen_ui.cpp
index 087fc0e84..b3ef113a7 100644
--- a/recovery_ui/screen_ui.cpp
+++ b/recovery_ui/screen_ui.cpp
@@ -941,17 +941,27 @@ void ScreenRecoveryUI::LoadAnimation() {
closedir);
dirent* de;
std::vector<std::string> intro_frame_names;
- std::vector<std::string> loop_frame_names;
+ std::vector<std::string> default_loop_frame_names;
+ std::vector<std::string> device_loop_frame_names;
+ // Create string format for device-specific loop animations.
+ std::string deviceformat = android::base::GetProperty("ro.product.product.name", "");
+ deviceformat += "%d%n.png";
while ((de = readdir(dir.get())) != nullptr) {
int value, num_chars;
if (sscanf(de->d_name, "intro%d%n.png", &value, &num_chars) == 1) {
intro_frame_names.emplace_back(de->d_name, num_chars);
} else if (sscanf(de->d_name, "loop%d%n.png", &value, &num_chars) == 1) {
- loop_frame_names.emplace_back(de->d_name, num_chars);
+ default_loop_frame_names.emplace_back(de->d_name, num_chars);
+ } else if (sscanf(de->d_name, deviceformat.c_str(), &value, &num_chars) == 1) {
+ device_loop_frame_names.emplace_back(de->d_name, num_chars);
}
}
+ // Favor device-specific loop frames, if they exist.
+ auto& loop_frame_names =
+ device_loop_frame_names.empty() ? default_loop_frame_names : device_loop_frame_names;
+
size_t intro_frames = intro_frame_names.size();
size_t loop_frames = loop_frame_names.size();