diff --git a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/single/WidgetSingleProvider.kt b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/single/WidgetSingleProvider.kt index e4acd3d0..5f08530c 100644 --- a/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/single/WidgetSingleProvider.kt +++ b/features/feature_widget/src/main/java/com/example/util/simpletimetracker/feature_widget/single/WidgetSingleProvider.kt @@ -90,6 +90,7 @@ class WidgetSingleProvider : AppWidgetProvider() { private var typeIdsToUpdate: List = emptyList() private var preparedView: RecordTypeView? = null + private var entireView: View? = null override fun onReceive(context: Context?, intent: Intent?) { typeIdsToUpdate = intent?.getLongArrayExtra(TYPE_IDS_EXTRA)?.toList().orEmpty() @@ -262,9 +263,14 @@ class WidgetSingleProvider : AppWidgetProvider() { private fun measureView(context: Context, view: View) { var width = context.resources.getDimensionPixelSize(R.dimen.record_type_card_width) var height = context.resources.getDimensionPixelSize(R.dimen.record_type_card_height) - val inflater = LayoutInflater.from(context) - val entireView: View = inflater.inflate(R.layout.widget_layout, null) + fun inflate(): View { + return LayoutInflater.from(context) + .inflate(R.layout.widget_layout, null) + .also { entireView = it } + } + + val entireView: View = this.entireView ?: inflate() entireView.measureExactly(width = width, height = height) val imageView = entireView.findViewById(R.id.ivWidgetBackground)