From 6b47e790a52ddd25974e8411715182400827bca0 Mon Sep 17 00:00:00 2001 From: MRSa Date: Mon, 4 Jan 2021 23:50:55 +0900 Subject: [PATCH] =?utf8?q?=E5=86=85=E9=83=A8=E6=95=B4=E7=90=86=E4=B8=AD?= =?utf8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .idea/caches/build_file_checksums.ser | Bin 582 -> 582 bytes app/build.gradle | 8 +- build.gradle | 2 +- wear/build.gradle | 6 +- .../jp/sfjp/gokigen/a01c/ConfirmationDialog.java | 2 +- .../dispatcher => }/ICameraFeatureDispatcher.java | 11 +-- .../java/jp/sfjp/gokigen/a01c/MainActivity.java | 53 ++++++------- .../gokigen/a01c/liveview/CameraLiveImageView.java | 85 +++++++++++++-------- .../liveview/OlyCameraLiveViewOnTouchListener.java | 2 +- .../gokigen/a01c/liveview/ShowMessageHolder.java | 20 ++--- .../gokigen/a01c/liveview/button/PushedArea1.java | 13 +--- .../gokigen/a01c/liveview/button/PushedArea2.java | 13 +--- .../gokigen/a01c/liveview/button/PushedArea3.java | 13 +--- .../gokigen/a01c/liveview/button/PushedArea4.java | 17 ++--- .../a01c/liveview/button/PushedButton1.java | 13 +--- .../a01c/liveview/button/PushedButton2.java | 16 +--- .../a01c/liveview/button/PushedButton3.java | 13 +--- .../a01c/liveview/button/PushedButton4.java | 13 +--- .../a01c/liveview/button/PushedButton5.java | 13 +--- .../a01c/liveview/button/PushedButton6.java | 14 +--- .../a01c/liveview/button/PushedButtonFactory.java | 28 ++++--- .../a01c/liveview/button/PushedLowerArea.java | 14 +--- .../dialog/FavoriteSettingSelectionDialog.java | 21 +++-- .../olycamerawrapper/CameraConnectSequence.java | 2 +- .../dispatcher/FeatureDispatcher.java | 34 ++++++++- .../listeners/CameraRecordingListenerImpl.java | 4 +- .../property/LoadSaveCameraProperties.java | 1 - .../favorite/LoadSaveMyCameraPropertyDialog.java | 3 +- .../LoadSaveMyCameraPropertyPagerAdapter.java | 3 +- .../favorite/MyCameraPropertyLoadArrayAdapter.java | 10 +-- .../favorite/MyCameraPropertySetArrayAdapter.java | 12 +-- .../favorite/MyCameraPropertySetItems.java | 6 +- .../a01c/preference/PreferenceAccessWrapper.kt | 83 ++++++++++++++++++++ .../drawable/ic_power_settings_new_black_24dp.xml | 9 +++ wear/src/main/res/values-ja/arrays.xml | 11 ++- wear/src/main/res/values-ja/strings.xml | 17 +++++ wear/src/main/res/values/arrays.xml | 9 +++ wear/src/main/res/values/strings.xml | 16 ++++ wear/src/main/res/xml/preferences.xml | 37 +++++++++ 39 files changed, 404 insertions(+), 243 deletions(-) rename wear/src/main/java/jp/sfjp/gokigen/a01c/{olycamerawrapper/dispatcher => }/ICameraFeatureDispatcher.java (92%) create mode 100644 wear/src/main/java/jp/sfjp/gokigen/a01c/preference/PreferenceAccessWrapper.kt create mode 100644 wear/src/main/res/drawable/ic_power_settings_new_black_24dp.xml create mode 100644 wear/src/main/res/xml/preferences.xml diff --git a/.idea/caches/build_file_checksums.ser b/.idea/caches/build_file_checksums.ser index 627f5b73486278819394c590297eedb02441d70b..c12665b4b5504c4286b2c48c8a465f022524a008 100644 GIT binary patch delta 77 zcmV-T0J8ta1jYoAm;}u$xy+HAcMw+cA8cf3OCOd_n0JNUbW)Qe0ge#C=M})>M$=HP jf~1psuShPF!2uZ%T<+H(YL^+N+^=yVLIGzelj;FnTe%{F delta 77 zcmV-T0J8ta1jYoAm;@2?{2P&+cMx buttonMap; + private final SparseArray buttonMap; public PushedButtonFactory(Context context, ICameraFeatureDispatcher dispatcher) { buttonMap = new SparseArray<>(); - buttonMap.put(R.id.btn_1, new PushedButton1(context, dispatcher)); - buttonMap.put(R.id.btn_2, new PushedButton2(context, dispatcher)); - buttonMap.put(R.id.btn_3, new PushedButton3(context, dispatcher)); - buttonMap.put(R.id.btn_4, new PushedButton4(context, dispatcher)); - buttonMap.put(R.id.btn_5, new PushedButton5(context, dispatcher)); - buttonMap.put(R.id.btn_6, new PushedButton6(context, dispatcher)); - buttonMap.put(R.id.text_1, new PushedArea1(context, dispatcher)); - buttonMap.put(R.id.text_2, new PushedArea2(context, dispatcher)); - buttonMap.put(R.id.text_3, new PushedArea3(context, dispatcher)); - buttonMap.put(R.id.text_4, new PushedArea4(context, dispatcher)); - buttonMap.put(R.id.liveview, new PushedLowerArea(context, dispatcher)); + buttonMap.put(R.id.btn_1, new PushedButton1(dispatcher)); + buttonMap.put(R.id.btn_2, new PushedButton2(dispatcher)); + buttonMap.put(R.id.btn_3, new PushedButton3(dispatcher)); + buttonMap.put(R.id.btn_4, new PushedButton4(dispatcher)); + buttonMap.put(R.id.btn_5, new PushedButton5(dispatcher)); + buttonMap.put(R.id.btn_6, new PushedButton6(dispatcher)); + buttonMap.put(R.id.text_1, new PushedArea1(dispatcher)); + buttonMap.put(R.id.text_2, new PushedArea2(dispatcher)); + buttonMap.put(R.id.text_3, new PushedArea3(dispatcher)); + buttonMap.put(R.id.text_4, new PushedArea4(dispatcher)); + buttonMap.put(R.id.liveview, new PushedLowerArea(dispatcher)); } - public SparseArray getButtonMap() { return (buttonMap); diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/button/PushedLowerArea.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/button/PushedLowerArea.java index 65d3fbb..9434221 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/button/PushedLowerArea.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/button/PushedLowerArea.java @@ -1,12 +1,7 @@ package jp.sfjp.gokigen.a01c.liveview.button; -import android.content.Context; -import android.content.SharedPreferences; - -import androidx.preference.PreferenceManager; - import jp.sfjp.gokigen.a01c.IShowInformation; -import jp.sfjp.gokigen.a01c.olycamerawrapper.dispatcher.ICameraFeatureDispatcher; +import jp.sfjp.gokigen.a01c.ICameraFeatureDispatcher; /** @@ -15,12 +10,9 @@ import jp.sfjp.gokigen.a01c.olycamerawrapper.dispatcher.ICameraFeatureDispatcher */ class PushedLowerArea implements IPushedButton { - private final SharedPreferences preferences; private final ICameraFeatureDispatcher dispatcher; - - PushedLowerArea(Context context, ICameraFeatureDispatcher dispatcher) + PushedLowerArea(ICameraFeatureDispatcher dispatcher) { - preferences = PreferenceManager.getDefaultSharedPreferences(context); this.dispatcher = dispatcher; } @@ -72,6 +64,6 @@ class PushedLowerArea implements IPushedButton defaultAction = (isLongClick) ? ICameraFeatureDispatcher.FEATURE_CHANGE_LIVEVIEW_MAGNIFY_X5 : ICameraFeatureDispatcher.FEATURE_SHUTTER_SINGLESHOT; break; } - return (dispatcher.dispatchAction(IShowInformation.LOWER_AREA, preferences.getInt(preference_action_id, defaultAction))); + return (dispatcher.dispatchAction(IShowInformation.LOWER_AREA, preference_action_id, defaultAction)); } } diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/dialog/FavoriteSettingSelectionDialog.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/dialog/FavoriteSettingSelectionDialog.java index 9a7d47f..d270098 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/dialog/FavoriteSettingSelectionDialog.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/liveview/dialog/FavoriteSettingSelectionDialog.java @@ -19,12 +19,12 @@ import jp.sfjp.gokigen.a01c.olycamerawrapper.property.ICameraPropertyLoadSaveOpe */ public class FavoriteSettingSelectionDialog implements IDialogDrawer { + private static final float WIDE_MARGIN = 10.0f; + private static final float HEIGHT_MARGIN = 27.0f; private final String TAG = toString(); private final ICameraPropertyLoadSaveOperations propertyOperation; private final IDialogDismissedNotifier dismissNotifier; private final Context context; - private final float WIDE_MARGIN = 10.0f; - private final float HEIGHT_MARGIN = 27.0f; private int selectedId = 0; private boolean isSaveOperation = false; // loadはfalse, saveがtrue @@ -39,7 +39,6 @@ public class FavoriteSettingSelectionDialog implements IDialogDrawer this.dismissNotifier = dismissNotifier; } - /** * 画面上にダイアログを表示する * @@ -48,6 +47,18 @@ public class FavoriteSettingSelectionDialog implements IDialogDrawer @Override public void drawDialog(Canvas canvas) { + try + { + drawDialogImpl(canvas); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + private void drawDialogImpl(Canvas canvas) + { final float STROKE_WIDTH = 2.0f; float width = canvas.getWidth(); @@ -273,7 +284,6 @@ public class FavoriteSettingSelectionDialog implements IDialogDrawer } } - /** * プロパティの保存処理をする * @@ -321,7 +331,7 @@ public class FavoriteSettingSelectionDialog implements IDialogDrawer if (isExecute) { Log.v(TAG, " EXECUTE OPERATION : " + selectedId + " " + isSaveOperation); -/**/ + // コマンドを実行する if (isSaveOperation) { @@ -333,7 +343,6 @@ public class FavoriteSettingSelectionDialog implements IDialogDrawer // プロパティの読み出し loadProperties(selectedId + 1); } -/**/ } if (dismissNotifier != null) { diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/CameraConnectSequence.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/CameraConnectSequence.java index 18de41a..441c85d 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/CameraConnectSequence.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/CameraConnectSequence.java @@ -66,7 +66,7 @@ class CameraConnectSequence implements Runnable cameraStatusReceiver.onStatusNotify(statusMessage); camera.changeRunMode(OLYCamera.RunMode.Recording); } - } + } catch (OLYCameraKitException e) { cameraStatusReceiver.onCameraOccursException(statusMessage, e); diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/dispatcher/FeatureDispatcher.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/dispatcher/FeatureDispatcher.java index 912b3b5..a9ebc30 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/dispatcher/FeatureDispatcher.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/dispatcher/FeatureDispatcher.java @@ -3,6 +3,11 @@ package jp.sfjp.gokigen.a01c.olycamerawrapper.dispatcher; import android.util.Log; import android.view.MotionEvent; +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; + +import jp.sfjp.gokigen.a01c.ConfirmationDialog; +import jp.sfjp.gokigen.a01c.ICameraFeatureDispatcher; import jp.sfjp.gokigen.a01c.IShowInformation; import jp.sfjp.gokigen.a01c.R; import jp.sfjp.gokigen.a01c.liveview.ILiveImageStatusNotify; @@ -11,6 +16,7 @@ import jp.sfjp.gokigen.a01c.olycamerawrapper.IZoomLensHolder; import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraProperty; import jp.sfjp.gokigen.a01c.olycamerawrapper.property.IOlyCameraPropertyProvider; import jp.sfjp.gokigen.a01c.olycamerawrapper.takepicture.IBracketingShotStyle; +import jp.sfjp.gokigen.a01c.preference.PreferenceAccessWrapper; /** @@ -21,26 +27,32 @@ public class FeatureDispatcher implements ICameraFeatureDispatcher { private final String TAG = toString(); + private final AppCompatActivity activity; private final IShowInformation statusDrawer; private final IOlyCameraCoordinator camera; private final ILiveImageStatusNotify liveImageView; + private final PreferenceAccessWrapper preferences; - public FeatureDispatcher(IShowInformation statusDrawer, IOlyCameraCoordinator camera, ILiveImageStatusNotify liveImageView) + public FeatureDispatcher(@NonNull AppCompatActivity context, @NonNull IShowInformation statusDrawer, @NonNull IOlyCameraCoordinator camera, ILiveImageStatusNotify liveImageView) { + this.activity = context; this.statusDrawer = statusDrawer; this.camera = camera; this.liveImageView = liveImageView; + this.preferences = new PreferenceAccessWrapper(context); } /** * 指定した機能を実行する * * @param objectId     操作したオブジェクト - * @param featureNumber  操作する機能 + * @param key   操作する機能 + * @param defaultAction 標準機能 */ @Override - public boolean dispatchAction(int objectId, int featureNumber) + public boolean dispatchAction(int objectId, @NonNull String key, int defaultAction) { + int featureNumber = preferences.getInt(key, defaultAction); if (featureNumber <= ICameraFeatureDispatcher.FEATURE_ACTION_NONE) { // 何もしない @@ -922,6 +934,20 @@ public class FeatureDispatcher implements ICameraFeatureDispatcher */ private void showSettingsScreen() { - // TBD... + try + { + Log.v(TAG, " --- showSettingsScreen() ---"); + ConfirmationDialog confirmation = new ConfirmationDialog(activity); + confirmation.show(R.string.change_title_from_opc_to_theta, R.string.change_message_from_opc_to_theta, new ConfirmationDialog.Callback() { + @Override + public void confirm() { + Log.v(TAG, " --- CONFIRMED! --- "); + } + }); + } + catch (Exception e) + { + e.printStackTrace(); + } } } diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/listeners/CameraRecordingListenerImpl.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/listeners/CameraRecordingListenerImpl.java index 67ba2dc..3d63d31 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/listeners/CameraRecordingListenerImpl.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/listeners/CameraRecordingListenerImpl.java @@ -4,6 +4,8 @@ import android.content.Context; import android.graphics.Color; import android.util.Log; +import androidx.annotation.NonNull; + import jp.co.olympus.camerakit.OLYCamera; import jp.co.olympus.camerakit.OLYCameraAutoFocusResult; import jp.co.olympus.camerakit.OLYCameraRecordingListener; @@ -17,7 +19,7 @@ public class CameraRecordingListenerImpl implements OLYCameraRecordingListener private final Context context; private final IShowInformation statusDrawer; - public CameraRecordingListenerImpl(Context context, IShowInformation statusDrawer) + public CameraRecordingListenerImpl(Context context, @NonNull IShowInformation statusDrawer) { this.context = context; this.statusDrawer = statusDrawer; diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/LoadSaveCameraProperties.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/LoadSaveCameraProperties.java index f12f253..6595891 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/LoadSaveCameraProperties.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/LoadSaveCameraProperties.java @@ -12,7 +12,6 @@ import java.util.Map; import java.util.Set; import jp.co.olympus.camerakit.OLYCamera; -//import jp.co.olympus.camerakit.OLYCameraKitException; import jp.sfjp.gokigen.a01c.olycamerawrapper.IOLYCameraObjectProvider; /** diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyDialog.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyDialog.java index d514728..4448d02 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyDialog.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyDialog.java @@ -7,6 +7,7 @@ import android.view.View; import android.view.ViewGroup; import android.widget.TabHost; +import androidx.annotation.NonNull; import androidx.fragment.app.DialogFragment; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTabHost; @@ -30,7 +31,7 @@ public class LoadSaveMyCameraPropertyDialog extends DialogFragment implements Ta /**/ @Override - public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) + public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { try { diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyPagerAdapter.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyPagerAdapter.java index 8b577c7..19a515a 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyPagerAdapter.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/LoadSaveMyCameraPropertyPagerAdapter.java @@ -3,6 +3,7 @@ package jp.sfjp.gokigen.a01c.olycamerawrapper.property.favorite; import android.util.Log; +import androidx.annotation.NonNull; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentPagerAdapter; @@ -34,7 +35,7 @@ class LoadSaveMyCameraPropertyPagerAdapter extends FragmentPagerAdapter } @Override - public Fragment getItem(int position) + public @NonNull Fragment getItem(int position) { Log.v(TAG, "getItem :" + position); if ((loadFragment == null)||(saveFragment == null)) diff --git a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/MyCameraPropertyLoadArrayAdapter.java b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/MyCameraPropertyLoadArrayAdapter.java index 2d1a446..a97d1b0 100644 --- a/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/MyCameraPropertyLoadArrayAdapter.java +++ b/wear/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/property/favorite/MyCameraPropertyLoadArrayAdapter.java @@ -11,9 +11,9 @@ import java.util.List; class MyCameraPropertyLoadArrayAdapter extends ArrayAdapter { - private LayoutInflater inflater = null; + private final LayoutInflater inflater; private final int textViewResourceId; - private List listItems = null; + private final List listItems; MyCameraPropertyLoadArrayAdapter(Context context, int resource, List objects) { @@ -42,13 +42,13 @@ class MyCameraPropertyLoadArrayAdapter extends ArrayAdapter listItems = null; + private final List listItems; private final ILoadSaveMyCameraPropertyDialogDismiss dialogDismiss; @@ -55,16 +55,16 @@ class MyCameraPropertySetArrayAdapter extends ArrayAdapter + + diff --git a/wear/src/main/res/values-ja/arrays.xml b/wear/src/main/res/values-ja/arrays.xml index 55344e5..9ea5f42 100644 --- a/wear/src/main/res/values-ja/arrays.xml +++ b/wear/src/main/res/values-ja/arrays.xml @@ -1,3 +1,12 @@ - \ No newline at end of file + + OPC (Olympus Air) + Ricoh THETA Series + + + + OPC + THETA + + diff --git a/wear/src/main/res/values-ja/strings.xml b/wear/src/main/res/values-ja/strings.xml index 92787ca..bab8452 100644 --- a/wear/src/main/res/values-ja/strings.xml +++ b/wear/src/main/res/values-ja/strings.xml @@ -53,4 +53,21 @@ 了解 中止 + アプリ制御 + アプリ終了(とカメラOFF) + + 接続方式 + + WiFi設定 + + + カメラ情報 + Camera kit Version + + Change To Theta + Change To Theta, OK? + + Change To OPC + Change To OPC, OK? + diff --git a/wear/src/main/res/values/arrays.xml b/wear/src/main/res/values/arrays.xml index 55344e5..827806b 100644 --- a/wear/src/main/res/values/arrays.xml +++ b/wear/src/main/res/values/arrays.xml @@ -1,3 +1,12 @@ + + OPC (Olympus Air) + Ricoh THETA Series + + + + OPC + THETA + \ No newline at end of file diff --git a/wear/src/main/res/values/strings.xml b/wear/src/main/res/values/strings.xml index 0c01c29..96dc574 100644 --- a/wear/src/main/res/values/strings.xml +++ b/wear/src/main/res/values/strings.xml @@ -52,4 +52,20 @@ OK Cancel + App. Control + Exit Application(and Camera OFF) + Connection Method + + WIFI Settings + + + Information + Camera kit Version + + Change To Theta + Change To Theta, OK? + + Change To OPC + Change To OPC, OK? + diff --git a/wear/src/main/res/xml/preferences.xml b/wear/src/main/res/xml/preferences.xml new file mode 100644 index 0000000..d9d4d1a --- /dev/null +++ b/wear/src/main/res/xml/preferences.xml @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + -- 2.11.0