Merge "Partly revert ag/28850904 to solve small clock overlaps with smartspace" into main
diff --git a/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt b/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
index d46d2e0..a3f7c51 100644
--- a/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
+++ b/src/com/android/customization/picker/clock/ui/view/ClockViewFactoryImpl.kt
@@ -18,7 +18,6 @@
 import android.app.WallpaperColors
 import android.app.WallpaperManager
 import android.content.Context
-import android.content.res.Resources
 import android.graphics.Point
 import android.graphics.Rect
 import android.view.View
@@ -26,6 +25,7 @@
 import androidx.annotation.ColorInt
 import androidx.core.text.util.LocalePreferences
 import androidx.lifecycle.LifecycleOwner
+import com.android.internal.policy.SystemBarUtils
 import com.android.systemui.plugins.clocks.ClockController
 import com.android.systemui.plugins.clocks.WeatherData
 import com.android.systemui.shared.clocks.ClockRegistry
@@ -106,9 +106,10 @@
     }
 
     private fun getSmallClockTopMargin() =
-        appContext.resources.getDimensionPixelSize(
-            com.android.systemui.customization.R.dimen.small_clock_padding_top
-        )
+        getStatusBarHeight(appContext) +
+            appContext.resources.getDimensionPixelSize(
+                com.android.systemui.customization.R.dimen.small_clock_padding_top
+            )
 
     private fun getSmallClockStartPadding() =
         appContext.resources.getDimensionPixelSize(
@@ -256,11 +257,18 @@
         const val TEMPERATURE_CELSIUS_PLACEHOLDER = 21
         val WEATHERICON_PLACEHOLDER = WeatherData.WeatherStateIcon.MOSTLY_SUNNY
 
-        private fun getStatusBarHeight(resource: Resources): Int {
+        private fun getStatusBarHeight(context: Context): Int {
+
+            val display = context.displayNoVerify
+            if (display != null) {
+                return SystemBarUtils.getStatusBarHeight(context.resources, display.cutout)
+            }
+
             var result = 0
-            val resourceId: Int = resource.getIdentifier("status_bar_height", "dimen", "android")
+            val resourceId: Int =
+                context.resources.getIdentifier("status_bar_height", "dimen", "android")
             if (resourceId > 0) {
-                result = resource.getDimensionPixelSize(resourceId)
+                result = context.resources.getDimensionPixelSize(resourceId)
             }
             return result
         }