diff options
Diffstat (limited to 'java/com/android/incallui/answer')
4 files changed, 30 insertions, 5 deletions
diff --git a/java/com/android/incallui/answer/impl/AnswerFragment.java b/java/com/android/incallui/answer/impl/AnswerFragment.java index 18de72e8b..3476557ba 100644 --- a/java/com/android/incallui/answer/impl/AnswerFragment.java +++ b/java/com/android/incallui/answer/impl/AnswerFragment.java @@ -78,6 +78,7 @@ import com.android.incallui.incall.protocol.InCallScreenDelegateFactory; import com.android.incallui.incall.protocol.PrimaryCallState; import com.android.incallui.incall.protocol.PrimaryInfo; import com.android.incallui.incall.protocol.SecondaryInfo; +import com.android.incallui.incalluilock.InCallUiLock; import com.android.incallui.maps.MapsComponent; import com.android.incallui.sessiondata.AvatarPresenter; import com.android.incallui.sessiondata.MultimediaFragment; @@ -977,6 +978,11 @@ public class AnswerFragment extends Fragment } @Override + public InCallUiLock acquireInCallUiLock(String tag) { + return answerScreenDelegate.acquireInCallUiLock(tag); + } + + @Override public void smsSelected(@Nullable CharSequence text) { LogUtil.i("AnswerFragment.smsSelected", null); textResponsesFragment = null; @@ -997,7 +1003,6 @@ public class AnswerFragment extends Fragment public void smsDismissed() { LogUtil.i("AnswerFragment.smsDismissed", null); textResponsesFragment = null; - answerScreenDelegate.onDismissDialog(); } @Override @@ -1014,7 +1019,6 @@ public class AnswerFragment extends Fragment public void customSmsDismissed() { LogUtil.i("AnswerFragment.customSmsDismissed", null); createCustomSmsDialogFragment = null; - answerScreenDelegate.onDismissDialog(); } private boolean canRejectCallWithSms() { diff --git a/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java b/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java index b49409258..73476f242 100644 --- a/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java +++ b/java/com/android/incallui/answer/impl/CreateCustomSmsDialogFragment.java @@ -31,6 +31,7 @@ import android.view.WindowManager.LayoutParams; import android.widget.Button; import android.widget.EditText; import com.android.dialer.common.FragmentUtils; +import com.android.incallui.incalluilock.InCallUiLock; /** * Shows the dialog for users to enter a custom message when rejecting a call with an SMS message. @@ -40,6 +41,7 @@ public class CreateCustomSmsDialogFragment extends AppCompatDialogFragment { private static final String ARG_ENTERED_TEXT = "enteredText"; private EditText editText; + private InCallUiLock inCallUiLock; public static CreateCustomSmsDialogFragment newInstance() { return new CreateCustomSmsDialogFragment(); @@ -55,6 +57,11 @@ public class CreateCustomSmsDialogFragment extends AppCompatDialogFragment { if (savedInstanceState != null) { editText.setText(savedInstanceState.getCharSequence(ARG_ENTERED_TEXT)); } + + inCallUiLock = + FragmentUtils.getParentUnsafe( + CreateCustomSmsDialogFragment.this, CreateCustomSmsHolder.class) + .acquireInCallUiLock("CreateCustomSmsDialogFragment"); builder .setCancelable(true) .setView(view) @@ -124,12 +131,15 @@ public class CreateCustomSmsDialogFragment extends AppCompatDialogFragment { @Override public void onDismiss(DialogInterface dialogInterface) { super.onDismiss(dialogInterface); + inCallUiLock.release(); FragmentUtils.getParentUnsafe(this, CreateCustomSmsHolder.class).customSmsDismissed(); } /** Call back for {@link CreateCustomSmsDialogFragment} */ public interface CreateCustomSmsHolder { + InCallUiLock acquireInCallUiLock(String tag); + void customSmsCreated(@NonNull CharSequence text); void customSmsDismissed(); diff --git a/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java b/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java index 085430ea2..6742e4a36 100644 --- a/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java +++ b/java/com/android/incallui/answer/impl/SmsBottomSheetFragment.java @@ -36,6 +36,7 @@ import android.widget.TextView; import com.android.dialer.common.DpUtil; import com.android.dialer.common.FragmentUtils; import com.android.dialer.common.LogUtil; +import com.android.incallui.incalluilock.InCallUiLock; import java.util.ArrayList; import java.util.List; @@ -44,6 +45,8 @@ public class SmsBottomSheetFragment extends BottomSheetDialogFragment { private static final String ARG_OPTIONS = "options"; + private InCallUiLock inCallUiLock; + public static SmsBottomSheetFragment newInstance(@Nullable ArrayList<CharSequence> options) { SmsBottomSheetFragment fragment = new SmsBottomSheetFragment(); Bundle args = new Bundle(); @@ -80,6 +83,10 @@ public class SmsBottomSheetFragment extends BottomSheetDialogFragment { LogUtil.i("SmsBottomSheetFragment.onCreateDialog", null); Dialog dialog = super.onCreateDialog(savedInstanceState); dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); + + inCallUiLock = + FragmentUtils.getParentUnsafe(SmsBottomSheetFragment.this, SmsSheetHolder.class) + .acquireInCallUiLock("SmsBottomSheetFragment"); return dialog; } @@ -88,7 +95,7 @@ public class SmsBottomSheetFragment extends BottomSheetDialogFragment { Context context = new ContextThemeWrapper(getContext(), getTheme()); TypedArray typedArray = context.obtainStyledAttributes(attrs); Drawable background = typedArray.getDrawable(0); - //noinspection ResourceType + // noinspection ResourceType typedArray.recycle(); TextView textView = new TextView(context); @@ -124,11 +131,14 @@ public class SmsBottomSheetFragment extends BottomSheetDialogFragment { public void onDismiss(DialogInterface dialogInterface) { super.onDismiss(dialogInterface); FragmentUtils.getParentUnsafe(this, SmsSheetHolder.class).smsDismissed(); + inCallUiLock.release(); } /** Callback interface for {@link SmsBottomSheetFragment} */ public interface SmsSheetHolder { + InCallUiLock acquireInCallUiLock(String tag); + void smsSelected(@Nullable CharSequence text); void smsDismissed(); diff --git a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java index 5d2c415ed..5710922e0 100644 --- a/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java +++ b/java/com/android/incallui/answer/protocol/AnswerScreenDelegate.java @@ -17,14 +17,13 @@ package com.android.incallui.answer.protocol; import android.support.annotation.FloatRange; +import com.android.incallui.incalluilock.InCallUiLock; /** Callbacks implemented by the container app for this module. */ public interface AnswerScreenDelegate { void onAnswerScreenUnready(); - void onDismissDialog(); - void onRejectCallWithMessage(String message); void onAnswer(boolean answerVideoAsAudio); @@ -49,4 +48,6 @@ public interface AnswerScreenDelegate { /** Returns true if any answer/reject action timed out. */ boolean isActionTimeout(); + + InCallUiLock acquireInCallUiLock(String tag); } |