Loading src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java +36 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.settings.biometrics.face; import android.content.Context; import android.hardware.face.FaceManager; import android.hardware.face.FaceManager.GetFeatureCallback; import android.hardware.face.FaceManager.SetFeatureCallback; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; Loading @@ -37,6 +39,28 @@ public class FaceSettingsAttentionPreferenceController extends TogglePreferenceC private FaceManager mFaceManager; private SwitchPreference mPreference; private final SetFeatureCallback mSetFeatureCallback = new SetFeatureCallback() { @Override public void onCompleted(boolean success, int feature) { if (feature == FaceManager.FEATURE_REQUIRE_ATTENTION) { mPreference.setEnabled(true); if (!success) { mPreference.setChecked(!mPreference.isChecked()); } } } }; private final GetFeatureCallback mGetFeatureCallback = new GetFeatureCallback() { @Override public void onCompleted(boolean success, int feature, boolean value) { if (feature == FaceManager.FEATURE_REQUIRE_ATTENTION && success) { mPreference.setEnabled(true); mPreference.setChecked(value); } } }; public FaceSettingsAttentionPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mFaceManager = Utils.getFaceManagerOrNull(context); Loading Loading @@ -64,12 +88,22 @@ public class FaceSettingsAttentionPreferenceController extends TogglePreferenceC if (!FaceSettings.isAvailable(mContext)) { return true; } return mFaceManager.getFeature(FaceManager.FEATURE_REQUIRE_ATTENTION); // Set to disabled until we know the true value. mPreference.setEnabled(false); mFaceManager.getFeature(FaceManager.FEATURE_REQUIRE_ATTENTION, mGetFeatureCallback); // Ideally returns a cached value. return true; } @Override public boolean setChecked(boolean isChecked) { mFaceManager.setFeature(FaceManager.FEATURE_REQUIRE_ATTENTION, isChecked, mToken); // Optimistically update state and set to disabled until we know it succeeded. mPreference.setEnabled(false); mPreference.setChecked(isChecked); mFaceManager.setFeature(FaceManager.FEATURE_REQUIRE_ATTENTION, isChecked, mToken, mSetFeatureCallback); return true; } Loading Loading
src/com/android/settings/biometrics/face/FaceSettingsAttentionPreferenceController.java +36 −2 Original line number Diff line number Diff line Loading @@ -18,6 +18,8 @@ package com.android.settings.biometrics.face; import android.content.Context; import android.hardware.face.FaceManager; import android.hardware.face.FaceManager.GetFeatureCallback; import android.hardware.face.FaceManager.SetFeatureCallback; import androidx.preference.PreferenceScreen; import androidx.preference.SwitchPreference; Loading @@ -37,6 +39,28 @@ public class FaceSettingsAttentionPreferenceController extends TogglePreferenceC private FaceManager mFaceManager; private SwitchPreference mPreference; private final SetFeatureCallback mSetFeatureCallback = new SetFeatureCallback() { @Override public void onCompleted(boolean success, int feature) { if (feature == FaceManager.FEATURE_REQUIRE_ATTENTION) { mPreference.setEnabled(true); if (!success) { mPreference.setChecked(!mPreference.isChecked()); } } } }; private final GetFeatureCallback mGetFeatureCallback = new GetFeatureCallback() { @Override public void onCompleted(boolean success, int feature, boolean value) { if (feature == FaceManager.FEATURE_REQUIRE_ATTENTION && success) { mPreference.setEnabled(true); mPreference.setChecked(value); } } }; public FaceSettingsAttentionPreferenceController(Context context, String preferenceKey) { super(context, preferenceKey); mFaceManager = Utils.getFaceManagerOrNull(context); Loading Loading @@ -64,12 +88,22 @@ public class FaceSettingsAttentionPreferenceController extends TogglePreferenceC if (!FaceSettings.isAvailable(mContext)) { return true; } return mFaceManager.getFeature(FaceManager.FEATURE_REQUIRE_ATTENTION); // Set to disabled until we know the true value. mPreference.setEnabled(false); mFaceManager.getFeature(FaceManager.FEATURE_REQUIRE_ATTENTION, mGetFeatureCallback); // Ideally returns a cached value. return true; } @Override public boolean setChecked(boolean isChecked) { mFaceManager.setFeature(FaceManager.FEATURE_REQUIRE_ATTENTION, isChecked, mToken); // Optimistically update state and set to disabled until we know it succeeded. mPreference.setEnabled(false); mPreference.setChecked(isChecked); mFaceManager.setFeature(FaceManager.FEATURE_REQUIRE_ATTENTION, isChecked, mToken, mSetFeatureCallback); return true; } Loading