diff --git a/robolectric_tests/src/com/android/launcher3/model/DefaultLayoutProviderTest.java b/robolectric_tests/src/com/android/launcher3/model/DefaultLayoutProviderTest.java index 7ca416d520..8f3a83ed07 100644 --- a/robolectric_tests/src/com/android/launcher3/model/DefaultLayoutProviderTest.java +++ b/robolectric_tests/src/com/android/launcher3/model/DefaultLayoutProviderTest.java @@ -89,6 +89,22 @@ public class DefaultLayoutProviderTest { assertEquals(3, ((FolderInfo) info).contents.size()); } + @Test + public void testCustomProfileLoaded_with_folder_custom_title() throws Exception { + writeLayoutAndLoad(new LauncherLayoutBuilder().atHotseat(0).putFolder("CustomFolder") + .addApp(TEST_PACKAGE, TEST_PACKAGE) + .addApp(TEST_PACKAGE, TEST_PACKAGE) + .addApp(TEST_PACKAGE, TEST_PACKAGE) + .build()); + + // Verify folder + assertEquals(1, mModelHelper.getBgDataModel().workspaceItems.size()); + ItemInfo info = mModelHelper.getBgDataModel().workspaceItems.get(0); + assertEquals(LauncherSettings.Favorites.ITEM_TYPE_FOLDER, info.itemType); + assertEquals(3, ((FolderInfo) info).contents.size()); + assertEquals("CustomFolder", info.title.toString()); + } + @Test public void testCustomProfileLoaded_with_widget() throws Exception { String pendingAppPkg = "com.test.pending"; diff --git a/robolectric_tests/src/com/android/launcher3/util/LauncherLayoutBuilder.java b/robolectric_tests/src/com/android/launcher3/util/LauncherLayoutBuilder.java index d3659ebdcd..4e21dce021 100644 --- a/robolectric_tests/src/com/android/launcher3/util/LauncherLayoutBuilder.java +++ b/robolectric_tests/src/com/android/launcher3/util/LauncherLayoutBuilder.java @@ -47,6 +47,7 @@ public class LauncherLayoutBuilder { private static final String ATTR_PACKAGE_NAME = "packageName"; private static final String ATTR_CLASS_NAME = "className"; private static final String ATTR_TITLE = "title"; + private static final String ATTR_TITLE_TEXT = "titleText"; private static final String ATTR_SCREEN = "screen"; // x and y can be specified as negative integers, in which case -1 represents the @@ -145,8 +146,17 @@ public class LauncherLayoutBuilder { } public FolderBuilder putFolder(int titleResId) { - FolderBuilder folderBuilder = new FolderBuilder(); items.put(ATTR_TITLE, Integer.toString(titleResId)); + return putFolder(); + } + + public FolderBuilder putFolder(String title) { + items.put(ATTR_TITLE_TEXT, title); + return putFolder(); + } + + private FolderBuilder putFolder() { + FolderBuilder folderBuilder = new FolderBuilder(); items.put(ATTR_CHILDREN, folderBuilder.mChildren); mNodes.add(Pair.create(TAG_FOLDER, items)); return folderBuilder; diff --git a/src/com/android/launcher3/AutoInstallsLayout.java b/src/com/android/launcher3/AutoInstallsLayout.java index 5971a028ca..432073ebaf 100644 --- a/src/com/android/launcher3/AutoInstallsLayout.java +++ b/src/com/android/launcher3/AutoInstallsLayout.java @@ -132,6 +132,7 @@ public class AutoInstallsLayout { private static final String ATTR_PACKAGE_NAME = "packageName"; private static final String ATTR_CLASS_NAME = "className"; private static final String ATTR_TITLE = "title"; + private static final String ATTR_TITLE_TEXT = "titleText"; private static final String ATTR_SCREEN = "screen"; // x and y can be specified as negative integers, in which case -1 represents the @@ -585,7 +586,8 @@ public class AutoInstallsLayout { if (titleResId != 0) { title = mSourceRes.getString(titleResId); } else { - title = ""; + String titleText = getAttributeValue(parser, ATTR_TITLE_TEXT); + title = TextUtils.isEmpty(titleText) ? "" : titleText; } mValues.put(Favorites.TITLE, title);