OSDN Git Service

[Fingerprint] Export FingerprintEnrollIntroduction
authorMaurice Lam <yukl@google.com>
Wed, 8 Jul 2015 23:59:59 +0000 (16:59 -0700)
committerMaurice Lam <yukl@google.com>
Sat, 11 Jul 2015 04:00:02 +0000 (21:00 -0700)
Export FingerprintEnrollIntroduction activity under the permission
USE_FINGERPRINT so that setup wizard can start it.

Bug: 21695577
Change-Id: If466c6e484a4aa0c10382cfedab0aad10ae26702

AndroidManifest.xml
src/com/android/settings/SecuritySettings.java
src/com/android/settings/fingerprint/FingerprintEnrollIntroduction.java

index 52889a6..5e93137 100644 (file)
         <activity android:name=".fingerprint.FingerprintEnrollFindSensor" android:exported="false"/>
         <activity android:name=".fingerprint.FingerprintEnrollEnrolling" android:exported="false"/>
         <activity android:name=".fingerprint.FingerprintEnrollFinish" android:exported="false"/>
-        <activity android:name=".fingerprint.FingerprintEnrollIntroduction" android:exported="false"/>
+        <activity android:name=".fingerprint.FingerprintEnrollIntroduction"
+            android:exported="true"
+            android:permission="android.permission.MANAGE_FINGERPRINT">
+            <intent-filter>
+                <action android:name="android.settings.FINGERPRINT_SETUP" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+        </activity>
 
         <!-- Note this must not be exported since it returns the password in the intent -->
         <activity android:name="ConfirmLockPattern$InternalActivity"
index b41d70f..bf091f6 100644 (file)
@@ -355,9 +355,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
         final List<Fingerprint> items = fpm.getEnrolledFingerprints();
         final int fingerprintCount = items != null ? items.size() : 0;
         final String clazz;
-        boolean hasPassword = mChooseLockSettingsHelper.utils().getActivePasswordQuality(
-                MY_USER_ID)
-                != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
         if (fingerprintCount > 0) {
             fingerprintPreference.setSummary(getResources().getQuantityString(
                     R.plurals.security_settings_fingerprint_preference_summary,
@@ -365,7 +362,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
             clazz = FingerprintSettings.class.getName();
         } else {
             clazz = FingerprintEnrollIntroduction.class.getName();
-            intent.putExtra(FingerprintEnrollIntroduction.EXTRA_HAS_PASSWORD, hasPassword);
         }
         intent.setClassName("com.android.settings", clazz);
         fingerprintPreference.setIntent(intent);
index a488358..64e7690 100644 (file)
 
 package com.android.settings.fingerprint;
 
+import android.app.admin.DevicePolicyManager;
 import android.content.Intent;
 import android.os.Bundle;
+import android.os.UserHandle;
 import android.view.View;
 
+import com.android.settings.ChooseLockSettingsHelper;
 import com.android.settings.HelpUtils;
 import com.android.settings.R;
 
@@ -28,7 +31,6 @@ import com.android.settings.R;
  */
 public class FingerprintEnrollIntroduction extends FingerprintEnrollBase {
 
-    public static final String EXTRA_HAS_PASSWORD = "fp_existing_password";
     private boolean mHasPassword;
 
     @Override
@@ -38,7 +40,9 @@ public class FingerprintEnrollIntroduction extends FingerprintEnrollBase {
         setHeaderText(R.string.security_settings_fingerprint_enroll_introduction_title);
         findViewById(R.id.cancel_button).setOnClickListener(this);
         findViewById(R.id.learn_more_button).setOnClickListener(this);
-        mHasPassword = getIntent().getBooleanExtra(EXTRA_HAS_PASSWORD, false);
+        final double passwordQuality = new ChooseLockSettingsHelper(this).utils()
+                .getActivePasswordQuality(UserHandle.myUserId());
+        mHasPassword = passwordQuality != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
     }
 
     @Override