From 890f1f372e9bdaeefc1707acbbd97de95709db39 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Thu, 3 Mar 2016 16:23:30 -0800 Subject: [PATCH] Fix BiDi issues in app error dialogs Bug: 27116512 Change-Id: I3ce4584f1b3eee4261a30d9b98e901f4ddcee922 --- .../core/java/com/android/server/am/AppErrorDialog.java | 8 ++++++-- .../com/android/server/am/AppNotRespondingDialog.java | 7 +++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/services/core/java/com/android/server/am/AppErrorDialog.java b/services/core/java/com/android/server/am/AppErrorDialog.java index 86cdbcc43edf3..ddfab4d6dd84a 100644 --- a/services/core/java/com/android/server/am/AppErrorDialog.java +++ b/services/core/java/com/android/server/am/AppErrorDialog.java @@ -25,6 +25,7 @@ import android.content.res.Resources; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.text.BidiFormatter; import android.util.Slog; import android.view.LayoutInflater; import android.view.View; @@ -68,18 +69,21 @@ final class AppErrorDialog extends BaseErrorDialog implements View.OnClickListen mProc = data.proc; mResult = data.result; mRepeating = data.repeating; + BidiFormatter bidi = BidiFormatter.getInstance(); + if ((mProc.pkgList.size() == 1) && (mName = context.getPackageManager().getApplicationLabel(mProc.info)) != null) { setTitle(res.getString( mRepeating ? com.android.internal.R.string.aerr_application_repeated : com.android.internal.R.string.aerr_application, - mName.toString(), mProc.info.processName)); + bidi.unicodeWrap(mName.toString()), + bidi.unicodeWrap(mProc.info.processName))); } else { mName = mProc.processName; setTitle(res.getString( mRepeating ? com.android.internal.R.string.aerr_process_repeated : com.android.internal.R.string.aerr_process, - mName.toString())); + bidi.unicodeWrap(mName.toString()))); } setCancelable(false); diff --git a/services/core/java/com/android/server/am/AppNotRespondingDialog.java b/services/core/java/com/android/server/am/AppNotRespondingDialog.java index 6d1d9f38c0553..c6befd7fbb7aa 100644 --- a/services/core/java/com/android/server/am/AppNotRespondingDialog.java +++ b/services/core/java/com/android/server/am/AppNotRespondingDialog.java @@ -27,6 +27,7 @@ import android.content.res.Resources; import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.text.BidiFormatter; import android.util.Slog; import android.view.LayoutInflater; import android.view.View; @@ -84,9 +85,11 @@ final class AppNotRespondingDialog extends BaseErrorDialog implements View.OnCli } } + BidiFormatter bidi = BidiFormatter.getInstance(); + setTitle(name2 != null - ? res.getString(resid, name1.toString(), name2.toString()) - : res.getString(resid, name1.toString())); + ? res.getString(resid, bidi.unicodeWrap(name1.toString()), bidi.unicodeWrap(name2.toString())) + : res.getString(resid, bidi.unicodeWrap(name1.toString()))); if (aboveSystem) { getWindow().setType(WindowManager.LayoutParams.TYPE_SYSTEM_ERROR);