From 2782449da6538e19ae8fdcdd56bb524937fcd604 Mon Sep 17 00:00:00 2001 From: Adam Cohen Date: Fri, 22 Sep 2017 17:10:55 -0700 Subject: Demo mode default layout support 67062454 Change-Id: Ic060d3d7dba4fffe688dddf7cd04c48e4baaf813 --- res/values/attrs.xml | 1 + src/com/android/launcher3/InvariantDeviceProfile.java | 11 ++++++++--- src/com/android/launcher3/LauncherProvider.java | 9 ++++++++- 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/res/values/attrs.xml b/res/values/attrs.xml index 7b52dae5d..e5bc18433 100644 --- a/res/values/attrs.xml +++ b/res/values/attrs.xml @@ -122,6 +122,7 @@ + diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index d7bebd1b1..7a431986d 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 4813571f5..7bfa70c7e 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); } -- cgit v1.2.3