Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1760)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java

Issue 2238083003: Use CallbackHelpers in TabStripTest (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove StripLayoutHelper observer Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java
index 13679ff7cc59bea4d33c7e0fe2b55724b1bbe0d0..86207a2537b58800d65557fe0692d7a7c2ad72a4 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/overlays/strip/StripLayoutTab.java
@@ -9,6 +9,7 @@ import static org.chromium.chrome.browser.compositor.layouts.ChromeAnimation.Ani
import android.content.Context;
import android.graphics.RectF;
+import org.chromium.base.ObserverList;
import org.chromium.base.VisibleForTesting;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.compositor.layouts.ChromeAnimation;
@@ -33,6 +34,13 @@ import java.util.List;
*/
public class StripLayoutTab
implements ChromeAnimation.Animatable<StripLayoutTab.Property>, VirtualView {
+
+ /** An observer interface for StripLayoutTab. */
+ public interface Observer {
+ /** @param visible Whether the StripLayoutTab is visible. */
+ public void onVisibilityChanged(boolean visible);
+ }
+
/**
* Animatable properties that can be used with a {@link ChromeAnimation.Animatable} on a
* {@link StripLayoutTab}.
@@ -89,6 +97,8 @@ public class StripLayoutTab
// Preallocated
private final RectF mClosePlacement = new RectF();
+ private ObserverList<Observer> mObservers = new ObserverList<>();
+
/**
* Create a {@link StripLayoutTab} that represents the {@link Tab} with an id of
* {@code id}.
@@ -98,7 +108,7 @@ public class StripLayoutTab
* @param loadTrackerCallback The {@link TabLoadTrackerCallback} to be notified of loading state
* changes.
* @param renderHost The {@link LayoutRenderHost}.
- * @param incogntio Whether or not this layout tab is icognito.
+ * @param incognito Whether or not this layout tab is incognito.
*/
public StripLayoutTab(Context context, int id, TabLoadTrackerCallback loadTrackerCallback,
LayoutRenderHost renderHost, boolean incognito) {
@@ -117,6 +127,17 @@ public class StripLayoutTab
mCloseButton.setAccessibilityDescription(description, description);
}
+ /** @param observer The observer to add. */
+ @VisibleForTesting
+ public void addObserver(Observer observer) {
+ mObservers.addObserver(observer);
+ }
+
+ /** @param observer The observer to remove. */
+ public void removeObserver(Observer observer) {
+ mObservers.removeObserver(observer);
+ }
+
/**
* Get a list of virtual views for accessibility events.
*
@@ -173,6 +194,9 @@ public class StripLayoutTab
*/
public void setVisible(boolean visible) {
mVisible = visible;
+ for (Observer observer : mObservers) {
+ observer.onVisibilityChanged(mVisible);
+ }
}
/**

Powered by Google App Engine
This is Rietveld 408576698