• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download

<lambda>null1 package 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