[Provider Model] Adjust slice title and subtitle
- Show "Airplane mode" title when airplane mode is enabled - Remove "Airplane mode is on" subtitle - Show "Wi-Fi is turned on" subtitle when both airplane mode and Wi-Fi is enabled - Remove the function related to isApmNetworksAvailable() - Screenshot: https://screenshot.googleplex.com/6X9nzmXRCUfw4Lp https://screenshot.googleplex.com/6jQryMjU2yDDpmM Bug: 181858434 Test: manual test atest -c InternetConnectivityPanelTest \ InternetPreferenceControllerTest \ InternetUpdaterTest Change-Id: I84e5d4c60ed91d58443b27c35286a84bf72ac173
This commit is contained in:
@@ -12735,12 +12735,10 @@
|
||||
<string name="resetting_internet_text">Resetting your internet\u2026</string>
|
||||
<!-- Menu option for data connectivity recovery for all requested technologies. [CHAR_LIMIT=NONE] -->
|
||||
<string name="fix_connectivity">Fix connectivity</string>
|
||||
<!-- Summary for airplane mode networks available. [CHAR LIMIT=60] -->
|
||||
<string name="airplane_mode_network_available">Airplane mode networks available</string>
|
||||
<!-- Summary for warning to disconnect ethernet first then switch to other networks. [CHAR LIMIT=60] -->
|
||||
<string name="to_switch_networks_disconnect_ethernet">To switch networks, disconnect ethernet</string>
|
||||
<!-- Title for airplane mode network panel. [CHAR LIMIT=60] -->
|
||||
<string name="airplane_mode_network_panel_title">Airplane mode networks</string>
|
||||
<!-- Panel subtitle for Wi-Fi turned on. [CHAR LIMIT=60] -->
|
||||
<string name="wifi_is_turned_on_subtitle">Wi\u2011Fi is turned on</string>
|
||||
|
||||
<!-- Summary text separator for preferences including a short description
|
||||
(eg. "Connected / 5G"). [CHAR LIMIT=50] -->
|
||||
|
@@ -124,12 +124,6 @@ public class InternetPreferenceController extends AbstractPreferenceController i
|
||||
return;
|
||||
}
|
||||
|
||||
if (mInternetType == INTERNET_NETWORKS_AVAILABLE
|
||||
&& mInternetUpdater.isApmNetworksAvailable()) {
|
||||
mPreference.setSummary(R.string.airplane_mode_network_available);
|
||||
return;
|
||||
}
|
||||
|
||||
final @IdRes int summary = sSummaryMap.get(mInternetType);
|
||||
if (summary != 0) {
|
||||
mPreference.setSummary(summary);
|
||||
|
@@ -73,9 +73,9 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange
|
||||
default void onAirplaneModeChanged(boolean isAirplaneModeOn) {};
|
||||
|
||||
/**
|
||||
* Called when airplane mode networks state is changed.
|
||||
* Called when Wi-Fi enabled is changed.
|
||||
*/
|
||||
default void onAirplaneModeNetworksChanged(boolean available) {};
|
||||
default void onWifiEnabledChanged(boolean enabled) {};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -157,9 +157,8 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
fetchActiveNetwork();
|
||||
if (mListener != null && mAirplaneModeEnabler.isAirplaneModeOn()) {
|
||||
mListener.onAirplaneModeNetworksChanged(
|
||||
mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED);
|
||||
if (mListener != null) {
|
||||
mListener.onWifiEnabledChanged(mWifiManager.isWifiEnabled());
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -272,10 +271,9 @@ public class InternetUpdater implements AirplaneModeEnabler.OnAirplaneModeChange
|
||||
}
|
||||
|
||||
/**
|
||||
* Return ture when the APM networks is available.
|
||||
* Return ture when the Wi-Fi is enabled.
|
||||
*/
|
||||
public boolean isApmNetworksAvailable() {
|
||||
return mAirplaneModeEnabler.isAirplaneModeOn()
|
||||
&& (mWifiManager.getWifiState() == WifiManager.WIFI_STATE_ENABLED);
|
||||
public boolean isWifiEnabled() {
|
||||
return mWifiManager.isWifiEnabled();
|
||||
}
|
||||
}
|
||||
|
@@ -50,9 +50,8 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
||||
@VisibleForTesting
|
||||
boolean mIsProviderModelEnabled;
|
||||
private PanelContentCallback mCallback;
|
||||
private InternetUpdater mInternetUpdater;
|
||||
private boolean mIsAirplaneModeOn;
|
||||
private boolean mIsApmNetworksAvailable;
|
||||
@VisibleForTesting
|
||||
InternetUpdater mInternetUpdater;
|
||||
|
||||
public static InternetConnectivityPanel create(Context context) {
|
||||
return new InternetConnectivityPanel(context);
|
||||
@@ -62,8 +61,6 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
||||
mContext = context.getApplicationContext();
|
||||
mIsProviderModelEnabled = Utils.isProviderModelEnabled(mContext);
|
||||
mInternetUpdater = new InternetUpdater(context, null /* Lifecycle */, this);
|
||||
mIsAirplaneModeOn = mInternetUpdater.isAirplaneModeOn();
|
||||
mIsApmNetworksAvailable = mInternetUpdater.isApmNetworksAvailable();
|
||||
}
|
||||
|
||||
/** @OnLifecycleEvent(ON_RESUME) */
|
||||
@@ -90,9 +87,8 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
||||
@Override
|
||||
public CharSequence getTitle() {
|
||||
if (mIsProviderModelEnabled) {
|
||||
return mContext.getText(mIsApmNetworksAvailable
|
||||
? R.string.airplane_mode_network_panel_title
|
||||
: R.string.provider_internet_settings);
|
||||
return mContext.getText(mInternetUpdater.isAirplaneModeOn()
|
||||
? R.string.airplane_mode : R.string.provider_internet_settings);
|
||||
}
|
||||
return mContext.getText(R.string.internet_connectivity_panel_title);
|
||||
}
|
||||
@@ -102,8 +98,9 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
||||
*/
|
||||
@Override
|
||||
public CharSequence getSubTitle() {
|
||||
if (mIsProviderModelEnabled && mIsAirplaneModeOn && !mIsApmNetworksAvailable) {
|
||||
return mContext.getText(R.string.condition_airplane_title);
|
||||
if (mIsProviderModelEnabled && mInternetUpdater.isAirplaneModeOn()
|
||||
&& mInternetUpdater.isWifiEnabled()) {
|
||||
return mContext.getText(R.string.wifi_is_turned_on_subtitle);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@@ -136,7 +133,7 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
||||
|
||||
@Override
|
||||
public CharSequence getCustomizedButtonTitle() {
|
||||
if (mIsAirplaneModeOn && !mIsApmNetworksAvailable) {
|
||||
if (mInternetUpdater.isAirplaneModeOn() && !mInternetUpdater.isWifiEnabled()) {
|
||||
return null;
|
||||
}
|
||||
return mContext.getText(R.string.settings_button);
|
||||
@@ -162,19 +159,14 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
||||
*/
|
||||
@Override
|
||||
public void onAirplaneModeChanged(boolean isAirplaneModeOn) {
|
||||
if (!isAirplaneModeOn) {
|
||||
mIsApmNetworksAvailable = false;
|
||||
}
|
||||
mIsAirplaneModeOn = isAirplaneModeOn;
|
||||
updatePanelTitle();
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when airplane mode networks state is changed.
|
||||
* Called when Wi-Fi enabled is changed.
|
||||
*/
|
||||
@Override
|
||||
public void onAirplaneModeNetworksChanged(boolean available) {
|
||||
mIsApmNetworksAvailable = available;
|
||||
public void onWifiEnabledChanged(boolean enabled) {
|
||||
updatePanelTitle();
|
||||
}
|
||||
|
||||
@@ -183,16 +175,14 @@ public class InternetConnectivityPanel implements PanelContent, LifecycleObserve
|
||||
return;
|
||||
}
|
||||
|
||||
if (mIsAirplaneModeOn && !mIsApmNetworksAvailable) {
|
||||
// When the airplane mode is on.
|
||||
// Title: Internet
|
||||
// Sub-Title: Airplane mode is on
|
||||
// Settings button: Hide
|
||||
if (mInternetUpdater.isAirplaneModeOn() && mInternetUpdater.isWifiEnabled()) {
|
||||
// When the airplane mode is on and Wi-Fi is enabled.
|
||||
// Title: Airplane mode
|
||||
// Sub-Title: Wi-Fi is turned on
|
||||
mCallback.onHeaderChanged();
|
||||
} else {
|
||||
// Except for airplane mode on.
|
||||
// Title: Airplane mode networks / Internet
|
||||
// Settings button: Show
|
||||
// Other situations.
|
||||
// Title: Airplane mode / Internet
|
||||
mCallback.onTitleChanged();
|
||||
}
|
||||
mCallback.onCustomizedButtonStateChanged();
|
||||
|
@@ -19,6 +19,7 @@ package com.android.settings.panel;
|
||||
import static com.google.common.truth.Truth.assertThat;
|
||||
|
||||
import static org.mockito.Mockito.clearInvocations;
|
||||
import static org.mockito.Mockito.doReturn;
|
||||
import static org.mockito.Mockito.spy;
|
||||
import static org.mockito.Mockito.verify;
|
||||
|
||||
@@ -29,6 +30,7 @@ import androidx.test.core.app.ApplicationProvider;
|
||||
import androidx.test.ext.junit.runners.AndroidJUnit4;
|
||||
|
||||
import com.android.settings.network.AirplaneModePreferenceController;
|
||||
import com.android.settings.network.InternetUpdater;
|
||||
import com.android.settings.slices.CustomSliceRegistry;
|
||||
import com.android.settings.testutils.ResourcesUtils;
|
||||
|
||||
@@ -47,10 +49,10 @@ public class InternetConnectivityPanelTest {
|
||||
|
||||
public static final String TITLE_INTERNET = ResourcesUtils.getResourcesString(
|
||||
ApplicationProvider.getApplicationContext(), "provider_internet_settings");
|
||||
public static final String TITLE_APM_NETWORKS = ResourcesUtils.getResourcesString(
|
||||
ApplicationProvider.getApplicationContext(), "airplane_mode_network_panel_title");
|
||||
public static final String SUBTITLE_APM_IS_ON = ResourcesUtils.getResourcesString(
|
||||
ApplicationProvider.getApplicationContext(), "condition_airplane_title");
|
||||
public static final String TITLE_APM = ResourcesUtils.getResourcesString(
|
||||
ApplicationProvider.getApplicationContext(), "airplane_mode");
|
||||
public static final String SUBTITLE_WIFI_IS_TURNED_ON = ResourcesUtils.getResourcesString(
|
||||
ApplicationProvider.getApplicationContext(), "wifi_is_turned_on_subtitle");
|
||||
public static final String BUTTON_SETTINGS = ResourcesUtils.getResourcesString(
|
||||
ApplicationProvider.getApplicationContext(), "settings_button");
|
||||
|
||||
@@ -58,6 +60,8 @@ public class InternetConnectivityPanelTest {
|
||||
public final MockitoRule mMocks = MockitoJUnit.rule();
|
||||
@Mock
|
||||
PanelContentCallback mPanelContentCallback;
|
||||
@Mock
|
||||
InternetUpdater mInternetUpdater;
|
||||
|
||||
private Context mContext;
|
||||
private InternetConnectivityPanel mPanel;
|
||||
@@ -69,73 +73,65 @@ public class InternetConnectivityPanelTest {
|
||||
mPanel = InternetConnectivityPanel.create(mContext);
|
||||
mPanel.registerCallback(mPanelContentCallback);
|
||||
mPanel.mIsProviderModelEnabled = true;
|
||||
mPanel.mInternetUpdater = mInternetUpdater;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTitle_apmOnApmNetworksOff_shouldBeInternet() {
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
mPanel.onAirplaneModeNetworksChanged(false);
|
||||
public void getTitle_apmOff_shouldBeInternet() {
|
||||
doReturn(false).when(mInternetUpdater).isAirplaneModeOn();
|
||||
|
||||
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTitle_apmOnApmNetworksOn_shouldBeApmNetworks() {
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
mPanel.onAirplaneModeNetworksChanged(true);
|
||||
public void getTitle_apmOn_shouldBeApm() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
|
||||
assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM_NETWORKS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getTitle_notInternetApmNetworks_shouldBeInternet() {
|
||||
mPanel.onAirplaneModeNetworksChanged(false);
|
||||
|
||||
assertThat(mPanel.getTitle()).isEqualTo(TITLE_INTERNET);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubTitle_apmOnApmNetworksOff_shouldBeApmIsOn() {
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
mPanel.onAirplaneModeNetworksChanged(false);
|
||||
|
||||
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_APM_IS_ON);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubTitle_apmOnApmNetworksOn_shouldBeNull() {
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
mPanel.onAirplaneModeNetworksChanged(true);
|
||||
|
||||
assertThat(mPanel.getSubTitle()).isNull();
|
||||
assertThat(mPanel.getTitle()).isEqualTo(TITLE_APM);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getSubTitle_apmOff_shouldBeNull() {
|
||||
mPanel.onAirplaneModeChanged(false);
|
||||
doReturn(false).when(mInternetUpdater).isAirplaneModeOn();
|
||||
|
||||
assertThat(mPanel.getSubTitle()).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCustomizedButtonTitle_apmOnApmNetworksOff_shouldBeNull() {
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
mPanel.onAirplaneModeNetworksChanged(false);
|
||||
public void getSubTitle_apmOnWifiOff_shouldBeNull() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
||||
|
||||
assertThat(mPanel.getCustomizedButtonTitle()).isNull();
|
||||
assertThat(mPanel.getSubTitle()).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCustomizedButtonTitle_apmOnApmNetworksOn_shouldBeSettings() {
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
mPanel.onAirplaneModeNetworksChanged(true);
|
||||
public void getSubTitle_apmOnWifiOn_shouldWifiIsTurnedOn() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
|
||||
assertThat(mPanel.getSubTitle()).isEqualTo(SUBTITLE_WIFI_IS_TURNED_ON);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCustomizedButtonTitle_apmOff_shouldBeSettings() {
|
||||
doReturn(false).when(mInternetUpdater).isAirplaneModeOn();
|
||||
|
||||
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCustomizedButtonTitle_apmOff_shouldBeSettings() {
|
||||
mPanel.onAirplaneModeChanged(false);
|
||||
public void getCustomizedButtonTitle_apmOnWifiOff_shouldBeNull() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
||||
|
||||
assertThat(mPanel.getCustomizedButtonTitle()).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void getCustomizedButtonTitle_apmOnWifiOn_shouldBeSettings() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
|
||||
assertThat(mPanel.getCustomizedButtonTitle()).isEqualTo(BUTTON_SETTINGS);
|
||||
}
|
||||
@@ -166,46 +162,86 @@ public class InternetConnectivityPanelTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onAirplaneModeOn_apmNetworksOff_changeHeaderAndHideSettings() {
|
||||
mPanel.onAirplaneModeNetworksChanged(false);
|
||||
public void onAirplaneModeOn_apmOff_onTitleChanged() {
|
||||
doReturn(false).when(mInternetUpdater).isAirplaneModeOn();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onAirplaneModeChanged(false);
|
||||
|
||||
verify(mPanelContentCallback).onTitleChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onAirplaneModeOn_apmOnWifiOff_onTitleChanged() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
|
||||
verify(mPanelContentCallback).onTitleChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onAirplaneModeOn_apmOnWifiOn_onHeaderChanged() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
|
||||
verify(mPanelContentCallback).onHeaderChanged();
|
||||
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onAirplaneModeOn_apmNetworksOn_changeTitleAndShowSettings() {
|
||||
mPanel.onAirplaneModeNetworksChanged(true);
|
||||
public void onAirplaneModeOn_onCustomizedButtonStateChanged() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onAirplaneModeChanged(true);
|
||||
|
||||
verify(mPanelContentCallback).onTitleChanged();
|
||||
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onAirplaneModeNetworksOn_apmOff_changeTitleAndShowSettings() {
|
||||
mPanel.onAirplaneModeChanged(false);
|
||||
public void onWifiEnabledChanged_apmOff_onTitleChanged() {
|
||||
doReturn(false).when(mInternetUpdater).isAirplaneModeOn();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onAirplaneModeNetworksChanged(true);
|
||||
mPanel.onWifiEnabledChanged(false);
|
||||
|
||||
verify(mPanelContentCallback).onTitleChanged();
|
||||
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onAirplaneModeNetworksOff_apmOff_changeTitleAndShowSettings() {
|
||||
mPanel.onAirplaneModeChanged(false);
|
||||
public void onWifiEnabledChanged_apmOnWifiOff_onTitleChanged() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(false).when(mInternetUpdater).isWifiEnabled();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onAirplaneModeNetworksChanged(false);
|
||||
mPanel.onWifiEnabledChanged(true);
|
||||
|
||||
verify(mPanelContentCallback).onTitleChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onWifiEnabledChanged_apmOnWifiOn_onHeaderChanged() {
|
||||
doReturn(true).when(mInternetUpdater).isAirplaneModeOn();
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onWifiEnabledChanged(true);
|
||||
|
||||
verify(mPanelContentCallback).onHeaderChanged();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void onWifiEnabledChanged_onCustomizedButtonStateChanged() {
|
||||
doReturn(true).when(mInternetUpdater).isWifiEnabled();
|
||||
clearInvocations(mPanelContentCallback);
|
||||
|
||||
mPanel.onWifiEnabledChanged(true);
|
||||
|
||||
verify(mPanelContentCallback).onCustomizedButtonStateChanged();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user