[Android] Fixes Tab Groups controls behaviour on tab closing

This commit is contained in:
samartnik
2021-03-19 17:18:11 -04:00
parent ff08ad2374
commit 01a39dba3e
7 changed files with 31 additions and 60 deletions
@@ -27,7 +27,6 @@ import org.chromium.chrome.browser.ActivityTabProvider;
import org.chromium.chrome.browser.app.ChromeActivity;
import org.chromium.chrome.browser.bookmarks.BookmarkBridge;
import org.chromium.chrome.browser.browser_controls.BrowserControlsSizer;
import org.chromium.chrome.browser.browser_controls.BrowserControlsStateProvider;
import org.chromium.chrome.browser.compositor.CompositorViewHolder;
import org.chromium.chrome.browser.compositor.Invalidator;
import org.chromium.chrome.browser.compositor.layouts.LayoutManagerImpl;
@@ -111,7 +110,6 @@ public class BraveToolbarManager extends ToolbarManager {
private final Object mLock = new Object();
private boolean mBottomControlsEnabled;
private BraveScrollingBottomViewResourceFrameLayout mBottomControls;
private final BrowserControlsStateProvider.Observer mBraveBrowserControlsObserver;
public BraveToolbarManager(AppCompatActivity activity, BrowserControlsSizer controlsSizer,
FullscreenManager fullscreenManager, ToolbarControlContainer controlContainer,
@@ -168,15 +166,6 @@ public class BraveToolbarManager extends ToolbarManager {
}
};
HomepageManager.getInstance().addListener(mBraveHomepageStateListener);
mBraveBrowserControlsObserver = new BrowserControlsStateProvider.Observer() {
@Override
public void onControlsOffsetChanged(int topOffset, int topControlsMinHeightOffset,
int bottomOffset, int bottomControlsMinHeightOffset, boolean needsAnimate) {
updateBottomToolbarVisibility();
}
};
mBrowserControlsSizer.addObserver(mBraveBrowserControlsObserver);
}
@Override
@@ -23,14 +23,25 @@ public class BraveScrollingBottomViewResourceFrameLayout
private SwipeGestureListener mSwipeGestureListener;
private Supplier<BottomControlsCoordinator> mBottomControlsCoordinatorSupplier;
private final CallbackController mCallbackController;
private boolean mIsBottomToolbarVisible;
private boolean mIsTabGroupUiVisible;
View mBottomToolbar;
View mBottomContainerSlot;
public BraveScrollingBottomViewResourceFrameLayout(Context context, AttributeSet attrs) {
super(context, attrs);
mCallbackController = new CallbackController();
}
@Override
protected void onFinishInflate() {
super.onFinishInflate();
mBottomToolbar = findViewById(R.id.bottom_toolbar);
assert mBottomToolbar != null : "Something has changed in upstream!";
mBottomContainerSlot = findViewById(R.id.bottom_container_slot);
assert mBottomContainerSlot != null : "Something has changed in upstream!";
}
/**
* Set the swipe handler for this view and set {@link #isClickable()} to true to allow motion
* events to be intercepted by the view itself.
@@ -61,21 +72,6 @@ public class BraveScrollingBottomViewResourceFrameLayout
return handledEvent || super.onTouchEvent(event);
}
private void updateBottomControlsVisibility() {
if (braveBottomControlsCoordinator() != null) {
View bottomToolbar = findViewById(R.id.bottom_toolbar);
assert (bottomToolbar != null);
if (bottomToolbar != null) {
bottomToolbar.setVisibility(mIsBottomToolbarVisible ? View.VISIBLE : View.GONE);
}
View bottomContainerSlot = findViewById(R.id.bottom_container_slot);
assert (bottomContainerSlot != null);
if (bottomContainerSlot != null) {
bottomContainerSlot.setVisibility(mIsTabGroupUiVisible ? View.VISIBLE : View.GONE);
}
}
}
public void setBottomControlsCoordinatorSupplier(
Supplier<BottomControlsCoordinator> bottomControlsCoordinatorSupplier) {
if (mBottomControlsCoordinatorSupplier != null) {
@@ -85,13 +81,17 @@ public class BraveScrollingBottomViewResourceFrameLayout
mBottomControlsCoordinatorSupplier = bottomControlsCoordinatorSupplier;
braveBottomControlsCoordinator().getBottomToolbarVisibleSupplier().addObserver(
mCallbackController.makeCancelable((visible) -> {
mIsBottomToolbarVisible = visible;
updateBottomControlsVisibility();
if (mBottomToolbar != null) {
mBottomToolbar.setVisibility(visible ? View.VISIBLE : View.GONE);
getResourceAdapter().dropCachedBitmap();
}
}));
braveBottomControlsCoordinator().getTabGroupUiVisibleSupplier().addObserver(
mCallbackController.makeCancelable((visible) -> {
mIsTabGroupUiVisible = visible;
updateBottomControlsVisibility();
if (mBottomContainerSlot != null) {
mBottomContainerSlot.setVisibility(visible ? View.VISIBLE : View.GONE);
getResourceAdapter().dropCachedBitmap();
}
}));
}