From 700db8ec383a7ab813ff1cd8d47d8e5202002118 Mon Sep 17 00:00:00 2001 From: twwang Date: Sat, 22 Aug 2020 20:05:39 +0800 Subject: [PATCH] show application name for DecorCaptionView App compatibility: add show application name on DecorCaptionView area --- .../android/internal/policy/DecorView.java | 6 +++++ .../internal/widget/DecorCaptionView.java | 23 +++++++++++++++++++ core/res/res/layout/decor_caption.xml | 7 ++++++ core/res/res/values/symbols.xml | 1 + 4 files changed, 37 insertions(+) diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java index 7826b8d8..1a5ac12c 100644 --- a/core/java/com/android/internal/policy/DecorView.java +++ b/core/java/com/android/internal/policy/DecorView.java @@ -78,6 +78,7 @@ import android.view.animation.AnimationUtils; import android.view.animation.Interpolator; import android.widget.FrameLayout; import android.widget.PopupWindow; +import android.widget.TextView; import static android.app.ActivityManager.StackId; import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; @@ -1929,6 +1930,8 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind R.drawable.decor_minimize_button_light); view.findViewById(R.id.close_window).setBackgroundResource( R.drawable.decor_close_button_light); + TextView tv = (TextView)view.findViewById(R.id.app_title); + tv.setTextColor(Color.WHITE); } private void setDarkDecorCaptionShade(DecorCaptionView view) { @@ -1940,6 +1943,9 @@ public class DecorView extends FrameLayout implements RootViewSurfaceTaker, Wind R.drawable.decor_minimize_button_dark); view.findViewById(R.id.close_window).setBackgroundResource( R.drawable.decor_close_button_dark); + TextView tv = (TextView)view.findViewById(R.id.app_title); + tv.setTextColor(Color.BLACK); + } /** diff --git a/core/java/com/android/internal/widget/DecorCaptionView.java b/core/java/com/android/internal/widget/DecorCaptionView.java index 42474a09..29bdfe98 100644 --- a/core/java/com/android/internal/widget/DecorCaptionView.java +++ b/core/java/com/android/internal/widget/DecorCaptionView.java @@ -19,6 +19,7 @@ package com.android.internal.widget; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; +import android.content.pm.ApplicationInfo; import android.graphics.Color; import android.graphics.Rect; import android.util.AttributeSet; @@ -29,6 +30,7 @@ import android.view.View; import android.view.ViewConfiguration; import android.view.ViewGroup; import android.view.ViewOutlineProvider; +import android.widget.TextView; import com.android.internal.R; import com.android.internal.policy.PhoneWindow; @@ -152,6 +154,25 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, mCaption = getChildAt(0); } + private String getAppName(PhoneWindow owner) { + Context cxt = owner.getContext(); + PackageManager pm = cxt.getApplicationContext().getPackageManager(); + ApplicationInfo appInfo = null; + try { + appInfo = pm.getApplicationInfo(cxt.getPackageName(), 0); + } catch (Exception e) { + Slog.w(TAG, "get appName failed ", e); + } + return (String) pm.getApplicationLabel(appInfo); + } + + private void showAppName(PhoneWindow owner,TextView tv) { + String appName = getAppName(owner); + if (appName != null) { + tv.setText(appName); + } + } + public void setPhoneWindow(PhoneWindow owner, boolean show) { mOwner = owner; mShow = show; @@ -169,6 +190,8 @@ public class DecorCaptionView extends ViewGroup implements View.OnTouchListener, mCaptionButton.setMinimize(findViewById(R.id.minimize_window)); mCaptionButton.setBack(findViewById(R.id.back_window)); mCaptionButton.setClose(findViewById(R.id.close_window)); + tvAppName = (TextView)findViewById(R.id.app_title); + showAppName(owner,tvAppName); } @Override diff --git a/core/res/res/layout/decor_caption.xml b/core/res/res/layout/decor_caption.xml index 5b9fc9f2..422dafa3 100644 --- a/core/res/res/layout/decor_caption.xml +++ b/core/res/res/layout/decor_caption.xml @@ -39,6 +39,13 @@ android:layout_gravity="center_vertical|start" android:contentDescription="@string/back_button_text" android:background="@drawable/decor_back_button_dark" /> + + -- Gitee