diff --git a/pythonforandroid/recipes/android/src/android/display_cutout.py b/pythonforandroid/recipes/android/src/android/display_cutout.py index 09f89672da..a52868502d 100644 --- a/pythonforandroid/recipes/android/src/android/display_cutout.py +++ b/pythonforandroid/recipes/android/src/android/display_cutout.py @@ -80,12 +80,20 @@ def get_heights_of_both_bars(): def get_cutout_mode(): """Return mode for cutout supported applications""" - LayoutParams = autoclass('android.view.WindowManager$LayoutParams') - window = mActivity.getWindow() - layout_params = window.getAttributes() - cutout_mode = layout_params.layoutInDisplayCutoutMode - cutout_modes = {LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS: 'always', - LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT: 'default', - LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES: 'shortEdges'} - - return cutout_modes.get(cutout_mode, 'never') + BuildVersion = autoclass('android.os.Build$VERSION') + cutout_modes = {} + + if BuildVersion.SDK_INT >= 28: + LayoutParams = autoclass('android.view.WindowManager$LayoutParams') + window = mActivity.getWindow() + layout_params = window.getAttributes() + cutout_mode = layout_params.layoutInDisplayCutoutMode + cutout_modes.update({LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_DEFAULT: 'default', + LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES: 'shortEdges'}) + + if BuildVersion.SDK_INT >= 30: + cutout_modes[LayoutParams.LAYOUT_IN_DISPLAY_CUTOUT_MODE_ALWAYS] = 'always' + + return cutout_modes.get(cutout_mode, 'never') + + return None