Switch fingerprint setup to biometric setup instead
* Generic, handles both face and fingerprint * Works the same as before for fingerprint * Works the same as fingerprint for face * What else could one ask for? Change-Id: I9ddd7b46548c8107239fdec457bbaae6b12876e6
This commit is contained in:
committed by
Alessandro Astone
parent
799d3cb3b3
commit
103ac80d23
@@ -80,7 +80,7 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
protected static final int EMERGENCY_DIAL_ACTIVITY_REQUEST = 10038;
|
||||
protected static final int WIFI_ACTIVITY_REQUEST = 10004;
|
||||
protected static final int BLUETOOTH_ACTIVITY_REQUEST = 10100;
|
||||
protected static final int FINGERPRINT_ACTIVITY_REQUEST = 10101;
|
||||
protected static final int BIOMETRIC_ACTIVITY_REQUEST = 10101;
|
||||
protected static final int SCREENLOCK_ACTIVITY_REQUEST = 10102;
|
||||
|
||||
private static final int IMMERSIVE_FLAGS =
|
||||
@@ -610,8 +610,8 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
case BLUETOOTH_ACTIVITY_REQUEST:
|
||||
sb.append("BLUETOOTH_ACTIVITY_REQUEST");
|
||||
break;
|
||||
case FINGERPRINT_ACTIVITY_REQUEST:
|
||||
sb.append("FINGERPRINT_ACTIVITY_REQUEST");
|
||||
case BIOMETRIC_ACTIVITY_REQUEST:
|
||||
sb.append("BIOMETRIC_ACTIVITY_REQUEST");
|
||||
break;
|
||||
case SCREENLOCK_ACTIVITY_REQUEST:
|
||||
sb.append("SCREENLOCK_ACTIVITY_REQUEST");
|
||||
@@ -652,7 +652,7 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
default:
|
||||
break;
|
||||
}
|
||||
case FINGERPRINT_ACTIVITY_REQUEST:
|
||||
case BIOMETRIC_ACTIVITY_REQUEST:
|
||||
switch (resultCode) {
|
||||
case RESULT_OK:
|
||||
sb.append("RESULT_OK");
|
||||
@@ -661,7 +661,7 @@ public abstract class BaseSetupWizardActivity extends Activity implements Naviga
|
||||
sb.append("RESULT_CANCELED");
|
||||
break;
|
||||
case RESULT_SKIP:
|
||||
sb.append("RESULT_FINGERPRINT_SKIP");
|
||||
sb.append("RESULT_BIOMETRIC_SKIP");
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
@@ -17,7 +17,7 @@
|
||||
|
||||
package org.lineageos.setupwizard;
|
||||
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.ACTION_SETUP_FINGERPRINT;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.ACTION_SETUP_BIOMETRIC;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_ALLOW_SKIP;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_AUTO_FINISH;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_DETAILS;
|
||||
@@ -26,48 +26,75 @@ import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_MATERIAL_LIGHT;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_THEME;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_TITLE;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.EXTRA_USE_IMMERSIVE;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.REQUEST_CODE_SETUP_FINGERPRINT;
|
||||
import static org.lineageos.setupwizard.SetupWizardApp.REQUEST_CODE_SETUP_BIOMETRIC;
|
||||
|
||||
import android.content.Intent;
|
||||
import android.os.Bundle;
|
||||
import android.view.View;
|
||||
import android.widget.TextView;
|
||||
|
||||
public class FingerprintActivity extends SubBaseActivity {
|
||||
import com.google.android.setupcompat.util.WizardManagerHelper;
|
||||
|
||||
public static final String TAG = FingerprintActivity.class.getSimpleName();
|
||||
import org.lineageos.setupwizard.util.SetupWizardUtils;
|
||||
|
||||
public class BiometricActivity extends SubBaseActivity {
|
||||
|
||||
public static final String TAG = BiometricActivity.class.getSimpleName();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
final TextView setupBiometricSummary = (TextView) findViewById(R.id.setup_biometric_summary);
|
||||
final TextView setupAddBiometric = (TextView) findViewById(R.id.setup_add_biometric);
|
||||
if (SetupWizardUtils.hasFace(this)) {
|
||||
setupBiometricSummary.setText(getString(R.string.face_setup_summary));
|
||||
setupAddBiometric.setText(R.string.face_setup_add_face);
|
||||
} else {
|
||||
setupBiometricSummary.setText(getString(R.string.fingerprint_setup_summary));
|
||||
setupAddBiometric.setText(R.string.fingerprint_setup_add_fingerprint);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onStartSubactivity() {
|
||||
setNextAllowed(true);
|
||||
findViewById(R.id.setup_fingerprint).setOnClickListener(view -> launchFingerprintSetup());
|
||||
findViewById(R.id.setup_biometric).setOnClickListener(view -> launchBiometricSetup());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getLayoutResId() {
|
||||
return R.layout.setup_fingerprint;
|
||||
return R.layout.setup_biometric;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getTitleResId() {
|
||||
if (SetupWizardUtils.hasFace(this)) {
|
||||
return R.string.face_setup_title;
|
||||
}
|
||||
return R.string.fingerprint_setup_title;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getIconResId() {
|
||||
if (SetupWizardUtils.hasFace(this)) {
|
||||
return R.drawable.ic_face;
|
||||
}
|
||||
return R.drawable.ic_fingerprint;
|
||||
}
|
||||
|
||||
private void launchFingerprintSetup() {
|
||||
Intent intent = new Intent(ACTION_SETUP_FINGERPRINT);
|
||||
private void launchBiometricSetup() {
|
||||
Intent intent = new Intent(ACTION_SETUP_BIOMETRIC);
|
||||
intent.putExtra(EXTRA_FIRST_RUN, true);
|
||||
intent.putExtra(EXTRA_ALLOW_SKIP, true);
|
||||
intent.putExtra(EXTRA_USE_IMMERSIVE, true);
|
||||
intent.putExtra(EXTRA_THEME, EXTRA_MATERIAL_LIGHT);
|
||||
intent.putExtra(EXTRA_AUTO_FINISH, false);
|
||||
/*intent.putExtra(LockPatternUtils.LOCKSCREEN_FINGERPRINT_FALLBACK, true);*/
|
||||
/*intent.putExtra(LockPatternUtils.LOCKSCREEN_BIOMETRIC_FALLBACK, true);*/
|
||||
intent.putExtra(EXTRA_TITLE,
|
||||
getString(R.string.settings_fingerprint_setup_title));
|
||||
getString(getTitleResId()));
|
||||
intent.putExtra(EXTRA_DETAILS,
|
||||
getString(R.string.settings_fingerprint_setup_details));
|
||||
startSubactivity(intent, REQUEST_CODE_SETUP_FINGERPRINT);
|
||||
getString(R.string.settings_biometric_setup_details));
|
||||
intent.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true);
|
||||
startSubactivity(intent, REQUEST_CODE_SETUP_BIOMETRIC);
|
||||
}
|
||||
}
|
@@ -38,7 +38,7 @@ public class SetupWizardApp extends Application {
|
||||
public static final String ACTION_SETUP_COMPLETE = "org.lineageos.setupwizard.LINEAGE_SETUP_COMPLETE";
|
||||
public static final String ACTION_FINISHED = "org.lineageos.setupwizard.SETUP_FINISHED";
|
||||
public static final String ACTION_SETUP_WIFI = "android.net.wifi.PICK_WIFI_NETWORK";
|
||||
public static final String ACTION_SETUP_FINGERPRINT = "android.settings.FINGERPRINT_SETUP";
|
||||
public static final String ACTION_SETUP_BIOMETRIC = "android.settings.BIOMETRIC_ENROLL";
|
||||
public static final String ACTION_SETUP_LOCKSCREEN = "com.android.settings.SETUP_LOCK_SCREEN";
|
||||
public static final String ACTION_RESTORE_FROM_BACKUP = "com.stevesoltys.seedvault.RESTORE_BACKUP";
|
||||
public static final String ACTION_EMERGENCY_DIAL = "com.android.phone.EmergencyDialer.DIAL";
|
||||
@@ -60,6 +60,7 @@ public class SetupWizardApp extends Application {
|
||||
public static final String EXTRA_RESULT_CODE = "com.android.setupwizard.ResultCode";
|
||||
public static final String EXTRA_PREFS_SHOW_BUTTON_BAR = "extra_prefs_show_button_bar";
|
||||
public static final String EXTRA_PREFS_SET_BACK_TEXT = "extra_prefs_set_back_text";
|
||||
public static final String EXTRA_IS_SETUP_FLOW = "isSetupFlow";
|
||||
|
||||
public static final String KEY_DETECT_CAPTIVE_PORTAL = "captive_portal_detection_enabled";
|
||||
public static final String KEY_SEND_METRICS = "send_metrics";
|
||||
@@ -69,7 +70,7 @@ public class SetupWizardApp extends Application {
|
||||
public static final int REQUEST_CODE_SETUP_WIFI = 0;
|
||||
public static final int REQUEST_CODE_SETUP_CAPTIVE_PORTAL= 4;
|
||||
public static final int REQUEST_CODE_SETUP_BLUETOOTH= 5;
|
||||
public static final int REQUEST_CODE_SETUP_FINGERPRINT = 7;
|
||||
public static final int REQUEST_CODE_SETUP_BIOMETRIC = 7;
|
||||
public static final int REQUEST_CODE_SETUP_LOCKSCREEN = 9;
|
||||
public static final int REQUEST_CODE_RESTORE = 10;
|
||||
|
||||
|
@@ -42,6 +42,7 @@ import android.content.pm.ComponentInfo;
|
||||
import android.content.pm.PackageInfo;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.content.pm.ServiceInfo;
|
||||
import android.hardware.face.FaceManager;
|
||||
import android.hardware.fingerprint.FingerprintManager;
|
||||
import android.os.Binder;
|
||||
import android.os.SystemProperties;
|
||||
@@ -55,7 +56,7 @@ import android.util.Log;
|
||||
|
||||
import org.lineageos.setupwizard.BluetoothSetupActivity;
|
||||
import org.lineageos.setupwizard.ChooseDataSimActivity;
|
||||
import org.lineageos.setupwizard.FingerprintActivity;
|
||||
import org.lineageos.setupwizard.BiometricActivity;
|
||||
import org.lineageos.setupwizard.MobileDataActivity;
|
||||
import org.lineageos.setupwizard.SetupWizardApp;
|
||||
import org.lineageos.setupwizard.SimMissingActivity;
|
||||
@@ -227,6 +228,10 @@ public class SetupWizardUtils {
|
||||
return packageManager.hasSystemFeature(PackageManager.FEATURE_LEANBACK);
|
||||
}
|
||||
|
||||
public static boolean hasBiometric(Context context) {
|
||||
return hasFingerprint(context) || hasFace(context);
|
||||
}
|
||||
|
||||
public static boolean hasFingerprint(Context context) {
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
if (packageManager.hasSystemFeature(PackageManager.FEATURE_FINGERPRINT)) {
|
||||
@@ -238,6 +243,17 @@ public class SetupWizardUtils {
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean hasFace(Context context) {
|
||||
PackageManager packageManager = context.getPackageManager();
|
||||
if (packageManager.hasSystemFeature(PackageManager.FEATURE_FACE)) {
|
||||
FaceManager faceManager = (FaceManager)
|
||||
context.getSystemService(Context.FACE_SERVICE);
|
||||
return faceManager.isHardwareDetected();
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean simMissing() {
|
||||
return PhoneMonitor.getInstance().simMissing();
|
||||
}
|
||||
@@ -246,8 +262,8 @@ public class SetupWizardUtils {
|
||||
if (!hasLeanback(context)) {
|
||||
disableComponent(context, BluetoothSetupActivity.class);
|
||||
}
|
||||
if (!hasFingerprint(context)) {
|
||||
disableComponent(context, FingerprintActivity.class);
|
||||
if (!hasBiometric(context)) {
|
||||
disableComponent(context, BiometricActivity.class);
|
||||
}
|
||||
if (!hasTelephony(context)) {
|
||||
disableComponent(context, MobileDataActivity.class);
|
||||
|
Reference in New Issue
Block a user