diff options
author | Tao Bao <tbao@google.com> | 2018-05-02 23:41:24 +0200 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2018-05-02 23:41:24 +0200 |
commit | 30f2775b373f0beab29cbc5c5d58f971b8b9bce3 (patch) | |
tree | a687cef952fe46ec15e4d9ea511a67c3bbb4fc5a | |
parent | Merge "Add ScreenRecoveryUI::ShowMenu()." (diff) | |
parent | Merge "screen_ui: Drop the dependency on common.h." (diff) | |
download | android_bootable_recovery-30f2775b373f0beab29cbc5c5d58f971b8b9bce3.tar android_bootable_recovery-30f2775b373f0beab29cbc5c5d58f971b8b9bce3.tar.gz android_bootable_recovery-30f2775b373f0beab29cbc5c5d58f971b8b9bce3.tar.bz2 android_bootable_recovery-30f2775b373f0beab29cbc5c5d58f971b8b9bce3.tar.lz android_bootable_recovery-30f2775b373f0beab29cbc5c5d58f971b8b9bce3.tar.xz android_bootable_recovery-30f2775b373f0beab29cbc5c5d58f971b8b9bce3.tar.zst android_bootable_recovery-30f2775b373f0beab29cbc5c5d58f971b8b9bce3.zip |
-rw-r--r-- | recovery.cpp | 2 | ||||
-rw-r--r-- | screen_ui.cpp | 12 | ||||
-rw-r--r-- | screen_ui.h | 2 | ||||
-rw-r--r-- | stub_ui.h | 5 | ||||
-rw-r--r-- | ui.h | 4 |
5 files changed, 14 insertions, 11 deletions
diff --git a/recovery.cpp b/recovery.cpp index 7e539ce3d..dc2cc085f 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -820,7 +820,7 @@ static void choose_recovery_file(Device* device) { std::bind(&Device::HandleMenuKey, device, std::placeholders::_1, std::placeholders::_2)); if (entries[chosen_item] == "Back") break; - ui->ShowFile(entries[chosen_item].c_str()); + ui->ShowFile(entries[chosen_item]); } } diff --git a/screen_ui.cpp b/screen_ui.cpp index aaeb18c7f..00ed45d3e 100644 --- a/screen_ui.cpp +++ b/screen_ui.cpp @@ -42,7 +42,6 @@ #include <android-base/strings.h> #include <minui/minui.h> -#include "common.h" #include "device.h" #include "ui.h" @@ -951,10 +950,10 @@ void ScreenRecoveryUI::ShowFile(FILE* fp) { } } -void ScreenRecoveryUI::ShowFile(const char* filename) { - FILE* fp = fopen_path(filename, "re"); - if (fp == nullptr) { - Print(" Unable to open %s: %s\n", filename, strerror(errno)); +void ScreenRecoveryUI::ShowFile(const std::string& filename) { + std::unique_ptr<FILE, decltype(&fclose)> fp(fopen(filename.c_str(), "re"), fclose); + if (!fp) { + Print(" Unable to open %s: %s\n", filename.c_str(), strerror(errno)); return; } @@ -966,8 +965,7 @@ void ScreenRecoveryUI::ShowFile(const char* filename) { text_ = file_viewer_text_; ClearText(); - ShowFile(fp); - fclose(fp); + ShowFile(fp.get()); text_ = old_text; text_col_ = old_text_col; diff --git a/screen_ui.h b/screen_ui.h index 837d346a2..986959c69 100644 --- a/screen_ui.h +++ b/screen_ui.h @@ -133,7 +133,7 @@ class ScreenRecoveryUI : public RecoveryUI { // printing messages void Print(const char* fmt, ...) override __printflike(2, 3); void PrintOnScreenOnly(const char* fmt, ...) override __printflike(2, 3); - void ShowFile(const char* filename) override; + void ShowFile(const std::string& filename) override; // menu display int ShowMenu(const char* const* headers, const char* const* items, int initial_selection, @@ -17,6 +17,9 @@ #ifndef RECOVERY_STUB_UI_H #define RECOVERY_STUB_UI_H +#include <functional> +#include <string> + #include "ui.h" // Stub implementation of RecoveryUI for devices without screen. @@ -51,7 +54,7 @@ class StubRecoveryUI : public RecoveryUI { va_end(ap); } void PrintOnScreenOnly(const char* /* fmt */, ...) override {} - void ShowFile(const char* /* filename */) override {} + void ShowFile(const std::string& /* filename */) override {} // menu display int ShowMenu(const char* const* /* headers */, const char* const* /* items */, @@ -88,7 +88,9 @@ class RecoveryUI { virtual void Print(const char* fmt, ...) __printflike(2, 3) = 0; virtual void PrintOnScreenOnly(const char* fmt, ...) __printflike(2, 3) = 0; - virtual void ShowFile(const char* filename) = 0; + // Shows the contents of the given file. Caller ensures the patition that contains the file has + // been mounted. + virtual void ShowFile(const std::string& filename) = 0; // --- key handling --- |