Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +17 −6 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.Resources; import android.graphics.Point; import android.graphics.Point; import android.graphics.PointF; import android.graphics.PointF; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Handler; import android.util.Log; import android.util.Log; import android.view.Choreographer; import android.view.Choreographer; Loading @@ -38,6 +39,7 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.TextView; import android.window.WindowContainerTransaction; import android.window.WindowContainerTransaction; import com.android.launcher3.icons.IconProvider; import com.android.wm.shell.R; import com.android.wm.shell.R; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -81,6 +83,9 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private final int mHandleMenuCornerRadiusId = R.dimen.caption_menu_corner_radius; private final int mHandleMenuCornerRadiusId = R.dimen.caption_menu_corner_radius; private PointF mHandleMenuPosition = new PointF(); private PointF mHandleMenuPosition = new PointF(); private Drawable mAppIcon; private CharSequence mAppName; DesktopModeWindowDecoration( DesktopModeWindowDecoration( Context context, Context context, DisplayController displayController, DisplayController displayController, Loading @@ -95,6 +100,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mHandler = handler; mHandler = handler; mChoreographer = choreographer; mChoreographer = choreographer; mSyncQueue = syncQueue; mSyncQueue = syncQueue; loadAppInfo(); } } @Override @Override Loading Loading @@ -185,7 +192,9 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mWindowDecorViewHolder = new DesktopModeAppControlsWindowDecorationViewHolder( mWindowDecorViewHolder = new DesktopModeAppControlsWindowDecorationViewHolder( mResult.mRootView, mResult.mRootView, mOnCaptionTouchListener, mOnCaptionTouchListener, mOnCaptionButtonClickListener mOnCaptionButtonClickListener, mAppName, mAppIcon ); ); } else { } else { throw new IllegalArgumentException("Unexpected layout resource id"); throw new IllegalArgumentException("Unexpected layout resource id"); Loading Loading @@ -243,22 +252,24 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin final ImageView appIcon = menu.findViewById(R.id.application_icon); final ImageView appIcon = menu.findViewById(R.id.application_icon); final TextView appName = menu.findViewById(R.id.application_name); final TextView appName = menu.findViewById(R.id.application_name); loadAppInfo(appName, appIcon); appIcon.setImageDrawable(mAppIcon); appName.setText(mAppName); } } boolean isHandleMenuActive() { boolean isHandleMenuActive() { return mHandleMenu != null; return mHandleMenu != null; } } private void loadAppInfo(TextView appNameTextView, ImageView appIconImageView) { private void loadAppInfo() { String packageName = mTaskInfo.realActivity.getPackageName(); String packageName = mTaskInfo.realActivity.getPackageName(); PackageManager pm = mContext.getApplicationContext().getPackageManager(); PackageManager pm = mContext.getApplicationContext().getPackageManager(); try { try { // TODO(b/268363572): Use IconProvider or BaseIconCache to set drawable/name. IconProvider provider = new IconProvider(mContext); mAppIcon = provider.getIcon(pm.getActivityInfo(mTaskInfo.baseActivity, PackageManager.ComponentInfoFlags.of(0))); ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, PackageManager.ApplicationInfoFlags.of(0)); PackageManager.ApplicationInfoFlags.of(0)); appNameTextView.setText(pm.getApplicationLabel(applicationInfo)); mAppName = pm.getApplicationLabel(applicationInfo); appIconImageView.setImageDrawable(pm.getApplicationIcon(applicationInfo)); } catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) { Log.w(TAG, "Package not found: " + packageName, e); Log.w(TAG, "Package not found: " + packageName, e); } } Loading libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt +6 −18 Original line number Original line Diff line number Diff line package com.android.wm.shell.windowdecor.viewholder package com.android.wm.shell.windowdecor.viewholder import android.app.ActivityManager.RunningTaskInfo import android.app.ActivityManager.RunningTaskInfo import android.content.pm.PackageManager import android.content.res.ColorStateList import android.content.res.ColorStateList import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable import android.graphics.drawable.GradientDrawable import android.util.Log import android.view.View import android.view.View import android.widget.ImageButton import android.widget.ImageButton import android.widget.ImageView import android.widget.ImageView Loading @@ -19,7 +18,9 @@ import com.android.wm.shell.R internal class DesktopModeAppControlsWindowDecorationViewHolder( internal class DesktopModeAppControlsWindowDecorationViewHolder( rootView: View, rootView: View, onCaptionTouchListener: View.OnTouchListener, onCaptionTouchListener: View.OnTouchListener, onCaptionButtonClickListener: View.OnClickListener onCaptionButtonClickListener: View.OnClickListener, appName: CharSequence, appIcon: Drawable ) : DesktopModeWindowDecorationViewHolder(rootView) { ) : DesktopModeWindowDecorationViewHolder(rootView) { private val captionView: View = rootView.findViewById(R.id.desktop_mode_caption) private val captionView: View = rootView.findViewById(R.id.desktop_mode_caption) Loading @@ -35,10 +36,11 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( captionHandle.setOnTouchListener(onCaptionTouchListener) captionHandle.setOnTouchListener(onCaptionTouchListener) openMenuButton.setOnClickListener(onCaptionButtonClickListener) openMenuButton.setOnClickListener(onCaptionButtonClickListener) closeWindowButton.setOnClickListener(onCaptionButtonClickListener) closeWindowButton.setOnClickListener(onCaptionButtonClickListener) appNameTextView.text = appName appIconImageView.setImageDrawable(appIcon) } } override fun bindData(taskInfo: RunningTaskInfo) { override fun bindData(taskInfo: RunningTaskInfo) { bindAppInfo(taskInfo) val captionDrawable = captionView.background as GradientDrawable val captionDrawable = captionView.background as GradientDrawable captionDrawable.setColor(taskInfo.taskDescription.statusBarColor) captionDrawable.setColor(taskInfo.taskDescription.statusBarColor) Loading @@ -50,20 +52,6 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( appNameTextView.setTextColor(getCaptionAppNameTextColor(taskInfo)) appNameTextView.setTextColor(getCaptionAppNameTextColor(taskInfo)) } } private fun bindAppInfo(taskInfo: RunningTaskInfo) { val packageName: String = taskInfo.realActivity.packageName val pm: PackageManager = context.applicationContext.packageManager try { // TODO(b/268363572): Use IconProvider or BaseIconCache to set drawable/name. val applicationInfo = pm.getApplicationInfo(packageName, PackageManager.ApplicationInfoFlags.of(0)) appNameTextView.text = pm.getApplicationLabel(applicationInfo) appIconImageView.setImageDrawable(pm.getApplicationIcon(applicationInfo)) } catch (e: PackageManager.NameNotFoundException) { Log.w(TAG, "Package not found: $packageName", e) } } private fun getCaptionAppNameTextColor(taskInfo: RunningTaskInfo): Int { private fun getCaptionAppNameTextColor(taskInfo: RunningTaskInfo): Int { return if (shouldUseLightCaptionColors(taskInfo)) { return if (shouldUseLightCaptionColors(taskInfo)) { context.getColor(R.color.desktop_mode_caption_app_name_light) context.getColor(R.color.desktop_mode_caption_app_name_light) Loading Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/DesktopModeWindowDecoration.java +17 −6 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,7 @@ import android.content.res.Configuration; import android.content.res.Resources; import android.content.res.Resources; import android.graphics.Point; import android.graphics.Point; import android.graphics.PointF; import android.graphics.PointF; import android.graphics.drawable.Drawable; import android.os.Handler; import android.os.Handler; import android.util.Log; import android.util.Log; import android.view.Choreographer; import android.view.Choreographer; Loading @@ -38,6 +39,7 @@ import android.widget.ImageView; import android.widget.TextView; import android.widget.TextView; import android.window.WindowContainerTransaction; import android.window.WindowContainerTransaction; import com.android.launcher3.icons.IconProvider; import com.android.wm.shell.R; import com.android.wm.shell.R; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.ShellTaskOrganizer; import com.android.wm.shell.common.DisplayController; import com.android.wm.shell.common.DisplayController; Loading Loading @@ -81,6 +83,9 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin private final int mHandleMenuCornerRadiusId = R.dimen.caption_menu_corner_radius; private final int mHandleMenuCornerRadiusId = R.dimen.caption_menu_corner_radius; private PointF mHandleMenuPosition = new PointF(); private PointF mHandleMenuPosition = new PointF(); private Drawable mAppIcon; private CharSequence mAppName; DesktopModeWindowDecoration( DesktopModeWindowDecoration( Context context, Context context, DisplayController displayController, DisplayController displayController, Loading @@ -95,6 +100,8 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mHandler = handler; mHandler = handler; mChoreographer = choreographer; mChoreographer = choreographer; mSyncQueue = syncQueue; mSyncQueue = syncQueue; loadAppInfo(); } } @Override @Override Loading Loading @@ -185,7 +192,9 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin mWindowDecorViewHolder = new DesktopModeAppControlsWindowDecorationViewHolder( mWindowDecorViewHolder = new DesktopModeAppControlsWindowDecorationViewHolder( mResult.mRootView, mResult.mRootView, mOnCaptionTouchListener, mOnCaptionTouchListener, mOnCaptionButtonClickListener mOnCaptionButtonClickListener, mAppName, mAppIcon ); ); } else { } else { throw new IllegalArgumentException("Unexpected layout resource id"); throw new IllegalArgumentException("Unexpected layout resource id"); Loading Loading @@ -243,22 +252,24 @@ public class DesktopModeWindowDecoration extends WindowDecoration<WindowDecorLin final ImageView appIcon = menu.findViewById(R.id.application_icon); final ImageView appIcon = menu.findViewById(R.id.application_icon); final TextView appName = menu.findViewById(R.id.application_name); final TextView appName = menu.findViewById(R.id.application_name); loadAppInfo(appName, appIcon); appIcon.setImageDrawable(mAppIcon); appName.setText(mAppName); } } boolean isHandleMenuActive() { boolean isHandleMenuActive() { return mHandleMenu != null; return mHandleMenu != null; } } private void loadAppInfo(TextView appNameTextView, ImageView appIconImageView) { private void loadAppInfo() { String packageName = mTaskInfo.realActivity.getPackageName(); String packageName = mTaskInfo.realActivity.getPackageName(); PackageManager pm = mContext.getApplicationContext().getPackageManager(); PackageManager pm = mContext.getApplicationContext().getPackageManager(); try { try { // TODO(b/268363572): Use IconProvider or BaseIconCache to set drawable/name. IconProvider provider = new IconProvider(mContext); mAppIcon = provider.getIcon(pm.getActivityInfo(mTaskInfo.baseActivity, PackageManager.ComponentInfoFlags.of(0))); ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, PackageManager.ApplicationInfoFlags.of(0)); PackageManager.ApplicationInfoFlags.of(0)); appNameTextView.setText(pm.getApplicationLabel(applicationInfo)); mAppName = pm.getApplicationLabel(applicationInfo); appIconImageView.setImageDrawable(pm.getApplicationIcon(applicationInfo)); } catch (PackageManager.NameNotFoundException e) { } catch (PackageManager.NameNotFoundException e) { Log.w(TAG, "Package not found: " + packageName, e); Log.w(TAG, "Package not found: " + packageName, e); } } Loading
libs/WindowManager/Shell/src/com/android/wm/shell/windowdecor/viewholder/DesktopModeAppControlsWindowDecorationViewHolder.kt +6 −18 Original line number Original line Diff line number Diff line package com.android.wm.shell.windowdecor.viewholder package com.android.wm.shell.windowdecor.viewholder import android.app.ActivityManager.RunningTaskInfo import android.app.ActivityManager.RunningTaskInfo import android.content.pm.PackageManager import android.content.res.ColorStateList import android.content.res.ColorStateList import android.graphics.drawable.Drawable import android.graphics.drawable.GradientDrawable import android.graphics.drawable.GradientDrawable import android.util.Log import android.view.View import android.view.View import android.widget.ImageButton import android.widget.ImageButton import android.widget.ImageView import android.widget.ImageView Loading @@ -19,7 +18,9 @@ import com.android.wm.shell.R internal class DesktopModeAppControlsWindowDecorationViewHolder( internal class DesktopModeAppControlsWindowDecorationViewHolder( rootView: View, rootView: View, onCaptionTouchListener: View.OnTouchListener, onCaptionTouchListener: View.OnTouchListener, onCaptionButtonClickListener: View.OnClickListener onCaptionButtonClickListener: View.OnClickListener, appName: CharSequence, appIcon: Drawable ) : DesktopModeWindowDecorationViewHolder(rootView) { ) : DesktopModeWindowDecorationViewHolder(rootView) { private val captionView: View = rootView.findViewById(R.id.desktop_mode_caption) private val captionView: View = rootView.findViewById(R.id.desktop_mode_caption) Loading @@ -35,10 +36,11 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( captionHandle.setOnTouchListener(onCaptionTouchListener) captionHandle.setOnTouchListener(onCaptionTouchListener) openMenuButton.setOnClickListener(onCaptionButtonClickListener) openMenuButton.setOnClickListener(onCaptionButtonClickListener) closeWindowButton.setOnClickListener(onCaptionButtonClickListener) closeWindowButton.setOnClickListener(onCaptionButtonClickListener) appNameTextView.text = appName appIconImageView.setImageDrawable(appIcon) } } override fun bindData(taskInfo: RunningTaskInfo) { override fun bindData(taskInfo: RunningTaskInfo) { bindAppInfo(taskInfo) val captionDrawable = captionView.background as GradientDrawable val captionDrawable = captionView.background as GradientDrawable captionDrawable.setColor(taskInfo.taskDescription.statusBarColor) captionDrawable.setColor(taskInfo.taskDescription.statusBarColor) Loading @@ -50,20 +52,6 @@ internal class DesktopModeAppControlsWindowDecorationViewHolder( appNameTextView.setTextColor(getCaptionAppNameTextColor(taskInfo)) appNameTextView.setTextColor(getCaptionAppNameTextColor(taskInfo)) } } private fun bindAppInfo(taskInfo: RunningTaskInfo) { val packageName: String = taskInfo.realActivity.packageName val pm: PackageManager = context.applicationContext.packageManager try { // TODO(b/268363572): Use IconProvider or BaseIconCache to set drawable/name. val applicationInfo = pm.getApplicationInfo(packageName, PackageManager.ApplicationInfoFlags.of(0)) appNameTextView.text = pm.getApplicationLabel(applicationInfo) appIconImageView.setImageDrawable(pm.getApplicationIcon(applicationInfo)) } catch (e: PackageManager.NameNotFoundException) { Log.w(TAG, "Package not found: $packageName", e) } } private fun getCaptionAppNameTextColor(taskInfo: RunningTaskInfo): Int { private fun getCaptionAppNameTextColor(taskInfo: RunningTaskInfo): Int { return if (shouldUseLightCaptionColors(taskInfo)) { return if (shouldUseLightCaptionColors(taskInfo)) { context.getColor(R.color.desktop_mode_caption_app_name_light) context.getColor(R.color.desktop_mode_caption_app_name_light) Loading