SpecialCyCi/AndroidResideMenu

screen goes below the bottom bar in ResideMenu,Needed Urgent

Opened this issue · 2 comments

i have tried many ways it's not working it's creating problem only in port mode
i am sending the image
screenshot_20161120-233004
please check on the image,
m waiting for the solution

Make these changes in ResideMenu class

     @Override
   protected boolean fitSystemWindows(Rect insets) {
    // Applies the content insets to the view's padding, consuming that
        // content (modifying the insets to be 0),
         // and returning true. This behavior is off by default and can be
     // enabled through setFitsSystemWindows(boolean)
     // in api14+ devices.
      Point appUsableSize = getAppUsableScreenSize(mContext);
      Point realScreenSize = getRealScreenSize(mContext);

     boolean hasBackKey=false;
     // navigation bar at the bottom
        if (appUsableSize.y < realScreenSize.y) {
        hasBackKey=true;
      }
         // This is added to fix soft navigationBar's overlapping to content above LOLLIPOP
          int bottomPadding = viewActivity.getPaddingBottom() + insets.bottom;

           if (hasBackKey ) {//there's a navigation bar
          bottomPadding += getNavigationBarHeight();
         }

          this.setPadding(viewActivity.getPaddingLeft() + insets.left,
    viewActivity.getPaddingTop() + insets.top,
    viewActivity.getPaddingRight() + insets.right,
    bottomPadding);
        insets.left = insets.top = insets.right = insets.bottom = 0;
         return true;
     }

And these methods

         public static Point getAppUsableScreenSize(Context context) {
            WindowManager windowManager = (WindowManager)   context.getSystemService(Context.WINDOW_SERVICE);
          Display display = windowManager.getDefaultDisplay();
      Point size = new Point();
        display.getSize(size);
    return size;
  }

 public static Point getRealScreenSize(Context context) {
  WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
 Display display = windowManager.getDefaultDisplay();
Point size = new Point();

 if (Build.VERSION.SDK_INT >= 17) {
display.getRealSize(size);
 } else if (Build.VERSION.SDK_INT >= 14) {
try {
    size.x = (Integer) Display.class.getMethod("getRawWidth").invoke(display);
    size.y = (Integer) Display.class.getMethod("getRawHeight").invoke(display);
     } catch (IllegalAccessException e) {} catch (InvocationTargetException e) {} catch (NoSuchMethodException e) {}
}

       return size;
     }

You can refer my solution here. It works with gesture navigations also
https://github.com/SpecialCyCi/AndroidResideMenu/issues/121#issuecomment-460137552