Loading packages/SystemUI/src/com/android/systemui/classifier/AnglesClassifier.java +24 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.systemui.classifier; import android.os.Build; import android.os.SystemProperties; import android.util.Log; import android.view.MotionEvent; import java.util.ArrayList; Loading Loading @@ -49,13 +52,18 @@ import java.util.List; public class AnglesClassifier extends StrokeClassifier { private HashMap<Stroke, Data> mStrokeMap = new HashMap<>(); public static final boolean VERBOSE = SystemProperties.getBoolean("debug.falsing_log.ang", Build.IS_DEBUGGABLE); private static String TAG = "ANG"; public AnglesClassifier(ClassifierData classifierData) { mClassifierData = classifierData; } @Override public String getTag() { return "ANG"; return TAG; } @Override Loading Loading @@ -170,18 +178,31 @@ public class AnglesClassifier extends StrokeClassifier { public float getAnglesVariance() { float anglesVariance = getAnglesVariance(mSumSquares, mSum, mCount); if (VERBOSE) { FalsingLog.i(TAG, "getAnglesVariance: (first pass) " + anglesVariance); FalsingLog.i(TAG, " - mFirstLength=" + mFirstLength); FalsingLog.i(TAG, " - mLength=" + mLength); } if (mFirstLength < mLength / 2f) { anglesVariance = Math.min(anglesVariance, mFirstAngleVariance + getAnglesVariance(mSecondSumSquares, mSecondSum, mSecondCount)); if (VERBOSE) FalsingLog.i(TAG, "getAnglesVariance: (second pass) " + anglesVariance); } return anglesVariance; } public float getAnglesPercentage() { if (mAnglesCount == 0.0f) { if (VERBOSE) FalsingLog.i(TAG, "getAnglesPercentage: count==0, result=1"); return 1.0f; } return (Math.max(mLeftAngles, mRightAngles) + mStraightAngles) / mAnglesCount; final float result = (Math.max(mLeftAngles, mRightAngles) + mStraightAngles) / mAnglesCount; if (VERBOSE) { FalsingLog.i(TAG, "getAnglesPercentage: left=" + mLeftAngles + " right=" + mRightAngles + " straight=" + mStraightAngles + " count=" + mAnglesCount + " result=" + result); } return result; } } } packages/SystemUI/src/com/android/systemui/classifier/AnglesVarianceEvaluator.java +0 −2 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ public class AnglesVarianceEvaluator { public static float evaluate(float value, int type) { final boolean secureUnlock = type == Classifier.BOUNCER_UNLOCK; float evaluation = 0.0f; if (value > 0.05) evaluation++; if (value > 0.10) evaluation++; if (value > 0.20) evaluation++; if (value > 0.40 && !secureUnlock) evaluation++; if (value > 0.80 && !secureUnlock) evaluation++; Loading packages/SystemUI/src/com/android/systemui/classifier/SpeedAnglesClassifier.java +19 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.classifier; import android.os.Build; import android.os.SystemProperties; import android.view.MotionEvent; import java.util.ArrayList; Loading @@ -34,6 +36,10 @@ import java.util.List; * should be in this interval. */ public class SpeedAnglesClassifier extends StrokeClassifier { public static final boolean VERBOSE = SystemProperties.getBoolean("debug.falsing_log.spd_ang", Build.IS_DEBUGGABLE); public static final String TAG = "SPD_ANG"; private HashMap<Stroke, Data> mStrokeMap = new HashMap<>(); public SpeedAnglesClassifier(ClassifierData classifierData) { Loading @@ -42,7 +48,7 @@ public class SpeedAnglesClassifier extends StrokeClassifier { @Override public String getTag() { return "SPD_ANG"; return TAG; } @Override Loading Loading @@ -135,14 +141,24 @@ public class SpeedAnglesClassifier extends StrokeClassifier { } public float getAnglesVariance() { return mSumSquares / mCount - (mSum / mCount) * (mSum / mCount); final float v = mSumSquares / mCount - (mSum / mCount) * (mSum / mCount); if (VERBOSE) { FalsingLog.i(TAG, "getAnglesVariance: sum^2=" + mSumSquares + " count=" + mCount + " result=" + v); } return v; } public float getAnglesPercentage() { if (mAnglesCount == 0.0f) { return 1.0f; } return (mAcceleratingAngles) / mAnglesCount; final float v = (mAcceleratingAngles) / mAnglesCount; if (VERBOSE) { FalsingLog.i(TAG, "getAnglesPercentage: angles=" + mAcceleratingAngles + " count=" + mAnglesCount + " result=" + v); } return v; } } } No newline at end of file Loading
packages/SystemUI/src/com/android/systemui/classifier/AnglesClassifier.java +24 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,9 @@ package com.android.systemui.classifier; import android.os.Build; import android.os.SystemProperties; import android.util.Log; import android.view.MotionEvent; import java.util.ArrayList; Loading Loading @@ -49,13 +52,18 @@ import java.util.List; public class AnglesClassifier extends StrokeClassifier { private HashMap<Stroke, Data> mStrokeMap = new HashMap<>(); public static final boolean VERBOSE = SystemProperties.getBoolean("debug.falsing_log.ang", Build.IS_DEBUGGABLE); private static String TAG = "ANG"; public AnglesClassifier(ClassifierData classifierData) { mClassifierData = classifierData; } @Override public String getTag() { return "ANG"; return TAG; } @Override Loading Loading @@ -170,18 +178,31 @@ public class AnglesClassifier extends StrokeClassifier { public float getAnglesVariance() { float anglesVariance = getAnglesVariance(mSumSquares, mSum, mCount); if (VERBOSE) { FalsingLog.i(TAG, "getAnglesVariance: (first pass) " + anglesVariance); FalsingLog.i(TAG, " - mFirstLength=" + mFirstLength); FalsingLog.i(TAG, " - mLength=" + mLength); } if (mFirstLength < mLength / 2f) { anglesVariance = Math.min(anglesVariance, mFirstAngleVariance + getAnglesVariance(mSecondSumSquares, mSecondSum, mSecondCount)); if (VERBOSE) FalsingLog.i(TAG, "getAnglesVariance: (second pass) " + anglesVariance); } return anglesVariance; } public float getAnglesPercentage() { if (mAnglesCount == 0.0f) { if (VERBOSE) FalsingLog.i(TAG, "getAnglesPercentage: count==0, result=1"); return 1.0f; } return (Math.max(mLeftAngles, mRightAngles) + mStraightAngles) / mAnglesCount; final float result = (Math.max(mLeftAngles, mRightAngles) + mStraightAngles) / mAnglesCount; if (VERBOSE) { FalsingLog.i(TAG, "getAnglesPercentage: left=" + mLeftAngles + " right=" + mRightAngles + " straight=" + mStraightAngles + " count=" + mAnglesCount + " result=" + result); } return result; } } }
packages/SystemUI/src/com/android/systemui/classifier/AnglesVarianceEvaluator.java +0 −2 Original line number Diff line number Diff line Loading @@ -20,8 +20,6 @@ public class AnglesVarianceEvaluator { public static float evaluate(float value, int type) { final boolean secureUnlock = type == Classifier.BOUNCER_UNLOCK; float evaluation = 0.0f; if (value > 0.05) evaluation++; if (value > 0.10) evaluation++; if (value > 0.20) evaluation++; if (value > 0.40 && !secureUnlock) evaluation++; if (value > 0.80 && !secureUnlock) evaluation++; Loading
packages/SystemUI/src/com/android/systemui/classifier/SpeedAnglesClassifier.java +19 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.systemui.classifier; import android.os.Build; import android.os.SystemProperties; import android.view.MotionEvent; import java.util.ArrayList; Loading @@ -34,6 +36,10 @@ import java.util.List; * should be in this interval. */ public class SpeedAnglesClassifier extends StrokeClassifier { public static final boolean VERBOSE = SystemProperties.getBoolean("debug.falsing_log.spd_ang", Build.IS_DEBUGGABLE); public static final String TAG = "SPD_ANG"; private HashMap<Stroke, Data> mStrokeMap = new HashMap<>(); public SpeedAnglesClassifier(ClassifierData classifierData) { Loading @@ -42,7 +48,7 @@ public class SpeedAnglesClassifier extends StrokeClassifier { @Override public String getTag() { return "SPD_ANG"; return TAG; } @Override Loading Loading @@ -135,14 +141,24 @@ public class SpeedAnglesClassifier extends StrokeClassifier { } public float getAnglesVariance() { return mSumSquares / mCount - (mSum / mCount) * (mSum / mCount); final float v = mSumSquares / mCount - (mSum / mCount) * (mSum / mCount); if (VERBOSE) { FalsingLog.i(TAG, "getAnglesVariance: sum^2=" + mSumSquares + " count=" + mCount + " result=" + v); } return v; } public float getAnglesPercentage() { if (mAnglesCount == 0.0f) { return 1.0f; } return (mAcceleratingAngles) / mAnglesCount; final float v = (mAcceleratingAngles) / mAnglesCount; if (VERBOSE) { FalsingLog.i(TAG, "getAnglesPercentage: angles=" + mAcceleratingAngles + " count=" + mAnglesCount + " result=" + v); } return v; } } } No newline at end of file