diff options
Diffstat (limited to 'java/com/android/dialer/calldetails/CallDetailsActivityCommon.java')
-rw-r--r-- | java/com/android/dialer/calldetails/CallDetailsActivityCommon.java | 31 |
1 files changed, 30 insertions, 1 deletions
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<CallDetailsActivityCommon> 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<CallDetailsActivityCommon> activityWeakReference; |