From b6e61204b97bbcb6124d8ba748a2f46583fe05d2 Mon Sep 17 00:00:00 2001 From: Karthikeyan S Date: Fri, 5 Jun 2015 18:13:56 +0530 Subject: [PATCH 1/3] Flash On and Off support with button --- .../polypicker/CwacCameraFragment.java | 3 - .../polypicker/CwacCameraFragment.java | 74 ++++++++++++++++--- .../res/layout-v21/fragment_camera_cwac.xml | 21 +++++- .../main/res/layout/fragment_camera_cwac.xml | 20 ++++- .../pp3/src/main/res/values/strings.xml | 5 ++ 5 files changed, 109 insertions(+), 14 deletions(-) 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..b0742d7 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,16 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; +import android.widget.Button; 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 +54,10 @@ public class CwacCameraFragment extends CameraFragment { private MenuItem autoFocusItem = null; private MenuItem recordItem = null; - String flashMode = null; + String flashMode = Parameters.FLASH_MODE_OFF; + + Button flashStateOnButton, flashStateOffButton = null; + List supportedFlashModes = null; private View mTakePictureBtn; @@ -88,6 +90,52 @@ public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sa mTakePictureBtn = view.findViewById(R.id.take_picture); mTakePictureBtn.setOnClickListener(mOnTakePictureClicked); + flashStateOnButton = (Button) view.findViewById( R.id.flash_state_on ); + flashStateOffButton = (Button) view.findViewById( R.id.flash_state_off ); + + flashStateOffButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + flashStateOffButton.setVisibility(View.GONE); + flashStateOnButton.setVisibility(View.VISIBLE); + + 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; + } + + } + }); + + flashStateOnButton.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + flashStateOnButton.setVisibility(View.GONE); + flashStateOffButton.setVisibility(View.VISIBLE); + flashMode = Parameters.FLASH_MODE_OFF; + + } + }); + +// flashStateButton.setText( "OFF" ); + +// flashStateButton.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View view) { +// switch( flashStateButton.getText().toString() ) { +// case "OFF": +// flashStateButton.setText( "ON" ); +// flashMode = Parameters.FLASH_MODE_TORCH; +// break; +// case "ON": +// flashStateButton.setText( "OFF" ); +// flashMode = Parameters.FLASH_MODE_OFF; +// break; +// } +// } +// }); + if (mConfig != null) { mTakePictureBtn.getBackground().setColorFilter(getResources().getColor(mConfig.getCameraButtonColor()), PorterDuff.Mode.DARKEN); } // else default will be used. @@ -243,10 +291,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 ) { + flashStateOffButton.setVisibility( View.VISIBLE ); + } else { + Log.d( "Camera flash modes", "NONE" ); + } 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..deda0d9 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,26 @@ + android:layout_height="match_parent" > + + + + +