Loading src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +40 −7 Original line number Diff line number Diff line Loading @@ -191,6 +191,13 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController private final IconInjector mIconInjector; private final IntentFilter mFilter; // Passpoint information - cache it in case of losing these information after // updateAccessPointFromScannedList(). For R2, we should update these data from // WifiManager#getPasspointConfigurations() after users manage the passpoint profile. private boolean mIsExpired; private boolean mIsPasspointConfigurationR1; private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Loading Loading @@ -372,6 +379,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController updateConnectingState(STATE_FAILED); } }; mIsExpired = mAccessPoint.isExpired(); mIsPasspointConfigurationR1 = mAccessPoint.isPasspointConfigurationR1(); } @Override Loading Loading @@ -406,6 +416,11 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController .setButton4Icon(R.drawable.ic_qrcode_24dp) .setButton4OnClickListener(view -> shareNetwork()); if (isPasspointConfigurationR1Expired()) { // Hide Connect button. mButtonsPref.setButton3Visible(false); } mSignalStrengthPref = screen.findPreference(KEY_SIGNAL_STRENGTH_PREF); mTxLinkSpeedPref = screen.findPreference(KEY_TX_LINK_SPEED); mRxLinkSpeedPref = screen.findPreference(KEY_RX_LINK_SPEED); Loading Loading @@ -454,9 +469,18 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController if (usingDataUsageHeader(mContext)) { mSummaryHeaderController.updateState(mDataUsageSummaryPref); } else { String summary; if (isPasspointConfigurationR1Expired()) { // Not able to get summary from AccessPoint because we may lost // PasspointConfiguration information after updateAccessPointFromScannedList(). summary = mContext.getResources().getString( com.android.settingslib.R.string.wifi_passpoint_expired); } else { summary = mAccessPoint.getSettingsSummary(true /* convertSavedAsDisconnected */); } mEntityHeaderController .setSummary( mAccessPoint.getSettingsSummary(true /*convertSavedAsDisconnected*/)) .setSummary(summary) .setRecyclerView(mFragment.getListView(), mLifecycle) .done(mFragment.getActivity(), true /* rebind */); } Loading Loading @@ -744,7 +768,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController boolean canForgetNetwork = canForgetNetwork(); boolean canSignIntoNetwork = canSignIntoNetwork(); boolean canConnectNetwork = canConnectNetwork(); boolean canConnectNetwork = canConnectNetwork() && !isPasspointConfigurationR1Expired(); boolean canShareNetwork = canShareNetwork(); mButtonsPref.setButton1Visible(canForgetNetwork); Loading @@ -762,6 +786,10 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController return !mAccessPoint.isActive(); } private boolean isPasspointConfigurationR1Expired() { return mIsPasspointConfigurationR1 && mIsExpired; } private void refreshIpLayerInfo() { // Hide IP layer info if not a connected network. if (!mAccessPoint.isActive() || mNetwork == null || mLinkProperties == null) { Loading Loading @@ -1109,10 +1137,15 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController case STATE_NOT_IN_RANGE: case STATE_FAILED: case STATE_ENABLE_WIFI_FAILED: if (isPasspointConfigurationR1Expired()) { // Hide Connect button. mButtonsPref.setButton3Visible(false); } else { mButtonsPref.setButton3Text(R.string.wifi_connect) .setButton3Icon(R.drawable.ic_settings_wireless) .setButton3Enabled(true) .setButton3Visible(true); } break; default: Log.e(TAG, "Invalid connect button state : " + state); Loading tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -1877,6 +1877,21 @@ public class WifiDetailPreferenceControllerTest { verify(mockMacAddressPref).setTitle(R.string.wifi_advanced_device_mac_address_title); } @Test public void entityHeader_expiredPasspointR1_shouldHandleExpiration() { setUpForDisconnectedNetwork(); when(mockAccessPoint.isPasspoint()).thenReturn(true); when(mockAccessPoint.isPasspointConfigurationR1()).thenReturn(true); when(mockAccessPoint.isExpired()).thenReturn(true); String expireSummary = mContext.getResources().getString( com.android.settingslib.R.string.wifi_passpoint_expired); displayAndResume(); verify(mockButtonsPref).setButton3Visible(false); verify(mockHeaderController).setSummary(expireSummary); } private ActionButtonsPreference createMock() { final ActionButtonsPreference pref = mock(ActionButtonsPreference.class); when(pref.setButton1Text(anyInt())).thenReturn(pref); Loading Loading
src/com/android/settings/wifi/details/WifiDetailPreferenceController.java +40 −7 Original line number Diff line number Diff line Loading @@ -191,6 +191,13 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController private final IconInjector mIconInjector; private final IntentFilter mFilter; // Passpoint information - cache it in case of losing these information after // updateAccessPointFromScannedList(). For R2, we should update these data from // WifiManager#getPasspointConfigurations() after users manage the passpoint profile. private boolean mIsExpired; private boolean mIsPasspointConfigurationR1; private final BroadcastReceiver mReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { Loading Loading @@ -372,6 +379,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController updateConnectingState(STATE_FAILED); } }; mIsExpired = mAccessPoint.isExpired(); mIsPasspointConfigurationR1 = mAccessPoint.isPasspointConfigurationR1(); } @Override Loading Loading @@ -406,6 +416,11 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController .setButton4Icon(R.drawable.ic_qrcode_24dp) .setButton4OnClickListener(view -> shareNetwork()); if (isPasspointConfigurationR1Expired()) { // Hide Connect button. mButtonsPref.setButton3Visible(false); } mSignalStrengthPref = screen.findPreference(KEY_SIGNAL_STRENGTH_PREF); mTxLinkSpeedPref = screen.findPreference(KEY_TX_LINK_SPEED); mRxLinkSpeedPref = screen.findPreference(KEY_RX_LINK_SPEED); Loading Loading @@ -454,9 +469,18 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController if (usingDataUsageHeader(mContext)) { mSummaryHeaderController.updateState(mDataUsageSummaryPref); } else { String summary; if (isPasspointConfigurationR1Expired()) { // Not able to get summary from AccessPoint because we may lost // PasspointConfiguration information after updateAccessPointFromScannedList(). summary = mContext.getResources().getString( com.android.settingslib.R.string.wifi_passpoint_expired); } else { summary = mAccessPoint.getSettingsSummary(true /* convertSavedAsDisconnected */); } mEntityHeaderController .setSummary( mAccessPoint.getSettingsSummary(true /*convertSavedAsDisconnected*/)) .setSummary(summary) .setRecyclerView(mFragment.getListView(), mLifecycle) .done(mFragment.getActivity(), true /* rebind */); } Loading Loading @@ -744,7 +768,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController boolean canForgetNetwork = canForgetNetwork(); boolean canSignIntoNetwork = canSignIntoNetwork(); boolean canConnectNetwork = canConnectNetwork(); boolean canConnectNetwork = canConnectNetwork() && !isPasspointConfigurationR1Expired(); boolean canShareNetwork = canShareNetwork(); mButtonsPref.setButton1Visible(canForgetNetwork); Loading @@ -762,6 +786,10 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController return !mAccessPoint.isActive(); } private boolean isPasspointConfigurationR1Expired() { return mIsPasspointConfigurationR1 && mIsExpired; } private void refreshIpLayerInfo() { // Hide IP layer info if not a connected network. if (!mAccessPoint.isActive() || mNetwork == null || mLinkProperties == null) { Loading Loading @@ -1109,10 +1137,15 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController case STATE_NOT_IN_RANGE: case STATE_FAILED: case STATE_ENABLE_WIFI_FAILED: if (isPasspointConfigurationR1Expired()) { // Hide Connect button. mButtonsPref.setButton3Visible(false); } else { mButtonsPref.setButton3Text(R.string.wifi_connect) .setButton3Icon(R.drawable.ic_settings_wireless) .setButton3Enabled(true) .setButton3Visible(true); } break; default: Log.e(TAG, "Invalid connect button state : " + state); Loading
tests/robotests/src/com/android/settings/wifi/details/WifiDetailPreferenceControllerTest.java +15 −0 Original line number Diff line number Diff line Loading @@ -1877,6 +1877,21 @@ public class WifiDetailPreferenceControllerTest { verify(mockMacAddressPref).setTitle(R.string.wifi_advanced_device_mac_address_title); } @Test public void entityHeader_expiredPasspointR1_shouldHandleExpiration() { setUpForDisconnectedNetwork(); when(mockAccessPoint.isPasspoint()).thenReturn(true); when(mockAccessPoint.isPasspointConfigurationR1()).thenReturn(true); when(mockAccessPoint.isExpired()).thenReturn(true); String expireSummary = mContext.getResources().getString( com.android.settingslib.R.string.wifi_passpoint_expired); displayAndResume(); verify(mockButtonsPref).setButton3Visible(false); verify(mockHeaderController).setSummary(expireSummary); } private ActionButtonsPreference createMock() { final ActionButtonsPreference pref = mock(ActionButtonsPreference.class); when(pref.setButton1Text(anyInt())).thenReturn(pref); Loading