Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea360f80 authored by Danesh M's avatar Danesh M
Browse files

NavigationBar : Switch to display orientation from config orientation

Config orientation seems to incorrectly report states and causes
issues where incorrect view is shown. Switch to using display orientation
and in doing so, mirror aosp logic for view switching.

Change-Id: I182b3c25a42eec1e3989ffbf508b06391a11c458
parent 326bf740
Loading
Loading
Loading
Loading
+10 −7
Original line number Diff line number Diff line
@@ -564,9 +564,11 @@ public class NavigationBarView extends LinearLayout {

    @Override
    public void onFinishInflate() {
        mRotatedViews[Configuration.ORIENTATION_PORTRAIT] = findViewById(R.id.rot0);
        mRotatedViews[Configuration.ORIENTATION_LANDSCAPE] = findViewById(R.id.rot90);
        mCurrentView = mRotatedViews[mContext.getResources().getConfiguration().orientation];
        mRotatedViews[Surface.ROTATION_0] =
        mRotatedViews[Surface.ROTATION_180] = findViewById(R.id.rot0);
        mRotatedViews[Surface.ROTATION_90] = findViewById(R.id.rot90);
        mRotatedViews[Surface.ROTATION_270] = mRotatedViews[Surface.ROTATION_90];
        mCurrentView = mRotatedViews[Surface.ROTATION_0];

        getImeSwitchButton().setOnClickListener(mImeSwitcherClickListener);

@@ -583,10 +585,11 @@ public class NavigationBarView extends LinearLayout {
    }

    public void reorient() {
        int orientation = mContext.getResources().getConfiguration().orientation;
        mRotatedViews[Configuration.ORIENTATION_PORTRAIT].setVisibility(View.GONE);
        mRotatedViews[Configuration.ORIENTATION_LANDSCAPE].setVisibility(View.GONE);
        mCurrentView = mRotatedViews[orientation];
        final int rot = mDisplay.getRotation();
        for (int i=0; i<4; i++) {
            mRotatedViews[i].setVisibility(View.GONE);
        }
        mCurrentView = mRotatedViews[rot];
        mCurrentView.setVisibility(View.VISIBLE);
        if (NavbarEditor.isDevicePhone(mContext)) {
            int rotation = mDisplay.getRotation();