diff options
author | Yorke Lee <yorkelee@google.com> | 2014-08-06 20:43:20 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2014-08-05 00:19:02 +0000 |
commit | 60df037df56f025e05a8918e13c27479226667ea (patch) | |
tree | 01a9b91d5f6fdf0fb99b80b7cc42ef255c2f0ffe /src | |
parent | 2fec47bc040148b4de1d5c32391cb0cd1a36f413 (diff) | |
parent | 257b6f27744dc528da719beb1a6d29cd9f72ea31 (diff) |
Merge "Allow voicemail playback view to scroll" into lmp-dev
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/dialer/CallDetailActivity.java | 52 |
1 files changed, 29 insertions, 23 deletions
diff --git a/src/com/android/dialer/CallDetailActivity.java b/src/com/android/dialer/CallDetailActivity.java index e716719f4..5ef75dbea 100644 --- a/src/com/android/dialer/CallDetailActivity.java +++ b/src/com/android/dialer/CallDetailActivity.java @@ -43,6 +43,7 @@ import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; +import android.widget.LinearLayout; import android.widget.ListView; import android.widget.QuickContactBadge; import android.widget.TextView; @@ -135,6 +136,9 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe private TextView mStatusMessageText; private TextView mStatusMessageAction; private TextView mVoicemailTranscription; + private LinearLayout mVoicemailHeader; + + private Uri mVoicemailUri; /** Whether we should show "edit number before call" in the options menu. */ private boolean mHasEditNumberBeforeCallOption; @@ -239,10 +243,9 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe mPhoneNumberHelper = new PhoneNumberDisplayHelper(mResources); mVoicemailStatusHelper = new VoicemailStatusHelperImpl(); mAsyncQueryHandler = new CallDetailActivityQueryHandler(this); - mStatusMessageView = findViewById(R.id.voicemail_status); - mStatusMessageText = (TextView) findViewById(R.id.voicemail_status_message); - mStatusMessageAction = (TextView) findViewById(R.id.voicemail_status_action); - mVoicemailTranscription = (TextView) findViewById(R.id.voicemail_transcription); + + mVoicemailUri = getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI); + mQuickContactBadge = (QuickContactBadge) findViewById(R.id.quick_contact_photo); mQuickContactBadge.setOverlay(null); mCallerName = (TextView) findViewById(R.id.caller_name); @@ -253,6 +256,7 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe mProximitySensorManager = new ProximitySensorManager(this, mProximitySensorListener); mContactInfoHelper = new ContactInfoHelper(this, GeoUtil.getCurrentCountryIso(this)); getActionBar().setDisplayHomeAsUpEnabled(true); + optionallyHandleVoicemail(); if (getIntent().getBooleanExtra(EXTRA_FROM_NOTIFICATION, false)) { closeSystemDialogs(); @@ -269,11 +273,25 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe * Handle voicemail playback or hide voicemail ui. * <p> * If the Intent used to start this Activity contains the suitable extras, then start voicemail - * playback. If it doesn't, then hide the voicemail ui. + * playback. If it doesn't, then don't inflate the voicemail ui. */ private void optionallyHandleVoicemail() { - View voicemailContainer = findViewById(R.id.voicemail_container); + if (hasVoicemail()) { + LayoutInflater inflater = + (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); + mVoicemailHeader = + (LinearLayout) inflater.inflate(R.layout.call_details_voicemail_header, null); + View voicemailContainer = mVoicemailHeader.findViewById(R.id.voicemail_container); + mStatusMessageView = mVoicemailHeader.findViewById(R.id.voicemail_status); + mStatusMessageText = + (TextView) mVoicemailHeader.findViewById(R.id.voicemail_status_message); + mStatusMessageAction = + (TextView) mVoicemailHeader.findViewById(R.id.voicemail_status_action); + mVoicemailTranscription = ( + TextView) mVoicemailHeader.findViewById(R.id.voicemail_transcription); + ListView historyList = (ListView) findViewById(R.id.history); + historyList.addHeaderView(mVoicemailHeader); // Has voicemail: add the voicemail fragment. Add suitable arguments to set the uri // to play and optionally start the playback. // Do a query to fetch the voicemail status messages. @@ -285,7 +303,7 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe if (playbackFragment == null) { playbackFragment = new VoicemailPlaybackFragment(); Bundle fragmentArguments = new Bundle(); - fragmentArguments.putParcelable(EXTRA_VOICEMAIL_URI, getVoicemailUri()); + fragmentArguments.putParcelable(EXTRA_VOICEMAIL_URI, mVoicemailUri); if (getIntent().getBooleanExtra(EXTRA_VOICEMAIL_START_PLAYBACK, false)) { fragmentArguments.putBoolean(EXTRA_VOICEMAIL_START_PLAYBACK, true); } @@ -296,21 +314,13 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe } voicemailContainer.setVisibility(View.VISIBLE); - mAsyncQueryHandler.startVoicemailStatusQuery(getVoicemailUri()); - markVoicemailAsRead(getVoicemailUri()); - } else { - // No voicemail uri: hide the status view. - mStatusMessageView.setVisibility(View.GONE); - voicemailContainer.setVisibility(View.GONE); + mAsyncQueryHandler.startVoicemailStatusQuery(mVoicemailUri); + markVoicemailAsRead(mVoicemailUri); } } private boolean hasVoicemail() { - return getVoicemailUri() != null; - } - - private Uri getVoicemailUri() { - return getIntent().getParcelableExtra(EXTRA_VOICEMAIL_URI); + return mVoicemailUri != null; } private void markVoicemailAsRead(final Uri voicemailUri) { @@ -480,9 +490,6 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe if (hasVoicemail() && !TextUtils.isEmpty(firstDetails.transcription)) { mVoicemailTranscription.setText(firstDetails.transcription); mVoicemailTranscription.setVisibility(View.VISIBLE); - } else { - mVoicemailTranscription.setText(null); - mVoicemailTranscription.setVisibility(View.GONE); } loadContactPhotos( @@ -720,12 +727,11 @@ public class CallDetailActivity extends AnalyticsActivity implements ProximitySe } public void onMenuTrashVoicemail(MenuItem menuItem) { - final Uri voicemailUri = getVoicemailUri(); mAsyncTaskExecutor.submit(Tasks.DELETE_VOICEMAIL_AND_FINISH, new AsyncTask<Void, Void, Void>() { @Override public Void doInBackground(Void... params) { - getContentResolver().delete(voicemailUri, null, null); + getContentResolver().delete(mVoicemailUri, null, null); return null; } |