From 3373bcf13be3b73ddae2904ad046cbaf7635a061 Mon Sep 17 00:00:00 2001 From: Kshitij Gupta Date: Sun, 7 Mar 2021 20:19:53 +0530 Subject: [PATCH] Lawnchair: Customize IDP --- .../sharedprefs/LawnchairPreferences.kt | 22 +++++++++++++++++++ .../launcher3/InvariantDeviceProfile.java | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/lawnchair/src/ch/deletescape/lawnchair/sharedprefs/LawnchairPreferences.kt b/lawnchair/src/ch/deletescape/lawnchair/sharedprefs/LawnchairPreferences.kt index 76474ec0d9..a6749cb89a 100644 --- a/lawnchair/src/ch/deletescape/lawnchair/sharedprefs/LawnchairPreferences.kt +++ b/lawnchair/src/ch/deletescape/lawnchair/sharedprefs/LawnchairPreferences.kt @@ -2,6 +2,7 @@ package ch.deletescape.lawnchair.sharedprefs import android.content.Context import android.content.SharedPreferences +import androidx.annotation.NonNull import com.android.launcher3.LauncherAppState import com.android.launcher3.Utilities @@ -17,10 +18,31 @@ class LawnchairPreferences(val context: Context) { } companion object { + private var INSTANCE: SharedPreferences? = null @kotlin.jvm.JvmField var ICON_PACK_PACKAGE: String = "pref_iconPackPackage" + @kotlin.jvm.JvmField + var HOTSEAT_COLUMNS: String = "pref_hotseatColumns" + @kotlin.jvm.JvmField + var WORKSPACE_COLUMNS: String = "pref_workspaceColumns" + @kotlin.jvm.JvmField + var WORKSPACE_ROWS: String = "pref_workspaceRows" + @kotlin.jvm.JvmField + var ALL_APPS_COLUMNS: String = "pref_allAppsColumns" + @kotlin.jvm.JvmField + var FOLDER_COLUMNS: String = "pref_folderColumns" + @kotlin.jvm.JvmField + var FOLDER_ROWS: String = "pref_folderRows" + @kotlin.jvm.JvmField + var ICON_SIZE_FACTOR: String = "pref_iconSizeFactor" + @kotlin.jvm.JvmField + var TEXT_SIZE_FACTOR: String = "pref_textSizeFactor" + @kotlin.jvm.JvmField + var ALL_APPS_ICON_SIZE_FACTOR: String = "pref_allAppsIconSizeFactor" + @kotlin.jvm.JvmField + var ALL_APPS_TEXT_SIZE_FACTOR: String = "pref_allAppsTextSizeFactor" fun getInstance(context: Context?): SharedPreferences? = when { context == null -> null diff --git a/src/com/android/launcher3/InvariantDeviceProfile.java b/src/com/android/launcher3/InvariantDeviceProfile.java index e39e89c038..b6882ad302 100644 --- a/src/com/android/launcher3/InvariantDeviceProfile.java +++ b/src/com/android/launcher3/InvariantDeviceProfile.java @@ -28,6 +28,7 @@ import android.content.BroadcastReceiver; import android.content.ComponentName; import android.content.Context; import android.content.Intent; +import android.content.SharedPreferences; import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.TypedArray; @@ -61,6 +62,8 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; +import ch.deletescape.lawnchair.sharedprefs.LawnchairPreferences; + public class InvariantDeviceProfile { public static final String TAG = "IDP"; @@ -298,6 +301,25 @@ public class InvariantDeviceProfile { ComponentName cn = new ComponentName(context.getPackageName(), getClass().getName()); defaultWidgetPadding = AppWidgetHostView.getDefaultPaddingForWidget(context, cn, null); + + // Lawnchair prefs + SharedPreferences prefs = LawnchairPreferences.Companion.getInstance(context); + if (prefs == null) return; + + // Lawnchair grid sizes + numHotseatIcons = prefs.getInt(LawnchairPreferences.HOTSEAT_COLUMNS, numHotseatIcons); + numRows = prefs.getInt(LawnchairPreferences.WORKSPACE_ROWS, numRows); + numColumns = prefs.getInt(LawnchairPreferences.WORKSPACE_COLUMNS, numColumns); + numAllAppsColumns = prefs.getInt(LawnchairPreferences.ALL_APPS_COLUMNS, numAllAppsColumns); + numFolderRows = prefs.getInt(LawnchairPreferences.FOLDER_ROWS, numFolderRows); + numFolderColumns = prefs.getInt(LawnchairPreferences.FOLDER_COLUMNS, numFolderColumns); + + // Lawnchair icon and text sizes + iconSize = prefs.getFloat(LawnchairPreferences.ICON_SIZE_FACTOR, 1f) * iconSize; + iconTextSize = prefs.getFloat(LawnchairPreferences.TEXT_SIZE_FACTOR, 1f) * iconTextSize; + allAppsIconSize = prefs.getFloat(LawnchairPreferences.ALL_APPS_ICON_SIZE_FACTOR, 1f) * allAppsIconSize; + allAppsIconTextSize = prefs.getFloat(LawnchairPreferences.ALL_APPS_TEXT_SIZE_FACTOR, 1f) * allAppsIconTextSize; + } @Nullable