Merge changes I8604c9d0,I436a3770,If89fd6d2,I6bad3e75 into nyc-mr1-dev
* changes: Escalate HeadsUp when dreaming starts Overflow number supports RTL layout Update contentDescription of the DismissView when locale changes Fixes a crash with a renderthread camera animation
This commit is contained in:
committed by
Android (Google) Code Review
commit
2c64636a24
@@ -141,6 +141,7 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
|
||||
private static final int MSG_SERVICE_STATE_CHANGE = 330;
|
||||
private static final int MSG_SCREEN_TURNED_ON = 331;
|
||||
private static final int MSG_SCREEN_TURNED_OFF = 332;
|
||||
private static final int MSG_DREAMING_STATE_CHANGED = 333;
|
||||
|
||||
/** Fingerprint state: Not listening to fingerprint. */
|
||||
private static final int FINGERPRINT_STATE_STOPPED = 0;
|
||||
@@ -293,6 +294,9 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
|
||||
handleScreenTurnedOff();
|
||||
Trace.endSection();
|
||||
break;
|
||||
case MSG_DREAMING_STATE_CHANGED:
|
||||
handleDreamingStateChanged(msg.arg1);
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -990,6 +994,17 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
|
||||
}
|
||||
}
|
||||
|
||||
private void handleDreamingStateChanged(int dreamStart) {
|
||||
final int count = mCallbacks.size();
|
||||
boolean showingDream = dreamStart == 1;
|
||||
for (int i = 0; i < count; i++) {
|
||||
KeyguardUpdateMonitorCallback cb = mCallbacks.get(i).get();
|
||||
if (cb != null) {
|
||||
cb.onDreamingStateChanged(showingDream);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* IMPORTANT: Must be called from UI thread.
|
||||
*/
|
||||
@@ -1736,6 +1751,14 @@ public class KeyguardUpdateMonitor implements TrustManager.TrustListener {
|
||||
mHandler.sendEmptyMessage(MSG_SCREEN_TURNED_OFF);
|
||||
}
|
||||
|
||||
public void dispatchDreamingStarted() {
|
||||
mHandler.sendMessage(mHandler.obtainMessage(MSG_DREAMING_STATE_CHANGED, 1, 0));
|
||||
}
|
||||
|
||||
public void dispatchDreamingStopped() {
|
||||
mHandler.sendMessage(mHandler.obtainMessage(MSG_DREAMING_STATE_CHANGED, 0, 0));
|
||||
}
|
||||
|
||||
public boolean isDeviceInteractive() {
|
||||
return mDeviceInteractive;
|
||||
}
|
||||
|
||||
@@ -245,4 +245,10 @@ public class KeyguardUpdateMonitorCallback {
|
||||
* Called when the state whether we have a lockscreen wallpaper has changed.
|
||||
*/
|
||||
public void onHasLockscreenWallpaperChanged(boolean hasLockscreenWallpaper) { }
|
||||
|
||||
/**
|
||||
* Called when the dream's window state is changed.
|
||||
* @param dreaming true if the dream's window has been created and is visible
|
||||
*/
|
||||
public void onDreamingStateChanged(boolean dreaming) { }
|
||||
}
|
||||
|
||||
@@ -964,6 +964,7 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
* if there is a secure lock pattern.
|
||||
*/
|
||||
public void onDreamingStarted() {
|
||||
KeyguardUpdateMonitor.getInstance(mContext).dispatchDreamingStarted();
|
||||
synchronized (this) {
|
||||
if (mDeviceInteractive
|
||||
&& mLockPatternUtils.isSecure(KeyguardUpdateMonitor.getCurrentUser())) {
|
||||
@@ -976,6 +977,7 @@ public class KeyguardViewMediator extends SystemUI {
|
||||
* A dream stopped.
|
||||
*/
|
||||
public void onDreamingStopped() {
|
||||
KeyguardUpdateMonitor.getInstance(mContext).dispatchDreamingStopped();
|
||||
synchronized (this) {
|
||||
if (mDeviceInteractive) {
|
||||
cancelDoKeyguardLaterLocked();
|
||||
|
||||
@@ -56,6 +56,8 @@ public class DismissView extends StackScrollerDecorView {
|
||||
protected void onConfigurationChanged(Configuration newConfig) {
|
||||
super.onConfigurationChanged(newConfig);
|
||||
mDismissButton.setText(R.string.clear_all_notifications_text);
|
||||
mDismissButton.setContentDescription(
|
||||
mContext.getString(R.string.accessibility_clear_all));
|
||||
}
|
||||
|
||||
public boolean isButtonVisible() {
|
||||
|
||||
@@ -174,7 +174,10 @@ public class KeyguardAffordanceView extends ImageView {
|
||||
|
||||
private void drawBackgroundCircle(Canvas canvas) {
|
||||
if (mCircleRadius > 0 || mFinishing) {
|
||||
if (mFinishing && mSupportHardware) {
|
||||
if (mFinishing && mSupportHardware && mHwCenterX != null) {
|
||||
// Our hardware drawing proparties can be null if the finishing started but we have
|
||||
// never drawn before. In that case we are not doing a render thread animation
|
||||
// anyway, so we need to use the normal drawing.
|
||||
DisplayListCanvas displayListCanvas = (DisplayListCanvas) canvas;
|
||||
displayListCanvas.drawCircle(mHwCenterX, mHwCenterY, mHwCircleRadius,
|
||||
mHwCirclePaint);
|
||||
|
||||
@@ -205,7 +205,7 @@ public class NotificationContentView extends FrameLayout {
|
||||
&& MeasureSpec.getMode(widthMeasureSpec) != MeasureSpec.UNSPECIFIED) {
|
||||
singleLineWidthSpec = MeasureSpec.makeMeasureSpec(
|
||||
width - mSingleLineWidthIndention + mSingleLineView.getPaddingEnd(),
|
||||
MeasureSpec.AT_MOST);
|
||||
MeasureSpec.EXACTLY);
|
||||
}
|
||||
mSingleLineView.measure(singleLineWidthSpec,
|
||||
MeasureSpec.makeMeasureSpec(maxSize, MeasureSpec.AT_MOST));
|
||||
|
||||
@@ -664,6 +664,15 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
||||
private boolean mNoAnimationOnNextBarModeChange;
|
||||
private FalsingManager mFalsingManager;
|
||||
|
||||
private KeyguardUpdateMonitorCallback mUpdateCallback = new KeyguardUpdateMonitorCallback() {
|
||||
@Override
|
||||
public void onDreamingStateChanged(boolean dreaming) {
|
||||
if (dreaming) {
|
||||
maybeEscalateHeadsUp();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
mDisplay = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE))
|
||||
@@ -701,8 +710,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
||||
mUnlockMethodCache.addListener(this);
|
||||
startKeyguard();
|
||||
|
||||
KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mUpdateCallback);
|
||||
mDozeServiceHost = new DozeServiceHost();
|
||||
KeyguardUpdateMonitor.getInstance(mContext).registerCallback(mDozeServiceHost);
|
||||
putComponent(DozeHost.class, mDozeServiceHost);
|
||||
putComponent(PhoneStatusBar.class, this);
|
||||
|
||||
@@ -4445,6 +4454,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
||||
}
|
||||
if (state == StatusBarState.KEYGUARD) {
|
||||
removeRemoteInputEntriesKeptUntilCollapsed();
|
||||
maybeEscalateHeadsUp();
|
||||
}
|
||||
mState = state;
|
||||
mGroupManager.setStatusBarState(state);
|
||||
@@ -4964,7 +4974,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
|
||||
}
|
||||
}
|
||||
|
||||
private final class DozeServiceHost extends KeyguardUpdateMonitorCallback implements DozeHost {
|
||||
private final class DozeServiceHost implements DozeHost {
|
||||
// Amount of time to allow to update the time shown on the screen before releasing
|
||||
// the wakelock. This timeout is design to compensate for the fact that we don't
|
||||
// currently have a way to know when time display contents have actually been
|
||||
|
||||
@@ -381,7 +381,7 @@ public class HeadsUpManager implements ViewTreeObserver.OnComputeInternalInsetsL
|
||||
}
|
||||
|
||||
public void onComputeInternalInsets(ViewTreeObserver.InternalInsetsInfo info) {
|
||||
if (mIsExpanded) {
|
||||
if (mIsExpanded || mBar.isBouncerShowing()) {
|
||||
// The touchable region is always the full area when expanded
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -123,8 +123,10 @@ public class NotificationChildrenContainer extends ViewGroup {
|
||||
mDividers.get(i).layout(0, 0, getWidth(), mDividerHeight);
|
||||
}
|
||||
if (mOverflowNumber != null) {
|
||||
mOverflowNumber.layout(getWidth() - mOverflowNumber.getMeasuredWidth(), 0, getWidth(),
|
||||
mOverflowNumber.getMeasuredHeight());
|
||||
boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
|
||||
int left = (isRtl ? 0 : getWidth() - mOverflowNumber.getMeasuredWidth());
|
||||
int right = left + mOverflowNumber.getMeasuredWidth();
|
||||
mOverflowNumber.layout(left, 0, right, mOverflowNumber.getMeasuredHeight());
|
||||
}
|
||||
if (mNotificationHeader != null) {
|
||||
mNotificationHeader.layout(0, 0, mNotificationHeader.getMeasuredWidth(),
|
||||
|
||||
Reference in New Issue
Block a user