From 1d6cd6dd54251ee100e0f105bbcd299fbb609712 Mon Sep 17 00:00:00 2001 From: twyen Date: Tue, 5 Sep 2017 12:22:56 -0700 Subject: Load VVM config override before loading anything else The override config is used by carriers to test out different configs using a prod dialer. Previously the type was loaded before the override config, causing carriers that is not currently supported never able to force enable VVM. This CL also fixes getCarrierPackageNames() and getDisabledCapabilities() not loading the override. Bug: 65370543 Test: revived OmtpVvmCarrierConfigHelperTest PiperOrigin-RevId: 167614182 Change-Id: Ibafdaf5fdc3e948bc65656f94c4bdc7d6e97046c --- .../voicemail/impl/OmtpVvmCarrierConfigHelper.java | 29 +++++++++++++++------- .../impl/configui/ConfigOverrideFragment.java | 3 ++- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java index 700e1cbca..90303f59f 100644 --- a/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java +++ b/java/com/android/voicemail/impl/OmtpVvmCarrierConfigHelper.java @@ -50,6 +50,8 @@ import java.util.Set; * that may clutter CarrierConfigManager too much. * *

The current hidden configs are: {@link #getSslPort()} {@link #getDisabledCapabilities()} + * + *

TODO(twyen): refactor this to an interface. */ @TargetApi(VERSION_CODES.O) public class OmtpVvmCarrierConfigHelper { @@ -112,19 +114,19 @@ public class OmtpVvmCarrierConfigHelper { return; } - mCarrierConfig = getCarrierConfig(telephonyManager); - mTelephonyConfig = - new TelephonyVvmConfigManager(context).getConfig(telephonyManager.getSimOperator()); - - mVvmType = getVvmType(); - mProtocol = VisualVoicemailProtocolFactory.create(mContext.getResources(), mVvmType); - if (ConfigOverrideFragment.isOverridden(context)) { mOverrideConfig = ConfigOverrideFragment.getConfig(context); VvmLog.w(TAG, "Config override is activated: " + mOverrideConfig); } else { mOverrideConfig = null; } + + mCarrierConfig = getCarrierConfig(telephonyManager); + mTelephonyConfig = + new TelephonyVvmConfigManager(context).getConfig(telephonyManager.getSimOperator()); + + mVvmType = getVvmType(); + mProtocol = VisualVoicemailProtocolFactory.create(mContext.getResources(), mVvmType); } @VisibleForTesting @@ -187,7 +189,11 @@ public class OmtpVvmCarrierConfigHelper { @Nullable public Set getCarrierVvmPackageNames() { Assert.checkArgument(isValid()); - Set names = getCarrierVvmPackageNames(mCarrierConfig); + Set names = getCarrierVvmPackageNames(mOverrideConfig); + if (names != null) { + return names; + } + names = getCarrierVvmPackageNames(mCarrierConfig); if (names != null) { return names; } @@ -278,7 +284,12 @@ public class OmtpVvmCarrierConfigHelper { @Nullable public Set getDisabledCapabilities() { Assert.checkArgument(isValid()); - Set disabledCapabilities = getDisabledCapabilities(mCarrierConfig); + Set disabledCapabilities; + disabledCapabilities = getDisabledCapabilities(mOverrideConfig); + if (disabledCapabilities != null) { + return disabledCapabilities; + } + disabledCapabilities = getDisabledCapabilities(mCarrierConfig); if (disabledCapabilities != null) { return disabledCapabilities; } diff --git a/java/com/android/voicemail/impl/configui/ConfigOverrideFragment.java b/java/com/android/voicemail/impl/configui/ConfigOverrideFragment.java index 1624ce579..caf33df13 100644 --- a/java/com/android/voicemail/impl/configui/ConfigOverrideFragment.java +++ b/java/com/android/voicemail/impl/configui/ConfigOverrideFragment.java @@ -49,7 +49,8 @@ public class ConfigOverrideFragment extends PreferenceFragment * Any preference with key that starts with this prefix will be written to the dialer carrier * config. */ - @VisibleForTesting static final String CONFIG_OVERRIDE_KEY_PREFIX = "vvm_config_override_key_"; + @VisibleForTesting + public static final String CONFIG_OVERRIDE_KEY_PREFIX = "vvm_config_override_key_"; @Override public void onCreate(@Nullable Bundle savedInstanceState) { -- cgit v1.2.3