Merge "Add Extra Exception Checks to Null Cipher Toggle"
This commit is contained in:
committed by
Android (Google) Code Review
commit
f730f899d8
@@ -69,6 +69,12 @@ public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenc
|
|||||||
} catch (UnsupportedOperationException e) {
|
} catch (UnsupportedOperationException e) {
|
||||||
Log.i(LOG_TAG, "Null cipher enablement is unsupported: " + e.getMessage());
|
Log.i(LOG_TAG, "Null cipher enablement is unsupported: " + e.getMessage());
|
||||||
return UNSUPPORTED_ON_DEVICE;
|
return UNSUPPORTED_ON_DEVICE;
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(LOG_TAG,
|
||||||
|
"Failed isNullCipherAndIntegrityEnabled. Setting availability to "
|
||||||
|
+ "CONDITIONALLY_UNAVAILABLE. Exception: "
|
||||||
|
+ e.getMessage());
|
||||||
|
return CONDITIONALLY_UNAVAILABLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
return AVAILABLE;
|
return AVAILABLE;
|
||||||
@@ -83,7 +89,16 @@ public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenc
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean isChecked() {
|
public boolean isChecked() {
|
||||||
return mTelephonyManager.isNullCipherAndIntegrityPreferenceEnabled();
|
try {
|
||||||
|
return mTelephonyManager.isNullCipherAndIntegrityPreferenceEnabled();
|
||||||
|
} catch (Exception e) {
|
||||||
|
Log.e(LOG_TAG,
|
||||||
|
"Failed isNullCipherAndIntegrityEnabled. Defaulting toggle to "
|
||||||
|
+ "checked = true. Exception: "
|
||||||
|
+ e.getMessage());
|
||||||
|
}
|
||||||
|
// The default behavior for this toggle is enabled
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -105,7 +120,15 @@ public class NullAlgorithmsPreferenceController extends TelephonyTogglePreferenc
|
|||||||
} else {
|
} else {
|
||||||
Log.i(LOG_TAG, "Disabling null algorithms");
|
Log.i(LOG_TAG, "Disabling null algorithms");
|
||||||
}
|
}
|
||||||
mTelephonyManager.setNullCipherAndIntegrityEnabled(isChecked);
|
try {
|
||||||
|
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;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -21,6 +21,7 @@ import static com.android.settings.core.BasePreferenceController.UNSUPPORTED_ON_
|
|||||||
|
|
||||||
import static com.google.common.truth.Truth.assertThat;
|
import static com.google.common.truth.Truth.assertThat;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertFalse;
|
||||||
import static org.mockito.Mockito.doReturn;
|
import static org.mockito.Mockito.doReturn;
|
||||||
import static org.mockito.Mockito.doThrow;
|
import static org.mockito.Mockito.doThrow;
|
||||||
import static org.mockito.Mockito.spy;
|
import static org.mockito.Mockito.spy;
|
||||||
@@ -119,6 +120,16 @@ public final class NullAlgorithmsPreferenceControllerTest {
|
|||||||
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getAvailabilityStatus_telephonyManagerException_conditionallyUnavailable() {
|
||||||
|
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_CELLULAR_SECURITY,
|
||||||
|
TelephonyManager.PROPERTY_ENABLE_NULL_CIPHER_TOGGLE, Boolean.TRUE.toString(),
|
||||||
|
false);
|
||||||
|
doThrow(IllegalStateException.class).when(
|
||||||
|
mTelephonyManager).isNullCipherAndIntegrityPreferenceEnabled();
|
||||||
|
assertThat(mController.getAvailabilityStatus()).isEqualTo(CONDITIONALLY_UNAVAILABLE);
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void getAvailabilityStatus_returnAvailable() {
|
public void getAvailabilityStatus_returnAvailable() {
|
||||||
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_CELLULAR_SECURITY,
|
DeviceConfig.setProperty(DeviceConfig.NAMESPACE_CELLULAR_SECURITY,
|
||||||
@@ -141,4 +152,12 @@ public final class NullAlgorithmsPreferenceControllerTest {
|
|||||||
mController.setChecked(false);
|
mController.setChecked(false);
|
||||||
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(false);
|
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void setChecked_exceptionThrown() {
|
||||||
|
doThrow(IllegalStateException.class).when(
|
||||||
|
mTelephonyManager).setNullCipherAndIntegrityEnabled(true);
|
||||||
|
assertFalse(mController.setChecked(true));
|
||||||
|
verify(mTelephonyManager, times(1)).setNullCipherAndIntegrityEnabled(true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user