Remove "Remove from call log" from menu for voicemails.
- When looking at a voicemail we shouldn't remove from call log, because
we can just hit the trash button.
Bug: 5054103
Change-Id: I97c5870f12a7d495d2c49bb94f0795a1b3e12f9e
diff --git a/src/com/android/contacts/CallDetailActivity.java b/src/com/android/contacts/CallDetailActivity.java
index 14fec85..324ab20 100644
--- a/src/com/android/contacts/CallDetailActivity.java
+++ b/src/com/android/contacts/CallDetailActivity.java
@@ -169,7 +169,6 @@
});
}
-
@Override
public void onResume() {
super.onResume();
@@ -184,24 +183,31 @@
* playback. If it doesn't, then hide the voicemail ui.
*/
private void optionallyHandleVoicemail() {
- Uri voicemailUri = getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI);
- FragmentManager manager = getFragmentManager();
- VoicemailPlaybackFragment fragment = (VoicemailPlaybackFragment) manager.findFragmentById(
- R.id.voicemail_playback_fragment);
- if (voicemailUri != null) {
- // Has voicemail uri: leave the fragment visible. Optionally start the playback.
+ if (hasVoicemail()) {
+ // Has voicemail: leave the fragment visible. Optionally start the playback.
// Do a query to fetch the voicemail status messages.
boolean startPlayback = getIntent().getBooleanExtra(
EXTRA_VOICEMAIL_START_PLAYBACK, false);
- fragment.setVoicemailUri(voicemailUri, startPlayback);
+ Uri voicemailUri = getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI);
+ getVoicemailPlaybackFragment().setVoicemailUri(voicemailUri, startPlayback);
mAsyncQueryHandler.startVoicemailStatusQuery(voicemailUri);
} else {
// No voicemail uri: hide the voicemail fragment and the status view.
- manager.beginTransaction().hide(fragment).commit();
+ getFragmentManager().beginTransaction().hide(getVoicemailPlaybackFragment()).commit();
mStatusMessageView.setVisibility(View.GONE);
}
}
+ private boolean hasVoicemail() {
+ return getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI) != null;
+ }
+
+ private VoicemailPlaybackFragment getVoicemailPlaybackFragment() {
+ FragmentManager manager = getFragmentManager();
+ return (VoicemailPlaybackFragment) manager.findFragmentById(
+ R.id.voicemail_playback_fragment);
+ }
+
/**
* Returns the list of URIs to show.
* <p>
@@ -349,24 +355,27 @@
}
// This action deletes all elements in the group from the call log.
- actions.add(new ViewEntry(android.R.drawable.ic_menu_close_clear_cancel,
- getString(R.string.recentCalls_removeFromRecentList),
- new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- StringBuilder callIds = new StringBuilder();
- for (Uri callUri : callUris) {
- if (callIds.length() != 0) {
- callIds.append(",");
+ // We don't have this action for voicemails, because you can just use the trash button.
+ if (!hasVoicemail()) {
+ actions.add(new ViewEntry(android.R.drawable.ic_menu_close_clear_cancel,
+ getString(R.string.recentCalls_removeFromRecentList),
+ new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ StringBuilder callIds = new StringBuilder();
+ for (Uri callUri : callUris) {
+ if (callIds.length() != 0) {
+ callIds.append(",");
+ }
+ callIds.append(ContentUris.parseId(callUri));
}
- callIds.append(ContentUris.parseId(callUri));
- }
- getContentResolver().delete(Calls.CONTENT_URI_WITH_VOICEMAIL,
- Calls._ID + " IN (" + callIds + ")", null);
- finish();
- }
- }));
+ getContentResolver().delete(Calls.CONTENT_URI_WITH_VOICEMAIL,
+ Calls._ID + " IN (" + callIds + ")", null);
+ finish();
+ }
+ }));
+ }
if (canPlaceCallsTo && !isSipNumber && !isVoicemailNumber) {
// "Edit the number before calling" is only available for PSTN numbers.