Merge "Fix icon touch dialog in Enrolling page" into udc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
3e41d936b3
@@ -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();
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
}
|
@@ -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);
|
||||
}
|
||||
|
@@ -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;
|
||||
}
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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 + "}"
|
||||
+ " }";
|
||||
}
|
||||
}
|
||||
|
@@ -418,7 +418,7 @@ public class FingerprintEnrollEnrollingRfpsFragment extends Fragment {
|
||||
|
||||
private void showIconTouchDialog() {
|
||||
mIconTouchCount = 0;
|
||||
mEnrollingViewModel.onIconTouchDialogShow();
|
||||
mEnrollingViewModel.showIconTouchDialog();
|
||||
}
|
||||
|
||||
private final Runnable mShowDialogRunnable = () -> showIconTouchDialog();
|
||||
|
@@ -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();
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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
|
||||
*/
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
@@ -179,10 +179,6 @@ public class FingerprintEnrollmentViewModel extends AndroidViewModel {
|
||||
return mFingerprintRepository.canAssumeSfps();
|
||||
}
|
||||
|
||||
public boolean isNewFingerprintAdded() {
|
||||
return mIsNewFingerprintAdded;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets mIsNewFingerprintAdded to true
|
||||
*/
|
||||
|
Reference in New Issue
Block a user