From 49bf14153b203b8fb67a5834a9231cf553980365 Mon Sep 17 00:00:00 2001 From: MRSa Date: Sat, 25 Apr 2020 22:56:06 +0900 Subject: [PATCH] =?utf8?q?=E3=81=84=E3=81=A3=E3=81=9F=E3=82=93=E4=BF=9D?= =?utf8?q?=E7=AE=A1=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../gokigen/gr2control/camera/ICameraRunMode.java | 4 +- .../gr2control/camera/ICameraRunModeCallback.java | 7 ++ .../fuji_x/wrapper/FujiXInterfaceProvider.java | 2 +- .../camera/fuji_x/wrapper/FujiXRunMode.java | 83 ++++++++++++++++++++-- .../camera/fuji_x/wrapper/FujiXStatusHolder.java | 5 +- .../FujiXCameraModeChangeToPlayback.java | 8 +-- .../camera/olympus/wrapper/OlyCameraWrapper.java | 5 +- .../camera/ricohgr2/wrapper/RicohGr2RunMode.java | 13 +++- .../gr2control/liveview/LiveViewFragment.java | 26 +++++-- .../gr2control/playback/ImageGridViewFragment.java | 57 +++++++++++---- .../playback/detail/ImagePagerViewFragment.java | 34 ++++++--- .../preference/olympus/PreferenceFragment.java | 19 ++++- 12 files changed, 217 insertions(+), 46 deletions(-) create mode 100644 app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunModeCallback.java diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunMode.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunMode.java index f39e41b..d2970bf 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunMode.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunMode.java @@ -1,8 +1,10 @@ package net.osdn.gokigen.gr2control.camera; +import androidx.annotation.NonNull; + public interface ICameraRunMode { /** カメラの動作モード変更 **/ - void changeRunMode(boolean isRecording); + void changeRunMode(boolean isRecording, @NonNull ICameraRunModeCallback callback); boolean isRecordingMode(); } diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunModeCallback.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunModeCallback.java new file mode 100644 index 0000000..a7158c6 --- /dev/null +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraRunModeCallback.java @@ -0,0 +1,7 @@ +package net.osdn.gokigen.gr2control.camera; + +public interface ICameraRunModeCallback +{ + void onCompleted(boolean isRecording); + void onErrorOccurred(boolean isRecording); +} diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXInterfaceProvider.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXInterfaceProvider.java index 4467416..7de477a 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXInterfaceProvider.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXInterfaceProvider.java @@ -98,7 +98,7 @@ public class FujiXInterfaceProvider implements IFujiXInterfaceProvider, IDisplay statusChecker = new FujiXStatusChecker(context, commandPublisher); playbackControl = new FujiXPlaybackControl(context, this); hardwareStatus = new FujiXHardwareStatus(); - runMode = new FujiXRunMode(); + runMode = new FujiXRunMode(commandPublisher); } public void prepare() diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXRunMode.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXRunMode.java index 8cd2812..f922922 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXRunMode.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXRunMode.java @@ -1,25 +1,98 @@ package net.osdn.gokigen.gr2control.camera.fuji_x.wrapper; +import android.util.Log; + +import androidx.annotation.NonNull; + import net.osdn.gokigen.gr2control.camera.ICameraRunMode; +import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback; +import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.FujiXCommandPublisher; +import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandCallback; +import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.connection.FujiXCameraModeChangeToLiveView; +import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.connection.FujiXCameraModeChangeToPlayback; -public class FujiXRunMode implements ICameraRunMode +public class FujiXRunMode implements ICameraRunMode, IFujiXRunModeHolder, IFujiXCommandCallback { + private final String TAG = toString(); + private final FujiXCameraModeChangeToLiveView toLiveViewCommand; + private final FujiXCameraModeChangeToPlayback toPlaybackCommand; + private boolean isChanging = false; + private boolean isRecordingMode = false; + private ICameraRunModeCallback runModeCallback = null; + + FujiXRunMode(@NonNull FujiXCommandPublisher commandPublisher) + { + // + toLiveViewCommand = new FujiXCameraModeChangeToLiveView(commandPublisher, this); + toPlaybackCommand = new FujiXCameraModeChangeToPlayback(commandPublisher, this); + } - FujiXRunMode() + @Override + public void changeRunMode(boolean isRecording, @NonNull ICameraRunModeCallback callback) + { + // モードを切り替える + Log.v(TAG, "changeRunMode() : " + isRecording); + this.runModeCallback = callback; + if (isRecording) + { + toLiveViewCommand.startModeChange(this); + } + else + { + toPlaybackCommand.startModeChange(this); + } + } + + @Override + public boolean isRecordingMode() { + Log.v(TAG, "isRecordingMode() : " + isRecordingMode + " (" + isChanging + ")"); + if (isChanging) + { + // モード変更中の場合は、かならず false を応答する + return (false); + } + return (isRecordingMode); } + @Override + public void transitToRecordingMode(boolean isFinished) + { + isChanging = !isFinished; + isRecordingMode = true; + if (isFinished) + { + runModeCallback.onCompleted(isRecordingMode); + } + } @Override - public void changeRunMode(boolean isRecording) + public void transitToPlaybackMode(boolean isFinished) { + isChanging = !isFinished; + isRecordingMode = false; + if (isFinished) + { + runModeCallback.onCompleted(isRecordingMode); + } + } + @Override + public void receivedMessage(int id, byte[] rx_body) + { + Log.v(TAG, " receivedMessage() " + id); } @Override - public boolean isRecordingMode() + public void onReceiveProgress(int currentBytes, int totalBytes, byte[] rx_body) + { + Log.v(TAG, " onReceiveProgress() "); + } + + @Override + public boolean isReceiveMulti() { - return false; + return (false); } } diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXStatusHolder.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXStatusHolder.java index 0b338d1..415872b 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXStatusHolder.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXStatusHolder.java @@ -179,7 +179,8 @@ class FujiXStatusHolder { int id = Integer.parseInt(key, 16); int value = statusHolder.get(id); - return (String.format(Locale.US,"0x%08x (%d)", value, value)); + Log.v(TAG, "getItemStatus() value : " + value + " key : " + key + " [" + id + "]"); + return (value + ""); } catch (Exception e) { @@ -194,7 +195,7 @@ class FujiXStatusHolder if (key.contentEquals(strKey)) { int value = statusHolder.get(id); - return (String.format(Locale.US,"0x%08x (%d)", value, value)); + return (value + ""); } } } diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/connection/FujiXCameraModeChangeToPlayback.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/connection/FujiXCameraModeChangeToPlayback.java index 7662c0c..195243d 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/connection/FujiXCameraModeChangeToPlayback.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/connection/FujiXCameraModeChangeToPlayback.java @@ -31,7 +31,7 @@ public class FujiXCameraModeChangeToPlayback implements View.OnClickListener, IF public void startModeChange(IFujiXRunModeHolder runModeHolder) { - Log.v(TAG, "onClick"); + Log.v(TAG, "startModeChange()"); try { if (runModeHolder != null) @@ -47,7 +47,6 @@ public class FujiXCameraModeChangeToPlayback implements View.OnClickListener, IF } } - @Override public void onClick(View v) { @@ -82,6 +81,7 @@ public class FujiXCameraModeChangeToPlayback implements View.OnClickListener, IF case IFujiXMessages.SEQ_CHANGE_TO_PLAYBACK_2ND: publisher.enqueueCommand(new ChangeToPlayback3rd(this)); + //publisher.enqueueCommand(new StatusRequestMessage(this)); break; case IFujiXMessages.SEQ_CHANGE_TO_PLAYBACK_3RD: @@ -101,11 +101,11 @@ public class FujiXCameraModeChangeToPlayback implements View.OnClickListener, IF { runModeHolder.transitToPlaybackMode(true); } - Log.v(TAG, "CHANGED PLAYBACK MODE : DONE."); + Log.v(TAG, " CHANGED PLAYBACK MODE : DONE."); break; default: - Log.v(TAG, "RECEIVED UNKNOWN ID : " + id); + Log.v(TAG, " RECEIVED UNKNOWN ID : " + id); break; } } diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/olympus/wrapper/OlyCameraWrapper.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/olympus/wrapper/OlyCameraWrapper.java index 419abf7..fa8b53b 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/camera/olympus/wrapper/OlyCameraWrapper.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/olympus/wrapper/OlyCameraWrapper.java @@ -6,6 +6,7 @@ import android.graphics.PointF; import android.util.Log; import net.osdn.gokigen.gr2control.camera.ICameraRunMode; +import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback; import net.osdn.gokigen.gr2control.camera.ILiveViewControl; import net.osdn.gokigen.gr2control.camera.olympus.wrapper.property.CameraPropertyUtilities; import net.osdn.gokigen.gr2control.liveview.liveviewlistener.IImageDataReceiver; @@ -55,17 +56,19 @@ class OlyCameraWrapper implements ICameraRunMode, ILiveViewControl, ILiveViewLis * */ @Override - public void changeRunMode(boolean isRecording) + public void changeRunMode(boolean isRecording, @NonNull ICameraRunModeCallback callback) { OLYCamera.RunMode runMode = (isRecording) ? OLYCamera.RunMode.Recording : OLYCamera.RunMode.Playback; Log.v(TAG, "changeRunMode() : " + runMode); try { camera.changeRunMode(runMode); + callback.onCompleted(isRecording); } catch (Exception e) { e.printStackTrace(); + callback.onErrorOccurred(isRecording); } } diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/camera/ricohgr2/wrapper/RicohGr2RunMode.java b/app/src/main/java/net/osdn/gokigen/gr2control/camera/ricohgr2/wrapper/RicohGr2RunMode.java index fbc9e97..5249a45 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/camera/ricohgr2/wrapper/RicohGr2RunMode.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/camera/ricohgr2/wrapper/RicohGr2RunMode.java @@ -1,18 +1,25 @@ package net.osdn.gokigen.gr2control.camera.ricohgr2.wrapper; +import androidx.annotation.NonNull; + import net.osdn.gokigen.gr2control.camera.ICameraRunMode; +import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback; public class RicohGr2RunMode implements ICameraRunMode { + private boolean recordingMode = true; + @Override - public void changeRunMode(boolean isRecording) + public void changeRunMode(boolean isRecording, @NonNull ICameraRunModeCallback callback) { - // 何もしない... + // モードレスなので、絶対成功する + recordingMode = isRecording; + callback.onCompleted(isRecording); } @Override public boolean isRecordingMode() { - return (true); + return (recordingMode); } } diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java b/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java index 2002415..e531abf 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java @@ -31,6 +31,7 @@ import net.osdn.gokigen.gr2control.camera.ICameraButtonControl; import net.osdn.gokigen.gr2control.camera.ICameraConnection; import net.osdn.gokigen.gr2control.camera.ICameraInformation; import net.osdn.gokigen.gr2control.camera.ICameraRunMode; +import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback; import net.osdn.gokigen.gr2control.camera.ICameraStatus; import net.osdn.gokigen.gr2control.camera.ICameraStatusWatcher; import net.osdn.gokigen.gr2control.camera.IDisplayInjector; @@ -50,7 +51,7 @@ import static android.content.Context.VIBRATOR_SERVICE; * 撮影用ライブビュー画面 * */ -public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFocusingModeNotify, IFavoriteSettingDialogKicker, ICameraStatusUpdateNotify, LiveViewKeyPanelClickListener.KeyPanelFeedback +public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFocusingModeNotify, IFavoriteSettingDialogKicker, ICameraStatusUpdateNotify, LiveViewKeyPanelClickListener.KeyPanelFeedback, ICameraRunModeCallback { private final String TAG = this.toString(); @@ -494,10 +495,16 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo if ((changeRunModeExecutor != null)&&(!changeRunModeExecutor.isRecordingMode())) { // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。) - changeRunModeExecutor.changeRunMode(true); + changeRunModeExecutor.changeRunMode(true, this); + Log.v(TAG, "onResume() End"); + return; } + prepareToStart(); + Log.v(TAG, "onResume() End"); + } - // propertyを取得 + private void prepareToStart() + { try { Context context = getContext(); @@ -521,7 +528,18 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo { e.printStackTrace(); } - Log.v(TAG, "onResume() End"); + } + + @Override + public void onCompleted(boolean isRecording) + { + prepareToStart(); + } + + @Override + public void onErrorOccurred(boolean isRecording) + { + prepareToStart(); } /** diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/playback/ImageGridViewFragment.java b/app/src/main/java/net/osdn/gokigen/gr2control/playback/ImageGridViewFragment.java index 44f0884..526794e 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/playback/ImageGridViewFragment.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/playback/ImageGridViewFragment.java @@ -37,6 +37,7 @@ import android.widget.ProgressBar; import net.osdn.gokigen.gr2control.R; import net.osdn.gokigen.gr2control.camera.ICameraFileInfo; import net.osdn.gokigen.gr2control.camera.ICameraRunMode; +import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback; import net.osdn.gokigen.gr2control.camera.playback.ICameraContentListCallback; import net.osdn.gokigen.gr2control.camera.playback.IDownloadThumbnailImageCallback; import net.osdn.gokigen.gr2control.camera.playback.IPlaybackControl; @@ -51,7 +52,7 @@ import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentActivity; import androidx.fragment.app.FragmentTransaction; -public class ImageGridViewFragment extends Fragment +public class ImageGridViewFragment extends Fragment implements ICameraRunModeCallback { private final String TAG = this.toString(); private final String MOVIE_SUFFIX = ".mov"; @@ -211,17 +212,50 @@ public class ImageGridViewFragment extends Fragment if (!runMode.isRecordingMode()) { // Threadで呼んではダメみたいだ... - runMode.changeRunMode(true); + runMode.changeRunMode(true, this); + super.onPause(); + Log.v(TAG, "onPause() End"); + return; } - - if (!executor.isShutdown()) - { - executor.shutdownNow(); - } + postProcessChangeRunMode(true); super.onPause(); Log.v(TAG, "onPause() End"); } + private void postProcessChangeRunMode(boolean isRecording) + { + try + { + if (isRecording) + { + if (!executor.isShutdown()) + { + executor.shutdownNow(); + } + } + else + { + refresh(); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + @Override + public void onCompleted(boolean isRecording) + { + postProcessChangeRunMode(isRecording); + } + + @Override + public void onErrorOccurred(boolean isRecording) + { + postProcessChangeRunMode(isRecording); + } + @Override public void onStop() { @@ -235,7 +269,8 @@ public class ImageGridViewFragment extends Fragment { if (runMode.isRecordingMode()) { - runMode.changeRunMode(false); + runMode.changeRunMode(false, this); + return; } } catch (Exception e) @@ -246,12 +281,6 @@ public class ImageGridViewFragment extends Fragment Thread thread = new Thread(new Runnable() { @Override public void run() { -/* - if (runMode.isRecordingMode()) - { - runMode.changeRunMode(false); - } -*/ refreshImpl(); } }); diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/playback/detail/ImagePagerViewFragment.java b/app/src/main/java/net/osdn/gokigen/gr2control/playback/detail/ImagePagerViewFragment.java index 235a8d8..b2bf157 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/playback/detail/ImagePagerViewFragment.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/playback/detail/ImagePagerViewFragment.java @@ -23,6 +23,7 @@ import android.widget.ImageView; import net.osdn.gokigen.gr2control.R; import net.osdn.gokigen.gr2control.camera.ICameraFileInfo; import net.osdn.gokigen.gr2control.camera.ICameraRunMode; +import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback; import net.osdn.gokigen.gr2control.camera.playback.IDownloadThumbnailImageCallback; import net.osdn.gokigen.gr2control.camera.playback.IPlaybackControl; @@ -33,7 +34,7 @@ import androidx.fragment.app.Fragment; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; -public class ImagePagerViewFragment extends Fragment +public class ImagePagerViewFragment extends Fragment implements ICameraRunModeCallback { private final String TAG = this.toString(); private static final String JPEG_SUFFIX = ".JPG"; @@ -92,7 +93,7 @@ public class ImagePagerViewFragment extends Fragment } @Override - public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) + public void onCreateOptionsMenu(@NonNull Menu menu, @NonNull MenuInflater inflater) { try { @@ -146,7 +147,7 @@ public class ImagePagerViewFragment extends Fragment boolean getInformation = false; boolean isSmallSize = false; boolean isRaw = false; - String specialSuffix = null; + //String specialSuffix = null; if ((item.getItemId() == R.id.action_get_information)||(item.getItemId() == R.id.action_get_information_raw)) { getInformation = true; @@ -259,11 +260,11 @@ public class ImagePagerViewFragment extends Fragment if (runMode.isRecordingMode()) { // Threadで呼んではダメみたいだ... - runMode.changeRunMode(false); + runMode.changeRunMode(false, this); + return; } - viewPager.setCurrentItem(contentIndex); - } + } @Override public void onPause() @@ -282,13 +283,28 @@ public class ImagePagerViewFragment extends Fragment if (!runMode.isRecordingMode()) { // Threadで呼んではダメみたいだ... - runMode.changeRunMode(true); + runMode.changeRunMode(true, this); } } - private class ImagePagerAdapter extends PagerAdapter + @Override + public void onCompleted(boolean isRecording) { + if (!isRecording) + { + viewPager.setCurrentItem(contentIndex); + } + } + @Override + public void onErrorOccurred(boolean isRecording) + { + Log.v(TAG, " onErrorOccurred() : " + isRecording); + } + + + private class ImagePagerAdapter extends PagerAdapter + { @Override public int getCount() { @@ -359,7 +375,7 @@ public class ImagePagerViewFragment extends Fragment { bar.setTitle(path); } - activity.getSupportActionBar().setTitle(path); + //activity.getSupportActionBar().setTitle(path); activity.getFragmentManager().invalidateOptionsMenu(); } } diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/preference/olympus/PreferenceFragment.java b/app/src/main/java/net/osdn/gokigen/gr2control/preference/olympus/PreferenceFragment.java index 350b17e..021bffe 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/preference/olympus/PreferenceFragment.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/preference/olympus/PreferenceFragment.java @@ -11,6 +11,7 @@ import android.util.Log; import net.osdn.gokigen.gr2control.R; import net.osdn.gokigen.gr2control.camera.ICameraHardwareStatus; import net.osdn.gokigen.gr2control.camera.ICameraRunMode; +import net.osdn.gokigen.gr2control.camera.ICameraRunModeCallback; import net.osdn.gokigen.gr2control.camera.IInterfaceProvider; import net.osdn.gokigen.gr2control.camera.olympus.operation.CameraPowerOff; import net.osdn.gokigen.gr2control.camera.olympus.wrapper.property.IOlyCameraProperty; @@ -38,7 +39,7 @@ import jp.co.olympus.camerakit.OLYCamera; * SettingFragment * */ -public class PreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, PreferenceSynchronizer.IPropertySynchronizeCallback, Preference.OnPreferenceClickListener +public class PreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, PreferenceSynchronizer.IPropertySynchronizeCallback, Preference.OnPreferenceClickListener, ICameraRunModeCallback { private final String TAG = toString(); private AppCompatActivity context = null; @@ -328,7 +329,8 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Shar if ((changeRunModeExecutor != null) && (!changeRunModeExecutor.isRecordingMode())) { // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。 - changeRunModeExecutor.changeRunMode(true); + changeRunModeExecutor.changeRunMode(true, this); + return; } synchronizeCameraProperties(true); } @@ -339,6 +341,19 @@ public class PreferenceFragment extends PreferenceFragmentCompat implements Shar Log.v(TAG, "onResume() End"); } + @Override + public void onCompleted(boolean isRecording) + { + synchronizeCameraProperties(true); + } + + @Override + public void onErrorOccurred(boolean isRecording) + { + Log.v(TAG, " onErrorOccurred()"); + synchronizeCameraProperties(true); + } + /** * * -- 2.11.0