Merge "Improve flicker when enter Security page" into sc-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 0a40c89..570b53d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -713,7 +713,8 @@
<activity
android:name="Settings$ManageAssistActivity"
android:exported="true"
- android:label="@string/assist_and_voice_input_title">
+ android:label="@string/assist_and_voice_input_title"
+ android:theme="@style/Theme.SubSettings">
<intent-filter android:priority="1">
<action android:name="android.settings.VOICE_INPUT_SETTINGS" />
<category android:name="android.intent.category.DEFAULT" />
diff --git a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
index d1c9f7b..4f64399 100644
--- a/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
+++ b/src/com/android/settings/network/telephony/BackupCallingPreferenceController.java
@@ -31,6 +31,7 @@
import com.android.settings.R;
import com.android.settings.network.SubscriptionUtil;
+import com.android.settings.network.ims.WifiCallingQueryImsState;
import java.util.List;
import java.util.Objects;
@@ -147,16 +148,20 @@
}
private boolean hasBackupCallingFeature(int subscriptionId) {
- PersistableBundle carrierConfig = getCarrierConfigForSubId(subscriptionId);
- Boolean featureEnableStatus = null;
- if (carrierConfig != null) {
- featureEnableStatus = carrierConfig.getBoolean(
- CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL, false);
+ return isCrossSimEnabledByPlatform(mContext, subscriptionId);
+ }
+
+ protected boolean isCrossSimEnabledByPlatform(Context context, int subscriptionId) {
+ // TODO : Change into API which created for accessing
+ // com.android.ims.ImsManager#isCrossSimEnabledByPlatform()
+ if ((new WifiCallingQueryImsState(context, subscriptionId)).isWifiCallingSupported()) {
+ PersistableBundle bundle = getCarrierConfigForSubId(subscriptionId);
+ return (bundle != null) && bundle.getBoolean(
+ CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL,
+ false /*default*/);
}
- // TODO: remove log after fixing b/182326102
- Log.d(LOG_TAG, "config " + CarrierConfigManager.KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL
- + "=" + featureEnableStatus + " for subId=" + subscriptionId);
- return (featureEnableStatus != null) && featureEnableStatus.booleanValue();
+ Log.d(LOG_TAG, "Not supported by framework. subId = " + subscriptionId);
+ return false;
}
private ImsMmTelManager getImsMmTelManager(int subId) {
diff --git a/src/com/android/settings/panel/PanelFeatureProviderImpl.java b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
index 28c4ba1..ca30952 100644
--- a/src/com/android/settings/panel/PanelFeatureProviderImpl.java
+++ b/src/com/android/settings/panel/PanelFeatureProviderImpl.java
@@ -20,8 +20,6 @@
import android.os.Bundle;
import android.provider.Settings;
-import com.android.settings.Utils;
-
public class PanelFeatureProviderImpl implements PanelFeatureProvider {
@Override
@@ -41,9 +39,6 @@
case Settings.Panel.ACTION_NFC:
return NfcPanel.create(context);
case Settings.Panel.ACTION_WIFI:
- if (Utils.isProviderModelEnabled(context)) {
- return InternetConnectivityPanel.create(context);
- }
return WifiPanel.create(context);
case Settings.Panel.ACTION_VOLUME:
return VolumePanel.create(context);
diff --git a/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
index 2199023..3b61a73 100644
--- a/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
+++ b/tests/unit/src/com/android/settings/panel/PanelFeatureProviderImplTest.java
@@ -27,10 +27,7 @@
import androidx.test.core.app.ApplicationProvider;
import androidx.test.ext.junit.runners.AndroidJUnit4;
-import com.android.settings.testutils.FeatureFlagUtilsRule;
-
import org.junit.Before;
-import org.junit.Rule;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -39,9 +36,6 @@
private static final String TEST_PACKAGENAME = "com.test.packagename";
- @Rule
- public final FeatureFlagUtilsRule mFeatureFlagUtilsRule = new FeatureFlagUtilsRule();
-
private Context mContext;
private PanelFeatureProviderImpl mProvider;
private Bundle mBundle;
@@ -71,24 +65,4 @@
assertThat(panel).isInstanceOf(VolumePanel.class);
}
-
- @Test
- public void getPanel_wifi_returnsWifiPanelWhenProviderModelDisable() {
- mFeatureFlagUtilsRule.setProviderModelEnabled(false);
- mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_WIFI);
-
- final PanelContent panel = mProvider.getPanel(mContext, mBundle);
-
- assertThat(panel).isInstanceOf(WifiPanel.class);
- }
-
- @Test
- public void getPanel_wifi_returnsInternetConnectivityPanelWhenProviderModelDisable() {
- mFeatureFlagUtilsRule.setProviderModelEnabled(true);
- mBundle.putString(KEY_PANEL_TYPE_ARGUMENT, Settings.Panel.ACTION_WIFI);
-
- final PanelContent panel = mProvider.getPanel(mContext, mBundle);
-
- assertThat(panel).isInstanceOf(InternetConnectivityPanel.class);
- }
}
diff --git a/tests/unit/src/com/android/settings/testutils/FeatureFlagUtilsRule.java b/tests/unit/src/com/android/settings/testutils/FeatureFlagUtilsRule.java
deleted file mode 100644
index 910073e..0000000
--- a/tests/unit/src/com/android/settings/testutils/FeatureFlagUtilsRule.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * Copyright (C) 2020 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.testutils;
-
-import android.content.Context;
-import android.util.FeatureFlagUtils;
-
-import androidx.test.core.app.ApplicationProvider;
-
-import org.junit.rules.ExternalResource;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * A test rule that is used to automatically recover the FeatureFlagUtils resource after testing.
- *
- * Example:
- * <pre class="code"><code class="java">
- * public class ExampleTest {
- *
- * @Rule
- * public final FeatureFlagUtilsRule mFeatureFlagUtilsRule = new FeatureFlagUtilsRule();
- *
- * }
- * </code></pre>
- */
-public class FeatureFlagUtilsRule extends ExternalResource {
-
- private Context mContext;
- private Map<String, Boolean> mBackupFeatureFlags = new HashMap<String, Boolean>();
-
- @Override
- protected void before() throws Throwable {
- mContext = ApplicationProvider.getApplicationContext();
- }
-
- @Override
- protected void after() {
- mBackupFeatureFlags.forEach((k, v) -> FeatureFlagUtils.setEnabled(mContext, k, v));
- }
-
- public void setEnabled(String feature, boolean enabled) {
- if (enabled == FeatureFlagUtils.isEnabled(mContext, feature)) {
- return;
- }
- mBackupFeatureFlags.putIfAbsent(feature, !enabled);
- FeatureFlagUtils.setEnabled(mContext, feature, enabled);
- }
-
- public void setProviderModelEnabled(boolean enabled) {
- setEnabled(FeatureFlagUtils.SETTINGS_PROVIDER_MODEL, enabled);
- }
-}