diff options
| author | 2023-09-27 19:23:39 +0000 | |
|---|---|---|
| committer | 2023-09-27 19:23:39 +0000 | |
| commit | dbc995e23b71b044bf14cd3ac266f17b47ffa983 (patch) | |
| tree | cce78a6e3fa84cd358033180dd9296675a89dc15 | |
| parent | 98abf83bc3e98e2f217fbbac67f9bcf10cd0b70f (diff) | |
| parent | 458ba06f1d0161ceb32eeeb3fc3df9ba72a02381 (diff) | |
Merge "Enable CallLayout setDataAsync when the flag is on" into main
2 files changed, 42 insertions, 1 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/CallLayoutSetDataAsyncFactory.kt b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/CallLayoutSetDataAsyncFactory.kt new file mode 100644 index 000000000000..4deebdb8de7d --- /dev/null +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/CallLayoutSetDataAsyncFactory.kt @@ -0,0 +1,37 @@ +/* + * Copyright (C) 2023 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.android.systemui.statusbar.notification.row + +import android.content.Context +import android.util.AttributeSet +import android.view.View +import com.android.internal.widget.CallLayout +import javax.inject.Inject + +class CallLayoutSetDataAsyncFactory @Inject constructor() : NotifRemoteViewsFactory { + override fun instantiate( + row: ExpandableNotificationRow, + @NotificationRowContentBinder.InflationFlag layoutType: Int, + parent: View?, + name: String, + context: Context, + attrs: AttributeSet + ): View? = + if (name == CallLayout::class.java.name) + CallLayout(context, attrs).apply { setSetDataAsyncEnabled(true) } + else null +} diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowModule.java b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowModule.java index 0239afc08ec5..3a59978d415c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowModule.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/notification/row/NotificationRowModule.java @@ -61,7 +61,8 @@ public abstract class NotificationRowModule { static Set<NotifRemoteViewsFactory> provideNotifRemoteViewsFactories( FeatureFlags featureFlags, PrecomputedTextViewFactory precomputedTextViewFactory, - BigPictureLayoutInflaterFactory bigPictureLayoutInflaterFactory + BigPictureLayoutInflaterFactory bigPictureLayoutInflaterFactory, + CallLayoutSetDataAsyncFactory callLayoutSetDataAsyncFactory ) { final Set<NotifRemoteViewsFactory> replacementFactories = new HashSet<>(); if (featureFlags.isEnabled(Flags.PRECOMPUTED_TEXT)) { @@ -70,6 +71,9 @@ public abstract class NotificationRowModule { if (featureFlags.isEnabled(Flags.BIGPICTURE_NOTIFICATION_LAZY_LOADING)) { replacementFactories.add(bigPictureLayoutInflaterFactory); } + if (featureFlags.isEnabled(Flags.CALL_LAYOUT_ASYNC_SET_DATA)) { + replacementFactories.add(callLayoutSetDataAsyncFactory); + } return replacementFactories; } } |