summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt1
-rw-r--r--core/java/android/content/Intent.java2
-rw-r--r--core/java/android/widget/RadialTimePickerView.java2
-rw-r--r--packages/SystemUI/res/layout/super_status_bar.xml8
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BackDropView.java65
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java123
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java27
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java45
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java37
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java10
-rw-r--r--telecomm/java/android/telecom/Call.java2
-rw-r--r--telecomm/java/android/telecom/DisconnectCause.java11
12 files changed, 294 insertions, 39 deletions
diff --git a/api/current.txt b/api/current.txt
index 17588c7e0093..9aba0f3d3ee7 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -28170,6 +28170,7 @@ package android.telecom {
public final class DisconnectCause implements android.os.Parcelable {
ctor public DisconnectCause(int);
ctor public DisconnectCause(int, java.lang.String);
+ ctor public DisconnectCause(int, java.lang.CharSequence, java.lang.CharSequence, java.lang.String);
ctor public DisconnectCause(int, java.lang.CharSequence, java.lang.CharSequence, java.lang.String, int);
method public int describeContents();
method public int getCode();
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index 53912e1fd859..a19fbd368903 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -3587,7 +3587,7 @@ public class Intent implements Parcelable, Cloneable {
* creating new document tasks.
*
* <p>This flag is ignored if one of {@link #FLAG_ACTIVITY_NEW_TASK} or
- * {@link #FLAG_ACTIVITY_NEW_TASK} is not also set.
+ * {@link #FLAG_ACTIVITY_NEW_DOCUMENT} is not also set.
*
* <p>See
* <a href="{@docRoot}guide/topics/fundamentals/tasks-and-back-stack.html">Tasks and Back
diff --git a/core/java/android/widget/RadialTimePickerView.java b/core/java/android/widget/RadialTimePickerView.java
index 046028233f63..56f126cbe447 100644
--- a/core/java/android/widget/RadialTimePickerView.java
+++ b/core/java/android/widget/RadialTimePickerView.java
@@ -557,7 +557,7 @@ public class RadialTimePickerView extends View implements View.OnTouchListener {
if (mIsOnInnerCircle && hour == 0) {
// Inner circle is 1 through 12.
hour = 12;
- } else if (hour != 0) {
+ } else if (!mIsOnInnerCircle && hour != 0) {
// Outer circle is 13 through 23 and 0.
hour += 12;
}
diff --git a/packages/SystemUI/res/layout/super_status_bar.xml b/packages/SystemUI/res/layout/super_status_bar.xml
index 29fec416c656..6d3f976a73e9 100644
--- a/packages/SystemUI/res/layout/super_status_bar.xml
+++ b/packages/SystemUI/res/layout/super_status_bar.xml
@@ -26,7 +26,7 @@
android:fitsSystemWindows="true"
android:descendantFocusability="afterDescendants">
- <com.android.systemui.statusbar.AlphaOptimizedFrameLayout
+ <com.android.systemui.statusbar.BackDropView
android:id="@+id/backdrop"
android:layout_width="match_parent"
android:layout_height="match_parent"
@@ -41,9 +41,9 @@
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:visibility="invisible" />
- </com.android.systemui.statusbar.AlphaOptimizedFrameLayout>
+ </com.android.systemui.statusbar.BackDropView>
- <View android:id="@+id/scrim_behind"
+ <com.android.systemui.statusbar.ScrimView android:id="@+id/scrim_behind"
android:layout_width="match_parent"
android:layout_height="match_parent" />
@@ -80,7 +80,7 @@
android:visibility="gone" />
</com.android.systemui.statusbar.phone.PanelHolder>
- <View android:id="@+id/scrim_in_front"
+ <com.android.systemui.statusbar.ScrimView android:id="@+id/scrim_in_front"
android:layout_width="match_parent"
android:layout_height="match_parent" />
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BackDropView.java b/packages/SystemUI/src/com/android/systemui/statusbar/BackDropView.java
new file mode 100644
index 000000000000..f1eb9febfb33
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BackDropView.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.systemui.statusbar;
+
+import android.content.Context;
+import android.util.AttributeSet;
+import android.view.View;
+import android.widget.FrameLayout;
+
+/**
+ * A view who contains media artwork.
+ */
+public class BackDropView extends FrameLayout
+{
+ private Runnable mOnVisibilityChangedRunnable;
+
+ public BackDropView(Context context) {
+ super(context);
+ }
+
+ public BackDropView(Context context, AttributeSet attrs) {
+ super(context, attrs);
+ }
+
+ public BackDropView(Context context, AttributeSet attrs, int defStyleAttr) {
+ super(context, attrs, defStyleAttr);
+ }
+
+ public BackDropView(Context context, AttributeSet attrs, int defStyleAttr,
+ int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ public boolean hasOverlappingRendering() {
+ return false;
+ }
+
+ @Override
+ protected void onVisibilityChanged(View changedView, int visibility) {
+ super.onVisibilityChanged(changedView, visibility);
+ if (changedView == this && mOnVisibilityChangedRunnable != null) {
+ mOnVisibilityChangedRunnable.run();
+ }
+ }
+
+ public void setOnVisibilityChangedRunnable(Runnable runnable) {
+ mOnVisibilityChangedRunnable = runnable;
+ }
+
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java b/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java
new file mode 100644
index 000000000000..23534255db11
--- /dev/null
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ScrimView.java
@@ -0,0 +1,123 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.systemui.statusbar;
+
+import android.animation.Animator;
+import android.animation.AnimatorListenerAdapter;
+import android.animation.ValueAnimator;
+import android.content.Context;
+import android.graphics.Canvas;
+import android.graphics.Color;
+import android.graphics.PorterDuff;
+import android.util.AttributeSet;
+import android.view.View;
+import android.view.animation.Interpolator;
+
+/**
+ * A view which can draw a scrim
+ */
+public class ScrimView extends View
+{
+ private int mScrimColor;
+ private boolean mIsEmpty;
+ private boolean mDrawAsSrc;
+ private float mViewAlpha = 1.0f;
+ private ValueAnimator mAlphaAnimator;
+ private ValueAnimator.AnimatorUpdateListener mAlphaUpdateListener
+ = new ValueAnimator.AnimatorUpdateListener() {
+ @Override
+ public void onAnimationUpdate(ValueAnimator animation) {
+ mViewAlpha = (float) animation.getAnimatedValue();
+ invalidate();
+ }
+ };
+ private AnimatorListenerAdapter mClearAnimatorListener = new AnimatorListenerAdapter() {
+ @Override
+ public void onAnimationEnd(Animator animation) {
+ mAlphaAnimator = null;
+ }
+ };
+
+ public ScrimView(Context context) {
+ this(context, null);
+ }
+
+ public ScrimView(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public ScrimView(Context context, AttributeSet attrs, int defStyleAttr) {
+ this(context, attrs, defStyleAttr, 0);
+ }
+
+ public ScrimView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ }
+
+ @Override
+ protected void onDraw(Canvas canvas) {
+ if (mDrawAsSrc || !mIsEmpty) {
+ PorterDuff.Mode mode = mDrawAsSrc ? PorterDuff.Mode.SRC : PorterDuff.Mode.SRC_OVER;
+ int color = mScrimColor;
+ color = Color.argb((int) (Color.alpha(color) * mViewAlpha), Color.red(color),
+ Color.green(color), Color.blue(color));
+ canvas.drawColor(color, mode);
+ }
+ }
+
+ public void setDrawAsSrc(boolean asSrc) {
+ mDrawAsSrc = asSrc;
+ invalidate();
+ }
+
+ public void setScrimColor(int color) {
+ if (color != mScrimColor) {
+ mIsEmpty = Color.alpha(color) == 0;
+ mScrimColor = color;
+ invalidate();
+ }
+ }
+
+ public int getScrimColor() {
+ return mScrimColor;
+ }
+
+ @Override
+ public boolean hasOverlappingRendering() {
+ return false;
+ }
+
+ public void setViewAlpha(float alpha) {
+ if (mAlphaAnimator != null) {
+ mAlphaAnimator.cancel();
+ }
+ mViewAlpha = alpha;
+ invalidate();
+ }
+
+ public void animateViewAlpha(float alpha, long durationOut, Interpolator interpolator) {
+ if (mAlphaAnimator != null) {
+ mAlphaAnimator.cancel();
+ }
+ mAlphaAnimator = ValueAnimator.ofFloat(mViewAlpha, alpha);
+ mAlphaAnimator.addUpdateListener(mAlphaUpdateListener);
+ mAlphaAnimator.addListener(mClearAnimatorListener);
+ mAlphaAnimator.setInterpolator(interpolator);
+ mAlphaAnimator.setDuration(durationOut);
+ mAlphaAnimator.start();
+ }
+}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 624fea518cfa..5e9a64ccc6ca 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -51,7 +51,9 @@ import android.graphics.ColorFilter;
import android.graphics.PixelFormat;
import android.graphics.Point;
import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
+import android.graphics.Xfermode;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.inputmethodservice.InputMethodService;
@@ -120,6 +122,7 @@ import com.android.systemui.doze.DozeService;
import com.android.systemui.keyguard.KeyguardViewMediator;
import com.android.systemui.qs.QSPanel;
import com.android.systemui.statusbar.ActivatableNotificationView;
+import com.android.systemui.statusbar.BackDropView;
import com.android.systemui.statusbar.BaseStatusBar;
import com.android.systemui.statusbar.CommandQueue;
import com.android.systemui.statusbar.DismissView;
@@ -131,6 +134,7 @@ import com.android.systemui.statusbar.KeyguardIndicationController;
import com.android.systemui.statusbar.NotificationData;
import com.android.systemui.statusbar.NotificationData.Entry;
import com.android.systemui.statusbar.NotificationOverflowContainer;
+import com.android.systemui.statusbar.ScrimView;
import com.android.systemui.statusbar.SignalClusterView;
import com.android.systemui.statusbar.SpeedBumpView;
import com.android.systemui.statusbar.StatusBarIconView;
@@ -431,8 +435,10 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
public static final Interpolator ALPHA_IN = new PathInterpolator(0.4f, 0f, 1f, 1f);
public static final Interpolator ALPHA_OUT = new PathInterpolator(0f, 0f, 0.8f, 1f);
- private FrameLayout mBackdrop;
+ private BackDropView mBackdrop;
private ImageView mBackdropFront, mBackdropBack;
+ private PorterDuffXfermode mSrcXferMode = new PorterDuffXfermode(PorterDuff.Mode.SRC);
+ private PorterDuffXfermode mSrcOverXferMode = new PorterDuffXfermode(PorterDuff.Mode.SRC_OVER);
private MediaSessionManager mMediaSessionManager;
private MediaController mMediaController;
@@ -723,8 +729,14 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
mStackScroller.setDismissView(mDismissView);
mExpandedContents = mStackScroller;
- mScrimController = new ScrimController(mStatusBarWindow.findViewById(R.id.scrim_behind),
- mStatusBarWindow.findViewById(R.id.scrim_in_front));
+ mBackdrop = (BackDropView) mStatusBarWindow.findViewById(R.id.backdrop);
+ mBackdropFront = (ImageView) mBackdrop.findViewById(R.id.backdrop_front);
+ mBackdropBack = (ImageView) mBackdrop.findViewById(R.id.backdrop_back);
+
+ ScrimView scrimBehind = (ScrimView) mStatusBarWindow.findViewById(R.id.scrim_behind);
+ ScrimView scrimInFront = (ScrimView) mStatusBarWindow.findViewById(R.id.scrim_in_front);
+ mScrimController = new ScrimController(scrimBehind, scrimInFront);
+ mScrimController.setBackDropView(mBackdrop);
mStatusBarView.setScrimController(mScrimController);
mHeader = (StatusBarHeaderView) mStatusBarWindow.findViewById(R.id.header);
@@ -863,10 +875,6 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
});
}
- mBackdrop = (FrameLayout) mStatusBarWindow.findViewById(R.id.backdrop);
- mBackdropFront = (ImageView) mBackdrop.findViewById(R.id.backdrop_front);
- mBackdropBack = (ImageView) mBackdrop.findViewById(R.id.backdrop_back);
-
// User info. Trigger first load.
mHeader.setUserInfoController(mUserInfoController);
mKeyguardStatusBar.setUserInfoController(mUserInfoController);
@@ -1852,7 +1860,9 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
}
if (metaDataChanged) {
if (mBackdropBack.getDrawable() != null) {
- mBackdropFront.setImageDrawable(mBackdropBack.getDrawable());
+ Drawable drawable = mBackdropBack.getDrawable();
+ mBackdropFront.setImageDrawable(drawable);
+ mBackdropFront.getDrawable().mutate().setXfermode(mSrcOverXferMode);
mBackdropFront.setAlpha(1f);
mBackdropFront.setVisibility(View.VISIBLE);
} else {
@@ -1867,6 +1877,7 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
} else {
mBackdropBack.setImageBitmap(artworkBitmap);
}
+ mBackdropBack.getDrawable().mutate().setXfermode(mSrcXferMode);
if (mBackdropFront.getVisibility() == View.VISIBLE) {
if (DEBUG_MEDIA) {
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
index ddb03e7fac68..a502470480d5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java
@@ -21,7 +21,6 @@ import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.content.Context;
import android.graphics.Color;
-import android.graphics.drawable.ColorDrawable;
import android.util.Log;
import android.view.View;
import android.view.ViewTreeObserver;
@@ -31,6 +30,8 @@ import android.view.animation.Interpolator;
import com.android.systemui.R;
import com.android.systemui.doze.DozeLog;
+import com.android.systemui.statusbar.BackDropView;
+import com.android.systemui.statusbar.ScrimView;
/**
* Controls both the scrim behind the notifications and in front of the notifications (when a
@@ -48,8 +49,8 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
private static final float SCRIM_IN_FRONT_ALPHA = 0.75f;
private static final int TAG_KEY_ANIM = R.id.scrim;
- private final View mScrimBehind;
- private final View mScrimInFront;
+ private final ScrimView mScrimBehind;
+ private final ScrimView mScrimInFront;
private final UnlockMethodCache mUnlockMethodCache;
private final DozeParameters mDozeParameters;
@@ -70,8 +71,9 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
private long mPulseEndTime;
private final Interpolator mInterpolator = new DecelerateInterpolator();
private final Interpolator mLinearOutSlowInInterpolator;
+ private BackDropView mBackDropView;
- public ScrimController(View scrimBehind, View scrimInFront) {
+ public ScrimController(ScrimView scrimBehind, ScrimView scrimInFront) {
mScrimBehind = scrimBehind;
mScrimInFront = scrimInFront;
final Context context = scrimBehind.getContext();
@@ -230,17 +232,17 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
}
}
- private void setScrimColor(View scrim, float alpha) {
+ private void setScrimColor(ScrimView scrim, float alpha) {
int color = Color.argb((int) (alpha * 255), 0, 0, 0);
if (mAnimateChange) {
startScrimAnimation(scrim, color);
} else {
- scrim.setBackgroundColor(color);
+ scrim.setScrimColor(color);
}
}
- private void startScrimAnimation(final View scrim, int targetColor) {
- int current = getBackgroundAlpha(scrim);
+ private void startScrimAnimation(final ScrimView scrim, int targetColor) {
+ int current = Color.alpha(scrim.getScrimColor());
int target = Color.alpha(targetColor);
if (current == targetColor) {
return;
@@ -254,7 +256,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
int value = (int) animation.getAnimatedValue();
- scrim.setBackgroundColor(Color.argb(value, 0, 0, 0));
+ scrim.setScrimColor(Color.argb(value, 0, 0, 0));
}
});
anim.setInterpolator(mAnimateKeyguardFadingOut
@@ -278,15 +280,6 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
mAnimationStarted = true;
}
- private int getBackgroundAlpha(View scrim) {
- if (scrim.getBackground() instanceof ColorDrawable) {
- ColorDrawable drawable = (ColorDrawable) scrim.getBackground();
- return Color.alpha(drawable.getColor());
- } else {
- return 0;
- }
- }
-
@Override
public boolean onPreDraw() {
mScrimBehind.getViewTreeObserver().removeOnPreDrawListener(this);
@@ -349,4 +342,20 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener {
mPulseEndTime = 0;
}
};
+
+ public void setBackDropView(BackDropView backDropView) {
+ mBackDropView = backDropView;
+ mBackDropView.setOnVisibilityChangedRunnable(new Runnable() {
+ @Override
+ public void run() {
+ updateScrimBehindDrawingMode();
+ }
+ });
+ updateScrimBehindDrawingMode();
+ }
+
+ private void updateScrimBehindDrawingMode() {
+ boolean asSrc = mBackDropView.getVisibility() != View.VISIBLE;
+ mScrimBehind.setDrawAsSrc(asSrc);
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index 78554525e720..89ce257cec08 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -20,12 +20,17 @@ import android.app.StatusBarManager;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Paint;
+import android.graphics.PorterDuff;
+import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
+import android.os.IBinder;
import android.util.AttributeSet;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewRootImpl;
+import android.view.WindowManager;
+import android.view.WindowManagerGlobal;
import android.widget.FrameLayout;
import com.android.systemui.R;
@@ -45,11 +50,14 @@ public class StatusBarWindowView extends FrameLayout {
private View mBrightnessMirror;
PhoneStatusBar mService;
+ private final Paint mTransparentSrcPaint = new Paint();
public StatusBarWindowView(Context context, AttributeSet attrs) {
super(context, attrs);
setMotionEventSplittingEnabled(false);
- setWillNotDraw(!DEBUG);
+ setWillNotDraw(false);
+ mTransparentSrcPaint.setColor(0);
+ mTransparentSrcPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC));
}
@Override
@@ -93,6 +101,15 @@ public class StatusBarWindowView extends FrameLayout {
if (root != null) {
root.setDrawDuringWindowsAnimating(true);
}
+
+ // We need to ensure that our window doesn't suffer from overdraw which would normally
+ // occur if our window is translucent. Since we are drawing the whole window anyway with
+ // the scrim, we don't need the window to be cleared in the beginning.
+ IBinder windowToken = getWindowToken();
+ WindowManager.LayoutParams lp = (WindowManager.LayoutParams) getLayoutParams();
+ lp.token = windowToken;
+ setLayoutParams(lp);
+ WindowManagerGlobal.getInstance().changeCanvasOpacity(windowToken, true);
}
@Override
@@ -182,6 +199,24 @@ public class StatusBarWindowView extends FrameLayout {
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
+ // We need to ensure that our window is always drawn fully even when we have paddings,
+ // since we simulate it to be opaque.
+ int paddedBottom = getHeight() - getPaddingBottom();
+ int paddedRight = getWidth() - getPaddingRight();
+ if (getPaddingTop() != 0) {
+ canvas.drawRect(0, 0, getWidth(), getPaddingTop(), mTransparentSrcPaint);
+ }
+ if (getPaddingBottom() != 0) {
+ canvas.drawRect(0, paddedBottom, getWidth(), getHeight(), mTransparentSrcPaint);
+ }
+ if (getPaddingLeft() != 0) {
+ canvas.drawRect(0, getPaddingTop(), getPaddingLeft(), paddedBottom,
+ mTransparentSrcPaint);
+ }
+ if (getPaddingRight() != 0) {
+ canvas.drawRect(paddedRight, getPaddingTop(), getWidth(), paddedBottom,
+ mTransparentSrcPaint);
+ }
if (DEBUG) {
Paint pt = new Paint();
pt.setColor(0x80FFFF00);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java
index 7bd2e5c6df04..895af628e1d2 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/BrightnessMirrorController.java
@@ -17,11 +17,11 @@
package com.android.systemui.statusbar.policy;
import com.android.systemui.R;
+import com.android.systemui.statusbar.ScrimView;
import com.android.systemui.statusbar.phone.PhoneStatusBar;
import com.android.systemui.statusbar.phone.StatusBarWindowView;
import android.view.View;
-import android.view.ViewGroup;
import android.view.ViewPropertyAnimator;
import android.widget.FrameLayout;
@@ -33,26 +33,26 @@ public class BrightnessMirrorController {
public long TRANSITION_DURATION_OUT = 150;
public long TRANSITION_DURATION_IN = 200;
- private final View mScrimBehind;
+ private final ScrimView mScrimBehind;
private final View mBrightnessMirror;
private final View mPanelHolder;
private final int[] mInt2Cache = new int[2];
public BrightnessMirrorController(StatusBarWindowView statusBarWindow) {
- mScrimBehind = statusBarWindow.findViewById(R.id.scrim_behind);
+ mScrimBehind = (ScrimView) statusBarWindow.findViewById(R.id.scrim_behind);
mBrightnessMirror = statusBarWindow.findViewById(R.id.brightness_mirror);
mPanelHolder = statusBarWindow.findViewById(R.id.panel_holder);
}
public void showMirror() {
mBrightnessMirror.setVisibility(View.VISIBLE);
- outAnimation(mScrimBehind.animate());
+ mScrimBehind.animateViewAlpha(0.0f, TRANSITION_DURATION_OUT, PhoneStatusBar.ALPHA_OUT);
outAnimation(mPanelHolder.animate())
.withLayer();
}
public void hideMirror() {
- inAnimation(mScrimBehind.animate());
+ mScrimBehind.animateViewAlpha(1.0f, TRANSITION_DURATION_IN, PhoneStatusBar.ALPHA_IN);
inAnimation(mPanelHolder.animate())
.withLayer()
.withEndAction(new Runnable() {
diff --git a/telecomm/java/android/telecom/Call.java b/telecomm/java/android/telecom/Call.java
index b0b6fb93dcfa..a71161adda37 100644
--- a/telecomm/java/android/telecom/Call.java
+++ b/telecomm/java/android/telecom/Call.java
@@ -161,7 +161,7 @@ public final class Call {
/**
* @return For a {@link #STATE_DISCONNECTED} {@code Call}, the disconnect cause expressed
- * by {@link android.telecomm.DisconnectCause}.
+ * by {@link android.telecom.DisconnectCause}.
*/
public DisconnectCause getDisconnectCause() {
return mDisconnectCause;
diff --git a/telecomm/java/android/telecom/DisconnectCause.java b/telecomm/java/android/telecom/DisconnectCause.java
index cae115db03a2..9be01380956a 100644
--- a/telecomm/java/android/telecom/DisconnectCause.java
+++ b/telecomm/java/android/telecom/DisconnectCause.java
@@ -85,6 +85,17 @@ public final class DisconnectCause implements Parcelable {
/**
* Creates a new DisconnectCause.
+ * @param label The localized label to show to the user to explain the disconnect.
+ * @param code The code for the disconnect cause.
+ * @param description The localized description to show to the user to explain the disconnect.
+ * @param reason The reason for the disconnect.
+ */
+ public DisconnectCause(int code, CharSequence label, CharSequence description, String reason) {
+ this(code, label, description, reason, ToneGenerator.TONE_UNKNOWN);
+ }
+
+ /**
+ * Creates a new DisconnectCause.
*
* @param code The code for the disconnect cause.
* @param label The localized label to show to the user to explain the disconnect.