OSDN Git Service

ワーニング除去。
[gokigen/Gr2Control.git] / app / src / main / java / net / osdn / gokigen / gr2control / liveview / LiveViewFragment.java
index 54d0c5e..b3ba8b9 100644 (file)
@@ -4,9 +4,12 @@ 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;
+import android.support.v7.app.ActionBar;
+import android.support.v7.app.AppCompatActivity;
 import android.support.v7.preference.PreferenceManager;
 import android.util.Log;
 import android.view.LayoutInflater;
@@ -20,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;
 
 /**
  *  撮影用ライブビュー画面
@@ -38,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;
@@ -49,6 +52,8 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     private ICameraInformation cameraInformation = null;
     private ICameraStatusWatcher statusWatcher = null;
     private LiveViewClickTouchListener onClickTouchListener = null;
+    private LiveViewControlPanelClickListener onPanelClickListener = null;
+    private LiveViewKeyPanelClickListener onKeyPanelClickListener = null;
 
     private TextView statusArea = null;
     private TextView focalLengthArea = null;
@@ -139,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);
@@ -153,6 +160,43 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
             setOnClickListener(view, R.id.shutter_button);
             setOnClickListener(view, R.id.focusUnlockImageView);
             setOnClickListener(view, R.id.show_images_button);
+            setOnClickListener(view, R.id.camera_power_off_button);
+            setOnClickListener(view, R.id.show_preference_button);
+
+            if (onPanelClickListener == null)
+            {
+                onPanelClickListener = new LiveViewControlPanelClickListener(activity, interfaceProvider);
+            }
+            setPanelClickListener(view, R.id.takemodeTextView);
+            setPanelClickListener(view, R.id.shutterSpeedTextView);
+            setPanelClickListener(view, R.id.apertureValueTextView);
+            setPanelClickListener(view, R.id.exposureCompensationTextView);
+            setPanelClickListener(view, R.id.aeModeTextView);
+            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);
@@ -257,55 +301,52 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
         }
     }
 
-    /**
-     *
-     */
-    private void prepare(IChangeScene sceneSelector, IInterfaceProvider interfaceProvider)
+    private void setPanelClickListener(View view, int id)
     {
-        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)
+        try
         {
-            interfaceInjector = interfaceProvider.getSonyInterface().getDisplayInjector();
+            View button = view.findViewById(id);
+            if (button != null)
+            {
+                button.setOnClickListener(onPanelClickListener);
+            }
         }
-        else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
+        catch (Exception e)
         {
-            interfaceInjector = interfaceProvider.getOlympusInterface().getDisplayInjector();
+            e.printStackTrace();
         }
-*/
-        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)
+    private void setKeyPanelClickListener(View view, int id)
+    {
+        try
         {
-            this.liveViewControl = interfaceProvider.getSonyInterface().getSonyLiveViewControl();
-            this.zoomLensControl = interfaceProvider.getSonyInterface().getZoomLensControl();
-            this.cameraInformation = interfaceProvider.getSonyInterface().getCameraInformation();
+            View button = view.findViewById(id);
+            if (button != null)
+            {
+                button.setOnClickListener(onKeyPanelClickListener);
+            }
         }
-        else //  if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
+        catch (Exception e)
         {
-            this.liveViewControl = interfaceProvider.getOlympusInterface().getLiveViewControl();
-            this.zoomLensControl = interfaceProvider.getOlympusInterface().getZoomLensControl();
-            this.cameraInformation = interfaceProvider.getOlympusInterface().getCameraInformation();
+            e.printStackTrace();
         }
-*/
+    }
+
+    /**
+     *
+     */
+    private void prepare(IChangeScene sceneSelector, IInterfaceProvider interfaceProvider)
+    {
+        Log.v(TAG, "prepare()");
+
+        this.changeScene = sceneSelector;
+        this.interfaceProvider = interfaceProvider;
+        this.interfaceInjector = interfaceProvider.getDisplayInjector();
+        this.liveViewControl = interfaceProvider.getLiveViewControl();
+        //this.zoomLensControl = interfaceProvider.getZoomLensControl();
+        this.cameraInformation = interfaceProvider.getCameraInformation();
+        this.statusWatcher = interfaceProvider.getCameraStatusWatcher();
     }
 
     /**
@@ -462,14 +503,26 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     {
         super.onResume();
         Log.v(TAG, "onResume() Start");
-/*
+
+        AppCompatActivity activity = (AppCompatActivity)getActivity();
+        if (activity != null)
+        {
+            ActionBar bar = activity.getSupportActionBar();
+            if (bar != null)
+            {
+                bar.hide();   // ActionBarの表示を消す
+            }
+        }
+
         // 撮影モードかどうかを確認して、撮影モードではなかったら撮影モードに切り替える
+        ICameraRunMode changeRunModeExecutor = interfaceProvider.getCameraRunMode();
         if ((changeRunModeExecutor != null)&&(!changeRunModeExecutor.isRecordingMode()))
         {
-            // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。
+            // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。
             changeRunModeExecutor.changeRunMode(true);
         }
 
+/*
         // ステータスの変更を通知してもらう
         camera.setCameraStatusListener(statusListener);
 
@@ -561,7 +614,6 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     public void startLiveView()
     {
         ICameraConnection.CameraConnectionMethod connectionMethod = interfaceProvider.getCammeraConnectionMethod();
-
         if (liveViewControl == null)
         {
             if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
@@ -579,30 +631,19 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
         {
             // ライブビューの開始
             Context context = getContext();
+            boolean isCameraScreen = true;
             if (context != null)
             {
                 SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
                 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();
+            liveViewControl.startLiveView(isCameraScreen);   // false : ライブビューのみ、 true : カメラ画面をミラー
 
             // ステータス監視も実施する
             startWatchStatus();
@@ -829,7 +870,8 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     @Override
     public void updatedWBMode(final String wbMode)
     {
-        // とりあえず何もしない...
+        // とりあえず何もしない... 選択肢は以下
+        // auto, multiAuto, daylight, shade, cloud, tungsten, warmWhiteFluorescent, daylightFluorescent, dayWhiteFluorescent, coolWhiteFluorescent, incandescent,manual1, cte, custom
     }
 
     /**