Loading res/values/strings.xml +10 −0 Original line number Original line Diff line number Diff line Loading @@ -12495,6 +12495,16 @@ <string name="calls_preference_title">Calls</string> <string name="calls_preference_title">Calls</string> <!-- Provider Model: SMS preference title --> <!-- Provider Model: SMS preference title --> <string name="sms_preference_title">SMS</string> <string name="sms_preference_title">SMS</string> <!-- Provider Model: Preferred status in summary for Calls & SMS --> <string name="calls_sms_preferred">preferred</string> <!-- Provider Model: Calls Preferred status in summary for Calls & SMS --> <string name="calls_sms_calls_preferred">calls preferred</string> <!-- Provider Model: SMS Preferred status in summary for Calls & SMS --> <string name="calls_sms_sms_preferred">SMS preferred</string> <!-- Provider Model: Unavailable status in summary for Calls & SMS --> <string name="calls_sms_unavailable">unavailable</string> <!-- Provider Model: No SIM status in summary for Calls & SMS --> <string name="calls_sms_no_sim">No SIM</string> <!-- Network & internet preferences title [CHAR LIMIT=NONE] --> <!-- Network & internet preferences title [CHAR LIMIT=NONE] --> <string name="network_and_internet_preferences_title">Preferences</string> <string name="network_and_internet_preferences_title">Preferences</string> <!-- Network & internet preferences summary [CHAR LIMIT=NONE] --> <!-- Network & internet preferences summary [CHAR LIMIT=NONE] --> src/com/android/settings/network/NetworkProviderCallsSmsController.java +10 −10 Original line number Original line Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.content.Context; import android.os.UserManager; import android.os.UserManager; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.LifecycleObserver; Loading @@ -42,10 +41,6 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl private static final String TAG = "NetworkProviderCallsSmsController"; private static final String TAG = "NetworkProviderCallsSmsController"; private static final String KEY = "calls_and_sms"; private static final String KEY = "calls_and_sms"; private static final String PREFERRED_CALL_SMS = "preferred"; private static final String PREFERRED_CALL = "calls preferred"; private static final String PREFERRED_SMS = "SMS preferred"; private static final String UNAVAILABLE = "unavailable"; private UserManager mUserManager; private UserManager mUserManager; private SubscriptionManager mSubscriptionManager; private SubscriptionManager mSubscriptionManager; Loading Loading @@ -91,7 +86,7 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl mSubscriptionManager); mSubscriptionManager); if (subs.isEmpty()) { if (subs.isEmpty()) { return null; return setSummaryResId(R.string.calls_sms_no_sim); } else { } else { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); for (SubscriptionInfo subInfo : subs) { for (SubscriptionInfo subInfo : subs) { Loading Loading @@ -131,19 +126,23 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl boolean isSmsPreferred = subId == getDefaultSmsSubscriptionId(); boolean isSmsPreferred = subId == getDefaultSmsSubscriptionId(); if (!SubscriptionManager.isValidSubscriptionId(subId)) { if (!SubscriptionManager.isValidSubscriptionId(subId)) { status = UNAVAILABLE; status = setSummaryResId(R.string.calls_sms_unavailable); } else { } else { if (isDataPreferred && isSmsPreferred) { if (isDataPreferred && isSmsPreferred) { status = PREFERRED_CALL_SMS; status = setSummaryResId(R.string.calls_sms_preferred); } else if (isDataPreferred) { } else if (isDataPreferred) { status = PREFERRED_CALL; status = setSummaryResId(R.string.calls_sms_calls_preferred); } else if (isSmsPreferred) { } else if (isSmsPreferred) { status = PREFERRED_SMS; status = setSummaryResId(R.string.calls_sms_sms_preferred); } } } } return status; return status; } } private String setSummaryResId(int resId) { return mContext.getResources().getString(resId); } @VisibleForTesting @VisibleForTesting protected int getDefaultVoiceSubscriptionId(){ protected int getDefaultVoiceSubscriptionId(){ return SubscriptionManager.getDefaultVoiceSubscriptionId(); return SubscriptionManager.getDefaultVoiceSubscriptionId(); Loading @@ -167,6 +166,7 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl if (subs.isEmpty()) { if (subs.isEmpty()) { mPreference.setEnabled(false); mPreference.setEnabled(false); } else { } else { mPreference.setEnabled(true); mPreference.setFragment(NetworkProviderCallsSmsFragment.class.getCanonicalName()); mPreference.setFragment(NetworkProviderCallsSmsFragment.class.getCanonicalName()); } } } } Loading tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java +23 −11 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.text.TextUtils; import android.text.TextUtils; import com.android.settings.testutils.ResourcesUtils; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.RestrictedPreference; Loading @@ -46,6 +47,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Arrays; import java.util.Arrays; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn; Loading @@ -60,10 +62,6 @@ public class NetworkProviderCallsSmsControllerTest { private static final String KEY_PREFERENCE_CALLS_SMS = "calls_and_sms"; private static final String KEY_PREFERENCE_CALLS_SMS = "calls_and_sms"; private static final String DISPLAY_NAME_1 = "Sub 1"; private static final String DISPLAY_NAME_1 = "Sub 1"; private static final String DISPLAY_NAME_2 = "Sub 2"; private static final String DISPLAY_NAME_2 = "Sub 2"; private static final String PREFERRED_CALL_SMS = "preferred"; private static final String PREFERRED_CALL = "calls preferred"; private static final String PREFERRED_SMS = "SMS preferred"; private static final String UNAVAILABLE = "unavailable"; @Mock @Mock private SubscriptionManager mSubscriptionManager; private SubscriptionManager mSubscriptionManager; Loading Loading @@ -150,6 +148,20 @@ public class NetworkProviderCallsSmsControllerTest { when(subscriptionInfo.getDisplayName()).thenReturn(displayName); when(subscriptionInfo.getDisplayName()).thenReturn(displayName); } } private String setSummaryResId(String resName) { return ResourcesUtils.getResourcesString(mContext, resName); } @Test @UiThreadTest public void getSummary_noSim_returnNoSim() { when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>()); displayPreferenceWithLifecycle(); assertTrue(TextUtils.equals(mController.getSummary(), setSummaryResId("calls_sms_no_sim"))); } @Test @Test @UiThreadTest @UiThreadTest public void getSummary_invalidSubId_returnUnavailable() { public void getSummary_invalidSubId_returnUnavailable() { Loading @@ -162,7 +174,7 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(UNAVAILABLE) .append(setSummaryResId("calls_sms_unavailable")) .append(")"); .append(")"); assertTrue(TextUtils.equals(mController.getSummary(), summary)); assertTrue(TextUtils.equals(mController.getSummary(), summary)); Loading @@ -181,7 +193,7 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(UNAVAILABLE) .append(setSummaryResId("calls_sms_unavailable")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2); .append(DISPLAY_NAME_2); Loading Loading @@ -233,12 +245,12 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(PREFERRED_CALL) .append(setSummaryResId("calls_sms_calls_preferred")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2) .append(DISPLAY_NAME_2) .append(" (") .append(" (") .append(PREFERRED_SMS) .append(setSummaryResId("calls_sms_sms_preferred")) .append(")"); .append(")"); assertTrue(TextUtils.equals(mController.getSummary(), summary)); assertTrue(TextUtils.equals(mController.getSummary(), summary)); Loading @@ -260,12 +272,12 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(PREFERRED_SMS) .append(setSummaryResId("calls_sms_sms_preferred")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2) .append(DISPLAY_NAME_2) .append(" (") .append(" (") .append(PREFERRED_CALL) .append(setSummaryResId("calls_sms_calls_preferred")) .append(")"); .append(")"); assertTrue(TextUtils.equals(mController.getSummary(), summary)); assertTrue(TextUtils.equals(mController.getSummary(), summary)); Loading @@ -287,7 +299,7 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(PREFERRED_CALL_SMS) .append(setSummaryResId("calls_sms_preferred")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2); .append(DISPLAY_NAME_2); Loading Loading
res/values/strings.xml +10 −0 Original line number Original line Diff line number Diff line Loading @@ -12495,6 +12495,16 @@ <string name="calls_preference_title">Calls</string> <string name="calls_preference_title">Calls</string> <!-- Provider Model: SMS preference title --> <!-- Provider Model: SMS preference title --> <string name="sms_preference_title">SMS</string> <string name="sms_preference_title">SMS</string> <!-- Provider Model: Preferred status in summary for Calls & SMS --> <string name="calls_sms_preferred">preferred</string> <!-- Provider Model: Calls Preferred status in summary for Calls & SMS --> <string name="calls_sms_calls_preferred">calls preferred</string> <!-- Provider Model: SMS Preferred status in summary for Calls & SMS --> <string name="calls_sms_sms_preferred">SMS preferred</string> <!-- Provider Model: Unavailable status in summary for Calls & SMS --> <string name="calls_sms_unavailable">unavailable</string> <!-- Provider Model: No SIM status in summary for Calls & SMS --> <string name="calls_sms_no_sim">No SIM</string> <!-- Network & internet preferences title [CHAR LIMIT=NONE] --> <!-- Network & internet preferences title [CHAR LIMIT=NONE] --> <string name="network_and_internet_preferences_title">Preferences</string> <string name="network_and_internet_preferences_title">Preferences</string> <!-- Network & internet preferences summary [CHAR LIMIT=NONE] --> <!-- Network & internet preferences summary [CHAR LIMIT=NONE] -->
src/com/android/settings/network/NetworkProviderCallsSmsController.java +10 −10 Original line number Original line Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.content.Context; import android.os.UserManager; import android.os.UserManager; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.util.Log; import androidx.annotation.VisibleForTesting; import androidx.annotation.VisibleForTesting; import androidx.lifecycle.LifecycleObserver; import androidx.lifecycle.LifecycleObserver; Loading @@ -42,10 +41,6 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl private static final String TAG = "NetworkProviderCallsSmsController"; private static final String TAG = "NetworkProviderCallsSmsController"; private static final String KEY = "calls_and_sms"; private static final String KEY = "calls_and_sms"; private static final String PREFERRED_CALL_SMS = "preferred"; private static final String PREFERRED_CALL = "calls preferred"; private static final String PREFERRED_SMS = "SMS preferred"; private static final String UNAVAILABLE = "unavailable"; private UserManager mUserManager; private UserManager mUserManager; private SubscriptionManager mSubscriptionManager; private SubscriptionManager mSubscriptionManager; Loading Loading @@ -91,7 +86,7 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl mSubscriptionManager); mSubscriptionManager); if (subs.isEmpty()) { if (subs.isEmpty()) { return null; return setSummaryResId(R.string.calls_sms_no_sim); } else { } else { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); for (SubscriptionInfo subInfo : subs) { for (SubscriptionInfo subInfo : subs) { Loading Loading @@ -131,19 +126,23 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl boolean isSmsPreferred = subId == getDefaultSmsSubscriptionId(); boolean isSmsPreferred = subId == getDefaultSmsSubscriptionId(); if (!SubscriptionManager.isValidSubscriptionId(subId)) { if (!SubscriptionManager.isValidSubscriptionId(subId)) { status = UNAVAILABLE; status = setSummaryResId(R.string.calls_sms_unavailable); } else { } else { if (isDataPreferred && isSmsPreferred) { if (isDataPreferred && isSmsPreferred) { status = PREFERRED_CALL_SMS; status = setSummaryResId(R.string.calls_sms_preferred); } else if (isDataPreferred) { } else if (isDataPreferred) { status = PREFERRED_CALL; status = setSummaryResId(R.string.calls_sms_calls_preferred); } else if (isSmsPreferred) { } else if (isSmsPreferred) { status = PREFERRED_SMS; status = setSummaryResId(R.string.calls_sms_sms_preferred); } } } } return status; return status; } } private String setSummaryResId(int resId) { return mContext.getResources().getString(resId); } @VisibleForTesting @VisibleForTesting protected int getDefaultVoiceSubscriptionId(){ protected int getDefaultVoiceSubscriptionId(){ return SubscriptionManager.getDefaultVoiceSubscriptionId(); return SubscriptionManager.getDefaultVoiceSubscriptionId(); Loading @@ -167,6 +166,7 @@ public class NetworkProviderCallsSmsController extends AbstractPreferenceControl if (subs.isEmpty()) { if (subs.isEmpty()) { mPreference.setEnabled(false); mPreference.setEnabled(false); } else { } else { mPreference.setEnabled(true); mPreference.setFragment(NetworkProviderCallsSmsFragment.class.getCanonicalName()); mPreference.setFragment(NetworkProviderCallsSmsFragment.class.getCanonicalName()); } } } } Loading
tests/unit/src/com/android/settings/network/NetworkProviderCallsSmsControllerTest.java +23 −11 Original line number Original line Diff line number Diff line Loading @@ -27,6 +27,7 @@ import android.telephony.SubscriptionInfo; import android.telephony.SubscriptionManager; import android.telephony.SubscriptionManager; import android.text.TextUtils; import android.text.TextUtils; import com.android.settings.testutils.ResourcesUtils; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.core.lifecycle.Lifecycle; import com.android.settingslib.RestrictedPreference; import com.android.settingslib.RestrictedPreference; Loading @@ -46,6 +47,7 @@ import org.junit.runner.RunWith; import org.mockito.Mock; import org.mockito.Mock; import org.mockito.MockitoAnnotations; import org.mockito.MockitoAnnotations; import java.util.ArrayList; import java.util.Arrays; import java.util.Arrays; import static org.mockito.Mockito.doReturn; import static org.mockito.Mockito.doReturn; Loading @@ -60,10 +62,6 @@ public class NetworkProviderCallsSmsControllerTest { private static final String KEY_PREFERENCE_CALLS_SMS = "calls_and_sms"; private static final String KEY_PREFERENCE_CALLS_SMS = "calls_and_sms"; private static final String DISPLAY_NAME_1 = "Sub 1"; private static final String DISPLAY_NAME_1 = "Sub 1"; private static final String DISPLAY_NAME_2 = "Sub 2"; private static final String DISPLAY_NAME_2 = "Sub 2"; private static final String PREFERRED_CALL_SMS = "preferred"; private static final String PREFERRED_CALL = "calls preferred"; private static final String PREFERRED_SMS = "SMS preferred"; private static final String UNAVAILABLE = "unavailable"; @Mock @Mock private SubscriptionManager mSubscriptionManager; private SubscriptionManager mSubscriptionManager; Loading Loading @@ -150,6 +148,20 @@ public class NetworkProviderCallsSmsControllerTest { when(subscriptionInfo.getDisplayName()).thenReturn(displayName); when(subscriptionInfo.getDisplayName()).thenReturn(displayName); } } private String setSummaryResId(String resName) { return ResourcesUtils.getResourcesString(mContext, resName); } @Test @UiThreadTest public void getSummary_noSim_returnNoSim() { when(mSubscriptionManager.getActiveSubscriptionInfoList()).thenReturn(new ArrayList<>()); displayPreferenceWithLifecycle(); assertTrue(TextUtils.equals(mController.getSummary(), setSummaryResId("calls_sms_no_sim"))); } @Test @Test @UiThreadTest @UiThreadTest public void getSummary_invalidSubId_returnUnavailable() { public void getSummary_invalidSubId_returnUnavailable() { Loading @@ -162,7 +174,7 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(UNAVAILABLE) .append(setSummaryResId("calls_sms_unavailable")) .append(")"); .append(")"); assertTrue(TextUtils.equals(mController.getSummary(), summary)); assertTrue(TextUtils.equals(mController.getSummary(), summary)); Loading @@ -181,7 +193,7 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(UNAVAILABLE) .append(setSummaryResId("calls_sms_unavailable")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2); .append(DISPLAY_NAME_2); Loading Loading @@ -233,12 +245,12 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(PREFERRED_CALL) .append(setSummaryResId("calls_sms_calls_preferred")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2) .append(DISPLAY_NAME_2) .append(" (") .append(" (") .append(PREFERRED_SMS) .append(setSummaryResId("calls_sms_sms_preferred")) .append(")"); .append(")"); assertTrue(TextUtils.equals(mController.getSummary(), summary)); assertTrue(TextUtils.equals(mController.getSummary(), summary)); Loading @@ -260,12 +272,12 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(PREFERRED_SMS) .append(setSummaryResId("calls_sms_sms_preferred")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2) .append(DISPLAY_NAME_2) .append(" (") .append(" (") .append(PREFERRED_CALL) .append(setSummaryResId("calls_sms_calls_preferred")) .append(")"); .append(")"); assertTrue(TextUtils.equals(mController.getSummary(), summary)); assertTrue(TextUtils.equals(mController.getSummary(), summary)); Loading @@ -287,7 +299,7 @@ public class NetworkProviderCallsSmsControllerTest { final StringBuilder summary = new StringBuilder(); final StringBuilder summary = new StringBuilder(); summary.append(DISPLAY_NAME_1) summary.append(DISPLAY_NAME_1) .append(" (") .append(" (") .append(PREFERRED_CALL_SMS) .append(setSummaryResId("calls_sms_preferred")) .append(")") .append(")") .append(", ") .append(", ") .append(DISPLAY_NAME_2); .append(DISPLAY_NAME_2); Loading