|  | @@ -1,16 +1,36 @@
 | 
	
		
			
			| 1 | 1 |  package com.reactnativenavigation.react;
 | 
	
		
			
			| 2 | 2 |  
 | 
	
		
			
			|  | 3 | +import android.graphics.drawable.BitmapDrawable;
 | 
	
		
			
			| 3 | 4 |  import android.graphics.drawable.Drawable;
 | 
	
		
			
			|  | 5 | +import android.net.Uri;
 | 
	
		
			
			| 4 | 6 |  
 | 
	
		
			
			| 5 | 7 |  import com.reactnativenavigation.NavigationApplication;
 | 
	
		
			
			| 6 | 8 |  
 | 
	
		
			
			| 7 | 9 |  public class ImageLoader {
 | 
	
		
			
			|  | 10 | +    private static final String FILE_SCHEME = "file";
 | 
	
		
			
			| 8 | 11 |  
 | 
	
		
			
			| 9 | 12 |      public static Drawable loadImage(String iconSource) {
 | 
	
		
			
			| 10 | 13 |          if (NavigationApplication.instance.isDebug()) {
 | 
	
		
			
			| 11 | 14 |              return JsDevImageLoader.loadIcon(iconSource);
 | 
	
		
			
			| 12 | 15 |          } else {
 | 
	
		
			
			| 13 |  | -            return ResourceDrawableIdHelper.instance.getResourceDrawable(NavigationApplication.instance, iconSource);
 | 
	
		
			
			|  | 16 | +            Uri uri = Uri.parse(iconSource);
 | 
	
		
			
			|  | 17 | +            if (isLocalFile(uri)) {
 | 
	
		
			
			|  | 18 | +                return loadFile(uri);
 | 
	
		
			
			|  | 19 | +            } else {
 | 
	
		
			
			|  | 20 | +                return loadResource(iconSource);
 | 
	
		
			
			|  | 21 | +            }
 | 
	
		
			
			| 14 | 22 |          }
 | 
	
		
			
			| 15 | 23 |      }
 | 
	
		
			
			|  | 24 | +
 | 
	
		
			
			|  | 25 | +    private static boolean isLocalFile(Uri uri) {
 | 
	
		
			
			|  | 26 | +        return FILE_SCHEME.equals(uri.getScheme());
 | 
	
		
			
			|  | 27 | +    }
 | 
	
		
			
			|  | 28 | +
 | 
	
		
			
			|  | 29 | +    private static Drawable loadFile(Uri uri) {
 | 
	
		
			
			|  | 30 | +        return new BitmapDrawable(NavigationApplication.instance.getResources(), uri.getPath());
 | 
	
		
			
			|  | 31 | +    }
 | 
	
		
			
			|  | 32 | +
 | 
	
		
			
			|  | 33 | +    private static Drawable loadResource(String iconSource) {
 | 
	
		
			
			|  | 34 | +        return ResourceDrawableIdHelper.instance.getResourceDrawable(NavigationApplication.instance, iconSource);
 | 
	
		
			
			|  | 35 | +    }
 | 
	
		
			
			| 16 | 36 |  }
 |