diff --git a/src/org/thoughtcrime/securesms/components/camera/CameraView.java b/src/org/thoughtcrime/securesms/components/camera/CameraView.java index 1ba57636b1..95ed524e14 100644 --- a/src/org/thoughtcrime/securesms/components/camera/CameraView.java +++ b/src/org/thoughtcrime/securesms/components/camera/CameraView.java @@ -40,6 +40,7 @@ import java.util.List; import org.thoughtcrime.securesms.ApplicationContext; import org.thoughtcrime.securesms.util.BitmapUtil; +import org.thoughtcrime.securesms.util.TextSecurePreferences; import org.thoughtcrime.securesms.util.Util; import org.whispersystems.jobqueue.Job; import org.whispersystems.jobqueue.JobParameters; @@ -72,7 +73,7 @@ public class CameraView extends FrameLayout { super(context, attrs, defStyle); setBackgroundColor(Color.BLACK); - if (isMultiCamera()) cameraId = CameraInfo.CAMERA_FACING_FRONT; + if (isMultiCamera()) cameraId = TextSecurePreferences.getDirectCaptureCameraId(context); surface = new CameraSurfaceView(getContext()); onOrientationChange = new OnOrientationChange(context.getApplicationContext()); @@ -238,6 +239,7 @@ public class CameraView extends FrameLayout { : CameraInfo.CAMERA_FACING_BACK; onPause(); onResume(); + TextSecurePreferences.setDirectCaptureCameraId(getContext(), cameraId); } } diff --git a/src/org/thoughtcrime/securesms/components/camera/QuickAttachmentDrawer.java b/src/org/thoughtcrime/securesms/components/camera/QuickAttachmentDrawer.java index d20dbf65b4..e790aa9c05 100644 --- a/src/org/thoughtcrime/securesms/components/camera/QuickAttachmentDrawer.java +++ b/src/org/thoughtcrime/securesms/components/camera/QuickAttachmentDrawer.java @@ -125,6 +125,8 @@ public class QuickAttachmentDrawer extends ViewGroup implements InputView { fullScreenButton = (ImageButton) controls.findViewById(R.id.fullscreen_button); if (cameraView.isMultiCamera()) { swapCameraButton.setVisibility(View.VISIBLE); + swapCameraButton.setImageResource(cameraView.isRearCamera() ? R.drawable.quick_camera_front + : R.drawable.quick_camera_rear); swapCameraButton.setOnClickListener(new CameraFlipClickListener()); } shutterButton.setOnClickListener(new ShutterClickListener()); diff --git a/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java index fe51e8fa45..932e6570ff 100644 --- a/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java +++ b/src/org/thoughtcrime/securesms/util/TextSecurePreferences.java @@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.util; import android.content.Context; import android.content.SharedPreferences; +import android.hardware.Camera.CameraInfo; import android.os.Build; import android.preference.PreferenceManager; import android.provider.Settings; @@ -92,6 +93,16 @@ public class TextSecurePreferences { public static final String SYSTEM_EMOJI_PREF = "pref_system_emoji"; private static final String MULTI_DEVICE_PROVISIONED_PREF = "pref_multi_device"; + public static final String DIRECT_CAPTURE_CAMERA_ID = "pref_direct_capture_camera_id"; + + public static void setDirectCaptureCameraId(Context context, int value) { + setIntegerPrefrence(context, DIRECT_CAPTURE_CAMERA_ID, value); + } + + @SuppressWarnings("deprecation") + public static int getDirectCaptureCameraId(Context context) { + return getIntegerPreference(context, DIRECT_CAPTURE_CAMERA_ID, CameraInfo.CAMERA_FACING_FRONT); + } public static void setMultiDevice(Context context, boolean value) { setBooleanPreference(context, MULTI_DEVICE_PROVISIONED_PREF, value);