1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-08 12:40:44 +00:00

Fix Android get_screen_orientation() not returning valid values

This commit is contained in:
Marcel Admiraal
2021-11-21 11:37:09 +00:00
parent dd3acd74bb
commit 05744ee0e2
2 changed files with 30 additions and 2 deletions

View File

@@ -285,10 +285,37 @@ public class GodotIO {
activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER); activity.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_FULL_USER);
} break; } break;
} }
}; }
public int getScreenOrientation() { public int getScreenOrientation() {
return activity.getRequestedOrientation(); int orientation = activity.getRequestedOrientation();
switch (orientation) {
case ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE:
return SCREEN_LANDSCAPE;
case ActivityInfo.SCREEN_ORIENTATION_PORTRAIT:
return SCREEN_PORTRAIT;
case ActivityInfo.SCREEN_ORIENTATION_REVERSE_LANDSCAPE:
return SCREEN_REVERSE_LANDSCAPE;
case ActivityInfo.SCREEN_ORIENTATION_REVERSE_PORTRAIT:
return SCREEN_REVERSE_PORTRAIT;
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE:
case ActivityInfo.SCREEN_ORIENTATION_USER_LANDSCAPE:
return SCREEN_SENSOR_LANDSCAPE;
case ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT:
case ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT:
return SCREEN_SENSOR_PORTRAIT;
case ActivityInfo.SCREEN_ORIENTATION_SENSOR:
case ActivityInfo.SCREEN_ORIENTATION_FULL_SENSOR:
case ActivityInfo.SCREEN_ORIENTATION_FULL_USER:
return SCREEN_SENSOR;
case ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED:
case ActivityInfo.SCREEN_ORIENTATION_USER:
case ActivityInfo.SCREEN_ORIENTATION_BEHIND:
case ActivityInfo.SCREEN_ORIENTATION_NOSENSOR:
case ActivityInfo.SCREEN_ORIENTATION_LOCKED:
default:
return -1;
}
} }
public void setEdit(GodotEditText _edit) { public void setEdit(GodotEditText _edit) {

View File

@@ -469,6 +469,7 @@ void OS_Android::set_screen_orientation(ScreenOrientation p_orientation) {
OS::ScreenOrientation OS_Android::get_screen_orientation() const { OS::ScreenOrientation OS_Android::get_screen_orientation() const {
const int orientation = godot_io_java->get_screen_orientation(); const int orientation = godot_io_java->get_screen_orientation();
ERR_FAIL_INDEX_V_MSG(orientation, 7, OS::ScreenOrientation(0), "Unrecognized screen orientation.");
return OS::ScreenOrientation(orientation); return OS::ScreenOrientation(orientation);
} }