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 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;
/**
* 撮影用ライブビュー画面
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;
private ICameraStatusWatcher statusWatcher = null;
private LiveViewClickTouchListener onClickTouchListener = null;
private LiveViewControlPanelClickListener onPanelClickListener = null;
+ private LiveViewKeyPanelClickListener onKeyPanelClickListener = null;
private TextView statusArea = null;
private TextView focalLengthArea = null;
{
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);
if (onPanelClickListener == null)
{
- onPanelClickListener = new LiveViewControlPanelClickListener(this.getActivity(), interfaceProvider);
+ onPanelClickListener = new LiveViewControlPanelClickListener(activity, interfaceProvider);
}
setPanelClickListener(view, R.id.takemodeTextView);
setPanelClickListener(view, R.id.shutterSpeedTextView);
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);
}
}
+ private void setKeyPanelClickListener(View view, int id)
+ {
+ try
+ {
+ View button = view.findViewById(id);
+ if (button != null)
+ {
+ button.setOnClickListener(onKeyPanelClickListener);
+ }
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
/**
*
{
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();
}
/**
}
}
-/*
// 撮影モードかどうかを確認して、撮影モードではなかったら撮影モードに切り替える
+ ICameraRunMode changeRunModeExecutor = interfaceProvider.getCameraRunMode();
if ((changeRunModeExecutor != null)&&(!changeRunModeExecutor.isRecordingMode()))
{
- // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。
+ // Runモードを切り替える。(でも切り替えると、設定がクリアされてしまう...。)
changeRunModeExecutor.changeRunMode(true);
}
+/*
// ステータスの変更を通知してもらう
camera.setCameraStatusListener(statusListener);
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 : カメラ画面をミラー
// ステータス監視も実施する