Merge "Fix a crash in battery settings page" into qt-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 603900c..764e1d2 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -436,6 +436,17 @@
android:value="com.android.settings.biometrics.face.FaceSettings" />
</activity>
+ <activity android:name="Settings$FingerprintSettingsActivity"
+ android:label="@string/security_settings_fingerprint_preference_title"
+ android:icon="@drawable/ic_fingerprint_header">
+ <intent-filter>
+ <action android:name="android.settings.FINGERPRINT_SETTINGS" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+ android:value="com.android.settings.biometrics.fingerprint.FingerprintSettings$FingerprintSettingsFragment" />
+ </activity>
+
<activity android:name=".bluetooth.DevicePickerActivity"
android:label="@string/device_picker"
android:configChanges="orientation|keyboardHidden|screenSize"
diff --git a/res/drawable-nodpi/accessibility_timeout b/res/drawable-nodpi/accessibility_timeout
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/drawable-nodpi/accessibility_timeout
diff --git a/res/raw/accessibility_timeout.mp4 b/res/raw/accessibility_timeout.mp4
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/accessibility_timeout.mp4
diff --git a/res/xml/accessibility_content_timeout_settings.xml b/res/xml/accessibility_content_timeout_settings.xml
index 2d9072b..ea8d88a 100644
--- a/res/xml/accessibility_content_timeout_settings.xml
+++ b/res/xml/accessibility_content_timeout_settings.xml
@@ -25,8 +25,8 @@
<com.android.settings.widget.VideoPreference
android:key="accessibility_content_timeout_video"
android:title="@string/summary_placeholder"
- settings:animation="@raw/gesture_swipe_up"
- settings:preview="@drawable/gesture_swipe_up"
+ settings:animation="@raw/accessibility_timeout"
+ settings:preview="@drawable/accessibility_timeout"
settings:controller="com.android.settings.widget.VideoPreferenceController"
android:persistent="false" />
diff --git a/res/xml/accessibility_control_timeout_settings.xml b/res/xml/accessibility_control_timeout_settings.xml
index ea8d8c6..e5a6e5b 100644
--- a/res/xml/accessibility_control_timeout_settings.xml
+++ b/res/xml/accessibility_control_timeout_settings.xml
@@ -25,8 +25,8 @@
<com.android.settings.widget.VideoPreference
android:key="accessibility_control_timeout_video"
android:title="@string/summary_placeholder"
- settings:animation="@raw/gesture_swipe_up"
- settings:preview="@drawable/gesture_swipe_up"
+ settings:animation="@raw/accessibility_timeout"
+ settings:preview="@drawable/accessibility_timeout"
settings:controller="com.android.settings.widget.VideoPreferenceController"
android:persistent="false" />
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 4cc2f44..f6fe0c2 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -32,6 +32,7 @@
public static class BluetoothSettingsActivity extends SettingsActivity { /* empty */ }
public static class CreateShortcutActivity extends SettingsActivity { /* empty */ }
public static class FaceSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class FingerprintSettingsActivity extends SettingsActivity { /* empty */ }
public static class SimSettingsActivity extends SettingsActivity { /* empty */ }
public static class TetherSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiTetherSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
index b8ec103..02b0723 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFinish.java
@@ -30,9 +30,11 @@
import com.android.settings.R;
import com.android.settings.Utils;
import com.android.settings.biometrics.BiometricEnrollBase;
+import com.android.settings.password.ChooseLockSettingsHelper;
import com.google.android.setupcompat.template.FooterBarMixin;
import com.google.android.setupcompat.template.FooterButton;
+import com.google.android.setupcompat.util.WizardManagerHelper;
/**
* Activity which concludes fingerprint enrollment.
@@ -40,6 +42,8 @@
public class FingerprintEnrollFinish extends BiometricEnrollBase {
private static final String TAG = "FingerprintEnrollFinish";
+ private static final String ACTION_FINGERPRINT_SETTINGS =
+ "android.settings.FINGERPRINT_SETTINGS";
@VisibleForTesting
static final int REQUEST_ADD_ANOTHER = 1;
@VisibleForTesting
@@ -104,6 +108,11 @@
protected void onNextButtonClick(View view) {
updateFingerprintSuggestionEnableState();
setResult(RESULT_FINISHED);
+ if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ postEnroll();
+ } else {
+ launchFingerprintSettings();
+ }
finish();
}
@@ -127,6 +136,24 @@
}
}
+ private void postEnroll() {
+ final FingerprintManager fpm = Utils.getFingerprintManagerOrNull(this);
+ if (fpm != null) {
+ int result = fpm.postEnroll();
+ if (result < 0) {
+ Log.w(TAG, "postEnroll failed: result = " + result);
+ }
+ }
+ }
+
+ private void launchFingerprintSettings() {
+ final Intent intent = new Intent(ACTION_FINGERPRINT_SETTINGS);
+ intent.setPackage(Utils.SETTINGS_PACKAGE_NAME);
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN, mToken);
+ intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
+ startActivity(intent);
+ }
+
private void onAddAnotherButtonClick(View view) {
startActivityForResult(getFingerprintEnrollingIntent(), REQUEST_ADD_ANOTHER);
}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 9418094..9a07821 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -276,6 +276,9 @@
Activity activity = getActivity();
mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
+ mToken = getIntent().getByteArrayExtra(
+ ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
+
mAuthenticateSidecar = (FingerprintAuthenticateSidecar)
getFragmentManager().findFragmentByTag(TAG_AUTHENTICATE_SIDECAR);
if (mAuthenticateSidecar == null) {
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 24fccef..f50d6ad 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -54,6 +54,7 @@
import com.android.settings.backup.ToggleBackupSettingFragment;
import com.android.settings.backup.UserBackupSettingsActivity;
import com.android.settings.biometrics.face.FaceSettings;
+import com.android.settings.biometrics.fingerprint.FingerprintSettings;
import com.android.settings.bluetooth.BluetoothDeviceDetailsFragment;
import com.android.settings.connecteddevice.AdvancedConnectedDeviceDashboardFragment;
import com.android.settings.connecteddevice.ConnectedDeviceDashboardFragment;
@@ -203,6 +204,7 @@
AccountSyncSettings.class.getName(),
AssistGestureSettings.class.getName(),
FaceSettings.class.getName(),
+ FingerprintSettings.FingerprintSettingsFragment.class.getName(),
SwipeToNotificationSettings.class.getName(),
DoubleTapPowerSettings.class.getName(),
DoubleTapScreenSettings.class.getName(),
diff --git a/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java b/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java
index 58e1916..f7b3222 100644
--- a/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java
+++ b/src/com/android/settings/notification/AbstractZenModeAutomaticRulePreferenceController.java
@@ -123,11 +123,14 @@
return new ComponentName(ci.packageName, ci.name);
}
// old service backed rule
- final String configurationActivity =
- ci.metaData.getString(ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY);
- if (configurationActivity != null) {
- return ComponentName.unflattenFromString(configurationActivity);
+ if (ci.metaData != null) {
+ final String configurationActivity = ci.metaData.getString(
+ ConditionProviderService.META_DATA_CONFIGURATION_ACTIVITY);
+ if (configurationActivity != null) {
+ return ComponentName.unflattenFromString(configurationActivity);
+ }
}
+
return null;
}