/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.helper; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; /** * @author joshuagross */ public class MetadataHelper { private static final String CATEGORY_KEY = "category"; //$NON-NLS-1$ public static String resolveActivityCategoryName (ResolveInfo resolveInfo, PackageManager pm) { // category - either from metadata, or the application name String category = null; if (resolveInfo.activityInfo.metaData != null && resolveInfo.activityInfo.metaData.containsKey(CATEGORY_KEY)) { int resource = resolveInfo.activityInfo.metaData.getInt( CATEGORY_KEY, -1); if (resource > -1) { // category stored as integer in Manifest try { category = pm.getResourcesForApplication( resolveInfo.activityInfo.applicationInfo).getString( resource); } catch (Exception e) { // } } else { // category stored as String in Manifest category = resolveInfo.activityInfo.metaData.getString(CATEGORY_KEY); } } // If category is null at this point, we use the name of the application this activity is found in if (category == null) { category = resolveInfo.activityInfo.applicationInfo.loadLabel(pm).toString(); } return category; } }