Merge "screen_ui: Drop the dependency on common.h."

This commit is contained in:
Tao Bao
2018-05-02 21:28:19 +00:00
committed by Gerrit Code Review
5 changed files with 14 additions and 11 deletions

View File

@@ -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]);
}
}

View File

@@ -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;

View File

@@ -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,

View File

@@ -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 */,

4
ui.h
View File

@@ -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 ---