From a4a62d4f095b5acbbd95524f98d7c267ea1a2cf4 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Thu, 16 Oct 2014 09:49:52 -0700 Subject: Adding ability to list folder items in separate file -> remove all apps default layouts Bug 17569015 Change-Id: I39b899b61d5b1cff2d7801d281dacfc804c403c5 --- res/values/attrs.xml | 2 + res/xml/default_workspace_4x4_no_all_apps.xml | 216 ----------------------- res/xml/default_workspace_5x5_no_all_apps.xml | 218 ------------------------ res/xml/default_workspace_5x6_no_all_apps.xml | 215 ----------------------- src/com/android/launcher3/DeviceProfile.java | 7 +- src/com/android/launcher3/DynamicGrid.java | 29 ++-- src/com/android/launcher3/LauncherProvider.java | 13 +- 7 files changed, 21 insertions(+), 679 deletions(-) delete mode 100644 res/xml/default_workspace_4x4_no_all_apps.xml delete mode 100644 res/xml/default_workspace_5x5_no_all_apps.xml delete mode 100644 res/xml/default_workspace_5x6_no_all_apps.xml diff --git a/res/values/attrs.xml b/res/values/attrs.xml index b32c5a2bc..fddb1bcaf 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -130,12 +130,14 @@ + + diff --git a/res/xml/default_workspace_4x4_no_all_apps.xml b/res/xml/default_workspace_4x4_no_all_apps.xml deleted file mode 100644 index aa1c873a9..000000000 --- a/res/xml/default_workspace_4x4_no_all_apps.xml +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/res/xml/default_workspace_5x5_no_all_apps.xml b/res/xml/default_workspace_5x5_no_all_apps.xml deleted file mode 100644 index 421b4bc99..000000000 --- a/res/xml/default_workspace_5x5_no_all_apps.xml +++ /dev/null @@ -1,218 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/res/xml/default_workspace_5x6_no_all_apps.xml b/res/xml/default_workspace_5x6_no_all_apps.xml deleted file mode 100644 index 130c4858d..000000000 --- a/res/xml/default_workspace_5x6_no_all_apps.xml +++ /dev/null @@ -1,215 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index bbd4932f3..1db7953d8 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -110,7 +110,6 @@ public class DeviceProfile { private float hotseatIconSize; int defaultLayoutId; - int defaultNoAllAppsLayoutId; boolean isLandscape; boolean isTablet; @@ -173,7 +172,7 @@ public class DeviceProfile { private ArrayList mCallbacks = new ArrayList(); DeviceProfile(String n, float w, float h, float r, float c, - float is, float its, float hs, float his, int dlId, int dnalId) { + float is, float its, float hs, float his, int dlId) { // Ensure that we have an odd number of hotseat items (since we need to place all apps) if (!LauncherAppState.isDisableAllApps() && hs % 2 == 0) { throw new RuntimeException("All Device Profiles must have an odd number of hotseat spaces"); @@ -189,7 +188,6 @@ public class DeviceProfile { numHotseatIcons = hs; hotseatIconSize = his; defaultLayoutId = dlId; - defaultNoAllAppsLayoutId = dnalId; } DeviceProfile() { @@ -275,9 +273,6 @@ public class DeviceProfile { // Snap to the closest default layout id defaultLayoutId = closestProfile.defaultLayoutId; - // Snap to the closest default no all-apps layout id - defaultNoAllAppsLayoutId = closestProfile.defaultNoAllAppsLayoutId; - // Interpolate the icon size points.clear(); for (DeviceProfile p : profiles) { diff --git a/src/com/android/launcher3/DynamicGrid.java b/src/com/android/launcher3/DynamicGrid.java index 779a5a6d8..6e889de82 100644 --- a/src/com/android/launcher3/DynamicGrid.java +++ b/src/com/android/launcher3/DynamicGrid.java @@ -68,47 +68,40 @@ public class DynamicGrid { // Our phone profiles include the bar sizes in each orientation deviceProfiles.add(new DeviceProfile("Super Short Stubby", 255, 300, 2, 3, (useLargeIcons ? 58 : 46), 13, (hasAA ? 3 : 5), - (useLargeIcons ? 58 : 46), fourByFourDefaultLayout, - R.xml.default_workspace_4x4_no_all_apps)); + (useLargeIcons ? 58 : 46), fourByFourDefaultLayout)); deviceProfiles.add(new DeviceProfile("Shorter Stubby", 255, 400, 3, 3, (useLargeIcons ? 58 : 46), 13, (hasAA ? 3 : 5), - (useLargeIcons ? 58 : 46), fourByFourDefaultLayout, - R.xml.default_workspace_4x4_no_all_apps)); + (useLargeIcons ? 58 : 46), fourByFourDefaultLayout)); deviceProfiles.add(new DeviceProfile("Short Stubby", 275, 420, 3, 4, (useLargeIcons ? 58 : 46), 13, (hasAA ? 5 : 5), - (useLargeIcons ? 58 : 46), fourByFourDefaultLayout, - R.xml.default_workspace_4x4_no_all_apps)); + (useLargeIcons ? 58 : 46), fourByFourDefaultLayout)); deviceProfiles.add(new DeviceProfile("Stubby", 255, 450, 3, 4, (useLargeIcons ? 58 : 46), 13, (hasAA ? 5 : 5), - (useLargeIcons ? 58 : 46), fourByFourDefaultLayout, - R.xml.default_workspace_4x4_no_all_apps)); + (useLargeIcons ? 58 : 46), fourByFourDefaultLayout)); deviceProfiles.add(new DeviceProfile("Nexus S", 296, 491.33f, 4, 4, (useLargeIcons ? 58 : 46), 13, (hasAA ? 5 : 5), - (useLargeIcons ? 58 : 46), fourByFourDefaultLayout, - R.xml.default_workspace_4x4_no_all_apps)); + (useLargeIcons ? 58 : 46), fourByFourDefaultLayout)); deviceProfiles.add(new DeviceProfile("Nexus 4", 335, 567, 4, 4, (useLargeIcons ? DEFAULT_ICON_SIZE_DP : 56), 13, (hasAA ? 5 : 5), - (useLargeIcons ? 60 : 48), fourByFourDefaultLayout, - R.xml.default_workspace_4x4_no_all_apps)); + (useLargeIcons ? 60 : 48), fourByFourDefaultLayout)); deviceProfiles.add(new DeviceProfile("Nexus 5", 359, 567, 4, 4, (useLargeIcons ? DEFAULT_ICON_SIZE_DP : 56), 13, (hasAA ? 5 : 5), - (useLargeIcons ? 60 : 48), fourByFourDefaultLayout, - R.xml.default_workspace_4x4_no_all_apps)); + (useLargeIcons ? 60 : 48), fourByFourDefaultLayout)); deviceProfiles.add(new DeviceProfile("Large Phone", 406, 694, 5, 5, (useLargeIcons ? 68 : 56), 14.4f, 5, (useLargeIcons ? 60 : 48), - R.xml.default_workspace_5x5, R.xml.default_workspace_5x5_no_all_apps)); + R.xml.default_workspace_5x5)); // The tablet profile is odd in that the landscape orientation // also includes the nav bar on the side deviceProfiles.add(new DeviceProfile("Nexus 7", 575, 904, 5, 6, (useLargeIcons ? 76 : 60), 14.4f, 7, (useLargeIcons ? 64 : 52), - R.xml.default_workspace_5x6, R.xml.default_workspace_5x6_no_all_apps)); + R.xml.default_workspace_5x6)); // Larger tablet profiles always have system bars on the top & bottom deviceProfiles.add(new DeviceProfile("Nexus 10", 727, 1207, 5, 6, (useLargeIcons ? 80 : 64), 14.4f, 7, (useLargeIcons ? 68 : 56), - R.xml.default_workspace_5x6, R.xml.default_workspace_5x6_no_all_apps)); + R.xml.default_workspace_5x6)); deviceProfiles.add(new DeviceProfile("20-inch Tablet", 1527, 2527, 7, 7, (useLargeIcons ? 104 : 80), 20, 7, (useLargeIcons ? 76 : 64), - fourByFourDefaultLayout, R.xml.default_workspace_4x4_no_all_apps)); + fourByFourDefaultLayout)); mMinWidth = dpiFromPx(minWidthPx, dm); mMinHeight = dpiFromPx(minHeightPx, dm); mProfile = new DeviceProfile(context, deviceProfiles, diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index b0098662a..d7de2c733 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -360,11 +360,7 @@ public class LauncherProvider extends ContentProvider { private static int getDefaultWorkspaceResourceId() { LauncherAppState app = LauncherAppState.getInstance(); DeviceProfile grid = app.getDynamicGrid().getDeviceProfile(); - if (LauncherAppState.isDisableAllApps()) { - return grid.defaultNoAllAppsLayoutId; - } else { - return grid.defaultLayoutId; - } + return grid.defaultLayoutId; } private static interface ContentValuesCallback { @@ -399,6 +395,7 @@ public class LauncherProvider extends ContentProvider { private static final String TAG_PARTNER_FOLDER = "partner-folder"; private static final String TAG_EXTRA = "extra"; private static final String TAG_INCLUDE = "include"; + private static final String TAG_FOLDER_ITEMS = "folderitems"; // Style attrs -- "Favorite" private static final String ATTR_CLASS_NAME = "className"; @@ -415,6 +412,7 @@ public class LauncherProvider extends ContentProvider { // Style attrs -- "Include" private static final String ATTR_WORKSPACE = "workspace"; + private static final String ATTR_FOLDER_ITEMS = "folderItems"; // Style attrs -- "Extra" private static final String ATTR_KEY = "key"; @@ -1668,7 +1666,10 @@ public class LauncherProvider extends ContentProvider { folderItems.add(id); } } else if (TAG_INCLUDE.equals(tag) && folderId >= 0) { - addToFolder(db, res, parser, folderItems, folderId); + final int resId = getAttributeResourceValue(parser, ATTR_FOLDER_ITEMS, 0); + XmlResourceParser itemsParser = res.getXml(resId); + beginDocument(itemsParser, TAG_FOLDER_ITEMS); + addToFolder(db, res, itemsParser, folderItems, folderId); } else { throw new RuntimeException("Folders can contain only shortcuts"); } -- cgit v1.2.3