diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/game.cpp | 39 |
1 files changed, 29 insertions, 10 deletions
diff --git a/src/game.cpp b/src/game.cpp index 6fba70df6..c6125dd43 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -1574,6 +1574,10 @@ protected: static void settingChangedCallback(const std::string &setting_name, void *data); void readSettings(); +#ifdef __ANDROID__ + void handleAndroidChatInput(); +#endif + private: InputHandler *input; @@ -1660,8 +1664,8 @@ private: #ifdef __ANDROID__ bool m_cache_hold_aux1; + bool m_android_chat_open; #endif - }; Game::Game() : @@ -2610,10 +2614,10 @@ void Game::processUserInput(VolatileRunFlags *flags, input->step(dtime); #ifdef __ANDROID__ - - if (current_formspec != 0) + if (current_formspec != NULL) current_formspec->getAndroidUIInput(); - + else + handleAndroidChatInput(); #endif // Increase timer for double tap of "keymap_jump" @@ -2803,15 +2807,30 @@ void Game::openInventory() void Game::openConsole(float height, const wchar_t *line) { - if (!gui_chat_console->isOpenInhibited()) { - gui_chat_console->openConsole(height); - if (line) { - gui_chat_console->setCloseOnEnter(true); - gui_chat_console->replaceAndAddToHistory(line); - } +#ifdef __ANDROID__ + porting::showInputDialog(gettext("ok"), "", "", 2); + m_android_chat_open = true; +#else + if (gui_chat_console->isOpenInhibited()) + return; + gui_chat_console->openConsole(height); + if (line) { + gui_chat_console->setCloseOnEnter(true); + gui_chat_console->replaceAndAddToHistory(line); } +#endif } +#ifdef __ANDROID__ +void Game::handleAndroidChatInput() +{ + if (m_android_chat_open && porting::getInputDialogState() == 0) { + std::string text = porting::getInputDialogValue(); + client->typeChatMessage(utf8_to_wide(text)); + } +} +#endif + void Game::toggleFreeMove(float *statustext_time) { |