• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.robolectric.shadows;
2 
3 import static org.robolectric.util.reflector.Reflector.reflector;
4 
5 import android.content.res.AssetManager.AssetInputStream;
6 import org.robolectric.annotation.Implements;
7 import org.robolectric.annotation.RealObject;
8 import org.robolectric.res.android.Asset;
9 import org.robolectric.res.android.Registries;
10 import org.robolectric.shadows.ShadowAssetInputStream.Picker;
11 import org.robolectric.util.reflector.ForType;
12 
13 @SuppressWarnings("UnusedDeclaration")
14 @Implements(value = AssetInputStream.class, shadowPicker = Picker.class)
15 public class ShadowArscAssetInputStream extends ShadowAssetInputStream {
16 
17   @RealObject private AssetInputStream realObject;
18 
getAsset()19   private Asset getAsset() {
20     long assetPtr = reflector(_AssetInputStream_.class, realObject).getNativeAsset();
21     return Registries.NATIVE_ASSET_REGISTRY.getNativeObject(assetPtr);
22   }
23 
24   @Override
isNinePatch()25   boolean isNinePatch() {
26     Asset asset = getAsset();
27     return asset != null && asset.isNinePatch();
28   }
29 
30   /** Accessor interface for {@link AssetInputStream}'s internals. */
31   @ForType(AssetInputStream.class)
32   private interface _AssetInputStream_ {
getAssetInt()33     int getAssetInt();
34 
getNativeAsset()35     long getNativeAsset();
36   }
37 }
38