From e1b33fa3d4154051640465a703b666775909807c Mon Sep 17 00:00:00 2001 From: Philipp Schaefer Date: Sun, 15 Dec 2013 19:33:39 +0100 Subject: [PATCH] retrieve correct resource id when package name is overriden --- .../cradle/iitc_mobile/IITC_NavigationHelper.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java index 284ea249..62254373 100644 --- a/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java +++ b/mobile/src/com/cradle/iitc_mobile/IITC_NavigationHelper.java @@ -6,6 +6,7 @@ import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnDismissListener; import android.content.SharedPreferences; +import android.content.res.Resources; import android.os.Bundle; import android.os.Handler; import android.preference.PreferenceManager; @@ -184,7 +185,16 @@ public class IITC_NavigationHelper extends ActionBarDrawerToggle implements OnIt public void addPane(String name, String label, String icon) { showNotice(NOTICE_PANES); - int resId = mIitc.getResources().getIdentifier(icon, "drawable", mIitc.getPackageName()); + Resources res = mIitc.getResources(); + String packageName = res.getResourcePackageName(R.string.app_name); + /* + * since the package name is overridden in test builds + * we can't use context.getPackageName() to get the package name + * because the resources were processed before the package name was finally updated. + * so we have to retrieve the package name of another resource with Resources.getResourcePackageName() + * see http://www.piwai.info/renaming-android-manifest-package/ + */ + int resId = mIitc.getResources().getIdentifier(icon, "drawable", packageName); mNavigationAdapter.add(new Pane(name, label, resId)); }