summaryrefslogtreecommitdiffstats
path: root/java/com/android/incallui/video/impl/VideoCallFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/incallui/video/impl/VideoCallFragment.java')
-rw-r--r--java/com/android/incallui/video/impl/VideoCallFragment.java26
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);
}
}
}