diff options
Diffstat (limited to 'java/com/android/incallui/answer')
6 files changed, 19 insertions, 4 deletions
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java index 6be79305d..44310536d 100644 --- a/java/com/android/incallui/answer/impl/AnswerFragment.java +++ b/java/com/android/incallui/answer/impl/AnswerFragment.java @@ -216,6 +216,7 @@ public class AnswerFragment extends Fragment private void performAnswerAndRelease() { restoreAnswerAndReleaseButtonAnimation(); answerScreenDelegate.onAnswerAndReleaseCall(); + buttonAcceptClicked = true; } private void restoreAnswerAndReleaseButtonAnimation() { @@ -359,6 +360,11 @@ public class AnswerFragment extends Fragment } @Override + public boolean isActionTimeout() { + return (buttonAcceptClicked || buttonRejectClicked) && answerScreenDelegate.isActionTimeout(); + } + + @Override @NonNull public String getCallId() { return Assert.isNotNull(getArguments().getString(ARG_CALL_ID)); @@ -526,6 +532,7 @@ public class AnswerFragment extends Fragment if (!isAdded()) { return; } + LogUtil.enterBlock("AnswerFragment.updateDataFragment"); Fragment current = getChildFragmentManager().findFragmentById(R.id.incall_data_container); Fragment newFragment = null; @@ -542,6 +549,7 @@ public class AnswerFragment extends Fragment || !Objects.equals(((MultimediaFragment) current).getSubject(), subject) || !Objects.equals(((MultimediaFragment) current).getImageUri(), imageUri) || !Objects.equals(((MultimediaFragment) current).getLocation(), location)) { + LogUtil.i("AnswerFragment.updateDataFragment", "Replacing multimedia fragment"); // Needs replacement newFragment = MultimediaFragment.newInstance( @@ -553,12 +561,14 @@ public class AnswerFragment extends Fragment } else if (shouldShowAvatar()) { // Needs Avatar if (!(current instanceof AvatarFragment)) { + LogUtil.i("AnswerFragment.updateDataFragment", "Replacing avatar fragment"); // Needs replacement newFragment = new AvatarFragment(); } } else { // Needs empty if (current != null) { + LogUtil.i("AnswerFragment.updateDataFragment", "Removing current fragment"); getChildFragmentManager().beginTransaction().remove(current).commitNow(); } contactGridManager.setAvatarImageView(null, 0, false); @@ -1021,7 +1031,7 @@ public class AnswerFragment extends Fragment } private void updateImportanceBadgeVisibility() { - if (!isAdded()) { + if (!isAdded() || getView() == null) { return; } diff --git a/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java b/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java index 1d3d7ef22..5e83dfc78 100644 --- a/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java +++ b/java/com/android/incallui/answer/impl/classifier/HumanInteractionClassifier.java @@ -20,7 +20,7 @@ import android.content.Context; import android.hardware.SensorEvent; import android.util.DisplayMetrics; import android.view.MotionEvent; -import com.android.dialer.common.ConfigProviderBindings; +import com.android.dialer.configprovider.ConfigProviderBindings; /** An classifier trying to determine whether it is a human interacting with the phone or not. */ class HumanInteractionClassifier extends Classifier { diff --git a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java index 9c33b5de6..94cf893f0 100644 --- a/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java +++ b/java/com/android/incallui/answer/impl/hint/AnswerHintFactory.java @@ -23,8 +23,8 @@ import android.os.Build; import android.support.annotation.NonNull; import android.support.annotation.VisibleForTesting; import com.android.dialer.common.Assert; -import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; +import com.android.dialer.configprovider.ConfigProviderBindings; import com.android.dialer.util.DialerUtils; import com.android.incallui.util.AccessibilityUtil; diff --git a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java index 3b4512c4f..204c4e131 100644 --- a/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java +++ b/java/com/android/incallui/answer/impl/hint/PawSecretCodeListener.java @@ -25,8 +25,8 @@ import android.support.annotation.VisibleForTesting; import android.text.TextUtils; import android.widget.Toast; import com.android.dialer.common.Assert; -import com.android.dialer.common.ConfigProviderBindings; import com.android.dialer.common.LogUtil; +import com.android.dialer.configprovider.ConfigProviderBindings; import com.android.dialer.logging.DialerImpression.Type; import com.android.dialer.logging.Logger; import com.android.dialer.util.DialerUtils; diff --git a/java/com/android/incallui/answer/protocol/AnswerScreen.java b/java/com/android/incallui/answer/protocol/AnswerScreen.java index 8bcad6e35..5ad500200 100644 --- a/java/com/android/incallui/answer/protocol/AnswerScreen.java +++ b/java/com/android/incallui/answer/protocol/AnswerScreen.java @@ -30,6 +30,8 @@ public interface AnswerScreen { boolean allowAnswerAndRelease(); + boolean isActionTimeout(); + void setTextResponses(List<String> textResponses); boolean hasPendingDialogs(); diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java index 10a3413af..5d2c415ed 100644 --- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java +++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java @@ -46,4 +46,7 @@ public interface AnswerScreenDelegate { * @param progress float from -1 to 1. -1 is fully rejected, 1 is fully accepted, and 0 is neutral */ void updateWindowBackgroundColor(@FloatRange(from = -1f, to = 1.0f) float progress); + + /** Returns true if any answer/reject action timed out. */ + boolean isActionTimeout(); } |