Loading packages/SettingsLib/Tile/src/com/android/settingslib/drawer/Tile.java +10 −17 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ public class Tile implements Parcelable { packageManager.getResourcesForApplication(mActivityPackage); title = res.getString(mMetaData.getInt(META_DATA_PREFERENCE_TITLE)); } catch (PackageManager.NameNotFoundException | Resources.NotFoundException e) { Log.d(TAG, "Couldn't find info", e); Log.w(TAG, "Couldn't find info", e); } } else { title = mMetaData.getString(META_DATA_PREFERENCE_TITLE); Loading @@ -183,23 +183,13 @@ public class Tile implements Parcelable { // Set the preference title to the activity's label if no // meta-data is found if (title == null) { title = getActivityInfo(context).loadLabel(packageManager); } return title; } /** * Returns the raw metadata for summary, this is used for comparing 2 summary text without * loading the real string. */ public String getSummaryReference() { if (mSummaryOverride != null) { return mSummaryOverride.toString(); final ActivityInfo activityInfo = getActivityInfo(context); if (activityInfo == null) { return null; } if (mMetaData != null && mMetaData.containsKey(META_DATA_PREFERENCE_SUMMARY)) { return mMetaData.get(META_DATA_PREFERENCE_SUMMARY).toString(); title = activityInfo.loadLabel(packageManager); } return null; return title; } /** Loading Loading @@ -357,6 +347,9 @@ public class Tile implements Parcelable { if (infoList != null && !infoList.isEmpty()) { mActivityInfo = infoList.get(0).activityInfo; mMetaData = mActivityInfo.metaData; } else { Log.e(TAG, "Cannot find package info for " + intent.getComponent().flattenToString()); } } return mActivityInfo; Loading packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowPackageManager; import org.robolectric.util.ReflectionHelpers; @RunWith(RobolectricTestRunner.class) public class TileTest { Loading Loading @@ -164,4 +165,17 @@ public class TileTest { assertThat(tile.mLastUpdateTime).isNotEqualTo(staleTimeStamp); } @Test public void getTitle_noActivity_returnNull() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = mActivityInfo; final ShadowPackageManager spm = Shadow.extract(mContext.getPackageManager()); spm.removePackage(mActivityInfo.packageName); final Tile tile = new Tile(mActivityInfo, "category"); ReflectionHelpers.setField(tile, "mActivityInfo", null); assertThat(tile.getTitle(RuntimeEnvironment.application)).isNull(); } } Loading
packages/SettingsLib/Tile/src/com/android/settingslib/drawer/Tile.java +10 −17 Original line number Diff line number Diff line Loading @@ -174,7 +174,7 @@ public class Tile implements Parcelable { packageManager.getResourcesForApplication(mActivityPackage); title = res.getString(mMetaData.getInt(META_DATA_PREFERENCE_TITLE)); } catch (PackageManager.NameNotFoundException | Resources.NotFoundException e) { Log.d(TAG, "Couldn't find info", e); Log.w(TAG, "Couldn't find info", e); } } else { title = mMetaData.getString(META_DATA_PREFERENCE_TITLE); Loading @@ -183,23 +183,13 @@ public class Tile implements Parcelable { // Set the preference title to the activity's label if no // meta-data is found if (title == null) { title = getActivityInfo(context).loadLabel(packageManager); } return title; } /** * Returns the raw metadata for summary, this is used for comparing 2 summary text without * loading the real string. */ public String getSummaryReference() { if (mSummaryOverride != null) { return mSummaryOverride.toString(); final ActivityInfo activityInfo = getActivityInfo(context); if (activityInfo == null) { return null; } if (mMetaData != null && mMetaData.containsKey(META_DATA_PREFERENCE_SUMMARY)) { return mMetaData.get(META_DATA_PREFERENCE_SUMMARY).toString(); title = activityInfo.loadLabel(packageManager); } return null; return title; } /** Loading Loading @@ -357,6 +347,9 @@ public class Tile implements Parcelable { if (infoList != null && !infoList.isEmpty()) { mActivityInfo = infoList.get(0).activityInfo; mMetaData = mActivityInfo.metaData; } else { Log.e(TAG, "Cannot find package info for " + intent.getComponent().flattenToString()); } } return mActivityInfo; Loading
packages/SettingsLib/tests/robotests/src/com/android/settingslib/drawer/TileTest.java +14 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import org.robolectric.RobolectricTestRunner; import org.robolectric.RuntimeEnvironment; import org.robolectric.shadow.api.Shadow; import org.robolectric.shadows.ShadowPackageManager; import org.robolectric.util.ReflectionHelpers; @RunWith(RobolectricTestRunner.class) public class TileTest { Loading Loading @@ -164,4 +165,17 @@ public class TileTest { assertThat(tile.mLastUpdateTime).isNotEqualTo(staleTimeStamp); } @Test public void getTitle_noActivity_returnNull() { final ResolveInfo info = new ResolveInfo(); info.activityInfo = mActivityInfo; final ShadowPackageManager spm = Shadow.extract(mContext.getPackageManager()); spm.removePackage(mActivityInfo.packageName); final Tile tile = new Tile(mActivityInfo, "category"); ReflectionHelpers.setField(tile, "mActivityInfo", null); assertThat(tile.getTitle(RuntimeEnvironment.application)).isNull(); } }