OSDN Git Service

ワーニング除去。
[gokigen/Gr2Control.git] / app / src / main / java / net / osdn / gokigen / gr2control / liveview / LiveViewFragment.java
index b2ed88c..b3ba8b9 100644 (file)
@@ -4,6 +4,7 @@ import android.app.Activity;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.os.Bundle;
+import android.os.Vibrator;
 import android.support.annotation.NonNull;
 import android.support.v4.app.Fragment;
 import android.support.v4.content.res.ResourcesCompat;
@@ -22,16 +23,17 @@ import android.widget.TextView;
 import net.osdn.gokigen.gr2control.R;
 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.ICameraStatusWatcher;
 import net.osdn.gokigen.gr2control.camera.IDisplayInjector;
 import net.osdn.gokigen.gr2control.camera.IFocusingModeNotify;
 import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
 import net.osdn.gokigen.gr2control.camera.ILiveViewControl;
-import net.osdn.gokigen.gr2control.camera.IZoomLensControl;
 import net.osdn.gokigen.gr2control.liveview.liveviewlistener.ILiveViewListener;
 import net.osdn.gokigen.gr2control.preference.IPreferencePropertyAccessor;
 import net.osdn.gokigen.gr2control.scene.IChangeScene;
 
+import static android.content.Context.VIBRATOR_SERVICE;
 
 /**
  *  撮影用ライブビュー画面
@@ -40,10 +42,9 @@ import net.osdn.gokigen.gr2control.scene.IChangeScene;
 public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFocusingModeNotify, IFavoriteSettingDialogKicker, ICameraStatusUpdateNotify
 {
     private final String TAG = this.toString();
-    private static final int COMMAND_MY_PROPERTY = 0x00000100;
 
     private ILiveViewControl liveViewControl = null;
-    private IZoomLensControl zoomLensControl = null;
+    //private IZoomLensControl zoomLensControl = null;
     private IInterfaceProvider interfaceProvider = null;
     private IDisplayInjector interfaceInjector = null;
     //private OlympusCameraLiveViewListenerImpl liveViewListener = null;
@@ -52,6 +53,7 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     private ICameraStatusWatcher statusWatcher = null;
     private LiveViewClickTouchListener onClickTouchListener = null;
     private LiveViewControlPanelClickListener onPanelClickListener = null;
+    private LiveViewKeyPanelClickListener onKeyPanelClickListener = null;
 
     private TextView statusArea = null;
     private TextView focalLengthArea = null;
@@ -142,9 +144,11 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
             {
                 Log.v(TAG, "interfaceInjector is NULL...");
             }
-            if (onClickTouchListener == null)
+            Activity activity = this.getActivity();
+            Vibrator vibrator = (activity != null) ? (Vibrator) activity.getSystemService(VIBRATOR_SERVICE) : null;
+            if ((onClickTouchListener == null)&&(activity != null))
             {
-                onClickTouchListener = new LiveViewClickTouchListener(this.getActivity(), imageView, this, changeScene, interfaceProvider, this);
+                onClickTouchListener = new LiveViewClickTouchListener(activity, imageView, this, changeScene, interfaceProvider, this);
             }
             imageView.setOnClickListener(onClickTouchListener);
             imageView.setOnTouchListener(onClickTouchListener);
@@ -161,7 +165,7 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
 
             if (onPanelClickListener == null)
             {
-                onPanelClickListener = new LiveViewControlPanelClickListener(this.getActivity(), interfaceProvider);
+                onPanelClickListener = new LiveViewControlPanelClickListener(activity, interfaceProvider);
             }
             setPanelClickListener(view, R.id.takemodeTextView);
             setPanelClickListener(view, R.id.shutterSpeedTextView);
@@ -171,6 +175,29 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
             setPanelClickListener(view, R.id.whiteBalanceImageView);
             setPanelClickListener(view, R.id.setEffectImageView);
 
+            if (onKeyPanelClickListener == null)
+            {
+                onKeyPanelClickListener = new LiveViewKeyPanelClickListener(interfaceProvider, vibrator);
+            }
+            setKeyPanelClickListener(view, R.id.button_front_left);
+            setKeyPanelClickListener(view, R.id.button_front_right);
+            setKeyPanelClickListener(view, R.id.button_adjust_left);
+            setKeyPanelClickListener(view, R.id.button_adjust_enter);
+            setKeyPanelClickListener(view, R.id.button_adjust_right);
+            setKeyPanelClickListener(view, R.id.button_toggle_aeaf);
+            setKeyPanelClickListener(view, R.id.lever_ael_caf);
+            setKeyPanelClickListener(view, R.id.button_up);
+            setKeyPanelClickListener(view, R.id.button_left);
+            setKeyPanelClickListener(view, R.id.button_center_enter);
+            setKeyPanelClickListener(view, R.id.button_right);
+            setKeyPanelClickListener(view, R.id.button_down);
+            setKeyPanelClickListener(view, R.id.button_function_1);
+            setKeyPanelClickListener(view, R.id.button_function_2);
+            setKeyPanelClickListener(view, R.id.button_function_3);
+            setKeyPanelClickListener(view, R.id.button_plus);
+            setKeyPanelClickListener(view, R.id.button_minus);
+            setKeyPanelClickListener(view, R.id.button_playback);
+
             /*
             view.findViewById(R.id.show_preference_button).setOnClickListener(onClickTouchListener);
             view.findViewById(R.id.camera_property_settings_button).setOnClickListener(onClickTouchListener);
@@ -290,6 +317,21 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
         }
     }
 
+    private void setKeyPanelClickListener(View view, int id)
+    {
+        try
+        {
+            View button = view.findViewById(id);
+            if (button != null)
+            {
+                button.setOnClickListener(onKeyPanelClickListener);
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
 
     /**
      *
@@ -298,48 +340,13 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     {
         Log.v(TAG, "prepare()");
 
-        IDisplayInjector interfaceInjector;
-        interfaceInjector = interfaceProvider.getRicohGr2Infterface().getDisplayInjector();
-/*
-        ICameraConnection.CameraConnectionMethod connectionMethod = interfaceProvider.getCammeraConnectionMethod();
-        if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
-        {
-            interfaceInjector = interfaceProvider.getRicohGr2Infterface().getDisplayInjector();
-        }
-        else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
-        {
-            interfaceInjector = interfaceProvider.getSonyInterface().getDisplayInjector();
-        }
-        else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
-        {
-            interfaceInjector = interfaceProvider.getOlympusInterface().getDisplayInjector();
-        }
-*/
         this.changeScene = sceneSelector;
         this.interfaceProvider = interfaceProvider;
-        this.interfaceInjector = interfaceInjector;
-
-        //if  (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
-        {
-            this.liveViewControl = interfaceProvider.getRicohGr2Infterface().getLiveViewControl();
-            this.zoomLensControl = interfaceProvider.getRicohGr2Infterface().getZoomLensControl();
-            this.cameraInformation = interfaceProvider.getRicohGr2Infterface().getCameraInformation();
-            this.statusWatcher = interfaceProvider.getRicohGr2Infterface().getCameraStatusWatcher();
-        }
-/*
-        else  if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
-        {
-            this.liveViewControl = interfaceProvider.getSonyInterface().getSonyLiveViewControl();
-            this.zoomLensControl = interfaceProvider.getSonyInterface().getZoomLensControl();
-            this.cameraInformation = interfaceProvider.getSonyInterface().getCameraInformation();
-        }
-        else //  if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
-        {
-            this.liveViewControl = interfaceProvider.getOlympusInterface().getLiveViewControl();
-            this.zoomLensControl = interfaceProvider.getOlympusInterface().getZoomLensControl();
-            this.cameraInformation = interfaceProvider.getOlympusInterface().getCameraInformation();
-        }
-*/
+        this.interfaceInjector = interfaceProvider.getDisplayInjector();
+        this.liveViewControl = interfaceProvider.getLiveViewControl();
+        //this.zoomLensControl = interfaceProvider.getZoomLensControl();
+        this.cameraInformation = interfaceProvider.getCameraInformation();
+        this.statusWatcher = interfaceProvider.getCameraStatusWatcher();
     }
 
     /**
@@ -507,14 +514,15 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
             }
         }
 
-/*
         // 撮影モードかどうかを確認して、撮影モードではなかったら撮影モードに切り替える
+        ICameraRunMode changeRunModeExecutor = interfaceProvider.getCameraRunMode();
         if ((changeRunModeExecutor != null)&&(!changeRunModeExecutor.isRecordingMode()))
         {
-            // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。
+            // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。
             changeRunModeExecutor.changeRunMode(true);
         }
 
+/*
         // ステータスの変更を通知してもらう
         camera.setCameraStatusListener(statusListener);
 
@@ -630,25 +638,11 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
                 liveViewControl.changeLiveViewSize(preferences.getString(IPreferencePropertyAccessor.LIVE_VIEW_QUALITY, IPreferencePropertyAccessor.LIVE_VIEW_QUALITY_DEFAULT_VALUE));
                 isCameraScreen = preferences.getBoolean(IPreferencePropertyAccessor.GR2_DISPLAY_CAMERA_VIEW, true);
             }
-            ILiveViewListener lvListener = interfaceProvider.getRicohGr2Infterface().getLiveViewListener();
-/*
-            ILiveViewListener lvListener;
-            if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2)
-            {
-                lvListener = interfaceProvider.getRicohGr2Infterface().getLiveViewListener();
-            }
-            else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY)
-            {
-                lvListener = interfaceProvider.getSonyInterface().getLiveViewListener();
-            }
-            else  // if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
+            ILiveViewListener lvListener = interfaceProvider.getLiveViewListener();
+            if (lvListener != null)
             {
-                interfaceProvider.getOlympusLiveViewListener().setOlympusLiveViewListener(liveViewListener);
-                lvListener = liveViewListener;
+                lvListener.setCameraLiveImageView(imageView);
             }
-*/
-
-            lvListener.setCameraLiveImageView(imageView);
             liveViewControl.startLiveView(isCameraScreen);   // false : ライブビューのみ、 true : カメラ画面をミラー
 
             // ステータス監視も実施する