diff options
Diffstat (limited to 'src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java')
-rw-r--r-- | src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java b/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java index d86f804e..673cf260 100644 --- a/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java +++ b/src/com/android/car/dialer/ui/activecall/OnHoldCallUserProfileFragment.java @@ -17,10 +17,12 @@ package com.android.car.dialer.ui.activecall; import android.os.Bundle; +import android.os.SystemClock; import android.telecom.Call; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; +import android.widget.Chronometer; import android.widget.ImageView; import android.widget.TextView; @@ -47,9 +49,9 @@ public class OnHoldCallUserProfileFragment extends Fragment { private ImageView mAvatarView; private View mSwapCallsView; private LiveData<Call> mPrimaryCallLiveData; - private LiveData<Call> mSecondaryCallLiveData; private CompletableFuture<Void> mPhoneNumberInfoFuture; private LetterTileDrawable mDefaultAvatar; + private Chronometer mTimeTextView; @Override public void onCreate(Bundle savedInstanceState) { @@ -74,23 +76,43 @@ public class OnHoldCallUserProfileFragment extends Fragment { InCallViewModel.class); inCallViewModel.getSecondaryCallDetail().observe(this, this::updateProfile); mPrimaryCallLiveData = inCallViewModel.getPrimaryCall(); - mSecondaryCallLiveData = inCallViewModel.getSecondaryCall(); + + mTimeTextView = fragmentView.findViewById(R.id.time); + inCallViewModel.getSecondaryCallConnectTime().observe(this, this::updateConnectTime); return fragmentView; } + /** Presents the onhold call duration. */ + protected void updateConnectTime(Long connectTime) { + if (connectTime == null) { + mTimeTextView.stop(); + mTimeTextView.setText(""); + return; + } + mTimeTextView.setBase(connectTime + - System.currentTimeMillis() + SystemClock.elapsedRealtime()); + mTimeTextView.start(); + } + private void updateProfile(@Nullable CallDetail callDetail) { if (callDetail == null) { return; } + mAvatarView.setImageDrawable(mDefaultAvatar); + if (mPhoneNumberInfoFuture != null) { mPhoneNumberInfoFuture.cancel(true); } + if (callDetail.isConference()) { + mTitle.setText(getString(R.string.ongoing_conf_title)); + return; + } + String number = callDetail.getNumber(); mTitle.setText(TelecomUtils.getFormattedNumber(getContext(), number)); - mAvatarView.setImageDrawable(mDefaultAvatar); mPhoneNumberInfoFuture = TelecomUtils.getPhoneNumberInfo(getContext(), number) .thenAcceptAsync((info) -> { |