Merge "Always show lock icon if device is locked" into sc-dev
This commit is contained in:
@@ -659,13 +659,6 @@
|
|||||||
<!--sensorRadius -->
|
<!--sensorRadius -->
|
||||||
</integer-array>
|
</integer-array>
|
||||||
|
|
||||||
<!-- The properties of the lock icon in pixels. -->
|
|
||||||
<integer-array name="config_lock_icon_props">
|
|
||||||
<!-- X -->
|
|
||||||
<!-- Y -->
|
|
||||||
<!-- radius -->
|
|
||||||
</integer-array>
|
|
||||||
|
|
||||||
<!-- Overrides the behavior of the face unlock keyguard bypass setting:
|
<!-- Overrides the behavior of the face unlock keyguard bypass setting:
|
||||||
0 - Don't override the setting (default)
|
0 - Don't override the setting (default)
|
||||||
1 - Override the setting to always bypass keyguard
|
1 - Override the setting to always bypass keyguard
|
||||||
|
|||||||
@@ -16,7 +16,6 @@
|
|||||||
|
|
||||||
package com.android.keyguard;
|
package com.android.keyguard;
|
||||||
|
|
||||||
import android.annotation.NonNull;
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
import android.graphics.RectF;
|
import android.graphics.RectF;
|
||||||
@@ -24,10 +23,17 @@ import android.util.AttributeSet;
|
|||||||
import android.widget.FrameLayout;
|
import android.widget.FrameLayout;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
|
|
||||||
|
import androidx.annotation.NonNull;
|
||||||
|
|
||||||
|
import com.android.systemui.Dumpable;
|
||||||
|
|
||||||
|
import java.io.FileDescriptor;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A view positioned under the notification shade.
|
* A view positioned under the notification shade.
|
||||||
*/
|
*/
|
||||||
public class LockIconView extends ImageView {
|
public class LockIconView extends ImageView implements Dumpable {
|
||||||
@NonNull private final RectF mSensorRect;
|
@NonNull private final RectF mSensorRect;
|
||||||
@NonNull private PointF mLockIconCenter = new PointF(0f, 0f);
|
@NonNull private PointF mLockIconCenter = new PointF(0f, 0f);
|
||||||
private int mRadius;
|
private int mRadius;
|
||||||
@@ -63,4 +69,11 @@ public class LockIconView extends ImageView {
|
|||||||
float getLocationTop() {
|
float getLocationTop() {
|
||||||
return mLockIconCenter.y - mRadius;
|
return mLockIconCenter.y - mRadius;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
|
||||||
|
pw.println("Center in px (x, y)= (" + mLockIconCenter.x + ", " + mLockIconCenter.y + ")");
|
||||||
|
pw.println("Radius in pixels: " + mRadius);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,17 +18,17 @@ package com.android.keyguard;
|
|||||||
|
|
||||||
import static android.hardware.biometrics.BiometricSourceType.FINGERPRINT;
|
import static android.hardware.biometrics.BiometricSourceType.FINGERPRINT;
|
||||||
|
|
||||||
import static com.android.systemui.classifier.Classifier.DISABLED_UDFPS_AFFORDANCE;
|
import static com.android.systemui.classifier.Classifier.LOCK_ICON;
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
|
import android.content.res.Configuration;
|
||||||
import android.graphics.PointF;
|
import android.graphics.PointF;
|
||||||
import android.graphics.drawable.Drawable;
|
import android.graphics.drawable.Drawable;
|
||||||
import android.graphics.drawable.InsetDrawable;
|
import android.graphics.drawable.InsetDrawable;
|
||||||
import android.hardware.biometrics.BiometricSourceType;
|
import android.hardware.biometrics.BiometricSourceType;
|
||||||
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
|
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
|
||||||
import android.util.Log;
|
import android.util.DisplayMetrics;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
import android.view.ViewGroup;
|
|
||||||
import android.view.accessibility.AccessibilityManager;
|
import android.view.accessibility.AccessibilityManager;
|
||||||
import android.view.accessibility.AccessibilityNodeInfo;
|
import android.view.accessibility.AccessibilityNodeInfo;
|
||||||
|
|
||||||
@@ -73,15 +73,10 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
@NonNull private final AccessibilityManager mAccessibilityManager;
|
@NonNull private final AccessibilityManager mAccessibilityManager;
|
||||||
@NonNull private final ConfigurationController mConfigurationController;
|
@NonNull private final ConfigurationController mConfigurationController;
|
||||||
@NonNull private final DelayableExecutor mExecutor;
|
@NonNull private final DelayableExecutor mExecutor;
|
||||||
|
|
||||||
private boolean mHasUdfpsOrFaceAuthFeatures;
|
|
||||||
private boolean mUdfpsEnrolled;
|
private boolean mUdfpsEnrolled;
|
||||||
private boolean mFaceAuthEnrolled;
|
|
||||||
|
|
||||||
@NonNull private final Drawable mButton;
|
|
||||||
@NonNull private final Drawable mUnlockIcon;
|
@NonNull private final Drawable mUnlockIcon;
|
||||||
@NonNull private final Drawable mLockIcon;
|
@NonNull private final Drawable mLockIcon;
|
||||||
@NonNull private final CharSequence mDisabledLabel;
|
|
||||||
@NonNull private final CharSequence mUnlockedLabel;
|
@NonNull private final CharSequence mUnlockedLabel;
|
||||||
@NonNull private final CharSequence mLockedLabel;
|
@NonNull private final CharSequence mLockedLabel;
|
||||||
|
|
||||||
@@ -95,7 +90,12 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
private boolean mUserUnlockedWithBiometric;
|
private boolean mUserUnlockedWithBiometric;
|
||||||
private Runnable mCancelDelayedUpdateVisibilityRunnable;
|
private Runnable mCancelDelayedUpdateVisibilityRunnable;
|
||||||
|
|
||||||
private boolean mShowButton;
|
private boolean mHasUdfps;
|
||||||
|
private float mHeightPixels;
|
||||||
|
private float mWidthPixels;
|
||||||
|
private float mDensity;
|
||||||
|
private int mIndicationBottomPadding;
|
||||||
|
|
||||||
private boolean mShowUnlockIcon;
|
private boolean mShowUnlockIcon;
|
||||||
private boolean mShowLockIcon;
|
private boolean mShowLockIcon;
|
||||||
|
|
||||||
@@ -125,8 +125,6 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
mExecutor = executor;
|
mExecutor = executor;
|
||||||
|
|
||||||
final Context context = view.getContext();
|
final Context context = view.getContext();
|
||||||
mButton = context.getResources().getDrawable(
|
|
||||||
com.android.systemui.R.drawable.circle_white, context.getTheme());
|
|
||||||
mUnlockIcon = new InsetDrawable(context.getResources().getDrawable(
|
mUnlockIcon = new InsetDrawable(context.getResources().getDrawable(
|
||||||
com.android.internal.R.drawable.ic_lock_open, context.getTheme()),
|
com.android.internal.R.drawable.ic_lock_open, context.getTheme()),
|
||||||
context.getResources().getDimensionPixelSize(
|
context.getResources().getDimensionPixelSize(
|
||||||
@@ -135,8 +133,6 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
com.android.internal.R.drawable.ic_lock, context.getTheme()),
|
com.android.internal.R.drawable.ic_lock, context.getTheme()),
|
||||||
context.getResources().getDimensionPixelSize(
|
context.getResources().getDimensionPixelSize(
|
||||||
com.android.systemui.R.dimen.udfps_unlock_icon_inset));
|
com.android.systemui.R.dimen.udfps_unlock_icon_inset));
|
||||||
mDisabledLabel = context.getResources().getString(
|
|
||||||
R.string.accessibility_udfps_disabled_button);
|
|
||||||
mUnlockedLabel = context.getResources().getString(R.string.accessibility_unlock_button);
|
mUnlockedLabel = context.getResources().getString(R.string.accessibility_unlock_button);
|
||||||
mLockedLabel = context.getResources().getString(R.string.accessibility_lock_icon);
|
mLockedLabel = context.getResources().getString(R.string.accessibility_lock_icon);
|
||||||
dumpManager.registerDumpable("LockIconViewController", this);
|
dumpManager.registerDumpable("LockIconViewController", this);
|
||||||
@@ -149,37 +145,11 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onViewAttached() {
|
protected void onViewAttached() {
|
||||||
// we check this here instead of onInit since the FingeprintManager + FaceManager may not
|
// we check this here instead of onInit since the FingerprintManager + FaceManager may not
|
||||||
// have started up yet onInit
|
// have started up yet onInit
|
||||||
final boolean hasFaceAuth = mAuthController.getFaceAuthSensorLocation() != null;
|
mHasUdfps = mAuthController.getUdfpsSensorLocation() != null;
|
||||||
final boolean hasUdfps = mAuthController.getUdfpsSensorLocation() != null;
|
|
||||||
mHasUdfpsOrFaceAuthFeatures = hasFaceAuth || hasUdfps;
|
|
||||||
if (!mHasUdfpsOrFaceAuthFeatures) {
|
|
||||||
// Posting since removing a view in the middle of onAttach can lead to a crash in the
|
|
||||||
// iteration loop when the view isn't last
|
|
||||||
mView.setVisibility(View.GONE);
|
|
||||||
mView.post(() -> {
|
|
||||||
mView.setVisibility(View.VISIBLE);
|
|
||||||
((ViewGroup) mView.getParent()).removeView(mView);
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (hasUdfps) {
|
|
||||||
FingerprintSensorPropertiesInternal props = mAuthController.getUdfpsProps().get(0);
|
|
||||||
mView.setLocation(new PointF(props.sensorLocationX, props.sensorLocationY),
|
|
||||||
props.sensorRadius);
|
|
||||||
} else {
|
|
||||||
int[] props = mView.getContext().getResources().getIntArray(
|
|
||||||
com.android.systemui.R.array.config_lock_icon_props);
|
|
||||||
if (props == null || props.length < 3) {
|
|
||||||
Log.e("LockIconViewController", "lock icon position should be "
|
|
||||||
+ "setup in config under config_lock_icon_props");
|
|
||||||
props = new int[]{0, 0, 0};
|
|
||||||
}
|
|
||||||
mView.setLocation(new PointF(props[0], props[1]), props[2]);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
updateConfiguration();
|
||||||
updateKeyguardShowing();
|
updateKeyguardShowing();
|
||||||
mUserUnlockedWithBiometric = false;
|
mUserUnlockedWithBiometric = false;
|
||||||
mIsBouncerShowing = mKeyguardViewController.isBouncerShowing();
|
mIsBouncerShowing = mKeyguardViewController.isBouncerShowing();
|
||||||
@@ -220,7 +190,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean onAffordanceClick() {
|
private boolean onAffordanceClick() {
|
||||||
if (mFalsingManager.isFalseTouch(DISABLED_UDFPS_AFFORDANCE)) {
|
if (mFalsingManager.isFalseTouch(LOCK_ICON)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -245,32 +215,25 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
mCancelDelayedUpdateVisibilityRunnable = null;
|
mCancelDelayedUpdateVisibilityRunnable = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!mIsKeyguardShowing || (!mUdfpsEnrolled && !mFaceAuthEnrolled)) {
|
if (!mIsKeyguardShowing) {
|
||||||
mView.setVisibility(View.INVISIBLE);
|
mView.setVisibility(View.INVISIBLE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// these three states are mutually exclusive:
|
mShowLockIcon = !mCanDismissLockScreen && !mUserUnlockedWithBiometric && isLockScreen()
|
||||||
mShowButton = mUdfpsEnrolled && !mCanDismissLockScreen && !mRunningFPS
|
&& (!mUdfpsEnrolled || !mRunningFPS);
|
||||||
&& !mUserUnlockedWithBiometric && isLockScreen();
|
mShowUnlockIcon = mCanDismissLockScreen && isLockScreen();
|
||||||
mShowUnlockIcon = mFaceAuthEnrolled & mCanDismissLockScreen && isLockScreen();
|
|
||||||
mShowLockIcon = !mUdfpsEnrolled && !mCanDismissLockScreen && isLockScreen()
|
|
||||||
&& mFaceAuthEnrolled;
|
|
||||||
|
|
||||||
updateClickListener();
|
updateClickListener();
|
||||||
final CharSequence prevContentDescription = mView.getContentDescription();
|
final CharSequence prevContentDescription = mView.getContentDescription();
|
||||||
if (mShowButton) {
|
if (mShowLockIcon) {
|
||||||
mView.setImageDrawable(mButton);
|
mView.setImageDrawable(mLockIcon);
|
||||||
mView.setVisibility(View.VISIBLE);
|
mView.setVisibility(View.VISIBLE);
|
||||||
mView.setContentDescription(mDisabledLabel);
|
mView.setContentDescription(mLockedLabel);
|
||||||
} else if (mShowUnlockIcon) {
|
} else if (mShowUnlockIcon) {
|
||||||
mView.setImageDrawable(mUnlockIcon);
|
mView.setImageDrawable(mUnlockIcon);
|
||||||
mView.setVisibility(View.VISIBLE);
|
mView.setVisibility(View.VISIBLE);
|
||||||
mView.setContentDescription(mUnlockedLabel);
|
mView.setContentDescription(mUnlockedLabel);
|
||||||
} else if (mShowLockIcon) {
|
|
||||||
mView.setImageDrawable(mLockIcon);
|
|
||||||
mView.setVisibility(View.VISIBLE);
|
|
||||||
mView.setContentDescription(mLockedLabel);
|
|
||||||
} else {
|
} else {
|
||||||
mView.setVisibility(View.INVISIBLE);
|
mView.setVisibility(View.INVISIBLE);
|
||||||
mView.setContentDescription(null);
|
mView.setContentDescription(null);
|
||||||
@@ -293,7 +256,7 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
getResources().getString(R.string.accessibility_enter_hint));
|
getResources().getString(R.string.accessibility_enter_hint));
|
||||||
public void onInitializeAccessibilityNodeInfo(View v, AccessibilityNodeInfo info) {
|
public void onInitializeAccessibilityNodeInfo(View v, AccessibilityNodeInfo info) {
|
||||||
super.onInitializeAccessibilityNodeInfo(v, info);
|
super.onInitializeAccessibilityNodeInfo(v, info);
|
||||||
if (mShowButton || mShowLockIcon) {
|
if (mShowLockIcon) {
|
||||||
info.addAction(mAccessibilityAuthenticateHint);
|
info.addAction(mAccessibilityAuthenticateHint);
|
||||||
} else if (mShowUnlockIcon) {
|
} else if (mShowUnlockIcon) {
|
||||||
info.addAction(mAccessibilityEnterHint);
|
info.addAction(mAccessibilityEnterHint);
|
||||||
@@ -310,13 +273,19 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
|
|
||||||
private void updateClickListener() {
|
private void updateClickListener() {
|
||||||
if (mView != null) {
|
if (mView != null) {
|
||||||
mView.setOnClickListener(v -> onAffordanceClick());
|
if (mUdfpsEnrolled || mShowUnlockIcon) {
|
||||||
if (mAccessibilityManager.isTouchExplorationEnabled()) {
|
mView.setOnClickListener(v -> onAffordanceClick());
|
||||||
mView.setOnLongClickListener(null);
|
if (mAccessibilityManager.isTouchExplorationEnabled()) {
|
||||||
mView.setLongClickable(false);
|
mView.setOnLongClickListener(null);
|
||||||
|
mView.setLongClickable(false);
|
||||||
|
} else {
|
||||||
|
mView.setOnLongClickListener(v -> onAffordanceClick());
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
mView.setOnLongClickListener(v -> onAffordanceClick());
|
mView.setOnClickListener(null);
|
||||||
|
mView.setOnLongClickListener(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,13 +301,35 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
mLockIcon.setTint(color);
|
mLockIcon.setTint(color);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void updateConfiguration() {
|
||||||
|
final DisplayMetrics metrics = mView.getContext().getResources().getDisplayMetrics();
|
||||||
|
mWidthPixels = metrics.widthPixels;
|
||||||
|
mHeightPixels = metrics.heightPixels;
|
||||||
|
mDensity = metrics.density;
|
||||||
|
mIndicationBottomPadding = mView.getContext().getResources().getDimensionPixelSize(
|
||||||
|
R.dimen.keyguard_indication_bottom_padding);
|
||||||
|
updateLockIconLocation();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void updateLockIconLocation() {
|
||||||
|
if (mHasUdfps) {
|
||||||
|
FingerprintSensorPropertiesInternal props = mAuthController.getUdfpsProps().get(0);
|
||||||
|
mView.setLocation(new PointF(props.sensorLocationX, props.sensorLocationY),
|
||||||
|
props.sensorRadius);
|
||||||
|
} else {
|
||||||
|
final float distAboveKgBottomArea = 12 * mDensity;
|
||||||
|
final float radius = 36 * mDensity;
|
||||||
|
mView.setLocation(
|
||||||
|
new PointF(mWidthPixels / 2,
|
||||||
|
mHeightPixels - mIndicationBottomPadding - distAboveKgBottomArea - radius),
|
||||||
|
(int) radius);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
|
public void dump(@NonNull FileDescriptor fd, @NonNull PrintWriter pw, @NonNull String[] args) {
|
||||||
pw.println("mHasUdfpsOrFaceAuthFeatures: " + mHasUdfpsOrFaceAuthFeatures);
|
|
||||||
pw.println("mUdfpsEnrolled: " + mUdfpsEnrolled);
|
pw.println("mUdfpsEnrolled: " + mUdfpsEnrolled);
|
||||||
pw.println("mFaceAuthEnrolled: " + mFaceAuthEnrolled);
|
|
||||||
pw.println("mIsKeyguardShowing: " + mIsKeyguardShowing);
|
pw.println("mIsKeyguardShowing: " + mIsKeyguardShowing);
|
||||||
pw.println(" mShowBouncerButton: " + mShowButton);
|
|
||||||
pw.println(" mShowUnlockIcon: " + mShowUnlockIcon);
|
pw.println(" mShowUnlockIcon: " + mShowUnlockIcon);
|
||||||
pw.println(" mShowLockIcon: " + mShowLockIcon);
|
pw.println(" mShowLockIcon: " + mShowLockIcon);
|
||||||
pw.println(" mIsDozing: " + mIsDozing);
|
pw.println(" mIsDozing: " + mIsDozing);
|
||||||
@@ -348,6 +339,10 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
pw.println(" mCanDismissLockScreen: " + mCanDismissLockScreen);
|
pw.println(" mCanDismissLockScreen: " + mCanDismissLockScreen);
|
||||||
pw.println(" mStatusBarState: " + StatusBarState.toShortString(mStatusBarState));
|
pw.println(" mStatusBarState: " + StatusBarState.toShortString(mStatusBarState));
|
||||||
pw.println(" mQsExpanded: " + mQsExpanded);
|
pw.println(" mQsExpanded: " + mQsExpanded);
|
||||||
|
|
||||||
|
if (mView != null) {
|
||||||
|
mView.dump(fd, pw, args);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private StatusBarStateController.StateListener mStatusBarStateListener =
|
private StatusBarStateController.StateListener mStatusBarStateListener =
|
||||||
@@ -420,7 +415,6 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
public void onKeyguardShowingChanged() {
|
public void onKeyguardShowingChanged() {
|
||||||
updateKeyguardShowing();
|
updateKeyguardShowing();
|
||||||
mUdfpsEnrolled = mKeyguardUpdateMonitor.isUdfpsEnrolled();
|
mUdfpsEnrolled = mKeyguardUpdateMonitor.isUdfpsEnrolled();
|
||||||
mFaceAuthEnrolled = mKeyguardUpdateMonitor.isFaceEnrolled();
|
|
||||||
updateVisibility();
|
updateVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -447,6 +441,11 @@ public class LockIconViewController extends ViewController<LockIconView> impleme
|
|||||||
public void onOverlayChanged() {
|
public void onOverlayChanged() {
|
||||||
updateColors();
|
updateColors();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onConfigChanged(Configuration newConfig) {
|
||||||
|
updateConfiguration();
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
private final AccessibilityManager.TouchExplorationStateChangeListener
|
private final AccessibilityManager.TouchExplorationStateChangeListener
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ public abstract class Classifier {
|
|||||||
public static final int SHADE_DRAG = 11;
|
public static final int SHADE_DRAG = 11;
|
||||||
public static final int QS_COLLAPSE = 12;
|
public static final int QS_COLLAPSE = 12;
|
||||||
public static final int UDFPS_AUTHENTICATION = 13;
|
public static final int UDFPS_AUTHENTICATION = 13;
|
||||||
public static final int DISABLED_UDFPS_AFFORDANCE = 14;
|
public static final int LOCK_ICON = 14;
|
||||||
public static final int QS_SWIPE = 15;
|
public static final int QS_SWIPE = 15;
|
||||||
public static final int BACK_GESTURE = 16;
|
public static final int BACK_GESTURE = 16;
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ public abstract class Classifier {
|
|||||||
QS_COLLAPSE,
|
QS_COLLAPSE,
|
||||||
BRIGHTNESS_SLIDER,
|
BRIGHTNESS_SLIDER,
|
||||||
UDFPS_AUTHENTICATION,
|
UDFPS_AUTHENTICATION,
|
||||||
DISABLED_UDFPS_AFFORDANCE,
|
LOCK_ICON,
|
||||||
QS_SWIPE,
|
QS_SWIPE,
|
||||||
BACK_GESTURE
|
BACK_GESTURE
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -155,7 +155,7 @@ class DistanceClassifier extends FalsingClassifier {
|
|||||||
|| interactionType == SHADE_DRAG
|
|| interactionType == SHADE_DRAG
|
||||||
|| interactionType == QS_COLLAPSE
|
|| interactionType == QS_COLLAPSE
|
||||||
|| interactionType == Classifier.UDFPS_AUTHENTICATION
|
|| interactionType == Classifier.UDFPS_AUTHENTICATION
|
||||||
|| interactionType == Classifier.DISABLED_UDFPS_AFFORDANCE
|
|| interactionType == Classifier.LOCK_ICON
|
||||||
|| interactionType == Classifier.QS_SWIPE) {
|
|| interactionType == Classifier.QS_SWIPE) {
|
||||||
return Result.passed(0);
|
return Result.passed(0);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -46,7 +46,7 @@ public class TypeClassifier extends FalsingClassifier {
|
|||||||
@Classifier.InteractionType int interactionType,
|
@Classifier.InteractionType int interactionType,
|
||||||
double historyBelief, double historyConfidence) {
|
double historyBelief, double historyConfidence) {
|
||||||
if (interactionType == Classifier.UDFPS_AUTHENTICATION
|
if (interactionType == Classifier.UDFPS_AUTHENTICATION
|
||||||
|| interactionType == Classifier.DISABLED_UDFPS_AFFORDANCE) {
|
|| interactionType == Classifier.LOCK_ICON) {
|
||||||
return Result.passed(0);
|
return Result.passed(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1334,8 +1334,7 @@ public class NotificationPanelViewController extends PanelViewController {
|
|||||||
: mNotificationShelfController.getIntrinsicHeight() + notificationPadding;
|
: mNotificationShelfController.getIntrinsicHeight() + notificationPadding;
|
||||||
|
|
||||||
float lockIconPadding = 0;
|
float lockIconPadding = 0;
|
||||||
if (mLockIconViewController.getTop() != 0
|
if (mLockIconViewController.getTop() != 0) {
|
||||||
&& (mUpdateMonitor.isUdfpsEnrolled() || mUpdateMonitor.isFaceEnrolled())) {
|
|
||||||
lockIconPadding = mStatusBar.getDisplayHeight() - mLockIconViewController.getTop();
|
lockIconPadding = mStatusBar.getDisplayHeight() - mLockIconViewController.getTop();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user