Skip to content

Commit 91ab97d

Browse files
committed
fix that shutterbutton did not show correct module state when freedcam is not in mem
1 parent 70f43df commit 91ab97d

File tree

3 files changed

+23
-6
lines changed

3 files changed

+23
-6
lines changed

app/src/main/java/freed/cam/ui/CameraUiSlidePagerAdapter.java

+3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ public void setCameraFragment(CameraFragmentAbstract cameraFragment)
3131
this.cameraFragment = cameraFragment;
3232
settingsMenuFragment.setCameraToUi(cameraFragment);
3333
cameraUiFragment.setCameraToUi(cameraFragment);
34+
35+
if (cameraFragment != null)
36+
cameraFragment.getModuleHandler().ModuleHasChanged(cameraFragment.getModuleHandler().getCurrentModuleName());
3437
}
3538

3639
public void updateScreenSlideFile(List<FileHolder> files)

app/src/main/java/freed/cam/ui/themesample/cameraui/ShutterAnimationHandler.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ public boolean isRunning()
8686

8787
public ShutterAnimationHandler(Looper looper, Resources resources,ShutterButton shutterButton)
8888
{
89+
8990
super(looper);
91+
halfsize = resources.getDimensionPixelSize(R.dimen.cameraui_shuttericon_size) /2;
9092
uiHandler = new UIHandler(Looper.getMainLooper());
9193
this.shutterButton = shutterButton;
9294
//used to draw green timer inside the shutter button
@@ -174,7 +176,6 @@ public void stopShutterTimer() {
174176
private void run()
175177
{
176178
calcstartTime = System.nanoTime();
177-
halfsize = shutterButton.getWidth()/2;
178179
MAX_SHUTTER_OPEN = (shutterButton.getWidth() - 100) / 2;
179180
SHUTTER_OPEN_STEP = (MAX_SHUTTER_OPEN) / MAXFRAMES;
180181
MAX_RECORDING_OPEN = shutterButton.getWidth() /4;

app/src/main/java/freed/cam/ui/themesample/cameraui/ShutterButton.java

+18-5
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import com.troop.freedcam.R;
3232

3333
import freed.cam.apis.basecamera.CameraWrapperInterface;
34+
import freed.cam.apis.basecamera.modules.ModuleChangedEvent;
3435
import freed.cam.apis.basecamera.modules.ModuleHandlerAbstract;
3536
import freed.cam.apis.basecamera.modules.ModuleHandlerAbstract.CaptureStates;
3637
import freed.settings.Settings;
@@ -41,7 +42,7 @@
4142
/**
4243
* Created by troop on 20.06.2015.
4344
*/
44-
public class ShutterButton extends android.support.v7.widget.AppCompatButton implements ModuleHandlerAbstract.CaptureStateChanged {
45+
public class ShutterButton extends android.support.v7.widget.AppCompatButton implements ModuleHandlerAbstract.CaptureStateChanged, ModuleChangedEvent {
4546
private CameraWrapperInterface cameraUiWrapper;
4647

4748
private final String TAG = ShutterButton.class.getSimpleName();
@@ -53,9 +54,11 @@ public class ShutterButton extends android.support.v7.widget.AppCompatButton imp
5354
* Starts a background thread and its {@link Handler}.
5455
*/
5556
private void startBackgroundThread() {
56-
mBackgroundThread = new HandlerThread("ShutterDraw");
57-
mBackgroundThread.start();
58-
animationHandler = new ShutterAnimationHandler(mBackgroundThread.getLooper(),getResources(),this);
57+
if (mBackgroundThread == null || !mBackgroundThread.isAlive()) {
58+
mBackgroundThread = new HandlerThread("ShutterDraw");
59+
mBackgroundThread.start();
60+
animationHandler = new ShutterAnimationHandler(mBackgroundThread.getLooper(), getResources(), this);
61+
}
5962
}
6063

6164
/**
@@ -103,6 +106,7 @@ protected void onDetachedFromWindow() {
103106

104107
private void init(Context context) {
105108

109+
startBackgroundThread();
106110
//set background img that get then overdrawn
107111
setBackgroundResource(R.drawable.shutter5);
108112

@@ -139,9 +143,12 @@ public void SetCameraUIWrapper(CameraWrapperInterface cameraUiWrapper, UserMessa
139143
if (cameraUiWrapper.getModuleHandler() == null)
140144
return;
141145
this.cameraUiWrapper = cameraUiWrapper;
146+
cameraUiWrapper.getModuleHandler().addListner(this);
142147
cameraUiWrapper.getModuleHandler().setWorkListner(this);
143-
if(cameraUiWrapper.getModuleHandler().getCurrentModule() != null)
148+
if(cameraUiWrapper.getModuleHandler().getCurrentModule() != null) {
144149
onCaptureStateChanged(cameraUiWrapper.getModuleHandler().getCurrentModule().getCurrentCaptureState());
150+
151+
}
145152
Log.d(this.TAG, "Set cameraUiWrapper to ShutterButton");
146153
}
147154

@@ -207,4 +214,10 @@ protected void onDraw(Canvas canvas)
207214
animationHandler.onDraw(canvas);
208215
}
209216

217+
@Override
218+
public void onModuleChanged(String module) {
219+
if(cameraUiWrapper.getModuleHandler().getCurrentModule() != null) {
220+
onCaptureStateChanged(cameraUiWrapper.getModuleHandler().getCurrentModule().getCurrentCaptureState());
221+
}
222+
}
210223
}

0 commit comments

Comments
 (0)