Files
android_bootable_recovery/wear_ui.h
T
Tao Bao f2be3bd74a wear_ui: Expose menu_unusable_rows via Makefile var.
This variable is useful on small screens (e.g. on watches) to handle
long menus. We should have better way to handle this value smartly.
Prior to that, expose the value to be overridable by using the generic
wearable UI module (librecovery_ui_wear).

Bug: 64307776
Test: Define the variable, build and boot into recovery image and check
      the UI menu.
Change-Id: I5d7a6baa8bb4cc852bfcc2a7b3cc9686c1c8817e
(cherry picked from commit eea3af3f91)
2017-08-13 11:24:56 -07:00

80 lines
2.2 KiB
C++

/*
* Copyright (C) 2014 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef RECOVERY_WEAR_UI_H
#define RECOVERY_WEAR_UI_H
#include "screen_ui.h"
#include <string>
class WearRecoveryUI : public ScreenRecoveryUI {
public:
WearRecoveryUI();
bool Init(const std::string& locale) override;
void SetStage(int current, int max) override;
// printing messages
void Print(const char* fmt, ...) override;
void PrintOnScreenOnly(const char* fmt, ...) override __printflike(2, 3);
void ShowFile(const char* filename) override;
void ShowFile(FILE* fp) override;
// menu display
void StartMenu(const char* const* headers, const char* const* items,
int initial_selection) override;
int SelectMenu(int sel) override;
protected:
// progress bar vertical position, it's centered horizontally
const int kProgressBarBaseline;
// Unusable rows when displaying the recovery menu, including the lines for headers (Android
// Recovery, build id and etc) and the bottom lines that may otherwise go out of the screen.
const int kMenuUnusableRows;
int GetProgressBaseline() const override;
bool InitTextParams() override;
void update_progress_locked() override;
void PrintV(const char*, bool, va_list) override;
private:
GRSurface* backgroundIcon[5];
static const int kMaxCols = 96;
static const int kMaxRows = 96;
// Number of text rows seen on screen
int visible_text_rows;
const char* const* menu_headers_;
int menu_start, menu_end;
pthread_t progress_t;
void draw_background_locked() override;
void draw_screen_locked() override;
void PutChar(char);
};
#endif // RECOVERY_WEAR_UI_H