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

Commit c36a5dc3 authored by Tony Huang's avatar Tony Huang
Browse files

Fix contents overlap to top bar

There still have some ovarlap bug currently, I doubt this is timming
issue occured after PreDrawListener removed.
Because we only update view only when some layout height changed, I
think it's OK to keep PreDrawListener.
Add scrollToTop call in PreDrawListener because recyclerView position
was not on top after display size change or system gesture change and
also cause some overlay issue.

Bug: 136691306
Test: manual
Test: atest DocumentsUIGoogleTests
Change-Id: Iec28fbc093d4eb517791878dcefb0fc89ad4e4f8
parent c12e4d60
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -387,11 +387,6 @@ public abstract class BaseActivity
            View rootsContainer = findViewById(R.id.container_roots);
            rootsContainer.setPadding(0, 0, 0, insets.getSystemWindowInsetBottom());

            DirectoryFragment fragment = getDirectoryFragment();
            if (fragment != null) {
                fragment.setPreDrawListenerEnabled(true);
            }

            return insets.consumeSystemWindowInsets();
        });

+9 −5
Original line number Diff line number Diff line
@@ -194,10 +194,14 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
    private final Runnable mOnDisplayStateChanged = this::onDisplayStateChanged;

    private final ViewTreeObserver.OnPreDrawListener mToolbarPreDrawListener = () -> {
        setPreDrawListenerEnabled(false);
        if (mAppBarHeight != getAppBarLayoutHeight()
                || mSaveLayoutHeight != getSaveLayoutHeight()) {
        final boolean appBarHeightChanged = mAppBarHeight != getAppBarLayoutHeight();
        if (appBarHeightChanged || mSaveLayoutHeight != getSaveLayoutHeight()) {
            updateLayout(mState.derivedMode);

            if (appBarHeightChanged) {
                scrollToTop();
            }
            return false;
        }
        return true;
    };
@@ -255,6 +259,8 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
        // Make the recycler and the empty views responsive to drop events when allowed.
        mRecView.setOnDragListener(mDragHoverListener);

        setPreDrawListenerEnabled(true);

        return view;
    }

@@ -1212,8 +1218,6 @@ public class DirectoryFragment extends Fragment implements SwipeRefreshLayout.On
                mInjector.menuManager.updateOptionMenu();

                mActivity.updateHeaderTitle();

                setPreDrawListenerEnabled(true);
            }
        }
    }