Merge "Modify dialog message for partial connectivity"
This commit is contained in:
@@ -348,7 +348,7 @@
|
|||||||
android:clearTaskOnLaunch="true"
|
android:clearTaskOnLaunch="true"
|
||||||
android:excludeFromRecents="true"
|
android:excludeFromRecents="true"
|
||||||
android:exported="true"
|
android:exported="true"
|
||||||
android:permission="android.permission.CONNECTIVITY_INTERNAL"
|
android:permission="android.permission.NETWORK_STACK"
|
||||||
android:taskAffinity=""
|
android:taskAffinity=""
|
||||||
android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert">
|
android:theme="@*android:style/Theme.DeviceDefault.Light.Dialog.Alert">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
|
@@ -2040,6 +2040,8 @@
|
|||||||
|
|
||||||
<!-- Dialog text to tell the user that the selected network does not have Internet access. -->
|
<!-- Dialog text to tell the user that the selected network does not have Internet access. -->
|
||||||
<string name="no_internet_access_text">This network has no internet access. Stay connected?</string>
|
<string name="no_internet_access_text">This network has no internet access. Stay connected?</string>
|
||||||
|
<!-- Dialog text to tell the user that the selected network has incomplete Internet access. [CHAR LIMIT=100] -->
|
||||||
|
<string name="partial_connectivity_text">Some apps and services may not work due to limited connectivity. Use anyway?</string>
|
||||||
<string name="no_internet_access_remember">Don\u2019t ask again for this network</string>
|
<string name="no_internet_access_remember">Don\u2019t ask again for this network</string>
|
||||||
|
|
||||||
<!-- Dialog text to tell the user that the selected network has lost Internet access, and asking the user whether they want to avoid this network. -->
|
<!-- Dialog text to tell the user that the selected network has lost Internet access, and asking the user whether they want to avoid this network. -->
|
||||||
|
@@ -38,6 +38,7 @@ import com.android.internal.app.AlertController;
|
|||||||
import com.android.settings.R;
|
import com.android.settings.R;
|
||||||
|
|
||||||
import static android.net.ConnectivityManager.ACTION_PROMPT_LOST_VALIDATION;
|
import static android.net.ConnectivityManager.ACTION_PROMPT_LOST_VALIDATION;
|
||||||
|
import static android.net.ConnectivityManager.ACTION_PROMPT_PARTIAL_CONNECTIVITY;
|
||||||
import static android.net.ConnectivityManager.ACTION_PROMPT_UNVALIDATED;
|
import static android.net.ConnectivityManager.ACTION_PROMPT_UNVALIDATED;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
||||||
|
|
||||||
@@ -53,8 +54,9 @@ public final class WifiNoInternetDialog extends AlertActivity implements
|
|||||||
private String mAction;
|
private String mAction;
|
||||||
|
|
||||||
private boolean isKnownAction(Intent intent) {
|
private boolean isKnownAction(Intent intent) {
|
||||||
return intent.getAction().equals(ACTION_PROMPT_UNVALIDATED) ||
|
return intent.getAction().equals(ACTION_PROMPT_UNVALIDATED)
|
||||||
intent.getAction().equals(ACTION_PROMPT_LOST_VALIDATION);
|
|| intent.getAction().equals(ACTION_PROMPT_LOST_VALIDATION)
|
||||||
|
|| intent.getAction().equals(ACTION_PROMPT_PARTIAL_CONNECTIVITY);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -131,6 +133,11 @@ public final class WifiNoInternetDialog extends AlertActivity implements
|
|||||||
ap.mMessage = getString(R.string.no_internet_access_text);
|
ap.mMessage = getString(R.string.no_internet_access_text);
|
||||||
ap.mPositiveButtonText = getString(R.string.yes);
|
ap.mPositiveButtonText = getString(R.string.yes);
|
||||||
ap.mNegativeButtonText = getString(R.string.no);
|
ap.mNegativeButtonText = getString(R.string.no);
|
||||||
|
} else if (ACTION_PROMPT_PARTIAL_CONNECTIVITY.equals(mAction)) {
|
||||||
|
ap.mTitle = mNetworkName;
|
||||||
|
ap.mMessage = getString(R.string.partial_connectivity_text);
|
||||||
|
ap.mPositiveButtonText = getString(R.string.yes);
|
||||||
|
ap.mNegativeButtonText = getString(R.string.no);
|
||||||
} else {
|
} else {
|
||||||
ap.mTitle = getString(R.string.lost_internet_access_title);
|
ap.mTitle = getString(R.string.lost_internet_access_title);
|
||||||
ap.mMessage = getString(R.string.lost_internet_access_text);
|
ap.mMessage = getString(R.string.lost_internet_access_text);
|
||||||
@@ -146,7 +153,8 @@ public final class WifiNoInternetDialog extends AlertActivity implements
|
|||||||
ap.mView = checkbox;
|
ap.mView = checkbox;
|
||||||
mAlwaysAllow = (CheckBox) checkbox.findViewById(com.android.internal.R.id.alwaysUse);
|
mAlwaysAllow = (CheckBox) checkbox.findViewById(com.android.internal.R.id.alwaysUse);
|
||||||
|
|
||||||
if (ACTION_PROMPT_UNVALIDATED.equals(mAction)) {
|
if (ACTION_PROMPT_UNVALIDATED.equals(mAction)
|
||||||
|
|| ACTION_PROMPT_PARTIAL_CONNECTIVITY.equals(mAction)) {
|
||||||
mAlwaysAllow.setText(getString(R.string.no_internet_access_remember));
|
mAlwaysAllow.setText(getString(R.string.no_internet_access_remember));
|
||||||
} else {
|
} else {
|
||||||
mAlwaysAllow.setText(getString(R.string.lost_internet_access_persist));
|
mAlwaysAllow.setText(getString(R.string.lost_internet_access_persist));
|
||||||
@@ -174,6 +182,11 @@ public final class WifiNoInternetDialog extends AlertActivity implements
|
|||||||
final boolean accept = (which == BUTTON_POSITIVE);
|
final boolean accept = (which == BUTTON_POSITIVE);
|
||||||
action = (accept ? "Connect" : "Ignore");
|
action = (accept ? "Connect" : "Ignore");
|
||||||
mCM.setAcceptUnvalidated(mNetwork, accept, always);
|
mCM.setAcceptUnvalidated(mNetwork, accept, always);
|
||||||
|
} else if (ACTION_PROMPT_PARTIAL_CONNECTIVITY.equals(mAction)) {
|
||||||
|
what = "PARTIAL_CONNECTIVITY";
|
||||||
|
final boolean accept = (which == BUTTON_POSITIVE);
|
||||||
|
action = (accept ? "Connect" : "Ignore");
|
||||||
|
mCM.setAcceptPartialConnectivity(mNetwork, accept, always);
|
||||||
} else {
|
} else {
|
||||||
what = "LOST_INTERNET";
|
what = "LOST_INTERNET";
|
||||||
final boolean avoid = (which == BUTTON_POSITIVE);
|
final boolean avoid = (which == BUTTON_POSITIVE);
|
||||||
|
@@ -16,6 +16,7 @@
|
|||||||
package com.android.settings.wifi.details;
|
package com.android.settings.wifi.details;
|
||||||
|
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_CAPTIVE_PORTAL;
|
||||||
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY;
|
||||||
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
import static android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED;
|
||||||
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
import static android.net.NetworkCapabilities.TRANSPORT_WIFI;
|
||||||
|
|
||||||
@@ -192,12 +193,14 @@ public class WifiDetailPreferenceController extends AbstractPreferenceController
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
|
public void onCapabilitiesChanged(Network network, NetworkCapabilities nc) {
|
||||||
// If the network just validated or lost Internet access, refresh network state.
|
// If the network just validated or lost Internet access or detected partial internet
|
||||||
// Don't do this on every NetworkCapabilities change because refreshNetworkState
|
// connectivity, refresh network state. Don't do this on every NetworkCapabilities
|
||||||
// sends IPCs to the system server from the UI thread, which can cause jank.
|
// change because refreshNetworkState sends IPCs to the system server from the UI
|
||||||
|
// thread, which can cause jank.
|
||||||
if (network.equals(mNetwork) && !nc.equals(mNetworkCapabilities)) {
|
if (network.equals(mNetwork) && !nc.equals(mNetworkCapabilities)) {
|
||||||
if (hasCapabilityChanged(nc, NET_CAPABILITY_VALIDATED) ||
|
if (hasCapabilityChanged(nc, NET_CAPABILITY_VALIDATED)
|
||||||
hasCapabilityChanged(nc, NET_CAPABILITY_CAPTIVE_PORTAL)) {
|
|| hasCapabilityChanged(nc, NET_CAPABILITY_CAPTIVE_PORTAL)
|
||||||
|
|| hasCapabilityChanged(nc, NET_CAPABILITY_PARTIAL_CONNECTIVITY)) {
|
||||||
refreshNetworkState();
|
refreshNetworkState();
|
||||||
}
|
}
|
||||||
mNetworkCapabilities = nc;
|
mNetworkCapabilities = nc;
|
||||||
|
@@ -622,6 +622,19 @@ public class WifiDetailPreferenceControllerTest {
|
|||||||
nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
nc.removeCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||||
updateNetworkCapabilities(nc);
|
updateNetworkCapabilities(nc);
|
||||||
inOrder.verify(mockHeaderController).setSummary(summary);
|
inOrder.verify(mockHeaderController).setSummary(summary);
|
||||||
|
|
||||||
|
// UI will be refreshed when device connects to a partial connectivity network.
|
||||||
|
summary = "Limited connection";
|
||||||
|
when(mockAccessPoint.getSettingsSummary()).thenReturn(summary);
|
||||||
|
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_PARTIAL_CONNECTIVITY);
|
||||||
|
updateNetworkCapabilities(nc);
|
||||||
|
inOrder.verify(mockHeaderController).setSummary(summary);
|
||||||
|
|
||||||
|
// Although UI will be refreshed when network become validated. The Settings should
|
||||||
|
// continue to display "Limited connection" if network still provides partial connectivity.
|
||||||
|
nc.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
|
||||||
|
updateNetworkCapabilities(nc);
|
||||||
|
inOrder.verify(mockHeaderController).setSummary(summary);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
Reference in New Issue
Block a user