diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 7c99955a895..3764b95bd8b 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1539,6 +1539,22 @@
android:windowSoftInputMode="stateHidden|adjustResize"
android:theme="@style/Theme.ConfirmDeviceCredentials"/>
+
+
+
+
+
+
+
+
+
+
@@ -2666,6 +2682,22 @@
android:value="true" />
+
+
+
+
+
+
+
+
+
+
Wi-Fi calling
+
+ Enable Wi-Fi Calling
Calling preference
@@ -7016,4 +7018,7 @@
No default Home
+
+ Additional Fingerprints
+
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 41412747b40..5d2468e5b8a 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -17,6 +17,7 @@
package com.android.settings;
import com.android.settings.applications.AppOpsSummary;
+import com.android.settings.fingerprint.FingerprintSettings;
/**
* Top-level Settings activity
@@ -103,7 +104,6 @@ public class Settings extends SettingsActivity {
public static class ZenModeSettingsActivity extends SettingsActivity { /* empty */ }
public static class ZenModePrioritySettingsActivity extends SettingsActivity { /* empty */ }
public static class ZenModeAutomationSettingsActivity extends SettingsActivity { /* empty */ }
- public static class ZenModeAutomationSuggestionActivity extends SettingsActivity { /* empty */ }
public static class ZenModeScheduleRuleSettingsActivity extends SettingsActivity { /* empty */ }
public static class ZenModeEventRuleSettingsActivity extends SettingsActivity { /* empty */ }
public static class ZenModeExternalRuleSettingsActivity extends SettingsActivity { /* empty */ }
@@ -125,7 +125,10 @@ public class Settings extends SettingsActivity {
public static class AppWriteSettingsActivity extends SettingsActivity { /* empty */ }
public static class ManageDefaultAppsActivity extends SettingsActivity { /* empty */ }
+ public static class WifiCallingSuggestionActivity extends SettingsActivity { /* empty */ }
+ public static class ZenModeAutomationSuggestionActivity extends SettingsActivity { /* empty */ }
public static class WallpaperSuggestionActivity extends SettingsActivity { /* empty */ }
+ public static class FingerprintSuggestionActivity extends FingerprintSettings { /* empty */ }
// Categories.
public static class WirelessSettings extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java
index b483ac7ed04..fde7bc194b8 100644
--- a/src/com/android/settings/dashboard/SuggestionsChecks.java
+++ b/src/com/android/settings/dashboard/SuggestionsChecks.java
@@ -20,11 +20,15 @@ import android.app.IWallpaperManager.Stub;
import android.app.IWallpaperManagerCallback;
import android.app.NotificationManager;
import android.content.Context;
+import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
import android.os.IBinder;
import android.os.RemoteException;
import android.os.ServiceManager;
+import com.android.ims.ImsManager;
+import com.android.settings.Settings.FingerprintSuggestionActivity;
import com.android.settings.Settings.WallpaperSuggestionActivity;
+import com.android.settings.Settings.WifiCallingSuggestionActivity;
import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
import com.android.settingslib.drawer.Tile;
@@ -47,10 +51,27 @@ public class SuggestionsChecks {
return hasEnabledZenAutoRules();
} else if (className.equals(WallpaperSuggestionActivity.class.getName())) {
return hasWallpaperSet();
+ } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) {
+ return isWifiCallingUnavailableOrEnabled();
+ } else if (className.equals(FingerprintSuggestionActivity.class.getName())) {
+ return isNotSingleFingerprintEnrolled();
}
return false;
}
+ private boolean isNotSingleFingerprintEnrolled() {
+ FingerprintManager manager = mContext.getSystemService(FingerprintManager.class);
+ return manager == null || manager.getEnrolledFingerprints().size() != 1;
+ }
+
+ public boolean isWifiCallingUnavailableOrEnabled() {
+ if (!ImsManager.isWfcEnabledByPlatform(mContext)) {
+ return true;
+ }
+ return ImsManager.isWfcEnabledByUser(mContext)
+ && ImsManager.isNonTtyOrTtyOnVolteEnabled(mContext);
+ }
+
private boolean hasEnabledZenAutoRules() {
List zenRules = NotificationManager.from(mContext).getAutomaticZenRules();
final int N = zenRules.size();