diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 4ff16f95d29..14e5a0d203f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -2638,6 +2638,22 @@
android:value="true" />
+
+
+
+
+
+
+
+
+
+
Wi-Fi calling
+
+ Enable Wi-Fi Calling
Calling preference
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index 41412747b40..e20f93cc160 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -118,6 +118,7 @@ public class Settings extends SettingsActivity {
public static class TopLevelSettings extends SettingsActivity { /* empty */ }
public static class ApnSettingsActivity extends SettingsActivity { /* empty */ }
public static class WifiCallingSettingsActivity extends SettingsActivity { /* empty */ }
+ public static class WifiCallingSuggestionActivity extends SettingsActivity { /* empty */ }
public static class MemorySettingsActivity extends SettingsActivity { /* empty */ }
public static class OverlaySettingsActivity extends SettingsActivity { /* empty */ }
public static class WriteSettingsActivity extends SettingsActivity { /* empty */ }
diff --git a/src/com/android/settings/dashboard/SuggestionsChecks.java b/src/com/android/settings/dashboard/SuggestionsChecks.java
index b483ac7ed04..d9512b31b14 100644
--- a/src/com/android/settings/dashboard/SuggestionsChecks.java
+++ b/src/com/android/settings/dashboard/SuggestionsChecks.java
@@ -24,7 +24,9 @@ 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.WallpaperSuggestionActivity;
+import com.android.settings.Settings.WifiCallingSuggestionActivity;
import com.android.settings.Settings.ZenModeAutomationSuggestionActivity;
import com.android.settingslib.drawer.Tile;
@@ -47,10 +49,20 @@ public class SuggestionsChecks {
return hasEnabledZenAutoRules();
} else if (className.equals(WallpaperSuggestionActivity.class.getName())) {
return hasWallpaperSet();
+ } else if (className.equals(WifiCallingSuggestionActivity.class.getName())) {
+ return isWifiCallingUnavailableOrEnabled();
}
return false;
}
+ 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();