diff --git a/core/java/com/android/internal/policy/DecorView.java b/core/java/com/android/internal/policy/DecorView.java
index 7826b8d8ad42bd2ba82223ed12fad26a21633721..1a5ac12c47653a0c00bc5b94c3036935ba2e7bbf 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 42474a09a9528bf29501ecdbcd524003aa18ac27..29bdfe98c4ab2cf3c5771e6f565715232f089997 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 5b9fc9f2d908b24b2cf711599784040dfdfcde6f..422dafa338341e090a7e467ac36e17cdb3d6c6d3 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" />
+
+