On 23 August 2018 at 07:14, Haojian Zhuang <[email protected]> wrote:
> Since hotkey 'f' is used to start AndroidFastbootApp. If user
> press 'f' key too long, it may be recognized pressing 'f' key
> multiple times. Then AndroidFastbootApp exists since it delcares
> any key press could make it exit.
>
> So only use ENTER or SPACE key to exit AndroidFastbootApp.
>
> Cc: Leif Lindholm <[email protected]>
> Cc: Ard Biesheuvel <[email protected]>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Haojian Zhuang <[email protected]>

Reviewed-by: Ard Biesheuvel <[email protected]>

Pushed as 6861765935d5b69803321ba6e43240845c7ab0e5

Thanks

> ---
>  EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.c | 14 
> ++++++++++++--
>  1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.c 
> b/EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.c
> index c5e8a7e34af2..c1ed94f92b6f 100644
> --- a/EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.c
> +++ b/EmbeddedPkg/Application/AndroidFastboot/AndroidFastbootApp.c
> @@ -426,6 +426,7 @@ FastbootAppEntryPoint (
>    EFI_EVENT                       WaitEventArray[2];
>    UINTN                           EventIndex;
>    EFI_SIMPLE_TEXT_INPUT_PROTOCOL *TextIn;
> +  EFI_INPUT_KEY                   Key;
>
>    mDataBuffer = NULL;
>
> @@ -508,12 +509,21 @@ FastbootAppEntryPoint (
>
>    // Talk to the user
>    mTextOut->OutputString (mTextOut,
> -      L"Android Fastboot mode - version " ANDROID_FASTBOOT_VERSION ". Press 
> any key to quit.\r\n");
> +      L"Android Fastboot mode - version " ANDROID_FASTBOOT_VERSION ". Press 
> RETURN or SPACE key to quit.\r\n");
>
>    // Quit when the user presses any key, or mFinishedEvent is signalled
>    WaitEventArray[0] = mFinishedEvent;
>    WaitEventArray[1] = TextIn->WaitForKey;
> -  gBS->WaitForEvent (2, WaitEventArray, &EventIndex);
> +  while (1) {
> +    gBS->WaitForEvent (2, WaitEventArray, &EventIndex);
> +    Status = TextIn->ReadKeyStroke (gST->ConIn, &Key);
> +    if (Key.ScanCode == SCAN_NULL) {
> +      if ((Key.UnicodeChar == CHAR_CARRIAGE_RETURN) ||
> +          (Key.UnicodeChar == L' ')) {
> +        break;
> +      }
> +    }
> +  }
>
>    mTransport->Stop ();
>    if (EFI_ERROR (Status)) {
> --
> 2.7.4
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to