<lambda>null1package com.android.wm.shell.windowdecor.viewholder 2 3 import android.app.ActivityManager.RunningTaskInfo 4 import android.content.res.ColorStateList 5 import android.graphics.drawable.GradientDrawable 6 import android.view.View 7 import android.widget.ImageButton 8 import com.android.wm.shell.R 9 10 /** 11 * A desktop mode window decoration used when the window is in full "focus" (i.e. fullscreen). It 12 * hosts a simple handle bar from which to initiate a drag motion to enter desktop mode. 13 */ 14 internal class DesktopModeFocusedWindowDecorationViewHolder( 15 rootView: View, 16 onCaptionTouchListener: View.OnTouchListener, 17 onCaptionButtonClickListener: View.OnClickListener 18 ) : DesktopModeWindowDecorationViewHolder(rootView) { 19 20 private val captionView: View = rootView.requireViewById(R.id.desktop_mode_caption) 21 private val captionHandle: ImageButton = rootView.requireViewById(R.id.caption_handle) 22 23 init { 24 captionView.setOnTouchListener(onCaptionTouchListener) 25 captionHandle.setOnTouchListener(onCaptionTouchListener) 26 captionHandle.setOnClickListener(onCaptionButtonClickListener) 27 } 28 29 override fun bindData(taskInfo: RunningTaskInfo) { 30 taskInfo.taskDescription?.statusBarColor?.let { captionColor -> 31 val captionDrawable = captionView.background as GradientDrawable 32 captionDrawable.setColor(captionColor) 33 } 34 35 captionHandle.imageTintList = ColorStateList.valueOf(getCaptionHandleBarColor(taskInfo)) 36 } 37 38 private fun getCaptionHandleBarColor(taskInfo: RunningTaskInfo): Int { 39 return if (shouldUseLightCaptionColors(taskInfo)) { 40 context.getColor(R.color.desktop_mode_caption_handle_bar_light) 41 } else { 42 context.getColor(R.color.desktop_mode_caption_handle_bar_dark) 43 } 44 } 45 } 46