summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Cohen <adamcohen@google.com>2017-09-23 00:10:55 (GMT)
committerAdam Cohen <adamcohen@google.com>2017-09-29 20:11:37 (GMT)
commita81e8d855ac697b95941c31c571780bafe71461e (patch)
treed69e0baf08170193b8acbd0cba8968b6c808816c
parent510fdfbcea6bc6bf76e29a67fef106b78e8b0d89 (diff)
downloadandroid_packages_apps_Trebuchet-a81e8d855ac697b95941c31c571780bafe71461e.zip
android_packages_apps_Trebuchet-a81e8d855ac697b95941c31c571780bafe71461e.tar.gz
android_packages_apps_Trebuchet-a81e8d855ac697b95941c31c571780bafe71461e.tar.bz2
Demo mode default layout support
b/67062454 Change-Id: Ic060d3d7dba4fffe688dddf7cd04c48e4baaf813
-rw-r--r--res/values/attrs.xml1
-rw-r--r--src/com/android/launcher3/InvariantDeviceProfile.java11
-rw-r--r--src/com/android/launcher3/LauncherProvider.java9
3 files changed, 17 insertions, 4 deletions
diff --git a/res/values/attrs.xml b/res/values/attrs.xml
index 68b628f..5aee715 100644
--- a/res/values/attrs.xml
+++ b/res/values/attrs.xml
@@ -123,6 +123,7 @@
<attr name="iconTextSize" format="float" />
<attr name="defaultLayoutId" format="reference" />
+ <attr name="demoModeLayoutId" format="reference" />
</declare-styleable>
<declare-styleable name="CellLayout">
diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java
index d7bebd1..7a43198 100644
--- a/src/com/android/launcher3/InvariantDeviceProfile.java
+++ b/src/com/android/launcher3/InvariantDeviceProfile.java
@@ -85,7 +85,9 @@ public class InvariantDeviceProfile {
* Number of icons inside the hotseat area.
*/
public int numHotseatIcons;
+
int defaultLayoutId;
+ int demoModeLayoutId;
public DeviceProfile landscapeProfile;
public DeviceProfile portraitProfile;
@@ -99,11 +101,11 @@ public class InvariantDeviceProfile {
this(p.name, p.minWidthDps, p.minHeightDps, p.numRows, p.numColumns,
p.numFolderRows, p.numFolderColumns, p.minAllAppsPredictionColumns,
p.iconSize, p.landscapeIconSize, p.iconTextSize, p.numHotseatIcons,
- p.defaultLayoutId);
+ p.defaultLayoutId, p.demoModeLayoutId);
}
InvariantDeviceProfile(String n, float w, float h, int r, int c, int fr, int fc, int maapc,
- float is, float lis, float its, int hs, int dlId) {
+ float is, float lis, float its, int hs, int dlId, int dmlId) {
name = n;
minWidthDps = w;
minHeightDps = h;
@@ -117,6 +119,7 @@ public class InvariantDeviceProfile {
iconTextSize = its;
numHotseatIcons = hs;
defaultLayoutId = dlId;
+ demoModeLayoutId = dmlId;
}
@TargetApi(23)
@@ -144,6 +147,7 @@ public class InvariantDeviceProfile {
numColumns = closestProfile.numColumns;
numHotseatIcons = closestProfile.numHotseatIcons;
defaultLayoutId = closestProfile.defaultLayoutId;
+ demoModeLayoutId = closestProfile.demoModeLayoutId;
numFolderRows = closestProfile.numFolderRows;
numFolderColumns = closestProfile.numFolderColumns;
minAllAppsPredictionColumns = closestProfile.minAllAppsPredictionColumns;
@@ -208,7 +212,8 @@ public class InvariantDeviceProfile {
a.getFloat(R.styleable.InvariantDeviceProfile_landscapeIconSize, iconSize),
a.getFloat(R.styleable.InvariantDeviceProfile_iconTextSize, 0),
a.getInt(R.styleable.InvariantDeviceProfile_numHotseatIcons, numColumns),
- a.getResourceId(R.styleable.InvariantDeviceProfile_defaultLayoutId, 0)));
+ a.getResourceId(R.styleable.InvariantDeviceProfile_defaultLayoutId, 0),
+ a.getResourceId(R.styleable.InvariantDeviceProfile_demoModeLayoutId, 0)));
a.recycle();
}
}
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java
index dc83f36..b31df98 100644
--- a/src/com/android/launcher3/LauncherProvider.java
+++ b/src/com/android/launcher3/LauncherProvider.java
@@ -552,7 +552,14 @@ public class LauncherProvider extends ContentProvider {
}
private DefaultLayoutParser getDefaultLayoutParser(AppWidgetHost widgetHost) {
- int defaultLayout = LauncherAppState.getIDP(getContext()).defaultLayoutId;
+ InvariantDeviceProfile idp = LauncherAppState.getIDP(getContext());
+ int defaultLayout = idp.defaultLayoutId;
+
+ UserManagerCompat um = UserManagerCompat.getInstance(getContext());
+ if (um.isDemoUser() && idp.demoModeLayoutId != 0) {
+ defaultLayout = idp.demoModeLayoutId;
+ }
+
return new DefaultLayoutParser(getContext(), widgetHost,
mOpenHelper, getContext().getResources(), defaultLayout);
}