diff --git a/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt b/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt index 38e0c166a0..346fcebcd0 100644 --- a/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt +++ b/lawnchair/src/app/lawnchair/DeviceProfileOverrides.kt @@ -9,14 +9,23 @@ class DeviceProfileOverrides(context: Context) { private val prefs = PreferenceManager.getInstance(context) fun apply(idp: InvariantDeviceProfile, defaultGrid: InvariantDeviceProfile.GridOption) { + // set db file to use val dbNameSuffix = if (prefs.currentDbSlot.get() == "a") "" else "_b" idp.dbFile = idp.dbFile + dbNameSuffix + + // apply grid size idp.numHotseatIcons = prefs.hotseatColumns.get(defaultGrid) idp.numRows = prefs.workspaceRows.get(defaultGrid) idp.numColumns = prefs.workspaceColumns.get(defaultGrid) idp.numAllAppsColumns = prefs.allAppsColumns.get(defaultGrid) idp.numFolderRows = prefs.folderRows.get(defaultGrid) idp.numFolderColumns = prefs.folderColumns.get(defaultGrid) + + // apply icon and text size + idp.iconSize *= prefs.iconSizeFactor.get() + idp.iconTextSize *= prefs.textSizeFactor.get() + idp.allAppsIconSize *= prefs.allAppsIconSizeFactor.get() + idp.allAppsIconTextSize *= prefs.allAppsTextSizeFactor.get() } companion object { diff --git a/lawnchair/src/app/lawnchair/LawnchairLauncher.kt b/lawnchair/src/app/lawnchair/LawnchairLauncher.kt index 47528cc1b6..1071144baf 100644 --- a/lawnchair/src/app/lawnchair/LawnchairLauncher.kt +++ b/lawnchair/src/app/lawnchair/LawnchairLauncher.kt @@ -145,6 +145,12 @@ open class LawnchairLauncher : QuickstepLauncher(), LifecycleOwner, scheduleFlag(FLAG_RESTART) } + fun recreateIfNotScheduled() { + if (sRestartFlags != 0) { + recreate() + } + } + companion object { private const val FLAG_RECREATE = 1 shl 0 private const val FLAG_RESTART = 1 shl 1 diff --git a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt index e257f99515..434a34e091 100644 --- a/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt +++ b/lawnchair/src/app/lawnchair/preferences/PreferenceManager.kt @@ -45,8 +45,8 @@ class PreferenceManager private constructor(private val context: Context) : Base Unit } - private val scheduleRecreate = { - LawnchairLauncher.instance?.scheduleRecreate() + private val recreate = { + LawnchairLauncher.instance?.recreateIfNotScheduled() Unit } @@ -61,13 +61,13 @@ class PreferenceManager private constructor(private val context: Context) : Base val workspaceRows = IdpIntPref("pref_workspaceRows", { numRows }, reloadGrid) val folderColumns = IdpIntPref("pref_folderColumns", { numFolderColumns }, reloadGrid) val folderRows = IdpIntPref("pref_folderRows", { numFolderRows }, reloadGrid) - val iconSizeFactor = FloatPref("pref_iconSizeFactor", 1F, scheduleRestart) - val textSizeFactor = FloatPref("pref_textSizeFactor", 1F, scheduleRestart) - val allAppsIconSizeFactor = FloatPref("pref_allAppsIconSizeFactor", 1F, scheduleRestart) - val allAppsTextSizeFactor = FloatPref("pref_allAppsTextSizeFactor", 1F, scheduleRestart) + val iconSizeFactor = FloatPref("pref_iconSizeFactor", 1F, reloadIcons) + val textSizeFactor = FloatPref("pref_textSizeFactor", 1F, reloadGrid) + val allAppsIconSizeFactor = FloatPref("pref_allAppsIconSizeFactor", 1F, reloadIcons) + val allAppsTextSizeFactor = FloatPref("pref_allAppsTextSizeFactor", 1F, reloadGrid) val allAppsColumns = IdpIntPref("pref_allAppsColumns", { numAllAppsColumns }, reloadGrid) val smartSpaceEnable = BoolPref("pref_smartSpaceEnable", true, scheduleRestart) - val minusOneEnable = BoolPref("pref_enableMinusOne", true, scheduleRecreate) + val minusOneEnable = BoolPref("pref_enableMinusOne", true, recreate) val useFuzzySearch = BoolPref("pref_useFuzzySearch", false) // TODO: Add the ability to manually delete empty pages. diff --git a/src/com/android/launcher3/DeviceProfile.java b/src/com/android/launcher3/DeviceProfile.java index 3e70a30731..e386e7f310 100644 --- a/src/com/android/launcher3/DeviceProfile.java +++ b/src/com/android/launcher3/DeviceProfile.java @@ -260,6 +260,7 @@ public class DeviceProfile { updateAvailableDimensions(res); } updateWorkspacePadding(); + // This is done last, after iconSizePx is calculated above. mDotRendererWorkSpace = new DotRenderer(iconSizePx, IconShape.getShapePath(), IconShape.DEFAULT_PATH_SIZE); @@ -384,16 +385,14 @@ public class DeviceProfile { cellWidthPx = iconSizePx + iconDrawablePaddingPx; // All apps + allAppsIconSizePx = ResourceUtils.pxFromDp(inv.allAppsIconSize, mInfo.metrics); + allAppsIconTextSizePx = Utilities.pxFromSp(inv.allAppsIconTextSize, mInfo.metrics); if (allAppsHasDifferentNumColumns()) { - allAppsIconSizePx = ResourceUtils.pxFromDp(inv.allAppsIconSize, mInfo.metrics); - allAppsIconTextSizePx = Utilities.pxFromSp(inv.allAppsIconTextSize, mInfo.metrics); allAppsIconDrawablePaddingPx = iconDrawablePaddingOriginalPx; // We use 4 below to ensure labels are closer to their corresponding icon. allAppsCellHeightPx = Math.round(allAppsIconSizePx + allAppsIconTextSizePx + (4 * allAppsIconDrawablePaddingPx)); } else { - allAppsIconSizePx = iconSizePx; - allAppsIconTextSizePx = iconTextSizePx; allAppsIconDrawablePaddingPx = iconDrawablePaddingPx; allAppsCellHeightPx = getCellSize().y; } @@ -423,15 +422,6 @@ public class DeviceProfile { res.getInteger(R.integer.config_workspaceSpringLoadShrinkPercentage) / 100.0f; } - // Lawnchair prefs - PreferenceManager prefs = PreferenceManager.getInstance(mContext); - - // Lawnchair icon and text sizes - iconSizePx *= prefs.getIconSizeFactor().get(); - iconTextSizePx *= prefs.getTextSizeFactor().get(); - allAppsIconSizePx *= prefs.getAllAppsIconSizeFactor().get(); - allAppsIconTextSizePx *= prefs.getAllAppsTextSizeFactor().get(); - // Folder icon folderIconSizePx = IconNormalizer.getNormalizedCircleSize(iconSizePx); folderIconOffsetYPx = (iconSizePx - folderIconSizePx) / 2; @@ -575,10 +565,10 @@ public class DeviceProfile { float hotseatCellWidth = (float) widthPx / inv.numHotseatIcons; int hotseatAdjustment = Math.round((workspaceCellWidth - hotseatCellWidth) / 2); mHotseatPadding.set( - /*hotseatAdjustment + */ workspacePadding.left + cellLayoutPaddingLeftRightPx + hotseatAdjustment + workspacePadding.left + cellLayoutPaddingLeftRightPx + mInsets.left, hotseatBarTopPaddingPx, - /* hotseatAdjustment + */ workspacePadding.right + cellLayoutPaddingLeftRightPx + hotseatAdjustment + workspacePadding.right + cellLayoutPaddingLeftRightPx + mInsets.right, hotseatBarBottomPaddingPx + mInsets.bottom + cellLayoutBottomPaddingPx); }