1 package com.xtremelabs.robolectric.shadows;
2 
3 import android.graphics.drawable.Drawable;
4 import android.graphics.drawable.LayerDrawable;
5 import com.xtremelabs.robolectric.internal.Implementation;
6 import com.xtremelabs.robolectric.internal.Implements;
7 import com.xtremelabs.robolectric.internal.RealObject;
8 
9 import java.util.HashMap;
10 import java.util.Map;
11 
12 @Implements(LayerDrawable.class)
13 public class ShadowLayerDrawable extends ShadowDrawable {
14     @RealObject
15     protected LayerDrawable realLayerDrawable;
16 
17     protected Drawable[] drawables;
18     private Map<Integer, Integer> indexForId = new HashMap<Integer, Integer>();
19 
__constructor__(Drawable[] drawables)20     public void __constructor__(Drawable[] drawables) {
21         this.drawables = drawables;
22     }
23 
24     @Implementation
getNumberOfLayers()25     public int getNumberOfLayers() {
26         return drawables.length;
27     }
28 
29     @Implementation
getDrawable( int idx )30     public Drawable getDrawable( int idx ) {
31     	Drawable d = null;
32     	if( idx < drawables.length && idx >= 0 ) {
33     		d = drawables[ idx ];
34     	}
35     	return d;
36     }
37 
38     @Implementation
setDrawableByLayerId(int id, Drawable drawable)39     public boolean setDrawableByLayerId(int id, Drawable drawable) {
40         if (!indexForId.containsKey(id)) {
41             return false;
42         }
43         drawables[indexForId.get(id)] = drawable;
44         return true;
45     }
46 
47     @Implementation
setId(int index, int id)48     public void setId(int index, int id) {
49         indexForId.put(id, index);
50     }
51 }
52