Merge "Fix icon touch dialog in Enrolling page" into udc-dev

This commit is contained in:
TreeHugger Robot
2023-03-06 05:14:17 +00:00
committed by Android (Google) Code Review
19 changed files with 377 additions and 379 deletions

View File

@@ -1,77 +0,0 @@
/*
* Copyright (C) 2023 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.settings.biometrics2.data.repository;
import android.view.View;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
import androidx.annotation.NonNull;
/**
* This repository is used to call all APIs in {@link AccessibilityManager}
*/
public class AccessibilityRepository {
private final AccessibilityManager mAccessibilityManager;
public AccessibilityRepository(AccessibilityManager accessibilityManager) {
mAccessibilityManager = accessibilityManager;
}
/**
* Requests interruption of the accessibility feedback from all accessibility services.
*/
public void interrupt() {
mAccessibilityManager.interrupt();
}
/**
* Returns if the {@link AccessibilityManager} is enabled.
*
* @return True if this {@link AccessibilityManager} is enabled, false otherwise.
*/
public boolean isEnabled() {
return mAccessibilityManager.isEnabled();
}
/**
* Sends an {@link AccessibilityEvent}.
*
* @param event The event to send.
*
* @throws IllegalStateException if accessibility is not enabled.
*
* <strong>Note:</strong> The preferred mechanism for sending custom accessibility
* events is through calling
* {@link android.view.ViewParent#requestSendAccessibilityEvent(View, AccessibilityEvent)}
* instead of this method to allow predecessors to augment/filter events sent by
* their descendants.
*/
public void sendAccessibilityEvent(@NonNull AccessibilityEvent event) {
mAccessibilityManager.sendAccessibilityEvent(event);
}
/**
* Returns if the touch exploration in the system is enabled.
*
* @return True if touch exploration is enabled, false otherwise.
*/
public boolean isTouchExplorationEnabled() {
return mAccessibilityManager.isTouchExplorationEnabled();
}
}

View File

@@ -1,43 +0,0 @@
/*
* Copyright (C) 2023 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.settings.biometrics2.data.repository;
import android.annotation.NonNull;
import android.os.VibrationAttributes;
import android.os.VibrationEffect;
import android.os.Vibrator;
/**
* This repository is used to call all APIs in {@link Vibrator}
*/
public class VibratorRepository {
private final Vibrator mVibrator;
public VibratorRepository(Vibrator vibrator) {
mVibrator = vibrator;
}
/**
* Like {@link #vibrate(VibrationEffect, VibrationAttributes)}, but allows the
* caller to specify the vibration is owned by someone else and set a reason for vibration.
*/
public void vibrate(int uid, String opPkg, @NonNull VibrationEffect vibe,
String reason, @NonNull VibrationAttributes attributes) {
mVibrator.vibrate(uid, opPkg, vibe, reason, attributes);
}
}

View File

@@ -21,9 +21,7 @@ import android.app.Application;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.settings.biometrics2.data.repository.AccessibilityRepository;
import com.android.settings.biometrics2.data.repository.FingerprintRepository;
import com.android.settings.biometrics2.data.repository.VibratorRepository;
/**
* Interface for BiometricsRepositoryProvider
@@ -35,16 +33,4 @@ public interface BiometricsRepositoryProvider {
*/
@Nullable
FingerprintRepository getFingerprintRepository(@NonNull Application application);
/**
* Get VibtatorRepository
*/
@Nullable
VibratorRepository getVibratorRepository(@NonNull Application application);
/**
* Get AccessibilityRepository
*/
@Nullable
AccessibilityRepository getAccessibilityRepository(@NonNull Application application);
}

View File

@@ -18,16 +18,12 @@ package com.android.settings.biometrics2.factory;
import android.app.Application;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Vibrator;
import android.view.accessibility.AccessibilityManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.android.settings.Utils;
import com.android.settings.biometrics2.data.repository.AccessibilityRepository;
import com.android.settings.biometrics2.data.repository.FingerprintRepository;
import com.android.settings.biometrics2.data.repository.VibratorRepository;
/**
* Implementation for BiometricsRepositoryProvider
@@ -35,8 +31,6 @@ import com.android.settings.biometrics2.data.repository.VibratorRepository;
public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryProvider {
private static volatile FingerprintRepository sFingerprintRepository;
private static volatile VibratorRepository sVibratorRepository;
private static volatile AccessibilityRepository sAccessibilityRepository;
/**
* Get FingerprintRepository
@@ -58,49 +52,4 @@ public class BiometricsRepositoryProviderImpl implements BiometricsRepositoryPro
}
return sFingerprintRepository;
}
/**
* Get VibratorRepository
*/
@Nullable
@Override
public VibratorRepository getVibratorRepository(@NonNull Application application) {
final Vibrator vibrator = application.getSystemService(Vibrator.class);
if (vibrator == null) {
return null;
}
if (sVibratorRepository == null) {
synchronized (VibratorRepository.class) {
if (sVibratorRepository == null) {
sVibratorRepository = new VibratorRepository(vibrator);
}
}
}
return sVibratorRepository;
}
/**
* Get AccessibilityRepository
*/
@Nullable
@Override
public AccessibilityRepository getAccessibilityRepository(@NonNull Application application) {
final AccessibilityManager accessibilityManager = application.getSystemService(
AccessibilityManager.class);
if (accessibilityManager == null) {
return null;
}
if (sAccessibilityRepository == null) {
synchronized (AccessibilityRepository.class) {
if (sAccessibilityRepository == null) {
sAccessibilityRepository = new AccessibilityRepository(accessibilityManager);
}
}
}
return sAccessibilityRepository;
}
}

View File

@@ -27,9 +27,7 @@ import androidx.lifecycle.viewmodel.CreationExtras;
import com.android.internal.widget.LockPatternUtils;
import com.android.settings.biometrics.fingerprint.FingerprintUpdater;
import com.android.settings.biometrics2.data.repository.AccessibilityRepository;
import com.android.settings.biometrics2.data.repository.FingerprintRepository;
import com.android.settings.biometrics2.data.repository.VibratorRepository;
import com.android.settings.biometrics2.ui.model.EnrollmentRequest;
import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel;
import com.android.settings.biometrics2.ui.viewmodel.AutoCredentialViewModel.ChallengeGenerator;
@@ -115,12 +113,9 @@ public class BiometricsViewModelFactory implements ViewModelProvider.Factory {
final Integer userId = extras.get(USER_ID_KEY);
final FingerprintRepository fingerprint = provider.getFingerprintRepository(
application);
final AccessibilityRepository accessibility = provider.getAccessibilityRepository(
application);
final VibratorRepository vibrator = provider.getVibratorRepository(application);
if (fingerprint != null && accessibility != null && vibrator != null) {
return (T) new FingerprintEnrollEnrollingViewModel(application, userId, fingerprint,
accessibility, vibrator);
if (fingerprint != null) {
return (T) new FingerprintEnrollEnrollingViewModel(application, userId,
fingerprint);
}
} else if (modelClass.isAssignableFrom(FingerprintEnrollFinishViewModel.class)) {
final Integer userId = extras.get(USER_ID_KEY);

View File

@@ -17,7 +17,6 @@
package com.android.settings.biometrics2.ui.model;
import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE;
import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_SENSOR_ID;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
@@ -34,10 +33,9 @@ import java.time.Clock;
/**
* Secret credential data including
* 1. userId
* 2. sensorId
* 3. challenge
* 4. token
* 5. gkPwHandle
* 2. challenge
* 3. token
* 4. gkPwHandle
*/
public final class CredentialModel {
@@ -53,22 +51,12 @@ public final class CredentialModel {
@VisibleForTesting
public static final long INVALID_GK_PW_HANDLE = 0L;
/**
* Default value for a invalid sensor id
*/
@VisibleForTesting
public static final int INVALID_SENSOR_ID = -1;
private final Clock mClock;
private final long mInitMillis;
private final int mUserId;
private int mSensorId;
@Nullable
private Long mUpdateSensorIdMillis = null;
private long mChallenge;
@Nullable
private Long mUpdateChallengeMillis = null;
@@ -87,7 +75,6 @@ public final class CredentialModel {
bundle = new Bundle();
}
mUserId = bundle.getInt(Intent.EXTRA_USER_ID, UserHandle.myUserId());
mSensorId = bundle.getInt(EXTRA_KEY_SENSOR_ID, INVALID_SENSOR_ID);
mChallenge = bundle.getLong(EXTRA_KEY_CHALLENGE, INVALID_CHALLENGE);
mToken = bundle.getByteArray(EXTRA_KEY_CHALLENGE_TOKEN);
mGkPwHandle = bundle.getLong(EXTRA_KEY_GK_PW_HANDLE, INVALID_GK_PW_HANDLE);
@@ -102,7 +89,6 @@ public final class CredentialModel {
public Bundle getBundle() {
final Bundle bundle = new Bundle();
bundle.putInt(Intent.EXTRA_USER_ID, mUserId);
bundle.putInt(EXTRA_KEY_SENSOR_ID, mSensorId);
bundle.putLong(EXTRA_KEY_CHALLENGE, mChallenge);
bundle.putByteArray(EXTRA_KEY_CHALLENGE_TOKEN, mToken);
bundle.putLong(EXTRA_KEY_GK_PW_HANDLE, mGkPwHandle);
@@ -190,21 +176,6 @@ public final class CredentialModel {
return mGkPwHandle != INVALID_GK_PW_HANDLE;
}
/**
* Get sensor id
*/
public int getSensorId() {
return mSensorId;
}
/**
* Set sensor id
*/
public void setSensorId(int value) {
mUpdateSensorIdMillis = mClock.millis();
mSensorId = value;
}
/**
* Returns a string representation of the object
*/
@@ -221,7 +192,6 @@ public final class CredentialModel {
+ ", updateMillis:" + mUpdateTokenMillis + "}"
+ ", gkPwHandle:{len:" + gkPwHandleLen + ", isValid:" + isValidGkPwHandle()
+ ", clearMillis:" + mClearGkPwHandleMillis + "}"
+ ", mSensorId:{id:" + mSensorId + ", updateMillis:" + mUpdateSensorIdMillis + "}"
+ " }";
}
}

View File

@@ -418,7 +418,7 @@ public class FingerprintEnrollEnrollingRfpsFragment extends Fragment {
private void showIconTouchDialog() {
mIconTouchCount = 0;
mEnrollingViewModel.onIconTouchDialogShow();
mEnrollingViewModel.showIconTouchDialog();
}
private final Runnable mShowDialogRunnable = () -> showIconTouchDialog();

View File

@@ -540,8 +540,7 @@ public class FingerprintEnrollEnrollingSfpsFragment extends Fragment {
private void showIconTouchDialog() {
mIconTouchCount = 0;
//TODO EnrollingActivity should observe live data and add dialog fragment
mEnrollingViewModel.onIconTouchDialogShow();
mEnrollingViewModel.showIconTouchDialog();
}
private final Runnable mShowDialogRunnable = () -> showIconTouchDialog();

View File

@@ -30,8 +30,8 @@ import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnr
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_ACTION_SKIP;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_FINISH;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FINGERPRINT_ERROR_DIALOG_ACTION_SET_RESULT_TIMEOUT;
import static com.android.settings.biometrics2.ui.viewmodel.FingerprintEnrollEnrollingViewModel.FingerprintEnrollEnrollingAction;
@@ -503,7 +503,7 @@ public class FingerprintEnrollmentActivity extends FragmentActivity {
startFinishFragment();
break;
}
case FINGERPRINT_ENROLL_ENROLLING_ACTION_SKIP: {
case FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP: {
onSetActivityResult(new ActivityResult(BiometricEnrollBase.RESULT_SKIP, null));
break;
}

View File

@@ -19,9 +19,7 @@ package com.android.settings.biometrics2.ui.viewmodel;
import static android.app.admin.DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_CHALLENGE;
import static com.android.settings.biometrics.BiometricEnrollBase.EXTRA_KEY_SENSOR_ID;
import static com.android.settings.biometrics2.ui.model.CredentialModel.INVALID_GK_PW_HANDLE;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN;
import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_GK_PW_HANDLE;
import android.annotation.IntDef;
@@ -268,7 +266,6 @@ public class AutoCredentialViewModel extends AndroidViewModel {
mChallengeGenerator.setCallback((sensorId, userId, challenge) -> {
try {
final byte[] newToken = requestGatekeeperHat(gkPwHandle, challenge, userId);
mCredentialModel.setSensorId(sensorId);
mCredentialModel.setChallenge(challenge);
mCredentialModel.setToken(newToken);
} catch (IllegalStateException e) {
@@ -354,26 +351,6 @@ public class AutoCredentialViewModel extends AndroidViewModel {
return response.getGatekeeperHAT();
}
/**
* Get Credential intent extra which will be used to launch next activity.
*/
@NonNull
public Bundle createCredentialIntentExtra() {
final Bundle retBundle = new Bundle();
if (mCredentialModel.isValidGkPwHandle()) {
retBundle.putLong(EXTRA_KEY_GK_PW_HANDLE, mCredentialModel.getGkPwHandle());
}
if (mCredentialModel.isValidToken()) {
retBundle.putByteArray(EXTRA_KEY_CHALLENGE_TOKEN, mCredentialModel.getToken());
}
if (mCredentialModel.isValidUserId()) {
retBundle.putInt(Intent.EXTRA_USER_ID, mCredentialModel.getUserId());
}
retBundle.putLong(EXTRA_KEY_CHALLENGE, mCredentialModel.getChallenge());
retBundle.putInt(EXTRA_KEY_SENSOR_ID, mCredentialModel.getSensorId());
return retBundle;
}
/**
* Create Intent for choosing lock
*/

View File

@@ -21,6 +21,7 @@ import android.app.Application;
import android.hardware.fingerprint.FingerprintSensorPropertiesInternal;
import android.os.VibrationAttributes;
import android.os.VibrationEffect;
import android.os.Vibrator;
import android.util.Log;
import android.view.accessibility.AccessibilityEvent;
import android.view.accessibility.AccessibilityManager;
@@ -31,9 +32,7 @@ import androidx.lifecycle.AndroidViewModel;
import androidx.lifecycle.LiveData;
import androidx.lifecycle.MutableLiveData;
import com.android.settings.biometrics2.data.repository.AccessibilityRepository;
import com.android.settings.biometrics2.data.repository.FingerprintRepository;
import com.android.settings.biometrics2.data.repository.VibratorRepository;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@@ -51,25 +50,25 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
private static final VibrationAttributes FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES =
VibrationAttributes.createForUsage(VibrationAttributes.USAGE_ACCESSIBILITY);
/**
* Enrolling skipped
*/
public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_SKIP = 0;
/**
* Enrolling finished
*/
public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE = 1;
public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE = 0;
/**
* Icon touch dialog show
*/
public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG = 2;
public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG = 1;
/**
* Icon touch dialog dismiss
*/
public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG = 3;
public static final int FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG = 2;
/**
* Has got latest cancelled event due to user skip
*/
public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP = 3;
/**
* Has got latest cancelled event due to back key
@@ -77,10 +76,10 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
public static final int FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED = 4;
@IntDef(prefix = { "FINGERPRINT_ENROLL_ENROLLING_ACTION_" }, value = {
FINGERPRINT_ENROLL_ENROLLING_ACTION_SKIP,
FINGERPRINT_ENROLL_ENROLLING_ACTION_DONE,
FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG,
FINGERPRINT_ENROLL_ENROLLING_ACTION_DISMISS_ICON_TOUCH_DIALOG,
FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP,
FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_BACK_PRESSED
})
@Retention(RetentionPolicy.SOURCE)
@@ -112,25 +111,22 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
private final int mUserId;
private boolean mOnBackPressed;
private boolean mOnSkipPressed;
private final FingerprintRepository mFingerprintRepository;
private final AccessibilityRepository mAccessibilityRepository;
private final VibratorRepository mVibratorRepository;
@NonNull private final FingerprintRepository mFingerprintRepository;
private final AccessibilityManager mAccessibilityManager;
private final Vibrator mVibrator;
private final MutableLiveData<Integer> mActionLiveData = new MutableLiveData<>();
private final MutableLiveData<Integer> mIconTouchDialogLiveData = new MutableLiveData<>();
private final MutableLiveData<ErrorDialogData> mErrorDialogLiveData = new MutableLiveData<>();
private final MutableLiveData<Integer> mErrorDialogActionLiveData = new MutableLiveData<>();
public FingerprintEnrollEnrollingViewModel(Application application,
int userId,
FingerprintRepository fingerprintRepository,
AccessibilityRepository accessibilityRepository,
VibratorRepository vibratorRepository) {
public FingerprintEnrollEnrollingViewModel(@NonNull Application application,
int userId, @NonNull FingerprintRepository fingerprintRepository) {
super(application);
mUserId = userId;
mFingerprintRepository = fingerprintRepository;
mAccessibilityRepository = accessibilityRepository;
mVibratorRepository = vibratorRepository;
mAccessibilityManager = application.getSystemService(AccessibilityManager.class);
mVibrator = application.getSystemService(Vibrator.class);
}
/**
@@ -184,7 +180,7 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
* Enrolling is cacelled because user clicks skip
*/
public void onCancelledDueToOnSkipPressed() {
final int action = FINGERPRINT_ENROLL_ENROLLING_ACTION_SKIP;
final int action = FINGERPRINT_ENROLL_ENROLLING_CANCELED_BECAUSE_USER_SKIP;
if (DEBUG) {
Log.d(TAG, "onSkipButtonClick, post action " + action);
}
@@ -229,12 +225,12 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
/**
* Icon touch dialog show
*/
public void onIconTouchDialogShow() {
public void showIconTouchDialog() {
final int action = FINGERPRINT_ENROLL_ENROLLING_ACTION_SHOW_ICON_TOUCH_DIALOG;
if (DEBUG) {
Log.d(TAG, "onIconTouchDialogShow, post action " + action);
}
mIconTouchDialogLiveData.postValue(action);
mActionLiveData.postValue(action);
}
/**
@@ -245,7 +241,7 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
if (DEBUG) {
Log.d(TAG, "onIconTouchDialogDismiss, post action " + action);
}
mIconTouchDialogLiveData.postValue(action);
mActionLiveData.postValue(action);
}
/**
@@ -266,7 +262,7 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
* Requests interruption of the accessibility feedback from all accessibility services.
*/
public void clearTalkback() {
mAccessibilityRepository.interrupt();
mAccessibilityManager.interrupt();
}
/**
@@ -275,7 +271,7 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
* @return True if this {@link AccessibilityManager} is enabled, false otherwise.
*/
public boolean isAccessibilityEnabled() {
return mAccessibilityRepository.isEnabled();
return mAccessibilityManager.isEnabled();
}
/**
@@ -287,7 +283,7 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
e.setClassName(getClass().getName());
e.setPackageName(getApplication().getPackageName());
e.getText().add(announcement);
mAccessibilityRepository.sendAccessibilityEvent(e);
mAccessibilityManager.sendAccessibilityEvent(e);
}
/**
@@ -296,7 +292,7 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
* @return True if touch exploration is enabled, false otherwise.
*/
public boolean isTouchExplorationEnabled() {
return mAccessibilityRepository.isTouchExplorationEnabled();
return mAccessibilityManager.isTouchExplorationEnabled();
}
/**
@@ -304,7 +300,7 @@ public class FingerprintEnrollEnrollingViewModel extends AndroidViewModel {
* caller to specify the vibration is owned by someone else and set a reason for vibration.
*/
public void vibrateError(String reason) {
mVibratorRepository.vibrate(mUserId, getApplication().getOpPackageName(),
mVibrator.vibrate(mUserId, getApplication().getOpPackageName(),
VIBRATE_EFFECT_ERROR, reason, FINGERPRINT_ENROLLING_SONFICATION_ATTRIBUTES);
}

View File

@@ -179,10 +179,6 @@ public class FingerprintEnrollmentViewModel extends AndroidViewModel {
return mFingerprintRepository.canAssumeSfps();
}
public boolean isNewFingerprintAdded() {
return mIsNewFingerprintAdded;
}
/**
* Sets mIsNewFingerprintAdded to true
*/