diff options
Diffstat (limited to 'java/com/android/incallui/video/impl/VideoCallFragment.java')
-rw-r--r-- | java/com/android/incallui/video/impl/VideoCallFragment.java | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/java/com/android/incallui/video/impl/VideoCallFragment.java b/java/com/android/incallui/video/impl/VideoCallFragment.java index 203710e5f..4d172235e 100644 --- a/java/com/android/incallui/video/impl/VideoCallFragment.java +++ b/java/com/android/incallui/video/impl/VideoCallFragment.java @@ -61,7 +61,6 @@ import com.android.dialer.common.Assert; import com.android.dialer.common.FragmentUtils; import com.android.dialer.common.LogUtil; import com.android.dialer.compat.ActivityCompat; -import com.android.dialer.util.PermissionsUtil; import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment; import com.android.incallui.audioroute.AudioRouteSelectorDialogFragment.AudioRouteSelectorPresenter; import com.android.incallui.contactgrid.ContactGridManager; @@ -77,6 +76,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.video.impl.CameraPermissionDialogFragment.CameraPermissionDialogCallback; import com.android.incallui.video.impl.CheckableImageButton.OnCheckedChangeListener; import com.android.incallui.video.protocol.VideoCallScreen; import com.android.incallui.video.protocol.VideoCallScreenDelegate; @@ -94,7 +94,8 @@ public class VideoCallFragment extends Fragment OnClickListener, OnCheckedChangeListener, AudioRouteSelectorPresenter, - OnSystemUiVisibilityChangeListener { + OnSystemUiVisibilityChangeListener, + CameraPermissionDialogCallback { @VisibleForTesting(otherwise = VisibleForTesting.PRIVATE) static final String ARG_CALL_ID = "call_id"; @@ -106,6 +107,8 @@ public class VideoCallFragment extends Fragment private static final float ASPECT_RATIO_MATCH_THRESHOLD = 0.2f; private static final int CAMERA_PERMISSION_REQUEST_CODE = 1; + private static final String CAMERA_PERMISSION_DIALOG_FRAMENT_TAG = + "CameraPermissionDialogFragment"; private static final long CAMERA_PERMISSION_DIALOG_DELAY_IN_MILLIS = 2000L; private static final long VIDEO_OFF_VIEW_FADE_OUT_DELAY_IN_MILLIS = 2000L; @@ -155,7 +158,7 @@ public class VideoCallFragment extends Fragment new Runnable() { @Override public void run() { - if (videoCallScreenDelegate.shouldShowCameraPermissionToast()) { + if (videoCallScreenDelegate.shouldShowCameraPermissionDialog()) { LogUtil.i("VideoCallFragment.cameraPermissionDialogRunnable", "showing dialog"); checkCameraPermission(); } @@ -650,7 +653,7 @@ public class VideoCallFragment extends Fragment @Override public void onCheckedChanged(CheckableImageButton button, boolean isChecked) { if (button == cameraOffButton) { - if (!isChecked && !VideoUtils.hasCameraPermissionAndShownPrivacyToast(getContext())) { + if (!isChecked && !VideoUtils.hasCameraPermissionAndAllowedByUser(getContext())) { LogUtil.i("VideoCallFragment.onCheckedChanged", "show camera permission dialog"); checkCameraPermission(); } else { @@ -1148,12 +1151,12 @@ public class VideoCallFragment extends Fragment return; } - // TODO: When the view is first displayed after a rotation the bitmap is empty + // TODO(mdooley): When the view is first displayed after a rotation the bitmap is empty // and thus this blur has no effect. // This call can take 100 milliseconds. blur(getContext(), bitmap, blurRadius); - // TODO: Figure out why only have to apply the transform in landscape mode + // TODO(mdooley): Figure out why only have to apply the transform in landscape mode if (width > height) { bitmap = Bitmap.createBitmap( @@ -1253,19 +1256,24 @@ public class VideoCallFragment extends Fragment videoCallScreenDelegate.onSystemUiVisibilityChange(navBarVisible); } + @Override + public void onCameraPermissionGranted() { + videoCallScreenDelegate.onCameraPermissionGranted(); + } + private void checkCameraPermission() { // Checks if user has consent of camera permission and the permission is granted. // If camera permission is revoked, shows system permission dialog. // If camera permission is granted but user doesn't have consent of camera permission // (which means it's first time making video call), shows custom dialog instead. This // will only be shown to user once. - if (!VideoUtils.hasCameraPermissionAndShownPrivacyToast(getContext())) { + if (!VideoUtils.hasCameraPermissionAndAllowedByUser(getContext())) { videoCallScreenDelegate.onCameraPermissionDialogShown(); if (!VideoUtils.hasCameraPermission(getContext())) { requestPermissions(new String[] {permission.CAMERA}, CAMERA_PERMISSION_REQUEST_CODE); } else { - PermissionsUtil.showCameraPermissionToast(getContext()); - videoCallScreenDelegate.onCameraPermissionGranted(); + CameraPermissionDialogFragment.newInstance() + .show(getChildFragmentManager(), CAMERA_PERMISSION_DIALOG_FRAMENT_TAG); } } } |