summaryrefslogtreecommitdiffstats
path: root/java/com/android/dialer/callcomposer/CameraComposerFragment.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/com/android/dialer/callcomposer/CameraComposerFragment.java')
-rw-r--r--java/com/android/dialer/callcomposer/CameraComposerFragment.java17
1 files changed, 13 insertions, 4 deletions
diff --git a/java/com/android/dialer/callcomposer/CameraComposerFragment.java b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
index 7ec6611d9..d55f3222c 100644
--- a/java/com/android/dialer/callcomposer/CameraComposerFragment.java
+++ b/java/com/android/dialer/callcomposer/CameraComposerFragment.java
@@ -18,11 +18,13 @@ package com.android.dialer.callcomposer;
import android.Manifest;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.graphics.drawable.Animatable;
import android.hardware.Camera.CameraInfo;
import android.net.Uri;
import android.os.Bundle;
+import android.preference.PreferenceManager;
import android.provider.Settings;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
@@ -55,6 +57,7 @@ import com.android.dialer.util.PermissionsUtil;
public class CameraComposerFragment extends CallComposerFragment
implements CameraManagerListener, OnClickListener, CameraManager.MediaCallback {
+ private static final String CAMERA_PRIVACY_PREF = "camera_privacy_permission";
private static final String CAMERA_DIRECTION_KEY = "camera_direction";
private static final String CAMERA_URI_KEY = "camera_key";
@@ -131,8 +134,11 @@ public class CameraComposerFragment extends CallComposerFragment
}
private void setupCamera() {
- if (!PermissionsUtil.hasCameraPrivacyToastShown(getContext())) {
- PermissionsUtil.showCameraPermissionToast(getContext());
+ SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getContext());
+ if (!preferences.getBoolean(CAMERA_PRIVACY_PREF, false)) {
+ Toast.makeText(getContext(), getString(R.string.camera_privacy_text), Toast.LENGTH_LONG)
+ .show();
+ preferences.edit().putBoolean(CAMERA_PRIVACY_PREF, true).apply();
}
CameraManager.get().setListener(this);
preview.setShown();
@@ -326,7 +332,11 @@ public class CameraComposerFragment extends CallComposerFragment
/** Updates the state of the buttons and overlays based on the current state of the view */
private void updateViewState() {
Assert.isNotNull(cameraView);
- Assert.isNotNull(getContext());
+ if (isDetached() || getContext() == null) {
+ LogUtil.i(
+ "CameraComposerFragment.updateViewState", "Fragment detached, cannot update view state");
+ return;
+ }
boolean isCameraAvailable = CameraManager.get().isCameraAvailable();
boolean uriReadyOrProcessing = cameraUri != null || processingUri;
@@ -393,7 +403,6 @@ public class CameraComposerFragment extends CallComposerFragment
Logger.get(getContext()).logImpression(DialerImpression.Type.CAMERA_PERMISSION_GRANTED);
LogUtil.i("CameraComposerFragment.onRequestPermissionsResult", "Permission granted.");
permissionView.setVisibility(View.GONE);
- PermissionsUtil.setCameraPrivacyToastShown(getContext());
setupCamera();
} else if (requestCode == CAMERA_PERMISSION) {
Logger.get(getContext()).logImpression(DialerImpression.Type.CAMERA_PERMISSION_DENIED);