blob: 12e94cbc1ab9da343035e604b515836edae13225 [file] [log] [blame]
/*
* Copyright (C) 2021 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.wrapper
import android.content.Context
import android.view.View
import com.android.internal.widget.CachingIconView
import com.android.internal.widget.CallLayout
import com.android.systemui.R
import com.android.systemui.statusbar.notification.NotificationUtils
import com.android.systemui.statusbar.notification.row.ExpandableNotificationRow
/**
* Wraps a notification containing a call template
*/
class NotificationCallTemplateViewWrapper constructor(
ctx: Context,
view: View,
row: ExpandableNotificationRow
) : NotificationTemplateViewWrapper(ctx, view, row) {
private val minHeightWithActions: Int =
NotificationUtils.getFontScaledHeight(ctx, R.dimen.notification_max_height)
private val callLayout: CallLayout = view as CallLayout
private lateinit var conversationIconView: CachingIconView
private lateinit var conversationBadgeBg: View
private lateinit var expandBtn: View
private lateinit var appName: View
private lateinit var conversationTitleView: View
private fun resolveViews() {
with(callLayout) {
conversationIconView = requireViewById(com.android.internal.R.id.conversation_icon)
conversationBadgeBg =
requireViewById(com.android.internal.R.id.conversation_icon_badge_bg)
expandBtn = requireViewById(com.android.internal.R.id.expand_button)
appName = requireViewById(com.android.internal.R.id.app_name_text)
conversationTitleView = requireViewById(com.android.internal.R.id.conversation_text)
}
}
override fun onContentUpdated(row: ExpandableNotificationRow) {
// Reinspect the notification. Before the super call, because the super call also updates
// the transformation types and we need to have our values set by then.
resolveViews()
super.onContentUpdated(row)
}
override fun updateTransformedTypes() {
// This also clears the existing types
super.updateTransformedTypes()
addTransformedViews(
appName,
conversationTitleView
)
addViewsTransformingToSimilar(
conversationIconView,
conversationBadgeBg,
expandBtn
)
}
override fun disallowSingleClick(x: Float, y: Float): Boolean {
val isOnExpandButton = expandBtn.visibility == View.VISIBLE &&
isOnView(expandBtn, x, y)
return isOnExpandButton || super.disallowSingleClick(x, y)
}
override fun getMinLayoutHeight(): Int = minHeightWithActions
}