Merge in lollipop and attempt to fix merge conflicts
This will probably not compile and may need additional work. For tracking purposes so we know what might still need looking at as none of this has been compiled and tested, here is a list of the merge conflicts that I attempted to fix before pushing this set of changes: git pull aosp lollipop-release remote: Finding sources: 100% (992/992) remote: Total 992 (delta 473), reused 992 (delta 473) Receiving objects: 100% (992/992), 1.51 MiB | 516.00 KiB/s, done. Resolving deltas: 100% (473/473), completed with 42 local objects. From https://android.googlesource.com/platform/bootable/recovery * branch lollipop-release -> FETCH_HEAD * [new branch] lollipop-release -> aosp/lollipop-release Auto-merging verifier_test.cpp CONFLICT (content): Merge conflict in verifier_test.cpp Auto-merging verifier.h CONFLICT (content): Merge conflict in verifier.h Auto-merging verifier.cpp CONFLICT (content): Merge conflict in verifier.cpp Auto-merging updater/updater.c Auto-merging updater/install.c CONFLICT (content): Merge conflict in updater/install.c Auto-merging updater/Android.mk CONFLICT (content): Merge conflict in updater/Android.mk Auto-merging uncrypt/Android.mk CONFLICT (content): Merge conflict in uncrypt/Android.mk Auto-merging ui.cpp CONFLICT (content): Merge conflict in ui.cpp Auto-merging screen_ui.cpp Auto-merging roots.cpp CONFLICT (content): Merge conflict in roots.cpp CONFLICT (rename/delete): res-hdpi/images/progress_fill.png deleted in HEAD and renamed incddb68b5ea. Versioncddb68b5eaof res-hdpi/images/progress_fill.png left in tree. CONFLICT (rename/delete): res-hdpi/images/progress_empty.png deleted in HEAD and renamed incddb68b5ea. Versioncddb68b5eaof res-hdpi/images/progress_empty.png left in tree. CONFLICT (rename/delete): res-hdpi/images/icon_error.png deleted in HEAD and renamed incddb68b5ea. Versioncddb68b5eaof res-hdpi/images/icon_error.png left in tree. Auto-merging recovery.cpp CONFLICT (content): Merge conflict in recovery.cpp Auto-merging minui/resources.c CONFLICT (content): Merge conflict in minui/resources.c Auto-merging minui/minui.h CONFLICT (content): Merge conflict in minui/minui.h Auto-merging minui/graphics.c CONFLICT (content): Merge conflict in minui/graphics.c Auto-merging minui/Android.mk CONFLICT (content): Merge conflict in minui/Android.mk Removing minelf/Retouch.h Removing minelf/Retouch.c Auto-merging minadbd/usb_linux_client.c CONFLICT (content): Merge conflict in minadbd/usb_linux_client.c Auto-merging minadbd/adb.h CONFLICT (content): Merge conflict in minadbd/adb.h Auto-merging minadbd/adb.c CONFLICT (content): Merge conflict in minadbd/adb.c Auto-merging minadbd/Android.mk CONFLICT (content): Merge conflict in minadbd/Android.mk Removing make-overlay.py Auto-merging install.h CONFLICT (content): Merge conflict in install.h Auto-merging etc/init.rc CONFLICT (content): Merge conflict in etc/init.rc Auto-merging bootloader.h Auto-merging applypatch/applypatch.c Auto-merging applypatch/Android.mk CONFLICT (content): Merge conflict in applypatch/Android.mk Auto-merging adb_install.cpp CONFLICT (content): Merge conflict in adb_install.cpp Auto-merging Android.mk CONFLICT (content): Merge conflict in Android.mk Automatic merge failed; fix conflicts and then commit the result. Change-Id: I3e0e03e48ad8550912111c7a5c9a140ed0267e2c
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#endif
|
||||
|
||||
#include "common.h"
|
||||
#include "roots.h"
|
||||
#include "device.h"
|
||||
#include "minui/minui.h"
|
||||
#include "screen_ui.h"
|
||||
@@ -49,10 +50,15 @@ RecoveryUI::RecoveryUI() :
|
||||
key_queue_len(0),
|
||||
key_last_down(-1),
|
||||
key_long_press(false),
|
||||
key_down_count(0) {
|
||||
key_down_count(0),
|
||||
enable_reboot(true),
|
||||
consecutive_power_keys(0),
|
||||
consecutive_alternate_keys(0),
|
||||
last_key(-1) {
|
||||
pthread_mutex_init(&key_queue_mutex, NULL);
|
||||
pthread_cond_init(&key_queue_cond, NULL);
|
||||
self = this;
|
||||
memset(key_pressed, 0, sizeof(key_pressed));
|
||||
}
|
||||
|
||||
void RecoveryUI::Init() {
|
||||
@@ -61,12 +67,12 @@ void RecoveryUI::Init() {
|
||||
}
|
||||
|
||||
|
||||
int RecoveryUI::input_callback(int fd, short revents, void* data)
|
||||
int RecoveryUI::input_callback(int fd, uint32_t epevents, void* data)
|
||||
{
|
||||
struct input_event ev;
|
||||
int ret;
|
||||
|
||||
ret = ev_get_input(fd, revents, &ev);
|
||||
ret = ev_get_input(fd, epevents, &ev);
|
||||
if (ret)
|
||||
return -1;
|
||||
|
||||
@@ -114,6 +120,7 @@ int RecoveryUI::input_callback(int fd, short revents, void* data)
|
||||
void RecoveryUI::process_key(int key_code, int updown) {
|
||||
bool register_key = false;
|
||||
bool long_press = false;
|
||||
bool reboot_enabled;
|
||||
|
||||
pthread_mutex_lock(&key_queue_mutex);
|
||||
key_pressed[key_code] = updown;
|
||||
@@ -135,6 +142,7 @@ void RecoveryUI::process_key(int key_code, int updown) {
|
||||
}
|
||||
key_last_down = -1;
|
||||
}
|
||||
reboot_enabled = enable_reboot;
|
||||
pthread_mutex_unlock(&key_queue_mutex);
|
||||
|
||||
if (register_key) {
|
||||
@@ -149,13 +157,22 @@ void RecoveryUI::process_key(int key_code, int updown) {
|
||||
|
||||
case RecoveryUI::REBOOT:
|
||||
#ifdef ANDROID_RB_RESTART
|
||||
android_reboot(ANDROID_RB_RESTART, 0, 0);
|
||||
if (reboot_enabled) {
|
||||
android_reboot(ANDROID_RB_RESTART, 0, 0);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
case RecoveryUI::ENQUEUE:
|
||||
EnqueueKey(key_code);
|
||||
break;
|
||||
|
||||
case RecoveryUI::MOUNT_SYSTEM:
|
||||
#ifndef NO_RECOVERY_MOUNT
|
||||
ensure_path_mounted("/system");
|
||||
Print("Mounted /system.");
|
||||
#endif
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -262,8 +279,47 @@ void RecoveryUI::FlushKeys() {
|
||||
pthread_mutex_unlock(&key_queue_mutex);
|
||||
}
|
||||
|
||||
// The default CheckKey implementation assumes the device has power,
|
||||
// volume up, and volume down keys.
|
||||
//
|
||||
// - Hold power and press vol-up to toggle display.
|
||||
// - Press power seven times in a row to reboot.
|
||||
// - Alternate vol-up and vol-down seven times to mount /system.
|
||||
RecoveryUI::KeyAction RecoveryUI::CheckKey(int key) {
|
||||
return RecoveryUI::ENQUEUE;
|
||||
if ((IsKeyPressed(KEY_POWER) && key == KEY_VOLUMEUP) || key == KEY_HOME) {
|
||||
return TOGGLE;
|
||||
}
|
||||
|
||||
if (key == KEY_POWER) {
|
||||
pthread_mutex_lock(&key_queue_mutex);
|
||||
bool reboot_enabled = enable_reboot;
|
||||
pthread_mutex_unlock(&key_queue_mutex);
|
||||
|
||||
if (reboot_enabled) {
|
||||
++consecutive_power_keys;
|
||||
if (consecutive_power_keys >= 7) {
|
||||
return REBOOT;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
consecutive_power_keys = 0;
|
||||
}
|
||||
|
||||
if ((key == KEY_VOLUMEUP &&
|
||||
(last_key == KEY_VOLUMEDOWN || last_key == -1)) ||
|
||||
(key == KEY_VOLUMEDOWN &&
|
||||
(last_key == KEY_VOLUMEUP || last_key == -1))) {
|
||||
++consecutive_alternate_keys;
|
||||
if (consecutive_alternate_keys >= 7) {
|
||||
consecutive_alternate_keys = 0;
|
||||
return MOUNT_SYSTEM;
|
||||
}
|
||||
} else {
|
||||
consecutive_alternate_keys = 0;
|
||||
}
|
||||
last_key = key;
|
||||
|
||||
return ENQUEUE;
|
||||
}
|
||||
|
||||
void RecoveryUI::NextCheckKeyIsLong(bool is_long_press) {
|
||||
@@ -271,3 +327,9 @@ void RecoveryUI::NextCheckKeyIsLong(bool is_long_press) {
|
||||
|
||||
void RecoveryUI::KeyLongPress(int key) {
|
||||
}
|
||||
|
||||
void RecoveryUI::SetEnableReboot(bool enabled) {
|
||||
pthread_mutex_lock(&key_queue_mutex);
|
||||
enable_reboot = enabled;
|
||||
pthread_mutex_unlock(&key_queue_mutex);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user