diff --git a/PolyPicker/app/src/main/java/nl/changer/polypicker/CwacCameraFragment.java b/PolyPicker/app/src/main/java/nl/changer/polypicker/CwacCameraFragment.java index 560d0da..39be5b9 100644 --- a/PolyPicker/app/src/main/java/nl/changer/polypicker/CwacCameraFragment.java +++ b/PolyPicker/app/src/main/java/nl/changer/polypicker/CwacCameraFragment.java @@ -23,8 +23,6 @@ import android.database.sqlite.SQLiteException; import android.graphics.Bitmap; import android.graphics.PorterDuff; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; import android.hardware.Camera; import android.hardware.Camera.Face; import android.hardware.Camera.Parameters; @@ -46,7 +44,6 @@ import com.commonsware.cwac.camera.SimpleCameraHost; import nl.changer.polypicker.model.Image; -import nl.changer.polypicker.utils.DebugLog; public class CwacCameraFragment extends CameraFragment { diff --git a/PolyPickerDemo/pp3/src/main/java/nl/changer/polypicker/CwacCameraFragment.java b/PolyPickerDemo/pp3/src/main/java/nl/changer/polypicker/CwacCameraFragment.java index 1bda189..19c409c 100644 --- a/PolyPickerDemo/pp3/src/main/java/nl/changer/polypicker/CwacCameraFragment.java +++ b/PolyPickerDemo/pp3/src/main/java/nl/changer/polypicker/CwacCameraFragment.java @@ -22,8 +22,6 @@ import android.database.sqlite.SQLiteException; import android.graphics.Bitmap; import android.graphics.PorterDuff; -import android.graphics.drawable.BitmapDrawable; -import android.graphics.drawable.Drawable; import android.hardware.Camera; import android.hardware.Camera.Face; import android.hardware.Camera.Parameters; @@ -37,15 +35,17 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.CompoundButton; +import android.widget.Switch; import android.widget.Toast; import com.commonsware.cwac.camera.CameraFragment; -import com.commonsware.cwac.camera.CameraUtils; import com.commonsware.cwac.camera.PictureTransaction; import com.commonsware.cwac.camera.SimpleCameraHost; +import java.util.List; + import nl.changer.polypicker.model.Image; -import nl.changer.polypicker.utils.DebugLog; public class CwacCameraFragment extends CameraFragment { @@ -55,7 +55,10 @@ public class CwacCameraFragment extends CameraFragment { private MenuItem autoFocusItem = null; private MenuItem recordItem = null; - String flashMode = null; + String flashMode = Parameters.FLASH_MODE_OFF; + + Switch flashSwitch; + List supportedFlashModes = null; private View mTakePictureBtn; @@ -88,6 +91,25 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa mTakePictureBtn = view.findViewById(R.id.take_picture); mTakePictureBtn.setOnClickListener(mOnTakePictureClicked); + flashSwitch = (Switch) view.findViewById( R.id.flash_switch ); + flashSwitch.setChecked(false); + flashSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { + if (isChecked) { + if( supportedFlashModes != null ) { + if (supportedFlashModes.contains(Parameters.FLASH_MODE_TORCH)) { + flashMode = Parameters.FLASH_MODE_TORCH; + } else if (supportedFlashModes.contains(Parameters.FLASH_MODE_ON)) { + flashMode = Parameters.FLASH_MODE_ON; + } + } + } else { + flashMode = Parameters.FLASH_MODE_OFF; + } + } + }); + if (mConfig != null) { mTakePictureBtn.getBackground().setColorFilter(getResources().getColor(mConfig.getCameraButtonColor()), PorterDuff.Mode.DARKEN); } // else default will be used. @@ -243,10 +265,18 @@ public void onCameraFail(FailureReason reason) { @Override public Parameters adjustPreviewParameters(Parameters parameters) { - flashMode = CameraUtils.findBestFlashModeMatch(parameters, - Parameters.FLASH_MODE_RED_EYE, - Parameters.FLASH_MODE_AUTO, - Parameters.FLASH_MODE_ON); +// flashMode = CameraUtils.findBestFlashModeMatch(parameters, +// Parameters.FLASH_MODE_RED_EYE, +// Parameters.FLASH_MODE_AUTO, +// Parameters.FLASH_MODE_ON); + + supportedFlashModes = parameters.getSupportedFlashModes(); + + if( supportedFlashModes != null ) { + flashSwitch.setVisibility( View.VISIBLE ); + } else { + Log.d( TAG, "No Camera flash modes" ); + } if (parameters.getMaxNumDetectedFaces() > 0) { supportsFaces = true; diff --git a/PolyPickerDemo/pp3/src/main/res/layout-v21/fragment_camera_cwac.xml b/PolyPickerDemo/pp3/src/main/res/layout-v21/fragment_camera_cwac.xml index 25c007b..b5b3722 100644 --- a/PolyPickerDemo/pp3/src/main/res/layout-v21/fragment_camera_cwac.xml +++ b/PolyPickerDemo/pp3/src/main/res/layout-v21/fragment_camera_cwac.xml @@ -8,7 +8,18 @@ + android:layout_height="match_parent" > + + + + android:layout_height="match_parent" > + + + 30dp 9dp + 16dp + 16dp + diff --git a/PolyPickerDemo/pp3/src/main/res/values/strings.xml b/PolyPickerDemo/pp3/src/main/res/values/strings.xml index b1cfa2a..b69e153 100644 --- a/PolyPickerDemo/pp3/src/main/res/values/strings.xml +++ b/PolyPickerDemo/pp3/src/main/res/values/strings.xml @@ -12,4 +12,7 @@ Take photo using device camera %1$s images selected already + Flash + +