diff options
3 files changed, 20 insertions, 14 deletions
diff --git a/java/com/android/incallui/AudioRouteSelectorActivity.java b/java/com/android/incallui/AudioRouteSelectorActivity.java index f0ae79bc2..2fdc89aa8 100644 --- a/java/com/android/incallui/AudioRouteSelectorActivity.java +++ b/java/com/android/incallui/AudioRouteSelectorActivity.java @@ -57,7 +57,9 @@ public class AudioRouteSelectorActivity extends FragmentActivity if (audioRouteSelectorDialogFragment != null) { audioRouteSelectorDialogFragment.dismiss(); } - // We don't expect the activity to resume - finish(); + // We don't expect the activity to resume, except for orientation change. + if (!isChangingConfigurations()) { + finish(); + } } } diff --git a/java/com/android/incallui/ReturnToCallActionReceiver.java b/java/com/android/incallui/ReturnToCallActionReceiver.java index b645c155c..c37b0b816 100644 --- a/java/com/android/incallui/ReturnToCallActionReceiver.java +++ b/java/com/android/incallui/ReturnToCallActionReceiver.java @@ -20,6 +20,7 @@ import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.telecom.CallAudioState; +import com.android.dialer.common.Assert; import com.android.dialer.common.LogUtil; import com.android.dialer.logging.DialerImpression; import com.android.dialer.logging.Logger; @@ -51,6 +52,9 @@ public class ReturnToCallActionReceiver extends BroadcastReceiver { case ACTION_END_CALL: endCall(context); break; + default: + throw Assert.createIllegalStateFailException( + "Invalid intent action: " + intent.getAction()); } } @@ -87,7 +91,9 @@ public class ReturnToCallActionReceiver extends BroadcastReceiver { } public void showAudioRouteSelector(Context context) { - context.startActivity(new Intent(context, AudioRouteSelectorActivity.class)); + Intent intent = new Intent(context, AudioRouteSelectorActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_MULTIPLE_TASK); + context.startActivity(intent); } private void toggleMute(Context context) { diff --git a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java index 860d2d282..9fd3aed5b 100644 --- a/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java +++ b/java/com/android/incallui/audioroute/AudioRouteSelectorDialogFragment.java @@ -27,7 +27,6 @@ import android.support.design.widget.BottomSheetDialogFragment; import android.telecom.CallAudioState; import android.view.LayoutInflater; import android.view.View; -import android.view.View.OnClickListener; import android.view.ViewGroup; import android.view.WindowManager; import android.widget.TextView; @@ -92,12 +91,14 @@ public class AudioRouteSelectorDialogFragment extends BottomSheetDialogFragment (TextView) view.findViewById(R.id.audioroute_earpiece), CallAudioState.ROUTE_EARPIECE, audioState); + + // TODO(b/67013452): set peak height correctly to fully expand it in landscape mode. return view; } @Override - public void onDismiss(DialogInterface dialogInterface) { - super.onDismiss(dialogInterface); + public void onCancel(DialogInterface dialogInterface) { + super.onCancel(dialogInterface); FragmentUtils.getParentUnsafe( AudioRouteSelectorDialogFragment.this, AudioRouteSelectorPresenter.class) .onAudioRouteSelectorDismiss(); @@ -113,14 +114,11 @@ public class AudioRouteSelectorDialogFragment extends BottomSheetDialogFragment item.setCompoundDrawableTintMode(Mode.SRC_ATOP); } item.setOnClickListener( - new OnClickListener() { - @Override - public void onClick(View v) { - dismiss(); - FragmentUtils.getParentUnsafe( - AudioRouteSelectorDialogFragment.this, AudioRouteSelectorPresenter.class) - .onAudioRouteSelected(itemRoute); - } + (v) -> { + dismiss(); + FragmentUtils.getParentUnsafe( + AudioRouteSelectorDialogFragment.this, AudioRouteSelectorPresenter.class) + .onAudioRouteSelected(itemRoute); }); } } |