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;
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 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;
{
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);
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);
}
}
- /**
- *
- */
- 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();
}
/**
{
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);
public void startLiveView()
{
ICameraConnection.CameraConnectionMethod connectionMethod = interfaceProvider.getCammeraConnectionMethod();
-
if (liveViewControl == null)
{
if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC)
{
// ライブビューの開始
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();
@Override
public void updatedWBMode(final String wbMode)
{
- // とりあえず何もしない...
+ // とりあえず何もしない... 選択肢は以下
+ // auto, multiAuto, daylight, shade, cloud, tungsten, warmWhiteFluorescent, daylightFluorescent, dayWhiteFluorescent, coolWhiteFluorescent, incandescent,manual1, cte, custom
}
/**