Skip to content

Commit

Permalink
Android: Fix ConfirmRegistration and PasswordChange input and scale s…
Browse files Browse the repository at this point in the history
…ize (#10182)
  • Loading branch information
Maksim committed Jul 21, 2020
1 parent 82731d0 commit 76afde8
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 9 deletions.
19 changes: 15 additions & 4 deletions src/gui/guiConfirmRegistration.cpp
Expand Up @@ -73,7 +73,11 @@ void GUIConfirmRegistration::regenerateGui(v2u32 screensize)
/*
Calculate new sizes and positions
*/
#ifdef __ANDROID__
const float s = m_gui_scale * porting::getDisplayDensity() / 2;
#else
const float s = m_gui_scale;
#endif
DesiredRect = core::rect<s32>(
screensize.X / 2 - 600 * s / 2,
screensize.Y / 2 - 360 * s / 2,
Expand Down Expand Up @@ -257,12 +261,19 @@ bool GUIConfirmRegistration::getAndroidUIInput()
if (!hasAndroidUIInput() || m_jni_field_name != "password")
return false;

std::string text = porting::getInputDialogValue();
gui::IGUIElement *e = getElementFromId(ID_confirmPassword);
if (e)
e->setText(utf8_to_wide(text).c_str());
// still waiting
if (porting::getInputDialogState() == -1)
return true;

m_jni_field_name.clear();

gui::IGUIElement *e = getElementFromId(ID_confirmPassword);

if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX)
return false;

std::string text = porting::getInputDialogValue();
e->setText(utf8_to_wide(text).c_str());
return false;
}
#endif
19 changes: 14 additions & 5 deletions src/gui/guiPasswordChange.cpp
Expand Up @@ -79,7 +79,11 @@ void GUIPasswordChange::regenerateGui(v2u32 screensize)
/*
Calculate new sizes and positions
*/
#ifdef __ANDROID__
const float s = m_gui_scale * porting::getDisplayDensity() / 2;
#else
const float s = m_gui_scale;
#endif
DesiredRect = core::rect<s32>(
screensize.X / 2 - 580 * s / 2,
screensize.Y / 2 - 300 * s / 2,
Expand Down Expand Up @@ -289,19 +293,24 @@ bool GUIPasswordChange::getAndroidUIInput()
if (!hasAndroidUIInput())
return false;

// still waiting
if (porting::getInputDialogState() == -1)
return true;

gui::IGUIElement *e = nullptr;
if (m_jni_field_name == "old_password")
e = getElementFromId(ID_oldPassword);
else if (m_jni_field_name == "new_password_1")
e = getElementFromId(ID_newPassword1);
else if (m_jni_field_name == "new_password_2")
e = getElementFromId(ID_newPassword2);

if (e) {
std::string text = porting::getInputDialogValue();
e->setText(utf8_to_wide(text).c_str());
}
m_jni_field_name.clear();

if (!e || e->getType() != irr::gui::EGUIET_EDIT_BOX)
return false;

std::string text = porting::getInputDialogValue();
e->setText(utf8_to_wide(text).c_str());
return false;
}
#endif

0 comments on commit 76afde8

Please sign in to comment.