From 96f71f736034d33e4533e2d03321f7e5cd94efa7 Mon Sep 17 00:00:00 2001 From: mdooley Date: Wed, 1 Nov 2017 15:26:50 -0700 Subject: Fixing bug in donation settings in cl/173731907 we added a setting for donating voicemails, but didn't distinguish between when this feature is enabled/disabled by the user or by configuration. this cl fixes that by adding a method to check if the feature is available (ie enabled by config). Bug: 62423454 Test: manual and unit test PiperOrigin-RevId: 174245260 Change-Id: I45a59de7f4a171d759e2fcf86db27a100a84de67 --- .../voicemail/settings/VoicemailSettingsFragment.java | 2 +- java/com/android/voicemail/VoicemailClient.java | 3 +++ java/com/android/voicemail/impl/VoicemailClientImpl.java | 16 ++++++++++++++++ .../impl/transcribe/TranscriptionConfigProvider.java | 4 ++-- java/com/android/voicemail/stub/StubVoicemailClient.java | 5 +++++ 5 files changed, 27 insertions(+), 3 deletions(-) diff --git a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java index efeed0861..2b496c0ca 100644 --- a/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java +++ b/java/com/android/dialer/voicemail/settings/VoicemailSettingsFragment.java @@ -113,7 +113,7 @@ public class VoicemailSettingsFragment extends PreferenceFragment if (!VoicemailComponent.get(getContext()) .getVoicemailClient() - .isVoicemailDonationEnabled(getContext(), phoneAccountHandle)) { + .isVoicemailDonationAvailable(getContext())) { getPreferenceScreen().removePreference(donateVoicemailSwitchPreference); } diff --git a/java/com/android/voicemail/VoicemailClient.java b/java/com/android/voicemail/VoicemailClient.java index d033369b4..050286a41 100644 --- a/java/com/android/voicemail/VoicemailClient.java +++ b/java/com/android/voicemail/VoicemailClient.java @@ -128,6 +128,9 @@ public interface VoicemailClient { */ boolean isVoicemailTranscriptionAvailable(Context context); + /** @return if the voicemail donation feature is available. */ + boolean isVoicemailDonationAvailable(Context context); + /** @return if the voicemail donation setting has been enabled by the user. */ boolean isVoicemailDonationEnabled(Context context, PhoneAccountHandle account); diff --git a/java/com/android/voicemail/impl/VoicemailClientImpl.java b/java/com/android/voicemail/impl/VoicemailClientImpl.java index 14fa1d80b..2add59ec7 100644 --- a/java/com/android/voicemail/impl/VoicemailClientImpl.java +++ b/java/com/android/voicemail/impl/VoicemailClientImpl.java @@ -135,6 +135,22 @@ public class VoicemailClientImpl implements VoicemailClient { return true; } + @Override + public boolean isVoicemailDonationAvailable(Context context) { + if (!isVoicemailTranscriptionAvailable(context)) { + LogUtil.i("VoicemailClientImpl.isVoicemailDonationAvailable", "transcription not available"); + return false; + } + + TranscriptionConfigProvider provider = new TranscriptionConfigProvider(context); + if (!provider.isVoicemailDonationAvailable()) { + LogUtil.i("VoicemailClientImpl.isVoicemailDonationAvailable", "feature disabled by config"); + return false; + } + + return true; + } + @Override public boolean isVoicemailDonationEnabled(Context context, PhoneAccountHandle account) { return isVoicemailTranscriptionAvailable(context) diff --git a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java index 5da450312..f4996a097 100644 --- a/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java +++ b/java/com/android/voicemail/impl/transcribe/TranscriptionConfigProvider.java @@ -75,9 +75,9 @@ public class TranscriptionConfigProvider { .getLong("voicemail_transcription_get_transcript_poll_interval_millis", 1000L); } - public boolean isVoicemailDonationEnabled() { + public boolean isVoicemailDonationAvailable() { return ConfigProviderBindings.get(context) - .getBoolean("voicemail_transcription_donation_enabled", false); + .getBoolean("voicemail_transcription_donation_available", false); } @Override diff --git a/java/com/android/voicemail/stub/StubVoicemailClient.java b/java/com/android/voicemail/stub/StubVoicemailClient.java index 0fe533e62..fe063245f 100644 --- a/java/com/android/voicemail/stub/StubVoicemailClient.java +++ b/java/com/android/voicemail/stub/StubVoicemailClient.java @@ -75,6 +75,11 @@ public final class StubVoicemailClient implements VoicemailClient { return false; } + @Override + public boolean isVoicemailDonationAvailable(Context context) { + return false; + } + @Override public boolean isVoicemailDonationEnabled(Context context, PhoneAccountHandle account) { return false; -- cgit v1.2.3