Loading Android.mk +6 −5 Original line number Diff line number Diff line Loading @@ -30,16 +30,17 @@ include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_SRC_FILES := \ recovery.cpp \ adb_install.cpp \ asn1_decoder.cpp \ bootloader.cpp \ device.cpp \ fuse_sdcard_provider.c \ install.cpp \ recovery.cpp \ roots.cpp \ ui.cpp \ screen_ui.cpp \ asn1_decoder.cpp \ ui.cpp \ verifier.cpp \ adb_install.cpp \ fuse_sdcard_provider.c LOCAL_MODULE := recovery Loading default_device.cpp +23 −67 Original line number Diff line number Diff line Loading @@ -14,39 +14,15 @@ * limitations under the License. */ #include <linux/input.h> #include "common.h" #include "device.h" #include "screen_ui.h" static const char* HEADERS[] = { "Volume up/down to move highlight.", "Power button to select.", "", NULL }; static const char* ITEMS[] = { "Reboot system now", "Reboot to bootloader", "Apply update from ADB", "Apply update from SD card", "Wipe data/factory reset", "Wipe cache partition", "View recovery logs", "Power off", NULL }; class DefaultDevice : public Device { public: DefaultDevice() : ui(new ScreenRecoveryUI) { DefaultDevice() : Device(new ScreenRecoveryUI) { } RecoveryUI* GetUI() { return ui; } // TODO: make this handle more cases, and move the default implementation into Device too. int HandleMenuKey(int key, int visible) { if (visible) { switch (key) { Loading @@ -66,28 +42,8 @@ class DefaultDevice : public Device { return kNoAction; } BuiltinAction InvokeMenuItem(int menu_position) { switch (menu_position) { case 0: return REBOOT; case 1: return REBOOT_BOOTLOADER; case 2: return APPLY_ADB_SIDELOAD; case 3: return APPLY_EXT; case 4: return WIPE_DATA; case 5: return WIPE_CACHE; case 6: return READ_RECOVERY_LASTLOG; case 7: return SHUTDOWN; default: return NO_ACTION; } } const char* const* GetMenuHeaders() { return HEADERS; } const char* const* GetMenuItems() { return ITEMS; } private: RecoveryUI* ui; }; Device* make_device() { return new DefaultDevice(); return new DefaultDevice; } device.cpp 0 → 100644 +54 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 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. */ #include "device.h" // TODO: this is a lie for, say, fugu. static const char* HEADERS[] = { "Volume up/down to move highlight.", "Power button to select.", "", NULL }; static const char* ITEMS[] = { "Reboot system now", "Reboot to bootloader", "Apply update from ADB", "Apply update from SD card", "Wipe data/factory reset", "Wipe cache partition", "View recovery logs", "Power off", NULL }; const char* const* Device::GetMenuHeaders() { return HEADERS; } const char* const* Device::GetMenuItems() { return ITEMS; } Device::BuiltinAction Device::InvokeMenuItem(int menu_position) { switch (menu_position) { case 0: return REBOOT; case 1: return REBOOT_BOOTLOADER; case 2: return APPLY_ADB_SIDELOAD; case 3: return APPLY_EXT; case 4: return WIPE_DATA; case 5: return WIPE_CACHE; case 6: return READ_RECOVERY_LASTLOG; case 7: return SHUTDOWN; default: return NO_ACTION; } } device.h +16 −12 Original line number Diff line number Diff line Loading @@ -21,13 +21,14 @@ class Device { public: Device(RecoveryUI* ui) : ui_(ui) { } virtual ~Device() { } // Called to obtain the UI object that should be used to display // the recovery user interface for this device. You should not // have called Init() on the UI object already, the caller will do // that after this method returns. virtual RecoveryUI* GetUI() = 0; virtual RecoveryUI* GetUI() { return ui_; } // Called when recovery starts up (after the UI has been obtained // and initialized and after the arguments have been parsed, but Loading Loading @@ -60,6 +61,17 @@ class Device { APPLY_ADB_SIDELOAD, WIPE_DATA, WIPE_CACHE, REBOOT_BOOTLOADER, SHUTDOWN, READ_RECOVERY_LASTLOG }; // Return the headers (an array of strings, one per line, // NULL-terminated) for the main menu. Typically these tell users // what to push to move the selection and invoke the selected // item. virtual const char* const* GetMenuHeaders(); // Return the list of menu items (an array of strings, // NULL-terminated). The menu_position passed to InvokeMenuItem // will correspond to the indexes into this array. virtual const char* const* GetMenuItems(); // Perform a recovery action selected from the menu. // 'menu_position' will be the item number of the selected menu // item, or a non-negative number returned from Loading @@ -69,7 +81,7 @@ class Device { // builtin actions, you can just return the corresponding enum // value. If it is an action specific to your device, you // actually perform it here and return NO_ACTION. virtual BuiltinAction InvokeMenuItem(int menu_position) = 0; virtual BuiltinAction InvokeMenuItem(int menu_position); static const int kNoAction = -1; static const int kHighlightUp = -2; Loading @@ -84,16 +96,8 @@ class Device { // are erased AFTER this returns (whether it returns success or not). virtual int WipeData() { return 0; } // Return the headers (an array of strings, one per line, // NULL-terminated) for the main menu. Typically these tell users // what to push to move the selection and invoke the selected // item. virtual const char* const* GetMenuHeaders() = 0; // Return the list of menu items (an array of strings, // NULL-terminated). The menu_position passed to InvokeMenuItem // will correspond to the indexes into this array. virtual const char* const* GetMenuItems() = 0; private: RecoveryUI* ui_; }; // The device-specific library must define this function (or the Loading Loading
Android.mk +6 −5 Original line number Diff line number Diff line Loading @@ -30,16 +30,17 @@ include $(BUILD_STATIC_LIBRARY) include $(CLEAR_VARS) LOCAL_SRC_FILES := \ recovery.cpp \ adb_install.cpp \ asn1_decoder.cpp \ bootloader.cpp \ device.cpp \ fuse_sdcard_provider.c \ install.cpp \ recovery.cpp \ roots.cpp \ ui.cpp \ screen_ui.cpp \ asn1_decoder.cpp \ ui.cpp \ verifier.cpp \ adb_install.cpp \ fuse_sdcard_provider.c LOCAL_MODULE := recovery Loading
default_device.cpp +23 −67 Original line number Diff line number Diff line Loading @@ -14,39 +14,15 @@ * limitations under the License. */ #include <linux/input.h> #include "common.h" #include "device.h" #include "screen_ui.h" static const char* HEADERS[] = { "Volume up/down to move highlight.", "Power button to select.", "", NULL }; static const char* ITEMS[] = { "Reboot system now", "Reboot to bootloader", "Apply update from ADB", "Apply update from SD card", "Wipe data/factory reset", "Wipe cache partition", "View recovery logs", "Power off", NULL }; class DefaultDevice : public Device { public: DefaultDevice() : ui(new ScreenRecoveryUI) { DefaultDevice() : Device(new ScreenRecoveryUI) { } RecoveryUI* GetUI() { return ui; } // TODO: make this handle more cases, and move the default implementation into Device too. int HandleMenuKey(int key, int visible) { if (visible) { switch (key) { Loading @@ -66,28 +42,8 @@ class DefaultDevice : public Device { return kNoAction; } BuiltinAction InvokeMenuItem(int menu_position) { switch (menu_position) { case 0: return REBOOT; case 1: return REBOOT_BOOTLOADER; case 2: return APPLY_ADB_SIDELOAD; case 3: return APPLY_EXT; case 4: return WIPE_DATA; case 5: return WIPE_CACHE; case 6: return READ_RECOVERY_LASTLOG; case 7: return SHUTDOWN; default: return NO_ACTION; } } const char* const* GetMenuHeaders() { return HEADERS; } const char* const* GetMenuItems() { return ITEMS; } private: RecoveryUI* ui; }; Device* make_device() { return new DefaultDevice(); return new DefaultDevice; }
device.cpp 0 → 100644 +54 −0 Original line number Diff line number Diff line /* * Copyright (C) 2015 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. */ #include "device.h" // TODO: this is a lie for, say, fugu. static const char* HEADERS[] = { "Volume up/down to move highlight.", "Power button to select.", "", NULL }; static const char* ITEMS[] = { "Reboot system now", "Reboot to bootloader", "Apply update from ADB", "Apply update from SD card", "Wipe data/factory reset", "Wipe cache partition", "View recovery logs", "Power off", NULL }; const char* const* Device::GetMenuHeaders() { return HEADERS; } const char* const* Device::GetMenuItems() { return ITEMS; } Device::BuiltinAction Device::InvokeMenuItem(int menu_position) { switch (menu_position) { case 0: return REBOOT; case 1: return REBOOT_BOOTLOADER; case 2: return APPLY_ADB_SIDELOAD; case 3: return APPLY_EXT; case 4: return WIPE_DATA; case 5: return WIPE_CACHE; case 6: return READ_RECOVERY_LASTLOG; case 7: return SHUTDOWN; default: return NO_ACTION; } }
device.h +16 −12 Original line number Diff line number Diff line Loading @@ -21,13 +21,14 @@ class Device { public: Device(RecoveryUI* ui) : ui_(ui) { } virtual ~Device() { } // Called to obtain the UI object that should be used to display // the recovery user interface for this device. You should not // have called Init() on the UI object already, the caller will do // that after this method returns. virtual RecoveryUI* GetUI() = 0; virtual RecoveryUI* GetUI() { return ui_; } // Called when recovery starts up (after the UI has been obtained // and initialized and after the arguments have been parsed, but Loading Loading @@ -60,6 +61,17 @@ class Device { APPLY_ADB_SIDELOAD, WIPE_DATA, WIPE_CACHE, REBOOT_BOOTLOADER, SHUTDOWN, READ_RECOVERY_LASTLOG }; // Return the headers (an array of strings, one per line, // NULL-terminated) for the main menu. Typically these tell users // what to push to move the selection and invoke the selected // item. virtual const char* const* GetMenuHeaders(); // Return the list of menu items (an array of strings, // NULL-terminated). The menu_position passed to InvokeMenuItem // will correspond to the indexes into this array. virtual const char* const* GetMenuItems(); // Perform a recovery action selected from the menu. // 'menu_position' will be the item number of the selected menu // item, or a non-negative number returned from Loading @@ -69,7 +81,7 @@ class Device { // builtin actions, you can just return the corresponding enum // value. If it is an action specific to your device, you // actually perform it here and return NO_ACTION. virtual BuiltinAction InvokeMenuItem(int menu_position) = 0; virtual BuiltinAction InvokeMenuItem(int menu_position); static const int kNoAction = -1; static const int kHighlightUp = -2; Loading @@ -84,16 +96,8 @@ class Device { // are erased AFTER this returns (whether it returns success or not). virtual int WipeData() { return 0; } // Return the headers (an array of strings, one per line, // NULL-terminated) for the main menu. Typically these tell users // what to push to move the selection and invoke the selected // item. virtual const char* const* GetMenuHeaders() = 0; // Return the list of menu items (an array of strings, // NULL-terminated). The menu_position passed to InvokeMenuItem // will correspond to the indexes into this array. virtual const char* const* GetMenuItems() = 0; private: RecoveryUI* ui_; }; // The device-specific library must define this function (or the Loading