Java Code Examples for android.view.View#getRootWindowInsets()

The following examples show how to use android.view.View#getRootWindowInsets() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: RNStaticSafeAreaInsetsModule.java    From react-native-static-safe-area-insets with MIT License 6 votes vote down vote up
private Map<String, Object> _getSafeAreaInsets() {
  final Map<String, Object> constants = new HashMap<>();

  if (getCurrentActivity() != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
    final Activity activity = getCurrentActivity();
    final View view = activity.getWindow().getDecorView();
    final WindowInsets insets = view.getRootWindowInsets();

    constants.put("safeAreaInsetsTop", PixelUtil.toDIPFromPixel(insets.getSystemWindowInsetTop()));
    constants.put("safeAreaInsetsBottom", PixelUtil.toDIPFromPixel(insets.getSystemWindowInsetBottom()));
    constants.put("safeAreaInsetsLeft", PixelUtil.toDIPFromPixel(insets.getSystemWindowInsetLeft()));
    constants.put("safeAreaInsetsRight", PixelUtil.toDIPFromPixel(insets.getSystemWindowInsetRight()));
  } else {
    constants.put("safeAreaInsetsTop", 0);
    constants.put("safeAreaInsetsBottom", 0);
    constants.put("safeAreaInsetsLeft", 0);
    constants.put("safeAreaInsetsRight", 0);
  }

  return constants;
}
 
Example 2
Source File: AppUtils.java    From AndroidNavigation with MIT License 5 votes vote down vote up
@TargetApi(28)
private static boolean attachHasOfficialNotch(View view) {
    WindowInsets windowInsets = view.getRootWindowInsets();
    if (windowInsets != null) {
        DisplayCutout displayCutout = windowInsets.getDisplayCutout();
        return displayCutout != null;
    } else {
        throw new IllegalStateException("activity has not yet attach to window, you must call `isCutout` after `Activity#onAttachedToWindow` is called.");
    }
}
 
Example 3
Source File: NotchUtil.java    From UIWidget with Apache License 2.0 5 votes vote down vote up
/**
 * @param view
 * @return false indicates the failure to get the result
 */
@TargetApi(28)
private static boolean attachHasOfficialNotch(View view) {
    WindowInsets windowInsets = view.getRootWindowInsets();
    if (windowInsets != null) {
        DisplayCutout displayCutout = windowInsets.getDisplayCutout();
        sHasNotch = displayCutout != null;
        return true;
    } else {
        // view not attached, do nothing
        return false;
    }
}
 
Example 4
Source File: NotchUtil.java    From UIWidget with Apache License 2.0 5 votes vote down vote up
@TargetApi(28)
private static void getOfficialSafeInsetRect(View view, Rect out) {
    if (view == null) {
        return;
    }
    WindowInsets rootWindowInsets = view.getRootWindowInsets();
    if (rootWindowInsets == null) {
        return;
    }
    DisplayCutout displayCutout = rootWindowInsets.getDisplayCutout();
    if (displayCutout != null) {
        out.set(displayCutout.getSafeInsetLeft(), displayCutout.getSafeInsetTop(),
                displayCutout.getSafeInsetRight(), displayCutout.getSafeInsetBottom());
    }
}
 
Example 5
Source File: SkinNotchUtils.java    From Android-skin-support with MIT License 5 votes vote down vote up
/**
 *
 * @param view
 * @return false indicates the failure to get the result
 */
@TargetApi(28)
private static boolean attachHasOfficialNotch(View view){
    WindowInsets windowInsets = view.getRootWindowInsets();
    if(windowInsets != null){
        DisplayCutout displayCutout = windowInsets.getDisplayCutout();
        sHasNotch = displayCutout != null;
        return true;
    }else{
        // view not attached, do nothing
        return false;
    }
}
 
Example 6
Source File: SkinNotchUtils.java    From Android-skin-support with MIT License 5 votes vote down vote up
@TargetApi(28)
private static void getOfficialSafeInsetRect(View view, Rect out) {
    if(view == null){
        return;
    }
    WindowInsets rootWindowInsets = view.getRootWindowInsets();
    if(rootWindowInsets == null){
        return;
    }
    DisplayCutout displayCutout = rootWindowInsets.getDisplayCutout();
    if(displayCutout != null){
        out.set(displayCutout.getSafeInsetLeft(), displayCutout.getSafeInsetTop(),
                displayCutout.getSafeInsetRight(), displayCutout.getSafeInsetBottom());
    }
}
 
Example 7
Source File: SkinStatusBarUtils.java    From Android-skin-support with MIT License 5 votes vote down vote up
@TargetApi(28)
private static void realHandleDisplayCutoutMode(Window window, View decorView) {
    if (decorView.getRootWindowInsets() != null &&
            decorView.getRootWindowInsets().getDisplayCutout() != null) {
        WindowManager.LayoutParams params = window.getAttributes();
        params.layoutInDisplayCutoutMode = WindowManager.LayoutParams
                .LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
        window.setAttributes(params);
    }
}
 
Example 8
Source File: NotchUtils.java    From ImmersionBar with Apache License 2.0 5 votes vote down vote up
private static DisplayCutout getDisplayCutout(View view) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        if (view != null) {
            WindowInsets windowInsets = view.getRootWindowInsets();
            if (windowInsets != null) {
                return windowInsets.getDisplayCutout();
            }
        }
    }
    return null;
}
 
Example 9
Source File: NotchUtils.java    From MNImageBrowser with GNU General Public License v3.0 5 votes vote down vote up
private static DisplayCutout getDisplayCutout(View view) {
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
        if (view != null) {
            WindowInsets windowInsets = view.getRootWindowInsets();
            if (windowInsets != null) {
                return windowInsets.getDisplayCutout();
            }
        }
    }
    return null;
}
 
Example 10
Source File: StatusBarUtils.java    From CoordinatorLayoutExample with Apache License 2.0 5 votes vote down vote up
@TargetApi(28)
private static void realHandleDisplayCutoutMode(Window window, View decorView) {
    if (decorView.getRootWindowInsets() != null &&
            decorView.getRootWindowInsets().getDisplayCutout() != null) {
        WindowManager.LayoutParams params = window.getAttributes();
        params.layoutInDisplayCutoutMode = WindowManager.LayoutParams
                .LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES;
        window.setAttributes(params);
    }
}