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