Merge "[Wi-Fi] Support passport R1 expiration handling"
This commit is contained in:
@@ -191,6 +191,13 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
|
|
||||||
private final IconInjector mIconInjector;
|
private final IconInjector mIconInjector;
|
||||||
private final IntentFilter mFilter;
|
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() {
|
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
|
||||||
@Override
|
@Override
|
||||||
public void onReceive(Context context, Intent intent) {
|
public void onReceive(Context context, Intent intent) {
|
||||||
@@ -372,6 +379,9 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
updateConnectingState(STATE_FAILED);
|
updateConnectingState(STATE_FAILED);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
mIsExpired = mAccessPoint.isExpired();
|
||||||
|
mIsPasspointConfigurationR1 = mAccessPoint.isPasspointConfigurationR1();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -406,6 +416,11 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
.setButton4Icon(R.drawable.ic_qrcode_24dp)
|
.setButton4Icon(R.drawable.ic_qrcode_24dp)
|
||||||
.setButton4OnClickListener(view -> shareNetwork());
|
.setButton4OnClickListener(view -> shareNetwork());
|
||||||
|
|
||||||
|
if (isPasspointConfigurationR1Expired()) {
|
||||||
|
// Hide Connect button.
|
||||||
|
mButtonsPref.setButton3Visible(false);
|
||||||
|
}
|
||||||
|
|
||||||
mSignalStrengthPref = screen.findPreference(KEY_SIGNAL_STRENGTH_PREF);
|
mSignalStrengthPref = screen.findPreference(KEY_SIGNAL_STRENGTH_PREF);
|
||||||
mTxLinkSpeedPref = screen.findPreference(KEY_TX_LINK_SPEED);
|
mTxLinkSpeedPref = screen.findPreference(KEY_TX_LINK_SPEED);
|
||||||
mRxLinkSpeedPref = screen.findPreference(KEY_RX_LINK_SPEED);
|
mRxLinkSpeedPref = screen.findPreference(KEY_RX_LINK_SPEED);
|
||||||
@@ -454,9 +469,18 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
if (usingDataUsageHeader(mContext)) {
|
if (usingDataUsageHeader(mContext)) {
|
||||||
mSummaryHeaderController.updateState(mDataUsageSummaryPref);
|
mSummaryHeaderController.updateState(mDataUsageSummaryPref);
|
||||||
} else {
|
} 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
|
mEntityHeaderController
|
||||||
.setSummary(
|
.setSummary(summary)
|
||||||
mAccessPoint.getSettingsSummary(true /*convertSavedAsDisconnected*/))
|
|
||||||
.setRecyclerView(mFragment.getListView(), mLifecycle)
|
.setRecyclerView(mFragment.getListView(), mLifecycle)
|
||||||
.done(mFragment.getActivity(), true /* rebind */);
|
.done(mFragment.getActivity(), true /* rebind */);
|
||||||
}
|
}
|
||||||
@@ -744,7 +768,7 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
|
|
||||||
boolean canForgetNetwork = canForgetNetwork();
|
boolean canForgetNetwork = canForgetNetwork();
|
||||||
boolean canSignIntoNetwork = canSignIntoNetwork();
|
boolean canSignIntoNetwork = canSignIntoNetwork();
|
||||||
boolean canConnectNetwork = canConnectNetwork();
|
boolean canConnectNetwork = canConnectNetwork() && !isPasspointConfigurationR1Expired();
|
||||||
boolean canShareNetwork = canShareNetwork();
|
boolean canShareNetwork = canShareNetwork();
|
||||||
|
|
||||||
mButtonsPref.setButton1Visible(canForgetNetwork);
|
mButtonsPref.setButton1Visible(canForgetNetwork);
|
||||||
@@ -762,6 +786,10 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
return !mAccessPoint.isActive();
|
return !mAccessPoint.isActive();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean isPasspointConfigurationR1Expired() {
|
||||||
|
return mIsPasspointConfigurationR1 && mIsExpired;
|
||||||
|
}
|
||||||
|
|
||||||
private void refreshIpLayerInfo() {
|
private void refreshIpLayerInfo() {
|
||||||
// Hide IP layer info if not a connected network.
|
// Hide IP layer info if not a connected network.
|
||||||
if (!mAccessPoint.isActive() || mNetwork == null || mLinkProperties == null) {
|
if (!mAccessPoint.isActive() || mNetwork == null || mLinkProperties == null) {
|
||||||
@@ -1109,10 +1137,15 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
case STATE_NOT_IN_RANGE:
|
case STATE_NOT_IN_RANGE:
|
||||||
case STATE_FAILED:
|
case STATE_FAILED:
|
||||||
case STATE_ENABLE_WIFI_FAILED:
|
case STATE_ENABLE_WIFI_FAILED:
|
||||||
mButtonsPref.setButton3Text(R.string.wifi_connect)
|
if (isPasspointConfigurationR1Expired()) {
|
||||||
.setButton3Icon(R.drawable.ic_settings_wireless)
|
// Hide Connect button.
|
||||||
.setButton3Enabled(true)
|
mButtonsPref.setButton3Visible(false);
|
||||||
.setButton3Visible(true);
|
} else {
|
||||||
|
mButtonsPref.setButton3Text(R.string.wifi_connect)
|
||||||
|
.setButton3Icon(R.drawable.ic_settings_wireless)
|
||||||
|
.setButton3Enabled(true)
|
||||||
|
.setButton3Visible(true);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Log.e(TAG, "Invalid connect button state : " + state);
|
Log.e(TAG, "Invalid connect button state : " + state);
|
||||||
|
|||||||
@@ -1877,6 +1877,21 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
verify(mockMacAddressPref).setTitle(R.string.wifi_advanced_device_mac_address_title);
|
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() {
|
private ActionButtonsPreference createMock() {
|
||||||
final ActionButtonsPreference pref = mock(ActionButtonsPreference.class);
|
final ActionButtonsPreference pref = mock(ActionButtonsPreference.class);
|
||||||
when(pref.setButton1Text(anyInt())).thenReturn(pref);
|
when(pref.setButton1Text(anyInt())).thenReturn(pref);
|
||||||
|
|||||||
Reference in New Issue
Block a user