Merge pull request #55210 from madmiraal/fix-android-orientation-3.x
[3.x] Fix Android `get_screen_orientation()` not returning valid values
This commit is contained in:
commit
6920aa11b7
@ -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) {
|
||||||
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user