diff options
Diffstat (limited to 'src/com/android/dialer/calllog/CallDetailHistoryAdapter.java')
-rw-r--r-- | src/com/android/dialer/calllog/CallDetailHistoryAdapter.java | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java index e1bd15794..114cf0f1c 100644 --- a/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java +++ b/src/com/android/dialer/calllog/CallDetailHistoryAdapter.java @@ -24,6 +24,7 @@ import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; +import android.widget.Button; import android.widget.TextView; import com.android.contacts.common.CallUtil; @@ -32,7 +33,13 @@ import com.android.dialer.R; import com.android.dialer.util.DialerUtils; import com.google.common.collect.Lists; +import com.android.dialer.util.CallRecordingPlayer; +import com.android.services.callrecorder.common.CallRecording; +import com.android.services.callrecorder.CallRecorderService; +import com.android.services.callrecorder.CallRecordingDataStore; + import java.util.ArrayList; +import java.util.List; /** * Adapter for a ListView containing history items from the details of a call. @@ -53,12 +60,19 @@ public class CallDetailHistoryAdapter extends BaseAdapter { */ private ArrayList<CharSequence> mDurationItems = Lists.newArrayList(); + private CallRecordingDataStore mCallRecordingDataStore; + private CallRecordingPlayer mCallRecordingPlayer; + public CallDetailHistoryAdapter(Context context, LayoutInflater layoutInflater, - CallTypeHelper callTypeHelper, PhoneCallDetails[] phoneCallDetails) { + CallTypeHelper callTypeHelper, PhoneCallDetails[] phoneCallDetails, + CallRecordingDataStore callRecordingDataStore, + CallRecordingPlayer callRecordingPlayer) { mContext = context; mLayoutInflater = layoutInflater; mCallTypeHelper = callTypeHelper; mPhoneCallDetails = phoneCallDetails; + mCallRecordingDataStore = callRecordingDataStore; + mCallRecordingPlayer = callRecordingPlayer; } @Override @@ -144,6 +158,22 @@ public class CallDetailHistoryAdapter extends BaseAdapter { formatDurationAndDataUsage(details.duration, details.dataUsage, details.durationType)); } + // do this synchronously to prevent recordings from "popping in" + // after detail item is displayed + if (CallRecorderService.isEnabled(mContext)) { + mCallRecordingDataStore.open(mContext); // opens unless already open + List<CallRecording> recordings = + mCallRecordingDataStore.getRecordings(details.number.toString(), details.date); + + ViewGroup playbackView = + (ViewGroup) result.findViewById(R.id.recording_playback_layout); + playbackView.removeAllViews(); + for (CallRecording recording : recordings) { + Button button = mCallRecordingPlayer.createPlaybackButton(mContext, recording); + playbackView.addView(button); + } + } + return result; } |