// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.hub;
import android.annotation.SuppressLint;
import android.content.Context;
import android.view.MotionEvent;
import android.widget.FrameLayout;
/** Container view for the Hub. */
public class HubContainerView extends FrameLayout implements RunOnNextLayout {
private static final String TAG = "HubContainerView";
private final RunOnNextLayoutDelegate mRunOnNextLayoutDelegate;
/** Default {@link FrameLayout} constructor. */
public HubContainerView(Context context) {
super(context);
mRunOnNextLayoutDelegate = new RunOnNextLayoutDelegate(this);
}
@Override
public void onLayout(boolean changed, int l, int t, int r, int b) {
super.onLayout(changed, l, t, r, b);
runOnNextLayoutRunnables();
}
@Override
public void runOnNextLayout(Runnable runnable) {
mRunOnNextLayoutDelegate.runOnNextLayout(runnable);
}
@Override
public void runOnNextLayoutRunnables() {
mRunOnNextLayoutDelegate.runOnNextLayoutRunnables();
}
@Override
@SuppressLint("ClickableViewAccessibility")
public boolean onTouchEvent(MotionEvent motionEvent) {
super.onTouchEvent(motionEvent);
// Prevent touch events from "falling through" to views below. See b/337616153.
return true;
}
}