diff options
Diffstat (limited to 'java/com/android/dialer/app/voicemail')
6 files changed, 227 insertions, 185 deletions
diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java index f40ed2794..04fe7f66a 100644 --- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java +++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackLayout.java @@ -276,12 +276,12 @@ public class VoicemailPlaybackLayout extends LinearLayout @Override public void onSpeakerphoneOn(boolean on) { if (on) { - mPlaybackSpeakerphone.setImageResource(R.drawable.ic_volume_up_24dp); + mPlaybackSpeakerphone.setImageResource(R.drawable.quantum_ic_volume_up_white_24); // Speaker is now on, tapping button will turn it off. mPlaybackSpeakerphone.setContentDescription( mContext.getString(R.string.voicemail_speaker_off)); } else { - mPlaybackSpeakerphone.setImageResource(R.drawable.ic_volume_down_24dp); + mPlaybackSpeakerphone.setImageResource(R.drawable.quantum_ic_volume_down_white_24); // Speaker is now off, tapping button will turn it on. mPlaybackSpeakerphone.setContentDescription( mContext.getString(R.string.voicemail_speaker_on)); diff --git a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java index 492f2088b..5bfa03e90 100644 --- a/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java +++ b/java/com/android/dialer/app/voicemail/VoicemailPlaybackPresenter.java @@ -39,6 +39,7 @@ import android.support.annotation.Nullable; import android.support.annotation.VisibleForTesting; import android.support.v4.content.FileProvider; import android.text.TextUtils; +import android.util.Pair; import android.view.View; import android.view.WindowManager.LayoutParams; import android.webkit.MimeTypeMap; @@ -50,6 +51,8 @@ import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; import com.android.dialer.common.concurrent.AsyncTaskExecutor; import com.android.dialer.common.concurrent.AsyncTaskExecutors; +import com.android.dialer.common.concurrent.DialerExecutor; +import com.android.dialer.common.concurrent.DialerExecutors; import com.android.dialer.constants.Constants; import com.android.dialer.logging.Logger; import com.android.dialer.logging.nano.DialerImpression; @@ -146,6 +149,8 @@ public class VoicemailPlaybackPresenter private OnVoicemailDeletedListener mOnVoicemailDeletedListener; private View shareVoicemailButtonView; + private DialerExecutor<Pair<Context, Uri>> shareVoicemailExecutor; + /** Initialize variables which are activity-independent and state-independent. */ protected VoicemailPlaybackPresenter(Activity activity) { Context context = activity.getApplicationContext(); @@ -213,6 +218,23 @@ public class VoicemailPlaybackPresenter } else { mActivity.getWindow().clearFlags(LayoutParams.FLAG_KEEP_SCREEN_ON); } + shareVoicemailExecutor = + DialerExecutors.createUiTaskBuilder( + mActivity.getFragmentManager(), "test", new ShareVoicemailWorker()) + .onSuccess( + output -> { + if (output == null) { + LogUtil.e("VoicemailAsyncTaskUtil.shareVoicemail", "failed to get voicemail"); + return; + } + mContext.startActivity( + Intent.createChooser( + getShareIntent(mContext, output.first, output.second), + mContext + .getResources() + .getText(R.string.call_log_action_share_voicemail))); + }) + .build(); } } @@ -838,78 +860,65 @@ public class VoicemailPlaybackPresenter return ConfigProviderBindings.get(context).getBoolean(CONFIG_SHARE_VOICEMAIL_ALLOWED, true); } + private static class ShareVoicemailWorker + implements DialerExecutor.Worker<Pair<Context, Uri>, Pair<Uri, String>> { + + @Nullable + @Override + public Pair<Uri, String> doInBackground(Pair<Context, Uri> input) { + Context context = input.first; + Uri voicemailUri = input.second; + ContentResolver contentResolver = context.getContentResolver(); + try (Cursor callLogInfo = getCallLogInfoCursor(contentResolver, voicemailUri); + Cursor contentInfo = getContentInfoCursor(contentResolver, voicemailUri)) { + + if (hasContent(callLogInfo) && hasContent(contentInfo)) { + String cachedName = callLogInfo.getString(CallLogQuery.CACHED_NAME); + String number = contentInfo.getString(contentInfo.getColumnIndex(Voicemails.NUMBER)); + long date = contentInfo.getLong(contentInfo.getColumnIndex(Voicemails.DATE)); + String mimeType = contentInfo.getString(contentInfo.getColumnIndex(Voicemails.MIME_TYPE)); + String transcription = + contentInfo.getString(contentInfo.getColumnIndex(Voicemails.TRANSCRIPTION)); + + // Copy voicemail content to a new file. + // Please see reference in third_party/java_src/android_app/dialer/java/com/android/ + // dialer/app/res/xml/file_paths.xml for correct cache directory name. + File parentDir = new File(context.getCacheDir(), "my_cache"); + if (!parentDir.exists()) { + parentDir.mkdirs(); + } + File temporaryVoicemailFile = + new File(parentDir, getFileName(cachedName, number, mimeType, date)); + + try (InputStream inputStream = contentResolver.openInputStream(voicemailUri); + OutputStream outputStream = + contentResolver.openOutputStream(Uri.fromFile(temporaryVoicemailFile))) { + if (inputStream != null && outputStream != null) { + ByteStreams.copy(inputStream, outputStream); + return new Pair<>( + FileProvider.getUriForFile( + context, Constants.get().getFileProviderAuthority(), temporaryVoicemailFile), + transcription); + } + } catch (IOException e) { + LogUtil.e( + "VoicemailAsyncTaskUtil.shareVoicemail", + "failed to copy voicemail content to new file: ", + e); + } + return null; + } + } + return null; + } + } + /** * Share voicemail to be opened by user selected apps. This method will collect information, copy * voicemail to a temporary file in background and launch a chooser intent to share it. */ - @TargetApi(VERSION_CODES.M) public void shareVoicemail() { - mAsyncTaskExecutor.submit( - Tasks.SHARE_VOICEMAIL, - new AsyncTask<Void, Void, Uri>() { - @Nullable - @Override - protected Uri doInBackground(Void... params) { - ContentResolver contentResolver = mContext.getContentResolver(); - try (Cursor callLogInfo = getCallLogInfoCursor(contentResolver, mVoicemailUri); - Cursor contentInfo = getContentInfoCursor(contentResolver, mVoicemailUri)) { - - if (hasContent(callLogInfo) && hasContent(contentInfo)) { - String cachedName = callLogInfo.getString(CallLogQuery.CACHED_NAME); - String number = - contentInfo.getString( - contentInfo.getColumnIndex(VoicemailContract.Voicemails.NUMBER)); - long date = - contentInfo.getLong( - contentInfo.getColumnIndex(VoicemailContract.Voicemails.DATE)); - String mimeType = - contentInfo.getString( - contentInfo.getColumnIndex(VoicemailContract.Voicemails.MIME_TYPE)); - - // Copy voicemail content to a new file. - // Please see reference in third_party/java_src/android_app/dialer/java/com/android/ - // dialer/app/res/xml/file_paths.xml for correct cache directory name. - File parentDir = new File(mContext.getCacheDir(), "my_cache"); - if (!parentDir.exists()) { - parentDir.mkdirs(); - } - File temporaryVoicemailFile = - new File(parentDir, getFileName(cachedName, number, mimeType, date)); - - try (InputStream inputStream = contentResolver.openInputStream(mVoicemailUri); - OutputStream outputStream = - contentResolver.openOutputStream(Uri.fromFile(temporaryVoicemailFile))) { - if (inputStream != null && outputStream != null) { - ByteStreams.copy(inputStream, outputStream); - return FileProvider.getUriForFile( - mContext, - Constants.get().getFileProviderAuthority(), - temporaryVoicemailFile); - } - } catch (IOException e) { - LogUtil.e( - "VoicemailAsyncTaskUtil.shareVoicemail", - "failed to copy voicemail content to new file: ", - e); - } - return null; - } - } - return null; - } - - @Override - protected void onPostExecute(Uri uri) { - if (uri == null) { - LogUtil.e("VoicemailAsyncTaskUtil.shareVoicemail", "failed to get voicemail"); - } else { - mContext.startActivity( - Intent.createChooser( - getShareIntent(mContext, uri), - mContext.getResources().getText(R.string.call_log_action_share_voicemail))); - } - } - }); + shareVoicemailExecutor.executeParallel(new Pair<>(mContext, mVoicemailUri)); } private static String getFileName(String cachedName, String number, String mimeType, long date) { @@ -925,12 +934,22 @@ public class VoicemailPlaybackPresenter + (TextUtils.isEmpty(fileExtension) ? "" : "." + fileExtension); } - private static Intent getShareIntent(Context context, Uri voicemailFileUri) { + private static Intent getShareIntent( + Context context, Uri voicemailFileUri, String transcription) { Intent shareIntent = new Intent(); - shareIntent.setAction(Intent.ACTION_SEND); - shareIntent.putExtra(Intent.EXTRA_STREAM, voicemailFileUri); - shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); - shareIntent.setType(context.getContentResolver().getType(voicemailFileUri)); + if (TextUtils.isEmpty(transcription)) { + shareIntent.setAction(Intent.ACTION_SEND); + shareIntent.putExtra(Intent.EXTRA_STREAM, voicemailFileUri); + shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + shareIntent.setType(context.getContentResolver().getType(voicemailFileUri)); + } else { + shareIntent.setAction(Intent.ACTION_SEND); + shareIntent.putExtra(Intent.EXTRA_STREAM, voicemailFileUri); + shareIntent.putExtra(Intent.EXTRA_TEXT, transcription); + shareIntent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); + shareIntent.setType("*/*"); + } + return shareIntent; } @@ -954,10 +973,11 @@ public class VoicemailPlaybackPresenter return contentResolver.query( voicemailUri, new String[] { - VoicemailContract.Voicemails._ID, - VoicemailContract.Voicemails.NUMBER, - VoicemailContract.Voicemails.DATE, - VoicemailContract.Voicemails.MIME_TYPE, + Voicemails._ID, + Voicemails.NUMBER, + Voicemails.DATE, + Voicemails.MIME_TYPE, + Voicemails.TRANSCRIPTION, }, null, null, 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 @@ <string name="voicemail_error_not_activate_no_signal_message" msgid="4511975927252363280">"Vergewissere dich, dass dein Smartphone eine Mobilfunkverbindung hat und versuche es noch einmal."</string> <string name="voicemail_error_not_activate_no_signal_airplane_mode_message" msgid="2005255281543281215">"Schalte den Flugmodus aus und versuche es noch einmal."</string> <string name="voicemail_error_no_signal_title" msgid="341954685733680219">"Keine Verbindung"</string> - <string name="voicemail_error_no_signal_message" msgid="8557509373166292640">"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."</string> - <string name="voicemail_error_no_signal_airplane_mode_message" msgid="8553646558282754276">"Du wirst nicht über neue Mailbox-Nachrichten informiert. Schalte den Flugmodus aus, um deine Mailbox zu synchronisieren."</string> + <string name="voicemail_error_no_signal_message" msgid="8557509373166292640">"Du wirst nicht über neue Mailboxnachrichten informiert. Wenn du eine WLAN-Verbindung hast, kannst du deine Mailbox abrufen, indem du dein Smartphone jetzt synchronisierst."</string> + <string name="voicemail_error_no_signal_airplane_mode_message" msgid="8553646558282754276">"Du wirst nicht über neue Mailboxnachrichten informiert. Schalte den Flugmodus aus, um deine Mailbox zu synchronisieren."</string> <string name="voicemail_error_no_signal_cellular_required_message" msgid="8461294934887808098">"Dein Smartphone benötigt eine mobile Datenverbindung, um die Mailbox abzurufen."</string> <string name="voicemail_error_activation_failed_title" msgid="3823477898681399391">"Visuelle Mailbox kann nicht aktiviert werden"</string> <string name="voicemail_error_activation_failed_message" msgid="2188301459207765442">"Du kannst deine Mailbox immer noch per Anruf abhören."</string> @@ -42,12 +42,12 @@ <string name="voicemail_error_server_message" msgid="3538157415413084592">"Du kannst deine Mailbox immer noch per Anruf abhören."</string> <string name="voicemail_error_inbox_near_full_title" msgid="7568681773644454672">"Mailbox fast voll"</string> <string name="voicemail_error_inbox_near_full_message" msgid="354118612203528244">"Wenn deine Mailbox voll ist, kannst du keine neuen Sprachnachrichten empfangen."</string> - <string name="voicemail_error_inbox_full_title" msgid="249268068442046872">"Es können keine neuen Mailbox-Nachrichten empfangen werden"</string> + <string name="voicemail_error_inbox_full_title" msgid="249268068442046872">"Es können keine neuen Mailboxnachrichten empfangen werden"</string> <string name="voicemail_error_inbox_full_message" msgid="5788411018158899123">"Deine Mailbox ist voll. Lösche einige Nachrichten, um neue empfangen zu können."</string> <string name="voicemail_error_inbox_full_turn_archive_on_title" msgid="3083779676549536189">"[Testfunktion] Zusätzlichen Speicher und Sicherung aktivieren"</string> - <string name="voicemail_error_inbox_full_turn_archive_on_message" msgid="4236256841748725792">"Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailbox-Nachrichten verwalten und sichern. "<b><i>"Diese Funktion wird gerade getestet."</i></b>" 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."</string> + <string name="voicemail_error_inbox_full_turn_archive_on_message" msgid="4236256841748725792">"Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailboxnachrichten verwalten und sichern. "<b><i>"Diese Funktion wird gerade getestet."</i></b>" 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."</string> <string name="voicemail_error_inbox_almost_full_turn_archive_on_title" msgid="6118464905488477869">"[Testfunktion] Zusätzlichen Speicher und Sicherung aktivieren"</string> - <string name="voicemail_error_inbox_almost_full_turn_archive_on_message" msgid="7289015622668426730">"Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailbox-Nachrichten verwalten und sichern. "<b><i>"Diese Funktion wird gerade getestet."</i></b>" 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."</string> + <string name="voicemail_error_inbox_almost_full_turn_archive_on_message" msgid="7289015622668426730">"Dein Postfach ist voll. Aktivere zusätzlichen Speicher, um Speicherplatz freizugeben. So kann Google deine Mailboxnachrichten verwalten und sichern. "<b><i>"Diese Funktion wird gerade getestet."</i></b>" 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."</string> <string name="voicemail_error_pin_not_set_title" msgid="1287168514277948082">"Mailbox-PIN festlegen"</string> <string name="voicemail_error_pin_not_set_message" msgid="3802375002103184625">"Bei jedem Anruf auf deiner Mailbox benötigst du eine Mailbox-PIN."</string> <string name="voicemail_error_unknown_title" msgid="7214482611706360680">"Unbekannter Fehler"</string> @@ -105,6 +105,6 @@ <string name="verizon_terms_and_conditions_message" msgid="271780225159084419">"Du muss den Nutzungsbedingungen von Verizon Wireless zustimmen, um die visuelle Mailbox zu verwenden:\n\n%s"</string> <string name="verizon_terms_and_conditions_decline_dialog_message" msgid="7852059293806766767">"Die visuelle Mailbox wird deaktiviert, wenn du die Nutzungsbedingungen ablehnst."</string> <string name="verizon_terms_and_conditions_decline_dialog_downgrade" msgid="8347128304508008823">"Visuelle Mailbox deaktivieren"</string> - <string name="verizon_terms_and_conditions_decline_set_pin_dialog_message" msgid="2200388197966526000">"Du kannst nur auf Mailbox-Nachrichten zugreifen, indem du *86 anrufst. Lege eine neue Mailbox-PIN fest, um fortzufahren."</string> + <string name="verizon_terms_and_conditions_decline_set_pin_dialog_message" msgid="2200388197966526000">"Du kannst nur auf Mailboxnachrichten zugreifen, indem du *86 anrufst. Lege eine neue Mailbox-PIN fest, um fortzufahren."</string> <string name="verizon_terms_and_conditions_decline_set_pin_dialog_set_pin" msgid="4320664492466296770">"PIN festlegen"</string> </resources> |