Merge "Adding ability to list folder items in separate file" into ub-now-queens

This commit is contained in:
Adam Cohen
2014-10-17 16:30:00 +00:00
committed by Android (Google) Code Review
7 changed files with 21 additions and 202 deletions
+2
View File
@@ -130,12 +130,14 @@
<attr name="title" format="reference" />
<attr name="uri" format="string" />
</declare-styleable>
<declare-styleable name="Extra">
<attr name="key" format="string" />
<attr name="value" format="string" />
</declare-styleable>
<declare-styleable name="Include">
<attr name="workspace" format="reference" />
<attr name="folderItems" format="reference" />
</declare-styleable>
<declare-styleable name="PreloadIconDrawable">
@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<favorites xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3">
<!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
<!-- Dialer Hangouts Maps Chrome Camera -->
<favorite
launcher:packageName="com.google.android.dialer"
launcher:className="com.google.android.dialer.extensions.GoogleDialtactsActivity"
launcher:container="-101"
launcher:screen="0"
launcher:x="0"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.talk"
launcher:className="com.google.android.talk.SigningInActivity"
launcher:container="-101"
launcher:screen="1"
launcher:x="1"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.apps.maps"
launcher:className="com.google.android.maps.MapsActivity"
launcher:container="-101"
launcher:screen="2"
launcher:x="2"
launcher:y="0"/>
<favorite
launcher:packageName="com.android.chrome"
launcher:className="com.google.android.apps.chrome.Main"
launcher:container="-101"
launcher:screen="3"
launcher:x="3"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.GoogleCamera"
launcher:className="com.android.camera.CameraLauncher"
launcher:container="-101"
launcher:screen="4"
launcher:x="4"
launcher:y="0" />
</favorites>
@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<favorites xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3">
<!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
<!-- Dialer Hangouts Maps Chrome Camera -->
<favorite
launcher:packageName="com.google.android.dialer"
launcher:className="com.google.android.dialer.extensions.GoogleDialtactsActivity"
launcher:container="-101"
launcher:screen="1"
launcher:x="1"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.talk"
launcher:className="com.google.android.talk.SigningInActivity"
launcher:container="-101"
launcher:screen="2"
launcher:x="2"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.apps.maps"
launcher:className="com.google.android.maps.MapsActivity"
launcher:container="-101"
launcher:screen="3"
launcher:x="3"
launcher:y="0"/>
<favorite
launcher:packageName="com.android.chrome"
launcher:className="com.google.android.apps.chrome.Main"
launcher:container="-101"
launcher:screen="4"
launcher:x="4"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.GoogleCamera"
launcher:className="com.android.camera.CameraLauncher"
launcher:container="-101"
launcher:screen="5"
launcher:x="5"
launcher:y="0" />
</favorites>
@@ -1,56 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2013 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<favorites xmlns:launcher="http://schemas.android.com/apk/res-auto/com.android.launcher3">
<!-- Hotseat (We use the screen as the position of the item in the hotseat) -->
<!-- Dialer Hangouts Maps Chrome Camera -->
<favorite
launcher:packageName="com.google.android.dialer"
launcher:className="com.google.android.dialer.extensions.GoogleDialtactsActivity"
launcher:container="-101"
launcher:screen="1"
launcher:x="1"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.talk"
launcher:className="com.google.android.talk.SigningInActivity"
launcher:container="-101"
launcher:screen="2"
launcher:x="2"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.apps.maps"
launcher:className="com.google.android.maps.MapsActivity"
launcher:container="-101"
launcher:screen="3"
launcher:x="3"
launcher:y="0"/>
<favorite
launcher:packageName="com.android.chrome"
launcher:className="com.google.android.apps.chrome.Main"
launcher:container="-101"
launcher:screen="4"
launcher:x="4"
launcher:y="0" />
<favorite
launcher:packageName="com.google.android.GoogleCamera"
launcher:className="com.android.camera.CameraLauncher"
launcher:container="-101"
launcher:screen="5"
launcher:x="5"
launcher:y="0" />
</favorites>
+1 -6
View File
@@ -75,7 +75,6 @@ public class DeviceProfile {
private float hotseatIconSize;
int defaultLayoutId;
int defaultNoAllAppsLayoutId;
boolean isLandscape;
boolean isTablet;
@@ -136,7 +135,7 @@ public class DeviceProfile {
private ArrayList<DeviceProfileCallbacks> mCallbacks = new ArrayList<DeviceProfileCallbacks>();
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");
@@ -152,7 +151,6 @@ public class DeviceProfile {
numHotseatIcons = hs;
hotseatIconSize = his;
defaultLayoutId = dlId;
defaultNoAllAppsLayoutId = dnalId;
}
DeviceProfile() {
@@ -215,9 +213,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) {
+11 -22
View File
@@ -60,41 +60,30 @@ public class DynamicGrid {
DEFAULT_ICON_SIZE_PX = pxFromDp(DEFAULT_ICON_SIZE_DP, dm);
// Our phone profiles include the bar sizes in each orientation
deviceProfiles.add(new DeviceProfile("Super Short Stubby",
255, 300, 2, 3, 48, 13, (hasAA ? 3 : 5), 48, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
255, 300, 2, 3, 48, 13, (hasAA ? 3 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Shorter Stubby",
255, 400, 3, 3, 48, 13, (hasAA ? 3 : 5), 48, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
255, 400, 3, 3, 48, 13, (hasAA ? 3 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Short Stubby",
275, 420, 3, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
275, 420, 3, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Stubby",
255, 450, 3, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
255, 450, 3, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Nexus S",
296, 491.33f, 4, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
296, 491.33f, 4, 4, 48, 13, (hasAA ? 5 : 5), 48, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Nexus 4",
335, 567, 4, 4, DEFAULT_ICON_SIZE_DP, 13, (hasAA ? 5 : 5), 56, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
335, 567, 4, 4, DEFAULT_ICON_SIZE_DP, 13, (hasAA ? 5 : 5), 56, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Nexus 5",
359, 567, 4, 4, DEFAULT_ICON_SIZE_DP, 13, (hasAA ? 5 : 5), 56, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
359, 567, 4, 4, DEFAULT_ICON_SIZE_DP, 13, (hasAA ? 5 : 5), 56, R.xml.default_workspace_4x4));
deviceProfiles.add(new DeviceProfile("Large Phone",
406, 694, 5, 5, 64, 14.4f, 5, 56, R.xml.default_workspace_5x5,
R.xml.default_workspace_5x5_no_all_apps));
406, 694, 5, 5, 64, 14.4f, 5, 56, 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, 72, 14.4f, 7, 60, R.xml.default_workspace_5x6,
R.xml.default_workspace_5x6_no_all_apps));
575, 904, 5, 6, 72, 14.4f, 7, 60, 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, 76, 14.4f, 7, 64, R.xml.default_workspace_5x6,
R.xml.default_workspace_5x6_no_all_apps));
727, 1207, 5, 6, 76, 14.4f, 7, 64, R.xml.default_workspace_5x6));
deviceProfiles.add(new DeviceProfile("20-inch Tablet",
1527, 2527, 7, 7, 100, 20, 7, 72, R.xml.default_workspace_4x4,
R.xml.default_workspace_4x4_no_all_apps));
1527, 2527, 7, 7, 100, 20, 7, 72, R.xml.default_workspace_4x4));
mMinWidth = dpiFromPx(minWidthPx, dm);
mMinHeight = dpiFromPx(minHeightPx, dm);
mProfile = new DeviceProfile(context, deviceProfiles,
@@ -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";
@@ -1588,7 +1586,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");
}