From e00bbaeceb399da24f06c8f1a626cbbf07eab4ad Mon Sep 17 00:00:00 2001 From: wangqi Date: Tue, 17 Apr 2018 14:48:03 -0700 Subject: Add RTT transcript screen. Bug: 67596257 Test: CallDetailsCursorLoaderTest PiperOrigin-RevId: 193259769 Change-Id: I8c6a8eb9a6bf06e9c1c25c45fc035f8db8ae5a65 --- .../calldetails/CallDetailsActivityCommon.java | 31 +++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'java/com/android/dialer/calldetails/CallDetailsActivityCommon.java') diff --git a/java/com/android/dialer/calldetails/CallDetailsActivityCommon.java b/java/com/android/dialer/calldetails/CallDetailsActivityCommon.java index 15a010eba..dec1230bd 100644 --- a/java/com/android/dialer/calldetails/CallDetailsActivityCommon.java +++ b/java/com/android/dialer/calldetails/CallDetailsActivityCommon.java @@ -55,12 +55,14 @@ import com.android.dialer.duo.DuoComponent; import com.android.dialer.enrichedcall.EnrichedCallComponent; import com.android.dialer.enrichedcall.EnrichedCallManager; import com.android.dialer.enrichedcall.historyquery.proto.HistoryResult; +import com.android.dialer.glidephotomanager.PhotoInfo; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; import com.android.dialer.logging.UiAction; import com.android.dialer.performancereport.PerformanceReport; import com.android.dialer.postcall.PostCall; import com.android.dialer.precall.PreCall; +import com.android.dialer.rtt.RttTranscriptActivity; import com.android.dialer.rtt.RttTranscriptUtil; import com.google.common.base.Preconditions; import com.google.common.util.concurrent.ListenableFuture; @@ -84,6 +86,8 @@ abstract class CallDetailsActivityCommon extends AppCompatActivity { public static final String EXTRA_CAN_REPORT_CALLER_ID = "can_report_caller_id"; public static final String EXTRA_CAN_SUPPORT_ASSISTED_DIALING = "can_support_assisted_dialing"; + private final CallDetailsEntryViewHolder.CallDetailsEntryListener callDetailsEntryListener = + new CallDetailsEntryListener(this); private final CallDetailsHeaderViewHolder.CallDetailsHeaderListener callDetailsHeaderListener = new CallDetailsHeaderListener(this); private final CallDetailsFooterViewHolder.DeleteCallDetailsListener deleteCallDetailsListener = @@ -106,6 +110,7 @@ abstract class CallDetailsActivityCommon extends AppCompatActivity { /** Creates an adapter for {@link OldCallDetailsActivity} or {@link CallDetailsActivity}. */ protected abstract CallDetailsAdapterCommon createAdapter( + CallDetailsEntryViewHolder.CallDetailsEntryListener callDetailsEntryListener, CallDetailsHeaderViewHolder.CallDetailsHeaderListener callDetailsHeaderListener, CallDetailsFooterViewHolder.ReportCallIdListener reportCallIdListener, CallDetailsFooterViewHolder.DeleteCallDetailsListener deleteCallDetailsListener); @@ -212,7 +217,11 @@ abstract class CallDetailsActivityCommon extends AppCompatActivity { private void setupRecyclerViewForEntries() { adapter = - createAdapter(callDetailsHeaderListener, reportCallIdListener, deleteCallDetailsListener); + createAdapter( + callDetailsEntryListener, + callDetailsHeaderListener, + reportCallIdListener, + deleteCallDetailsListener); RecyclerView recyclerView = findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(this)); @@ -288,6 +297,26 @@ abstract class CallDetailsActivityCommon extends AppCompatActivity { } } + private static final class CallDetailsEntryListener + implements CallDetailsEntryViewHolder.CallDetailsEntryListener { + private final WeakReference activityWeakReference; + + CallDetailsEntryListener(CallDetailsActivityCommon activity) { + this.activityWeakReference = new WeakReference<>(activity); + } + + @Override + public void showRttTranscript(String transcriptId, String primaryText, PhotoInfo photoInfo) { + getActivity() + .startActivity( + RttTranscriptActivity.getIntent(getActivity(), transcriptId, primaryText, photoInfo)); + } + + private CallDetailsActivityCommon getActivity() { + return Preconditions.checkNotNull(activityWeakReference.get()); + } + } + private static final class CallDetailsHeaderListener implements CallDetailsHeaderViewHolder.CallDetailsHeaderListener { private final WeakReference activityWeakReference; -- cgit v1.2.3