Merge "[Passpointv2] Implement confirm dialog for passpoint forget button"
This commit is contained in:
committed by
Android (Google) Code Review
commit
a9308663c3
@@ -10710,4 +10710,7 @@
|
|||||||
<string name="media_output_panel_title">Switch output</string>
|
<string name="media_output_panel_title">Switch output</string>
|
||||||
<!-- Summary for represent which device is playing media [CHAR LIMIT=NONE] -->
|
<!-- Summary for represent which device is playing media [CHAR LIMIT=NONE] -->
|
||||||
<string name="media_output_panel_summary_of_playing_device">Currently playing on <xliff:g id="device_name" example="Bose headphone">%1$s</xliff:g></string>
|
<string name="media_output_panel_summary_of_playing_device">Currently playing on <xliff:g id="device_name" example="Bose headphone">%1$s</xliff:g></string>
|
||||||
|
|
||||||
|
<!-- Message for forget passpoint dialog [CHAR LIMIT=none] -->
|
||||||
|
<string name="forget_passpoint_dialog_message">Your subscription with this provider may be cancelled. Recurring subscriptions will not be cancelled. For more information, check with your provider.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
@@ -20,6 +20,7 @@ import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
|||||||
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
||||||
|
|
||||||
import android.app.Activity;
|
import android.app.Activity;
|
||||||
|
import android.app.AlertDialog;
|
||||||
import android.app.KeyguardManager;
|
import android.app.KeyguardManager;
|
||||||
import android.app.settings.SettingsEnums;
|
import android.app.settings.SettingsEnums;
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
@@ -45,7 +46,6 @@ import android.net.wifi.WifiInfo;
|
|||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.FeatureFlagUtils;
|
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.widget.ImageView;
|
import android.widget.ImageView;
|
||||||
import android.widget.Toast;
|
import android.widget.Toast;
|
||||||
@@ -61,6 +61,7 @@ import com.android.settings.R;
|
|||||||
import com.android.settings.Utils;
|
import com.android.settings.Utils;
|
||||||
import com.android.settings.core.FeatureFlags;
|
import com.android.settings.core.FeatureFlags;
|
||||||
import com.android.settings.core.PreferenceControllerMixin;
|
import com.android.settings.core.PreferenceControllerMixin;
|
||||||
|
import com.android.settings.development.featureflags.FeatureFlagPersistent;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
import com.android.settings.wifi.WifiDialog;
|
import com.android.settings.wifi.WifiDialog;
|
||||||
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
|
import com.android.settings.wifi.WifiDialog.WifiDialogListener;
|
||||||
@@ -568,6 +569,12 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
mWifiManager.disableEphemeralNetwork(mWifiInfo.getSSID());
|
mWifiManager.disableEphemeralNetwork(mWifiInfo.getSSID());
|
||||||
} else if (mWifiConfig != null) {
|
} else if (mWifiConfig != null) {
|
||||||
if (mWifiConfig.isPasspoint()) {
|
if (mWifiConfig.isPasspoint()) {
|
||||||
|
// Post a dialog to confirm if user really want to forget the passpoint network.
|
||||||
|
if (FeatureFlagPersistent.isEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2)) {
|
||||||
|
showConfirmForgetDialog();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
mWifiManager.removePasspointConfiguration(mWifiConfig.FQDN);
|
mWifiManager.removePasspointConfiguration(mWifiConfig.FQDN);
|
||||||
} else {
|
} else {
|
||||||
mWifiManager.forget(mWifiConfig.networkId, null /* action listener */);
|
mWifiManager.forget(mWifiConfig.networkId, null /* action listener */);
|
||||||
@@ -578,6 +585,22 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
mFragment.getActivity().finish();
|
mFragment.getActivity().finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@VisibleForTesting
|
||||||
|
protected void showConfirmForgetDialog() {
|
||||||
|
final AlertDialog dialog = new AlertDialog.Builder(mContext)
|
||||||
|
.setPositiveButton(R.string.forget, ((dialog1, which) -> {
|
||||||
|
mWifiManager.removePasspointConfiguration(mWifiConfig.FQDN);
|
||||||
|
mMetricsFeatureProvider.action(
|
||||||
|
mFragment.getActivity(), SettingsEnums.ACTION_WIFI_FORGET);
|
||||||
|
mFragment.getActivity().finish();
|
||||||
|
}))
|
||||||
|
.setNegativeButton(R.string.cancel, null /* listener */)
|
||||||
|
.setTitle(R.string.wifi_forget_dialog_title)
|
||||||
|
.setMessage(R.string.forget_passpoint_dialog_message)
|
||||||
|
.create();
|
||||||
|
dialog.show();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show QR code to share the network represented by this preference.
|
* Show QR code to share the network represented by this preference.
|
||||||
*/
|
*/
|
||||||
|
@@ -65,6 +65,8 @@ import androidx.preference.PreferenceScreen;
|
|||||||
|
|
||||||
import com.android.internal.logging.nano.MetricsProto;
|
import com.android.internal.logging.nano.MetricsProto;
|
||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
import com.android.settings.core.FeatureFlags;
|
||||||
|
import com.android.settings.development.featureflags.FeatureFlagPersistent;
|
||||||
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
import com.android.settings.testutils.shadow.ShadowDevicePolicyManager;
|
||||||
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
|
import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
|
||||||
import com.android.settings.widget.EntityHeaderController;
|
import com.android.settings.widget.EntityHeaderController;
|
||||||
@@ -755,6 +757,36 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
|
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void forgetNetwork_Passpoint() {
|
||||||
|
mockWifiConfig.networkId = 5;
|
||||||
|
when(mockWifiConfig.isPasspoint()).thenReturn(true);
|
||||||
|
|
||||||
|
mController.displayPreference(mockScreen);
|
||||||
|
mForgetClickListener.getValue().onClick(null);
|
||||||
|
|
||||||
|
verify(mockWifiManager).removePasspointConfiguration(mockWifiConfig.FQDN);
|
||||||
|
verify(mockMetricsFeatureProvider)
|
||||||
|
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void forgetNetwork_PasspointV2_shouldShowDialog() {
|
||||||
|
final WifiDetailPreferenceController spyController = spy(mController);
|
||||||
|
|
||||||
|
mockWifiConfig.networkId = 5;
|
||||||
|
when(mockWifiConfig.isPasspoint()).thenReturn(true);
|
||||||
|
FeatureFlagPersistent.setEnabled(mContext, FeatureFlags.NETWORK_INTERNET_V2, true);
|
||||||
|
|
||||||
|
spyController.displayPreference(mockScreen);
|
||||||
|
mForgetClickListener.getValue().onClick(null);
|
||||||
|
|
||||||
|
verify(mockWifiManager, times(0)).removePasspointConfiguration(mockWifiConfig.FQDN);
|
||||||
|
verify(mockMetricsFeatureProvider, times(0))
|
||||||
|
.action(mockActivity, MetricsProto.MetricsEvent.ACTION_WIFI_FORGET);
|
||||||
|
verify(spyController).showConfirmForgetDialog();
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void networkStateChangedIntent_shouldRefetchInfo() {
|
public void networkStateChangedIntent_shouldRefetchInfo() {
|
||||||
displayAndResume();
|
displayAndResume();
|
||||||
|
Reference in New Issue
Block a user