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();