diff --git a/app/src/main/java/com/simplemobiletools/flashlight/MyCameraImpl.java b/app/src/main/java/com/simplemobiletools/flashlight/MyCameraImpl.java index 83ce7a0..cd18f64 100644 --- a/app/src/main/java/com/simplemobiletools/flashlight/MyCameraImpl.java +++ b/app/src/main/java/com/simplemobiletools/flashlight/MyCameraImpl.java @@ -9,6 +9,7 @@ import com.squareup.otto.Bus; public class MyCameraImpl { private static final String TAG = MyCameraImpl.class.getSimpleName(); + private static Camera mCamera; private static Camera.Parameters mParams; private static Bus mBus; @@ -20,10 +21,12 @@ public class MyCameraImpl { private static boolean mIsFlashlightOn; private static boolean mIsMarshmallow; private static boolean mShouldEnableFlashlight; + private static int mStroboFrequency; public MyCameraImpl(Context cxt) { mContext = cxt; mIsMarshmallow = isMarshmallow(); + mStroboFrequency = 1000; if (mBus == null) { mBus = BusProvider.getInstance(); @@ -39,6 +42,10 @@ public class MyCameraImpl { handleCameraSetup(); } + public void setStroboFrequency(int frequency) { + mStroboFrequency = frequency; + } + public boolean toggleStroboscope() { if (!mIsStroboscopeRunning) disableFlashlight(); @@ -202,9 +209,9 @@ public class MyCameraImpl { while (!mShouldStroboscopeStop) { try { mCamera.setParameters(torchOn); - Thread.sleep(500); + Thread.sleep(mStroboFrequency); mCamera.setParameters(torchOff); - Thread.sleep(500); + Thread.sleep(mStroboFrequency); } catch (InterruptedException ignored) { mShouldStroboscopeStop = true; } catch (RuntimeException ignored) { diff --git a/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java b/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java index ef1b42b..dce47c8 100644 --- a/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java +++ b/app/src/main/java/com/simplemobiletools/flashlight/activities/MainActivity.java @@ -29,6 +29,8 @@ import butterknife.OnClick; public class MainActivity extends SimpleActivity { private static final int CAMERA_PERMISSION = 1; + private static final int MAX_STROBO_DELAY = 2000; + private static final int MIN_STROBO_DELAY = 30; @BindView(R.id.toggle_btn) ImageView mToggleBtn; @BindView(R.id.bright_display_btn) ImageView mBrightDisplayBtn; @@ -47,6 +49,27 @@ public class MainActivity extends SimpleActivity { mBus = BusProvider.getInstance(); changeIconColor(R.color.translucent_white, mBrightDisplayBtn); changeIconColor(R.color.translucent_white, mStroboscopeBtn); + mStroboscopeBar.setMax(MAX_STROBO_DELAY - MIN_STROBO_DELAY); + mStroboscopeBar.setProgress(mStroboscopeBar.getMax() / 2); + + mStroboscopeBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { + @Override + public void onProgressChanged(SeekBar seekBar, int progress, boolean b) { + final int frequency = mStroboscopeBar.getMax() - progress + MIN_STROBO_DELAY; + if (mCameraImpl != null) + mCameraImpl.setStroboFrequency(frequency); + } + + @Override + public void onStartTrackingTouch(SeekBar seekBar) { + + } + + @Override + public void onStopTrackingTouch(SeekBar seekBar) { + + } + }); } @Override @@ -180,7 +203,7 @@ public class MainActivity extends SimpleActivity { private void changeIconColor(int colorId, ImageView imageView) { final int appColor = getResources().getColor(colorId); - imageView.getDrawable().mutate().setColorFilter(appColor, PorterDuff.Mode.SRC_IN); + imageView.getBackground().mutate().setColorFilter(appColor, PorterDuff.Mode.SRC_IN); } @Subscribe diff --git a/app/src/main/res/drawable/circles_big.xml b/app/src/main/res/drawable/circles_big.xml index 6c7160d..a17a938 100644 --- a/app/src/main/res/drawable/circles_big.xml +++ b/app/src/main/res/drawable/circles_big.xml @@ -1,9 +1,9 @@ @@ -15,9 +15,9 @@ @@ -28,9 +28,7 @@ - + + android:layout_marginBottom="@dimen/activity_margin" + android:background="@drawable/circles_big"/> + android:background="@mipmap/bright_display" + android:padding="@dimen/activity_margin"/> + android:background="@mipmap/bright_display" + android:padding="@dimen/activity_margin"/>