diff options
author | Doug Zongker <dougz@android.com> | 2010-08-31 15:42:35 -0700 |
---|---|---|
committer | Doug Zongker <dougz@android.com> | 2010-08-31 16:56:50 -0700 |
commit | 0428af61a2f5b503aac89565d606a182b1cfd2d7 (patch) | |
tree | 4e274486c673416d49fedce43cc6eb5a12d08d3f | |
parent | fb94e2d27f48ad0bb6e97e7697fa4427625107d0 (diff) | |
download | device_samsung_crespo-0428af61a2f5b503aac89565d606a182b1cfd2d7.zip device_samsung_crespo-0428af61a2f5b503aac89565d606a182b1cfd2d7.tar.gz device_samsung_crespo-0428af61a2f5b503aac89565d606a182b1cfd2d7.tar.bz2 |
add recovery UI library for crespo
Change-Id: I06999ad6ee3b56cc5f952cb44ccfaf1f53930aa6
-rwxr-xr-x | BoardConfig.mk | 4 | ||||
-rw-r--r-- | recovery/Android.mk | 11 | ||||
-rw-r--r-- | recovery/recovery_ui.c | 87 |
3 files changed, 101 insertions, 1 deletions
diff --git a/BoardConfig.mk b/BoardConfig.mk index d699202..f49117c 100755 --- a/BoardConfig.mk +++ b/BoardConfig.mk @@ -13,7 +13,7 @@ # limitations under the License. # BoardConfig.mk -# +# # Product-specific compile-time definitions. # @@ -59,3 +59,5 @@ BOARD_NAND_PAGE_SIZE := 4096 -s 128 BOARD_KERNEL_BASE := 0x30000000 BOARD_KERNEL_PAGESIZE := 4096 + +TARGET_RECOVERY_UI_LIB := librecovery_ui_crespo diff --git a/recovery/Android.mk b/recovery/Android.mk new file mode 100644 index 0000000..1313f85 --- /dev/null +++ b/recovery/Android.mk @@ -0,0 +1,11 @@ +LOCAL_PATH := $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_MODULE_TAGS := eng +LOCAL_C_INCLUDES += bootable/recovery +LOCAL_SRC_FILES := recovery_ui.c + +# should match TARGET_RECOVERY_UI_LIB set in BoardConfig.mk +LOCAL_MODULE := librecovery_ui_crespo + +include $(BUILD_STATIC_LIBRARY) diff --git a/recovery/recovery_ui.c b/recovery/recovery_ui.c new file mode 100644 index 0000000..b094d14 --- /dev/null +++ b/recovery/recovery_ui.c @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2010 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 <linux/input.h> + +#include "recovery_ui.h" +#include "common.h" + +char* MENU_HEADERS[] = { "Volume up/down to move highlight;", + "power button to select.", + "", + NULL }; + +char* MENU_ITEMS[] = { "reboot system now", + "wipe data/factory reset", + "wipe cache partition", + NULL }; + +int device_recovery_start() { + return 0; +} + +int device_toggle_display(volatile char* key_pressed, int key_code) { + // hold power and press volume-up + return key_pressed[0x1a] && key_code == 0x2a; +} + +int device_reboot_now(volatile char* key_pressed, int key_code) { + // Reboot if the power key is pressed five times in a row, with + // no other keys in between. + static int presses = 0; + if (key_code == 0x1a) { // power button + ++presses; + return presses == 5; + } else { + presses = 0; + return 0; + } +} + +int device_handle_key(int key_code, int visible) { + if (visible) { + switch (key_code) { + case KEY_DOWN: + case KEY_VOLUMEDOWN: + case 0x3a: // crespo volume-down + return HIGHLIGHT_DOWN; + + case KEY_UP: + case KEY_VOLUMEUP: + case 0x2a: // crespo volume-up + return HIGHLIGHT_UP; + + case KEY_ENTER: + case 0x1a: // crespo power + return SELECT_ITEM; + } + } + + return NO_ACTION; +} + +int device_perform_action(int which) { + switch (which) { + case 0: return ITEM_REBOOT; + case 1: return ITEM_WIPE_DATA; + case 2: return ITEM_WIPE_CACHE; + } + return NO_ACTION; +} + +int device_wipe_data() { + return 0; +} |