• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.xtremelabs.robolectric.shadows;
2 
3 import android.view.ViewTreeObserver;
4 import com.xtremelabs.robolectric.internal.Implementation;
5 import com.xtremelabs.robolectric.internal.Implements;
6 
7 import java.util.ArrayList;
8 import java.util.List;
9 
10 @SuppressWarnings({"UnusedDeclaration"})
11 @Implements(ViewTreeObserver.class)
12 public class ShadowViewTreeObserver {
13 
14     private ArrayList<ViewTreeObserver.OnGlobalLayoutListener> globalLayoutListeners = new ArrayList<ViewTreeObserver.OnGlobalLayoutListener>();
15 
16     @Implementation
addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener)17     public void addOnGlobalLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener) {
18         this.globalLayoutListeners.add(listener);
19     }
20 
21     @Implementation
removeGlobalOnLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener)22     public void removeGlobalOnLayoutListener(ViewTreeObserver.OnGlobalLayoutListener listener) {
23         this.globalLayoutListeners.remove(listener);
24     }
25 
fireOnGlobalLayoutListeners()26     public void fireOnGlobalLayoutListeners() {
27         for (ViewTreeObserver.OnGlobalLayoutListener listener : new ArrayList<ViewTreeObserver.OnGlobalLayoutListener>(globalLayoutListeners)) {
28             listener.onGlobalLayout();
29         }
30     }
31 
getOnGlobalLayoutListeners()32     public List<ViewTreeObserver.OnGlobalLayoutListener> getOnGlobalLayoutListeners() {
33         return globalLayoutListeners;
34     }
35 }
36