From d8046e520a866b9948ee9ba47cf642b441ca8e23 Mon Sep 17 00:00:00 2001 From: Eric Erfanian Date: Thu, 6 Apr 2017 09:41:50 -0700 Subject: Update AOSP Dialer source from internal google3 repository at cl/152373142. Test: make, treehugger This CL updates the AOSP Dialer source with all the changes that have gone into the private google3 repository. This includes all the changes from cl/151342913 (3/27/2017) to cl/152373142 (4/06/2017). This goal of these drops is to keep the AOSP source in sync with the internal google3 repository. Currently these sync are done by hand with very minor modifications to the internal source code. See the Android.mk file for list of modifications. Our current goal is to do frequent drops (daily if possible) and eventually switched to an automated process. Change-Id: I2fbc88cf6867b90ac8b65f75e5e34468988c7217 --- .../error/OmtpVoicemailMessageCreator.java | 184 +++++++++++---------- .../app/voicemail/error/VoicemailErrorMessage.java | 38 +++-- .../error/Vvm3VoicemailMessageCreator.java | 2 +- .../app/voicemail/error/res/values-de/strings.xml | 12 +- 4 files changed, 129 insertions(+), 107 deletions(-) (limited to 'java/com/android/dialer/app/voicemail/error') diff --git a/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java b/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java index b56d568b7..2b19bd7bb 100644 --- a/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java +++ b/java/com/android/dialer/app/voicemail/error/OmtpVoicemailMessageCreator.java @@ -22,7 +22,6 @@ import android.provider.VoicemailContract.Status; import android.support.annotation.Nullable; import android.telecom.PhoneAccountHandle; import com.android.dialer.app.voicemail.error.VoicemailErrorMessage.Action; -import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.common.PerAccountSharedPreferences; import com.android.dialer.logging.Logger; @@ -136,92 +135,122 @@ public class OmtpVoicemailMessageCreator { Context context, VoicemailStatus status, VoicemailStatusReader statusReader) { if (status.quotaOccupied != Status.QUOTA_UNAVAILABLE && status.quotaTotal != Status.QUOTA_UNAVAILABLE) { + return createInboxErrorMessage(context, status, statusReader); + } + Logger.get(context).logImpression(DialerImpression.Type.VVM_QUOTA_CHECK_UNAVAILABLE); + return null; + } - PhoneAccountHandle phoneAccountHandle = status.getPhoneAccountHandle(); + @Nullable + private static VoicemailErrorMessage createInboxErrorMessage( + Context context, VoicemailStatus status, VoicemailStatusReader statusReader) { - VoicemailClient voicemailClient = VoicemailComponent.get(context).getVoicemailClient(); + float voicemailOccupiedFraction = (float) status.quotaOccupied / (float) status.quotaTotal; - PerAccountSharedPreferences sharedPreferenceForAccount = - new PerAccountSharedPreferences( - context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context)); + if (voicemailOccupiedFraction < QUOTA_NEAR_FULL_THRESHOLD) { + return null; + } - boolean isVoicemailArchiveEnabled = - VoicemailComponent.get(context) - .getVoicemailClient() - .isVoicemailArchiveEnabled(context, phoneAccountHandle); + boolean isFull = voicemailOccupiedFraction >= QUOTA_FULL_THRESHOLD; - if ((float) status.quotaOccupied / (float) status.quotaTotal >= QUOTA_FULL_THRESHOLD) { - return createInboxErrorMessage( - context, - status, - status.getPhoneAccountHandle(), - statusReader, - sharedPreferenceForAccount, - voicemailClient, - isVoicemailArchiveEnabled, - context.getString(R.string.voicemail_error_inbox_full_turn_archive_on_title), - context.getText(R.string.voicemail_error_inbox_full_turn_archive_on_message), - context.getString(R.string.voicemail_error_inbox_full_title), - context.getString(R.string.voicemail_error_inbox_full_message), - VOICEMAIL_PROMO_DISMISSED_KEY); - } + PhoneAccountHandle phoneAccountHandle = status.getPhoneAccountHandle(); - if ((float) status.quotaOccupied / (float) status.quotaTotal >= QUOTA_NEAR_FULL_THRESHOLD) { - return createInboxErrorMessage( - context, - status, - status.getPhoneAccountHandle(), - statusReader, - sharedPreferenceForAccount, - voicemailClient, - isVoicemailArchiveEnabled, - context.getString(R.string.voicemail_error_inbox_almost_full_turn_archive_on_title), - context.getText(R.string.voicemail_error_inbox_almost_full_turn_archive_on_message), + PerAccountSharedPreferences sharedPreferenceForAccount = + new PerAccountSharedPreferences( + context, phoneAccountHandle, PreferenceManager.getDefaultSharedPreferences(context)); + + VoicemailClient voicemailClient = VoicemailComponent.get(context).getVoicemailClient(); + + boolean shouldShowPromoForArchive = + !isPromoForArchiveDismissed(sharedPreferenceForAccount, isFull) + && !voicemailClient.isVoicemailArchiveEnabled(context, phoneAccountHandle) + && voicemailClient.isVoicemailArchiveAvailable(context); + + if (!shouldShowPromoForArchive) { + if (isFull) { + Logger.get(context) + .logImpression(DialerImpression.Type.VVM_USER_SHOWN_VM_FULL_ERROR_MESSAGE); + return new VoicemailErrorMessage( + context.getString(R.string.voicemail_error_inbox_full_title), + context.getString(R.string.voicemail_error_inbox_full_message)); + } else { + Logger.get(context) + .logImpression(DialerImpression.Type.VVM_USER_SHOWN_VM_ALMOST_FULL_ERROR_MESSAGE); + return new VoicemailErrorMessage( context.getString(R.string.voicemail_error_inbox_near_full_title), - context.getString(R.string.voicemail_error_inbox_near_full_message), - VOICEMAIL_PROMO_ALMOST_FULL_DISMISSED_KEY); + context.getString(R.string.voicemail_error_inbox_near_full_message)); } } - return null; + + String title; + CharSequence message; + int enabledImpression; + int dismissedImpression; + String dismissedKey; + + if (isFull) { + Logger.get(context).logImpression(DialerImpression.Type.VVM_USER_SHOWN_VM_FULL_PROMO); + title = context.getString(R.string.voicemail_error_inbox_full_turn_archive_on_title); + message = context.getText(R.string.voicemail_error_inbox_full_turn_archive_on_message); + enabledImpression = DialerImpression.Type.VVM_USER_ENABLED_ARCHIVE_FROM_VM_FULL_PROMO; + dismissedImpression = DialerImpression.Type.VVM_USER_DISMISSED_VM_FULL_PROMO; + dismissedKey = VOICEMAIL_PROMO_DISMISSED_KEY; + } else { + Logger.get(context).logImpression(DialerImpression.Type.VVM_USER_SHOWN_VM_ALMOST_FULL_PROMO); + title = context.getString(R.string.voicemail_error_inbox_almost_full_turn_archive_on_title); + message = context.getText(R.string.voicemail_error_inbox_almost_full_turn_archive_on_message); + enabledImpression = DialerImpression.Type.VVM_USER_ENABLED_ARCHIVE_FROM_VM_ALMOST_FULL_PROMO; + dismissedImpression = DialerImpression.Type.VVM_USER_DISMISSED_VM_ALMOST_FULL_PROMO; + dismissedKey = VOICEMAIL_PROMO_ALMOST_FULL_DISMISSED_KEY; + } + + return createVMQuotaPromo( + context, + phoneAccountHandle, + status, + statusReader, + voicemailClient, + sharedPreferenceForAccount, + title, + message, + enabledImpression, + dismissedImpression, + dismissedKey); } - private static VoicemailErrorMessage createInboxErrorMessage( + private static boolean isPromoForArchiveDismissed( + PerAccountSharedPreferences sharedPreferenceForAccount, boolean isFull) { + if (isFull) { + return sharedPreferenceForAccount.getBoolean(VOICEMAIL_PROMO_DISMISSED_KEY, false); + } else { + return sharedPreferenceForAccount.getBoolean( + VOICEMAIL_PROMO_ALMOST_FULL_DISMISSED_KEY, false); + } + } + + private static VoicemailErrorMessage createVMQuotaPromo( Context context, - VoicemailStatus status, PhoneAccountHandle phoneAccountHandle, + VoicemailStatus status, VoicemailStatusReader statusReader, - PerAccountSharedPreferences sharedPreferenceForAccount, VoicemailClient voicemailClient, - boolean isVoicemailArchiveEnabled, - String promoTitle, - CharSequence promoMessage, - String nonPromoTitle, - String nonPromoMessage, - String preferenceKey) { - - boolean wasPromoDismissed = sharedPreferenceForAccount.getBoolean(preferenceKey, false); - - if (!wasPromoDismissed && !isVoicemailArchiveEnabled) { - logArchiveImpression( - context, - preferenceKey, - DialerImpression.Type.VVM_USER_SHOWN_VM_ALMOST_FULL_PROMO, - DialerImpression.Type.VVM_USER_SHOWN_VM_FULL_PROMO); - return new VoicemailErrorMessage( - promoTitle, - promoMessage, - VoicemailErrorMessage.createDismissTurnArchiveOnAction( - context, statusReader, sharedPreferenceForAccount, preferenceKey), - VoicemailErrorMessage.createTurnArchiveOnAction( - context, status, voicemailClient, phoneAccountHandle, preferenceKey)); - } else { - logArchiveImpression( - context, - preferenceKey, - DialerImpression.Type.VVM_USER_SHOWN_VM_ALMOST_FULL_ERROR_MESSAGE, - DialerImpression.Type.VVM_USER_SHOWN_VM_FULL_ERROR_MESSAGE); - return new VoicemailErrorMessage(nonPromoTitle, nonPromoMessage); - } + PerAccountSharedPreferences sharedPreferenceForAccount, + String title, + CharSequence message, + int impressionToLogOnEnable, + int impressionToLogOnDismiss, + String preferenceKeyToUpdate) { + return new VoicemailErrorMessage( + title, + message, + VoicemailErrorMessage.createDismissTurnArchiveOnAction( + context, + impressionToLogOnDismiss, + statusReader, + sharedPreferenceForAccount, + preferenceKeyToUpdate), + VoicemailErrorMessage.createTurnArchiveOnAction( + context, impressionToLogOnEnable, status, voicemailClient, phoneAccountHandle)); } @Nullable @@ -260,15 +289,4 @@ public class OmtpVoicemailMessageCreator { } return new VoicemailErrorMessage(title, description, actions); } - - protected static void logArchiveImpression( - Context context, String preference, int vmAlmostFullImpression, int vmFullImpression) { - if (preference.equals(VOICEMAIL_PROMO_DISMISSED_KEY)) { - Logger.get(context).logImpression(vmAlmostFullImpression); - } else if (preference.equals(VOICEMAIL_PROMO_ALMOST_FULL_DISMISSED_KEY)) { - Logger.get(context).logImpression(vmFullImpression); - } else { - throw Assert.createAssertionFailException("Invalid preference key " + preference); - } - } } diff --git a/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java b/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java index 4addcb996..1ef80288b 100644 --- a/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java +++ b/java/com/android/dialer/app/voicemail/error/VoicemailErrorMessage.java @@ -23,14 +23,15 @@ import android.provider.VoicemailContract; import android.support.annotation.NonNull; import android.support.annotation.Nullable; import android.telecom.PhoneAccountHandle; -import android.telephony.TelephonyManager; import android.view.View; import android.view.View.OnClickListener; +import com.android.dialer.common.Assert; import com.android.dialer.common.PerAccountSharedPreferences; import com.android.dialer.logging.Logger; import com.android.dialer.logging.nano.DialerImpression; import com.android.dialer.util.CallUtil; import com.android.voicemail.VoicemailClient; +import com.android.voicemail.VoicemailComponent; import java.util.Arrays; import java.util.List; @@ -126,7 +127,8 @@ public class VoicemailErrorMessage { } @NonNull - public static Action createSetPinAction(final Context context) { + public static Action createSetPinAction( + final Context context, PhoneAccountHandle phoneAccountHandle) { return new Action( context.getString(R.string.voicemail_action_set_pin), new OnClickListener() { @@ -134,8 +136,10 @@ public class VoicemailErrorMessage { public void onClick(View v) { Logger.get(context) .logImpression(DialerImpression.Type.VOICEMAIL_ALERT_SET_PIN_CLICKED); - Intent intent = new Intent(TelephonyManager.ACTION_CONFIGURE_VOICEMAIL); - context.startActivity(intent); + context.startActivity( + VoicemailComponent.get(context) + .getVoicemailClient() + .getSetPinIntent(context, phoneAccountHandle)); } }); } @@ -187,21 +191,20 @@ public class VoicemailErrorMessage { @NonNull public static Action createTurnArchiveOnAction( final Context context, + int impressionToLog, final VoicemailStatus status, VoicemailClient voicemailClient, - PhoneAccountHandle phoneAccountHandle, - String preference) { + PhoneAccountHandle phoneAccountHandle) { return new Action( context.getString(R.string.voicemail_action_turn_archive_on), new OnClickListener() { @Override public void onClick(View v) { - OmtpVoicemailMessageCreator.logArchiveImpression( - context, - preference, - DialerImpression.Type.VVM_USER_ENABLED_ARCHIVE_FROM_VM_FULL_PROMO, - DialerImpression.Type.VVM_USER_ENABLED_ARCHIVE_FROM_VM_ALMOST_FULL_PROMO); - + Assert.checkArgument( + VoicemailComponent.get(context) + .getVoicemailClient() + .isVoicemailArchiveAvailable(context)); + Logger.get(context).logImpression(impressionToLog); voicemailClient.setVoicemailArchiveEnabled(context, phoneAccountHandle, true); Intent intent = new Intent(VoicemailContract.ACTION_SYNC_VOICEMAIL); intent.setPackage(status.sourcePackage); @@ -213,6 +216,7 @@ public class VoicemailErrorMessage { @NonNull public static Action createDismissTurnArchiveOnAction( final Context context, + int impressionToLog, VoicemailStatusReader statusReader, PerAccountSharedPreferences sharedPreferenceForAccount, String preferenceKeyToUpdate) { @@ -221,11 +225,11 @@ public class VoicemailErrorMessage { new OnClickListener() { @Override public void onClick(View v) { - OmtpVoicemailMessageCreator.logArchiveImpression( - context, - preferenceKeyToUpdate, - DialerImpression.Type.VVM_USER_DISMISSED_VM_FULL_PROMO, - DialerImpression.Type.VVM_USER_DISMISSED_VM_ALMOST_FULL_PROMO); + Assert.checkArgument( + VoicemailComponent.get(context) + .getVoicemailClient() + .isVoicemailArchiveAvailable(context)); + Logger.get(context).logImpression(impressionToLog); sharedPreferenceForAccount.edit().putBoolean(preferenceKeyToUpdate, true).apply(); statusReader.refresh(); } diff --git a/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java b/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java index 8b10ff4a8..d98ac2cd5 100644 --- a/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java +++ b/java/com/android/dialer/app/voicemail/error/Vvm3VoicemailMessageCreator.java @@ -264,7 +264,7 @@ public class Vvm3VoicemailMessageCreator { return new VoicemailErrorMessage( context.getString(R.string.voicemail_error_pin_not_set_title), getCustomerSupportString(context, R.string.voicemail_error_pin_not_set_message), - VoicemailErrorMessage.createSetPinAction(context)); + VoicemailErrorMessage.createSetPinAction(context, status.getPhoneAccountHandle())); } return OmtpVoicemailMessageCreator.create(context, status, statusReader); diff --git a/java/com/android/dialer/app/voicemail/error/res/values-de/strings.xml b/java/com/android/dialer/app/voicemail/error/res/values-de/strings.xml index 09283d3d6..8939e687e 100644 --- a/java/com/android/dialer/app/voicemail/error/res/values-de/strings.xml +++ b/java/com/android/dialer/app/voicemail/error/res/values-de/strings.xml @@ -24,8 +24,8 @@ "Vergewissere dich, dass dein Smartphone eine Mobilfunkverbindung hat und versuche es noch einmal." "Schalte den Flugmodus aus und versuche es noch einmal." "Keine Verbindung" - "Du wirst nicht über neue Mailbox-Nachrichten informiert. Wenn du eine WLAN-Verbindung hast, kannst du deine Mailbox abrufen, indem du dein Smartphone jetzt synchronisierst." - "Du wirst nicht über neue Mailbox-Nachrichten informiert. Schalte den Flugmodus aus, um deine Mailbox zu synchronisieren." + "Du wirst nicht über neue Mailboxnachrichten informiert. Wenn du eine WLAN-Verbindung hast, kannst du deine Mailbox abrufen, indem du dein Smartphone jetzt synchronisierst." + "Du wirst nicht über neue Mailboxnachrichten informiert. Schalte den Flugmodus aus, um deine Mailbox zu synchronisieren." "Dein Smartphone benötigt eine mobile Datenverbindung, um die Mailbox abzurufen." "Visuelle Mailbox kann nicht aktiviert werden" "Du kannst deine Mailbox immer noch per Anruf abhören." @@ -42,12 +42,12 @@ "Du kannst deine Mailbox immer noch per Anruf abhören." "Mailbox fast voll" "Wenn deine Mailbox voll ist, kannst du keine neuen Sprachnachrichten empfangen." - "Es können keine neuen Mailbox-Nachrichten empfangen werden" + "Es können keine neuen Mailboxnachrichten empfangen werden" "Deine Mailbox ist voll. Lösche einige Nachrichten, um neue empfangen zu können." "[Testfunktion] Zusätzlichen Speicher und Sicherung aktivieren" - "Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailbox-Nachrichten verwalten und sichern. ""Diese Funktion wird gerade getestet."" Hiermit werden möglicherweise Mailbox-Nachrichten von deinem Mailbox-Server gelöscht und es wird nicht garantiert, dass diese Funktion auch in Zukunft unterstützt wird. Wir würden uns aber sehr über Feedback dazu freuen." + "Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailboxnachrichten verwalten und sichern. ""Diese Funktion wird gerade getestet."" Hiermit werden möglicherweise Mailboxnachrichten von deinem Mailbox-Server gelöscht und es wird nicht garantiert, dass diese Funktion auch in Zukunft unterstützt wird. Wir würden uns aber sehr über Feedback dazu freuen." "[Testfunktion] Zusätzlichen Speicher und Sicherung aktivieren" - "Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailbox-Nachrichten verwalten und sichern. ""Diese Funktion wird gerade getestet."" Hiermit werden möglicherweise Mailbox-Nachrichten von deinem Mailbox-Server gelöscht und es wird nicht garantiert, dass diese Funktion auch in Zukunft unterstützt wird. Wir würden uns aber sehr über Feedback dazu freuen." + "Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailboxnachrichten verwalten und sichern. ""Diese Funktion wird gerade getestet."" Hiermit werden möglicherweise Mailboxnachrichten von deinem Mailbox-Server gelöscht und es wird nicht garantiert, dass diese Funktion auch in Zukunft unterstützt wird. Wir würden uns aber sehr über Feedback dazu freuen." "Mailbox-PIN festlegen" "Bei jedem Anruf auf deiner Mailbox benötigst du eine Mailbox-PIN." "Unbekannter Fehler" @@ -105,6 +105,6 @@ "Du muss den Nutzungsbedingungen von Verizon Wireless zustimmen, um die visuelle Mailbox zu verwenden:\n\n%s" "Die visuelle Mailbox wird deaktiviert, wenn du die Nutzungsbedingungen ablehnst." "Visuelle Mailbox deaktivieren" - "Du kannst nur auf Mailbox-Nachrichten zugreifen, indem du *86 anrufst. Lege eine neue Mailbox-PIN fest, um fortzufahren." + "Du kannst nur auf Mailboxnachrichten zugreifen, indem du *86 anrufst. Lege eine neue Mailbox-PIN fest, um fortzufahren." "PIN festlegen" -- cgit v1.2.3