Merge "Change Toggle UX to "Require encryption""
This commit is contained in:
committed by
Android (Google) Code Review
commit
36517a0bcd
@@ -11086,10 +11086,10 @@
|
||||
<!-- Title for if toggle access is disabled by carrier [CHAR LIMIT=NONE] -->
|
||||
<string name="enable_2g_summary_disabled_carrier"><xliff:g id="carrier_name_2g" example="Google Fi">%1$s</xliff:g> requires 2G to be available</string>
|
||||
|
||||
<!-- Title for toggle if user wants to allow null cellular algorithms [CHAR LIMIT=40] -->
|
||||
<string name="allow_null_algorithms_title">Allow less secure connection</string>
|
||||
<!-- Summary for if the user wants to allow null cellular algorithms [CHAR LIMIT=NONE] -->
|
||||
<string name="allow_null_algorithms_summary">May improve your signal in some locations. For emergency calls, less secure connections are always allowed.</string>
|
||||
<!-- Title for toggle if user wants to require cellular encryption [CHAR LIMIT=40] -->
|
||||
<string name="require_cellular_encryption_title">Require encryption</string>
|
||||
<!-- Summary for if the user wants to require cellular encryption [CHAR LIMIT=NONE] -->
|
||||
<string name="require_cellular_encryption_summary">Encryption is more secure, but you might not be able to connect in some locations. For emergency calls, encryption is never required</string>
|
||||
|
||||
<!-- Label for All services preference in App info settings [CHAR LIMIT=40] -->
|
||||
<string name="app_info_all_services_label">All services</string>
|
||||
|
@@ -251,9 +251,9 @@
|
||||
settings:userRestriction="no_cellular_2g"/>
|
||||
|
||||
<SwitchPreference
|
||||
android:key="allow_null_algorithms"
|
||||
android:title="@string/allow_null_algorithms_title"
|
||||
android:summary="@string/allow_null_algorithms_summary"
|
||||
android:key="require_cellular_encryption"
|
||||
android:title="@string/require_cellular_encryption_title"
|
||||
android:summary="@string/require_cellular_encryption_summary"
|
||||
settings:controller=
|
||||
"com.android.settings.network.telephony.NullAlgorithmsPreferenceController" />
|
||||
|
||||
|
@@ -21,9 +21,9 @@ import android.telephony.TelephonyManager;
|
||||
import android.util.Log;
|
||||
|
||||
/**
|
||||
* Preference controller for "Allow Null Algorithms"
|
||||
* Preference controller for "Require Encryption"
|
||||
*
|
||||
* <p>This preference controller is toggling null algorithms is not a per-sim operation.
|
||||
* <p>This preference controller is toggling null algorithms. This applies to all active SIMs.
|
||||
*/
|
||||
public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenceController {
|
||||
|
||||
@@ -33,7 +33,7 @@ public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenc
|
||||
private TelephonyManager mTelephonyManager;
|
||||
|
||||
/**
|
||||
* Class constructor of "Allow Null Algorithms" toggle.
|
||||
* Class constructor of "Require Encryption" toggle.
|
||||
*
|
||||
* @param context of settings
|
||||
* @param key assigned within UI entry of XML file
|
||||
@@ -81,7 +81,7 @@ public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenc
|
||||
}
|
||||
|
||||
/**
|
||||
* Return {@code true} if null algorithms are currently allowed.
|
||||
* Return {@code true} if encryption is required (null algorithms not allowed)
|
||||
*
|
||||
* <p><b>NOTE:</b> This method returns the active state of the preference controller and is not
|
||||
* the parameter passed into {@link #setChecked(boolean)}, which is instead the requested future
|
||||
@@ -90,7 +90,7 @@ public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenc
|
||||
@Override
|
||||
public boolean isChecked() {
|
||||
try {
|
||||
return mTelephonyManager.isNullCipherAndIntegrityPreferenceEnabled();
|
||||
return !mTelephonyManager.isNullCipherAndIntegrityPreferenceEnabled();
|
||||
} catch (Exception e) {
|
||||
Log.e(LOG_TAG,
|
||||
"Failed isNullCipherAndIntegrityEnabled. Defaulting toggle to "
|
||||
@@ -109,24 +109,22 @@ public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenc
|
||||
* details.
|
||||
*
|
||||
* @param isChecked The toggle value that we're being requested to enforce. A value of {@code
|
||||
* false} denotes that null ciphers will be disabled by the modem after this
|
||||
* function
|
||||
* completes, if it is not already.
|
||||
* true} denotes that null ciphers will be disabled by the modem after this
|
||||
* function completes, if it is not already.
|
||||
*/
|
||||
@Override
|
||||
public boolean setChecked(boolean isChecked) {
|
||||
if (isChecked) {
|
||||
Log.i(LOG_TAG, "Enabling null algorithms");
|
||||
Log.i(LOG_TAG, "Encryption required. Disabling null algorithms.");
|
||||
} else {
|
||||
Log.i(LOG_TAG, "Disabling null algorithms");
|
||||
Log.i(LOG_TAG, "Encryption not required. Enabling null algorithms.");
|
||||
}
|
||||
try {
|
||||
mTelephonyManager.setNullCipherAndIntegrityEnabled(isChecked);
|
||||
mTelephonyManager.setNullCipherAndIntegrityEnabled(!isChecked);
|
||||
} catch (Exception e) {
|
||||
Log.e(LOG_TAG,
|
||||
"Failed setNullCipherAndIntegrityEnabled. Setting not updated. Exception: "
|
||||
+ e.getMessage());
|
||||
// The underlying setting was not updated
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
|
@@ -142,22 +142,22 @@ public final class NullAlgorithmsPreferenceControllerTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setChecked_true() {
|
||||
public void setChecked_true_nullCiphersDisabled() {
|
||||
mController.setChecked(true);
|
||||
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(true);
|
||||
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(false);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setChecked_false() {
|
||||
public void setChecked_false_nullCiphersEnabled() {
|
||||
mController.setChecked(false);
|
||||
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(false);
|
||||
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(true);
|
||||
}
|
||||
|
||||
@Test
|
||||
public void setChecked_exceptionThrown() {
|
||||
doThrow(IllegalStateException.class).when(
|
||||
mTelephonyManager).setNullCipherAndIntegrityEnabled(true);
|
||||
assertFalse(mController.setChecked(true));
|
||||
assertFalse(mController.setChecked(false));
|
||||
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(true);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user