Merge changes Ic76d996f,Ib9eefacb,If1b63340,I399c66af into oc-dev

am: 947be6bed9

Change-Id: Idf18de3db5b8e42e3a705ed1746ea078a87b6f2a
This commit is contained in:
Selim Cinek
2017-04-20 00:15:13 +00:00
committed by android-build-merger
8 changed files with 59 additions and 19 deletions

View File

@@ -3251,7 +3251,6 @@ public class Notification implements Parcelable
* However, for {@link MediaStyle} and {@link DecoratedMediaCustomViewStyle} notifications
* that have a media session attached there is no such requirement.
*
* @see Builder#setOngoing(boolean)
* @see Builder#setColor(int)
* @see MediaStyle#setMediaSession(MediaSession.Token)
*/
@@ -3742,6 +3741,11 @@ public class Notification implements Parcelable
return mActionBarColor;
}
private int getActionBarColorDeEmphasized() {
int backgroundColor = getBackgroundColor();
return NotificationColorUtil.getShiftedColor(backgroundColor, 12);
}
private void setTextViewColorSecondary(RemoteViews contentView, int id) {
ensureColors();
contentView.setTextColor(id, mSecondaryTextColor);
@@ -4316,8 +4320,13 @@ public class Notification implements Parcelable
// TODO: handle emphasized mode / actions right
if (emphazisedMode) {
// change the background bgColor
int bgColor = mContext.getColor(oddAction ? R.color.notification_action_list
: R.color.notification_action_list_dark);
int bgColor;
if (isColorized()) {
bgColor = oddAction ? getActionBarColor() : getActionBarColorDeEmphasized();
} else {
bgColor = mContext.getColor(oddAction ? R.color.notification_action_list
: R.color.notification_action_list_dark);
}
button.setDrawableParameters(R.id.button_holder, true, -1, bgColor,
PorterDuff.Mode.SRC_ATOP, -1);
CharSequence title = action.title;

View File

@@ -460,13 +460,25 @@ public class NotificationColorUtil {
if (backgroundColor == Notification.COLOR_DEFAULT) {
return context.getColor(com.android.internal.R.color.notification_action_list);
}
boolean useDark = shouldUseDark(backgroundColor);
return getShiftedColor(backgroundColor, 7);
}
/**
* Get a color that stays in the same tint, but darkens or lightens it by a certain
* amount.
* This also looks at the lightness of the provided color and shifts it appropriately.
*
* @param color the base color to use
* @param amount the amount from 1 to 100 how much to modify the color
* @return the now color that was modified
*/
public static int getShiftedColor(int color, int amount) {
final double[] result = ColorUtilsFromCompat.getTempDouble3Array();
ColorUtilsFromCompat.colorToLAB(backgroundColor, result);
if (useDark && result[0] < 97 || !useDark && result[0] < 4) {
result[0] = Math.min(100, result[0] + 7);
ColorUtilsFromCompat.colorToLAB(color, result);
if (result[0] >= 4) {
result[0] = Math.max(0, result[0] - amount);
} else {
result[0] = Math.max(0, result[0] - 7);
result[0] = Math.min(100, result[0] + amount);
}
return ColorUtilsFromCompat.LABToColor(result[0], result[1], result[2]);
}

View File

@@ -20,6 +20,7 @@ import android.annotation.Nullable;
import android.content.Context;
import android.graphics.Rect;
import android.util.AttributeSet;
import android.view.View;
import android.view.accessibility.AccessibilityNodeInfo;
import android.widget.Button;
import android.widget.ImageView;
@@ -30,6 +31,8 @@ import android.widget.RemoteViews;
*/
@RemoteViews.RemoteView
public class NotificationExpandButton extends ImageView {
private View mLabeledBy;
public NotificationExpandButton(Context context) {
super(context);
}
@@ -66,5 +69,12 @@ public class NotificationExpandButton extends ImageView {
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) {
super.onInitializeAccessibilityNodeInfo(info);
info.setClassName(Button.class.getName());
if (mLabeledBy != null) {
info.setLabeledBy(mLabeledBy);
}
}
public void setLabeledBy(View labeledBy) {
mLabeledBy = labeledBy;
}
}

View File

@@ -41,6 +41,8 @@ public class Interpolators {
public static final Interpolator CUSTOM_40_40 = new PathInterpolator(0.4f, 0f, 0.6f, 1f);
public static final Interpolator HEADS_UP_APPEAR = new HeadsUpAppearInterpolator();
public static final Interpolator ICON_OVERSHOT = new PathInterpolator(0.4f, 0f, 0.2f, 1.4f);
public static final Interpolator PANEL_CLOSE_ACCELERATED
= new PathInterpolator(0.3f, 0, 0.5f, 1);
/**
* Interpolator to be used when animating a move based on a click. Pair with enough duration.

View File

@@ -29,6 +29,7 @@ import android.view.animation.PathInterpolator;
import android.widget.ImageView;
import android.widget.TextView;
import com.android.internal.widget.NotificationExpandButton;
import com.android.systemui.Interpolators;
import com.android.systemui.ViewInvertHelper;
import com.android.systemui.statusbar.ExpandableNotificationRow;
@@ -54,7 +55,7 @@ public class NotificationHeaderViewWrapper extends NotificationViewWrapper {
protected int mColor;
private ImageView mIcon;
private ImageView mExpandButton;
private NotificationExpandButton mExpandButton;
private NotificationHeaderView mNotificationHeader;
private TextView mHeaderText;
private ImageView mWorkProfileImage;
@@ -106,13 +107,13 @@ public class NotificationHeaderViewWrapper extends NotificationViewWrapper {
}
protected void resolveHeaderViews() {
mIcon = (ImageView) mView.findViewById(com.android.internal.R.id.icon);
mHeaderText = (TextView) mView.findViewById(com.android.internal.R.id.header_text);
mExpandButton = (ImageView) mView.findViewById(com.android.internal.R.id.expand_button);
mWorkProfileImage = (ImageView) mView.findViewById(com.android.internal.R.id.profile_badge);
mIcon = mView.findViewById(com.android.internal.R.id.icon);
mHeaderText = mView.findViewById(com.android.internal.R.id.header_text);
mExpandButton = mView.findViewById(com.android.internal.R.id.expand_button);
mExpandButton.setLabeledBy(mRow);
mWorkProfileImage = mView.findViewById(com.android.internal.R.id.profile_badge);
mColor = resolveColor(mExpandButton);
mNotificationHeader = (NotificationHeaderView) mView.findViewById(
com.android.internal.R.id.notification_header);
mNotificationHeader = mView.findViewById(com.android.internal.R.id.notification_header);
getDozer().setColor(mColor);
}

View File

@@ -83,7 +83,7 @@ public class FingerprintUnlockController extends KeyguardUpdateMonitorCallback {
/**
* How much faster we collapse the lockscreen when authenticating with fingerprint.
*/
private static final float FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR = 1.3f;
private static final float FINGERPRINT_COLLAPSE_SPEEDUP_FACTOR = 1.1f;
private PowerManager mPowerManager;
private Handler mHandler = new Handler();

View File

@@ -2022,7 +2022,7 @@ public class NotificationPanelView extends PanelView implements
@Override
protected boolean shouldUseDismissingAnimation() {
return mStatusBarState != StatusBarState.SHADE
&& !mStatusBar.isKeyguardCurrentlySecure();
&& (!mStatusBar.isKeyguardCurrentlySecure() || !isTracking());
}
@Override

View File

@@ -725,8 +725,14 @@ public abstract class PanelView extends FrameLayout {
}
} else {
if (shouldUseDismissingAnimation()) {
mFlingAnimationUtilsDismissing.apply(animator, mExpandedHeight, target, vel,
getHeight());
if (vel == 0) {
animator.setInterpolator(Interpolators.PANEL_CLOSE_ACCELERATED);
long duration = (long) (200 + mExpandedHeight / getHeight() * 100);
animator.setDuration(duration);
} else {
mFlingAnimationUtilsDismissing.apply(animator, mExpandedHeight, target, vel,
getHeight());
}
} else {
mFlingAnimationUtilsClosing
.apply(animator, mExpandedHeight, target, vel, getHeight());