diff options
| -rw-r--r-- | core/java/android/app/ActivityThread.java | 15 | ||||
| -rw-r--r-- | core/java/android/widget/TextView.java | 50 | ||||
| -rw-r--r-- | services/core/java/com/android/server/connectivity/Vpn.java | 2 |
3 files changed, 35 insertions, 32 deletions
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java index 7299d6bd0ed7..182982a638f1 100644 --- a/core/java/android/app/ActivityThread.java +++ b/core/java/android/app/ActivityThread.java @@ -3727,9 +3727,17 @@ public final class ActivityThread { impl.notifyChildRebuilt(); } } - if (a.mVisibleFromClient && !a.mWindowAdded) { - a.mWindowAdded = true; - wm.addView(decor, l); + if (a.mVisibleFromClient) { + if (!a.mWindowAdded) { + a.mWindowAdded = true; + wm.addView(decor, l); + } else { + // The activity will get a callback for this {@link LayoutParams} change + // earlier. However, at that time the decor will not be set (this is set + // in this method), so no action will be taken. This call ensures the + // callback occurs with the decor set. + a.onWindowAttributesChanged(l); + } } // If the window has already been added, but during resume @@ -3769,6 +3777,7 @@ public final class ActivityThread { wm.updateViewLayout(decor, l); } } + r.activity.mVisibleFromServer = true; mNumVisibleActivities++; if (r.activity.mVisibleFromClient) { diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 58da92f6bd19..fcab7035e60f 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8148,35 +8148,29 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener mTempTextPaint.set(getPaint()); mTempTextPaint.setTextSize(suggestedSizeInPx); - if ((mLayout instanceof BoringLayout) && BoringLayout.isBoring( - text, mTempTextPaint, getTextDirectionHeuristic(), mBoring) != null) { - return mTempTextPaint.getFontSpacing() <= availableSpace.bottom - && mTempTextPaint.measureText(text, 0, text.length()) <= availableSpace.right; - } else { - final StaticLayout.Builder layoutBuilder = StaticLayout.Builder.obtain( - text, 0, text.length(), mTempTextPaint, - getMeasuredWidth() - getTotalPaddingLeft() - getTotalPaddingRight()); - - layoutBuilder.setAlignment(getLayoutAlignment()) - .setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier()) - .setIncludePad(getIncludeFontPadding()) - .setBreakStrategy(getBreakStrategy()) - .setHyphenationFrequency(getHyphenationFrequency()) - .setJustificationMode(getJustificationMode()) - .setMaxLines(mMaxMode == LINES ? mMaximum : Integer.MAX_VALUE) - .setTextDirection(getTextDirectionHeuristic()); - - final StaticLayout layout = layoutBuilder.build(); - - // Lines overflow. - if (maxLines != -1 && layout.getLineCount() > maxLines) { - return false; - } + final StaticLayout.Builder layoutBuilder = StaticLayout.Builder.obtain( + text, 0, text.length(), mTempTextPaint, + getMeasuredWidth() - getTotalPaddingLeft() - getTotalPaddingRight()); + + layoutBuilder.setAlignment(getLayoutAlignment()) + .setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier()) + .setIncludePad(getIncludeFontPadding()) + .setBreakStrategy(getBreakStrategy()) + .setHyphenationFrequency(getHyphenationFrequency()) + .setJustificationMode(getJustificationMode()) + .setMaxLines(mMaxMode == LINES ? mMaximum : Integer.MAX_VALUE) + .setTextDirection(getTextDirectionHeuristic()); + + final StaticLayout layout = layoutBuilder.build(); + + // Lines overflow. + if (maxLines != -1 && layout.getLineCount() > maxLines) { + return false; + } - // Height overflow. - if (layout.getHeight() > availableSpace.bottom) { - return false; - } + // Height overflow. + if (layout.getHeight() > availableSpace.bottom) { + return false; } return true; diff --git a/services/core/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java index 2eb555754732..d8de0bddcf74 100644 --- a/services/core/java/com/android/server/connectivity/Vpn.java +++ b/services/core/java/com/android/server/connectivity/Vpn.java @@ -1287,7 +1287,7 @@ public class Vpn { try { final NotificationManager notificationManager = NotificationManager.from(mContext); if (!visible) { - notificationManager.cancelAsUser(TAG, 0, user); + notificationManager.cancelAsUser(TAG, SystemMessage.NOTE_VPN_DISCONNECTED, user); return; } final Intent intent = new Intent(Settings.ACTION_VPN_SETTINGS); |