Merge "Add explicit dep on ims-common"
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 9a7271d..09a8957 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5907,12 +5907,6 @@
<string name="user_credentials_summary">View and modify stored credentials</string>
<!-- Title of preference group for advance security settings [CHAR LIMIT=30] -->
<string name="advanced_security_title">Advanced</string>
- <!-- Title of preference of what type of credential storage this device has: hardware or software [CHAR LIMIT=30] -->
- <string name="credential_storage_type">Storage type</string>
- <!-- Summary text for preference showing what type of credential storage this device has when it is stored in a hardware-backed storage (as opposed to "software only") [CHAR LIMIT=NONE] -->
- <string name="credential_storage_type_hardware">Hardware-backed</string>
- <!-- Summary text for preference showing what type of credential storage this device has when it is stored in software only (as opposed to "hardware-backed") [CHAR LIMIT=NONE] -->
- <string name="credential_storage_type_software">Software only</string>
<!-- Error message for users that aren't allowed to see or modify credentials [CHAR LIMIT=none] -->
<string name="credentials_settings_not_available">Credentials are not available for this user</string>
<!-- Sub-heading for a user credential installed to be used by apps and as part of VPN configurations. [CHAR LIMIT=NONE] -->
diff --git a/res/xml/encryption_and_credential.xml b/res/xml/encryption_and_credential.xml
index f7e7184..c10cccc 100644
--- a/res/xml/encryption_and_credential.xml
+++ b/res/xml/encryption_and_credential.xml
@@ -38,12 +38,6 @@
android:persistent="false"
android:order="100">
- <com.android.settingslib.RestrictedPreference
- android:key="credential_storage_type"
- android:title="@string/credential_storage_type"
- android:summary="@string/summary_placeholder"
- settings:userRestriction="no_config_credentials" />
-
<Preference
android:key="trusted_credentials"
android:title="@string/trusted_credentials"
diff --git a/src/com/android/settings/network/telephony/TelephonyStatusControlSession.java b/src/com/android/settings/network/telephony/TelephonyStatusControlSession.java
index 12c9bee..3716f1f 100644
--- a/src/com/android/settings/network/telephony/TelephonyStatusControlSession.java
+++ b/src/com/android/settings/network/telephony/TelephonyStatusControlSession.java
@@ -22,6 +22,7 @@
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.utils.ThreadUtils;
+import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
@@ -37,7 +38,7 @@
private static final String LOG_TAG = "TelephonyStatusControlSS";
private Collection<AbstractPreferenceController> mControllers;
- private Future<Boolean> mResult;
+ private Collection<Future<Boolean>> mResult = new ArrayList<>();
/**
* Buider of session
@@ -67,9 +68,9 @@
private TelephonyStatusControlSession(Collection<AbstractPreferenceController> controllers) {
mControllers = controllers;
- mResult = ThreadUtils.postOnBackgroundThread(() ->
- setupAvailabilityStatus(controllers)
- );
+ controllers.forEach(prefCtrl -> mResult
+ .add(ThreadUtils.postOnBackgroundThread(() -> setupAvailabilityStatus(prefCtrl))));
+
}
/**
@@ -79,25 +80,24 @@
*/
public void close() {
//check the background thread is finished then unset the status of availability.
- try {
- mResult.get();
- } catch (ExecutionException | InterruptedException exception) {
- Log.e(LOG_TAG, "setup availability status failed!", exception);
+
+ for (Future<Boolean> result : mResult) {
+ try {
+ result.get();
+ } catch (ExecutionException | InterruptedException exception) {
+ Log.e(LOG_TAG, "setup availability status failed!", exception);
+ }
}
unsetAvailabilityStatus(mControllers);
}
- private Boolean setupAvailabilityStatus(
- Collection<AbstractPreferenceController> controllerLists) {
+ private Boolean setupAvailabilityStatus(AbstractPreferenceController controller) {
try {
- controllerLists.stream()
- .filter(controller -> controller instanceof TelephonyAvailabilityHandler)
- .map(TelephonyAvailabilityHandler.class::cast)
- .forEach(controller -> {
- int status = ((BasePreferenceController) controller)
- .getAvailabilityStatus();
- controller.setAvailabilityStatus(status);
- });
+ if (controller instanceof TelephonyAvailabilityHandler) {
+ int status = ((BasePreferenceController) controller)
+ .getAvailabilityStatus();
+ ((TelephonyAvailabilityHandler) controller).setAvailabilityStatus(status);
+ }
return true;
} catch (Exception exception) {
Log.e(LOG_TAG, "Setup availability status failed!", exception);
diff --git a/src/com/android/settings/security/CredentialStoragePreferenceController.java b/src/com/android/settings/security/CredentialStoragePreferenceController.java
deleted file mode 100644
index 060d964..0000000
--- a/src/com/android/settings/security/CredentialStoragePreferenceController.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.security;
-
-import android.content.Context;
-import android.os.UserManager;
-import android.security.KeyStore;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-
-public class CredentialStoragePreferenceController extends
- RestrictedEncryptionPreferenceController {
-
- private static final String KEY_CREDENTIAL_STORAGE_TYPE = "credential_storage_type";
- private final KeyStore mKeyStore;
-
- public CredentialStoragePreferenceController(Context context) {
- super(context, UserManager.DISALLOW_CONFIG_CREDENTIALS);
- mKeyStore = KeyStore.getInstance();
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_CREDENTIAL_STORAGE_TYPE;
- }
-
- @Override
- public void updateState(Preference preference) {
- preference.setSummary(mKeyStore.isHardwareBacked()
- ? R.string.credential_storage_type_hardware
- : R.string.credential_storage_type_software);
- }
-}
diff --git a/src/com/android/settings/security/EncryptionAndCredential.java b/src/com/android/settings/security/EncryptionAndCredential.java
index e5f82f5..8551475 100644
--- a/src/com/android/settings/security/EncryptionAndCredential.java
+++ b/src/com/android/settings/security/EncryptionAndCredential.java
@@ -73,7 +73,6 @@
controllers.add(new PreferenceCategoryController(context,
"encryption_and_credentials_status_category").setChildren(
Arrays.asList(encryptStatusController)));
- controllers.add(new CredentialStoragePreferenceController(context));
controllers.add(new UserCredentialsPreferenceController(context));
controllers.add(new ResetCredentialsPreferenceController(context, lifecycle));
controllers.add(new InstallCertificatePreferenceController(context));
diff --git a/tests/robotests/src/com/android/settings/security/CredentialStoragePreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/CredentialStoragePreferenceControllerTest.java
deleted file mode 100644
index 3eb21cf..0000000
--- a/tests/robotests/src/com/android/settings/security/CredentialStoragePreferenceControllerTest.java
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Copyright (C) 2017 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.security;
-
-import static com.google.common.truth.Truth.assertThat;
-
-import android.content.Context;
-
-import androidx.preference.Preference;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowKeyStore;
-
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowKeyStore.class)
-public class CredentialStoragePreferenceControllerTest {
-
- private Context mContext;
- private CredentialStoragePreferenceController mController;
- private Preference mPreference;
-
- @Before
- public void setUp() {
- mContext = RuntimeEnvironment.application;
- mController = new CredentialStoragePreferenceController(mContext);
- mPreference = new Preference(mContext);
- }
-
- @Test
- public void updateState_hardwareBacked_showHardwareSummary() {
- ShadowKeyStore.setHardwareBacked(true);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getText(R.string.credential_storage_type_hardware));
- }
-
- @Test
- public void updateState_hardwareBacked_showSoftwareSummary() {
- ShadowKeyStore.setHardwareBacked(false);
-
- mController.updateState(mPreference);
-
- assertThat(mPreference.getSummary())
- .isEqualTo(mContext.getText(R.string.credential_storage_type_software));
- }
-}
diff --git a/tests/robotests/src/com/android/settings/security/RestrictedEncryptionPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/security/RestrictedEncryptionPreferenceControllerTest.java
index 672d317..c0f1cca 100644
--- a/tests/robotests/src/com/android/settings/security/RestrictedEncryptionPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/security/RestrictedEncryptionPreferenceControllerTest.java
@@ -39,7 +39,6 @@
private Context mContext;
private ShadowUserManager mUserManager;
- private CredentialStoragePreferenceController mCredentialStoragePreferenceController;
private InstallCertificatePreferenceController mInstallCertificatePreferenceController;
private ResetCredentialsPreferenceController mResetCredentialsPreferenceController;
private UserCredentialsPreferenceController mUserCredentialsPreferenceController;
@@ -54,8 +53,6 @@
mContext = RuntimeEnvironment.application;
mLifecycleOwner = () -> mLifecycle;
mLifecycle = new Lifecycle(mLifecycleOwner);
- mCredentialStoragePreferenceController =
- new CredentialStoragePreferenceController(mContext);
mInstallCertificatePreferenceController =
new InstallCertificatePreferenceController(mContext);
mResetCredentialsPreferenceController =
@@ -73,7 +70,6 @@
@Test
public void isAvailable_noRestriction_shouldReturnTrue() {
- assertThat(mCredentialStoragePreferenceController.isAvailable()).isTrue();
assertThat(mInstallCertificatePreferenceController.isAvailable()).isTrue();
assertThat(mResetCredentialsPreferenceController.isAvailable()).isTrue();
assertThat(mUserCredentialsPreferenceController.isAvailable()).isTrue();
@@ -86,7 +82,6 @@
public void isAvailable_hasRestriction_shouldReturnFalse() {
mUserManager.addBaseUserRestriction(UserManager.DISALLOW_CONFIG_CREDENTIALS);
- assertThat(mCredentialStoragePreferenceController.isAvailable()).isFalse();
assertThat(mInstallCertificatePreferenceController.isAvailable()).isFalse();
assertThat(mResetCredentialsPreferenceController.isAvailable()).isFalse();
assertThat(mUserCredentialsPreferenceController.isAvailable()).isFalse();