diff --git a/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java b/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java index 1f442e3e708..b9e5512b632 100644 --- a/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java +++ b/platform/android/Rhodes/src/com/rhomobile/rhodes/mainview/SimpleMainView.java @@ -44,6 +44,7 @@ import com.rhomobile.rhodes.util.ContextFactory; import com.rhomobile.rhodes.util.PerformOnUiThread; import com.rhomobile.rhodes.util.Utils; +import java.io.InputStream; import android.content.Context; import android.graphics.Bitmap; @@ -369,9 +370,22 @@ else if (action.equalsIgnoreCase("separator")) if (iconObj != null) { if (!(iconObj instanceof String)) throw new IllegalArgumentException("'icon' should be String"); - String iconPath = "apps/" + (String)iconObj; - iconPath = RhoFileApi.normalizePath(iconPath); - Bitmap bitmap = BitmapFactory.decodeStream(RhoFileApi.open(iconPath)); + InputStream is = null; + String iconPath = (String)iconObj; + is = RhoFileApi.open(iconPath); + if (is == null) { + iconPath = RhoFileApi.normalizePath(iconPath); + is = RhoFileApi.open(iconPath); + } + if (is == null) { + iconPath = "apps/" + (String)iconObj; + iconPath = RhoFileApi.normalizePath(iconPath); + is = RhoFileApi.open(iconPath); + } + if (is == null) { + throw new IllegalArgumentException("Can't find icon file: " + iconPath); + } + Bitmap bitmap = BitmapFactory.decodeStream(is); if (bitmap == null) throw new IllegalArgumentException("Can't find icon: " + iconPath); bitmap.setDensity(DisplayMetrics.DENSITY_MEDIUM);