OSDN Git Service

モード表示など更新。
authorMRSa <mrsa@myad.jp>
Mon, 13 Mar 2017 15:24:06 +0000 (00:24 +0900)
committerMRSa <mrsa@myad.jp>
Mon, 13 Mar 2017 15:24:06 +0000 (00:24 +0900)
app/src/main/java/jp/sfjp/gokigen/a01c/MainActivity.java
app/src/main/java/jp/sfjp/gokigen/a01c/liveview/OlyCameraLiveViewOnTouchListener.java
app/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/CameraStatusDisplay.java
app/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/CameraStatusListenerImpl.java
app/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/ICameraStatusSummary.java
app/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/IOlyCameraCoordinator.java
app/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/IOlyCameraProperty.java
app/src/main/java/jp/sfjp/gokigen/a01c/olycamerawrapper/OlyCameraCoordinator.java

index 8b0301f..a61d050 100644 (file)
@@ -1,6 +1,5 @@
 package jp.sfjp.gokigen.a01c;
 
-import android.content.SharedPreferences;
 import android.graphics.Color;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
@@ -69,6 +68,17 @@ public class MainActivity extends WearableActivity implements  IChangeScene, ISh
                     REQUEST_NEED_PERMISSIONS);
         }
 
+        if (!hasGps())
+        {
+            // GPS機能が搭載されていない場合...
+            if (Log.isLoggable(TAG, Log.DEBUG))
+            {
+                Log.d(TAG, "This hardware doesn't have GPS.");
+            }
+            // Fall back to functionality that does not use location or
+            // warn the user that location function is not available.
+        }
+
         listener = new OlyCameraLiveViewOnTouchListener(this);
 
         setupCameraCoordinator();
@@ -359,6 +369,7 @@ public class MainActivity extends WearableActivity implements  IChangeScene, ISh
                  final TextView textArea = (TextView) findViewById(areaId);
                  textArea.setTextColor(color);
                  textArea.setText(message);
+                 textArea.invalidate();
              }
         });
     }
@@ -407,4 +418,13 @@ public class MainActivity extends WearableActivity implements  IChangeScene, ISh
             }
         });
     }
+
+    /**
+     *
+     * @return true GPS搭載, false GPS非搭載
+     */
+    private boolean hasGps()
+    {
+        return (getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS));
+    }
 }
index b1f79a8..9094b7d 100644 (file)
@@ -3,7 +3,6 @@ package jp.sfjp.gokigen.a01c.liveview;
 
 import android.content.Context;
 import android.content.SharedPreferences;
-import android.graphics.Color;
 import android.support.v7.preference.PreferenceManager;
 import android.util.Log;
 import android.view.MotionEvent;
@@ -147,6 +146,35 @@ public class OlyCameraLiveViewOnTouchListener  implements View.OnClickListener,
 
     private void pushedButton1()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
+
+            case "A":
+                //
+                break;
+
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
+
+            case "ART":
+                //
+                break;
+
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
         // グリッドの表示 / 非表示
         changeShowGrid();
     }
@@ -154,35 +182,172 @@ public class OlyCameraLiveViewOnTouchListener  implements View.OnClickListener,
 
     private void pushedButton2()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
+
+            case "A":
+                //
+                break;
 
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
+
+            case "ART":
+                //
+                break;
 
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
     }
 
 
 
     private void pushedButton3()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
 
+            case "A":
+                //
+                break;
 
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
+
+            case "ART":
+                //
+                break;
+
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
     }
 
 
     private void pushedButton4()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
+
+            case "A":
+                //
+                break;
+
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
 
+            case "ART":
+                //
+                break;
 
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
     }
 
 
     private void pushedButton5()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
+
+            case "A":
+                //
+                break;
 
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
 
+            case "ART":
+                //
+                break;
+
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
     }
 
 
     private void pushedButton6()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
+
+            case "A":
+                //
+                break;
+
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
+
+            case "ART":
+                //
+                break;
+
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
         pushShutterButton();
     }
 
@@ -195,17 +360,77 @@ public class OlyCameraLiveViewOnTouchListener  implements View.OnClickListener,
 
     private void pushedArea2()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
+
+            case "A":
+                //
+                break;
+
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
+
+            case "ART":
+                //
+                break;
 
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
     }
 
     private void pushedArea3()
     {
+        String takeMode = getTakeMode();
+        switch (takeMode)
+        {
+            case "P":
+                //
+                break;
+
+            case "A":
+                //
+                break;
 
+            case "S":
+                //
+                break;
+
+            case "M":
+                //
+                break;
+
+            case "ART":
+                //
+                break;
+
+            case "iAuto":
+            case "movie":
+            default:
+                //
+                break;
+        }
+        changeAeLockMode();
     }
 
+    /**
+     *   テキスト表示エリア(設定画面を開くで固定)
+     */
     private void pushedArea4()
     {
-
+        showSettingsScreen();
     }
 
     /***************************************************************
@@ -213,6 +438,13 @@ public class OlyCameraLiveViewOnTouchListener  implements View.OnClickListener,
      *
      ***************************************************************/
 
+    private String getTakeMode()
+    {
+        IOlyCameraPropertyProvider propertyProxy = camera.getCameraPropertyProvider();
+        return (propertyProxy.getCameraPropertyValueTitle(propertyProxy.getCameraPropertyValue(IOlyCameraProperty.TAKE_MODE)));
+    }
+
+
     /**
      *   撮影モードの変更指示
      *   (P > A > S > S > ART > iAuto > ...)
@@ -258,7 +490,8 @@ public class OlyCameraLiveViewOnTouchListener  implements View.OnClickListener,
         propertyProxy.setCameraPropertyValue(IOlyCameraProperty.TAKE_MODE, targetMode);
         camera.unlockAutoFocus();
 
-        //
+        //  撮影モードの更新
+        camera.updateTakeMode();
     }
 
 
@@ -288,6 +521,15 @@ public class OlyCameraLiveViewOnTouchListener  implements View.OnClickListener,
     }
 
     /**
+     *   AE-Lock/Lock解除を行う
+     *
+     */
+    private void changeAeLockMode()
+    {
+        camera.toggleAutoExposure();
+    }
+
+    /**
      *  グリッドフレームの表示・非表示ボタンを更新する
      *
      */
@@ -307,4 +549,12 @@ public class OlyCameraLiveViewOnTouchListener  implements View.OnClickListener,
         statusDrawer.setButtonDrawable(buttonId, btnResId);
     }
 
+    /**
+     *   設定画面を開く
+     *
+     */
+    private void showSettingsScreen()
+    {
+        // TBD...
+    }
 }
index 7740292..0c91e5c 100644 (file)
@@ -1,10 +1,8 @@
 package jp.sfjp.gokigen.a01c.olycamerawrapper;
 
 import android.graphics.Color;
-import android.support.v4.app.INotificationSideChannel;
 import android.util.Log;
 
-import jp.co.olympus.camerakit.OLYCamera;
 import jp.sfjp.gokigen.a01c.IShowInformation;
 
 /**
@@ -123,7 +121,10 @@ class CameraStatusDisplay implements  ICameraStatusDisplay
         String propetyValue = propertyProxy.getCameraPropertyValueTitle(propertyProxy.getCameraPropertyValue(IOlyCameraProperty.AE_LOCK_STATE));
         if ((propetyValue != null)&&(aeLockStateArea != 0))
         {
-            informationObject.setMessage(aeLockStateArea, Color.WHITE, propetyValue);
+            if (propetyValue.equals("LOCK"))
+            {
+                informationObject.setMessage(aeLockStateArea, Color.WHITE, "AE-L");
+            }
         }
     }
 
index f31f0bd..82c4296 100644 (file)
@@ -4,8 +4,6 @@ import android.content.Context;
 import android.util.Log;
 
 import java.util.Locale;
-import java.util.Map;
-import java.util.TreeSet;
 
 import jp.co.olympus.camerakit.OLYCamera;
 import jp.co.olympus.camerakit.OLYCameraStatusListener;
@@ -110,7 +108,7 @@ public class CameraStatusListenerImpl implements OLYCameraStatusListener, ICamer
                 default:
                     // 他の値が変わった場合には、ログだけ残して何もしない。
                     Log.v(TAG, "onUpdateStatus() : " + name);
-                    display.updateCameraStatus(geCameraStatusMessage(camera, name));
+                    display.updateCameraStatus(getCameraStatusMessage(camera, name));
                     break;
             }
         }
@@ -137,6 +135,7 @@ public class CameraStatusListenerImpl implements OLYCameraStatusListener, ICamer
                 // 露出警告
                 message = message + " " + context.getString(R.string.exposure_metering_warning);
             }
+
         }
         catch (Exception e)
         {
@@ -152,8 +151,10 @@ public class CameraStatusListenerImpl implements OLYCameraStatusListener, ICamer
      *
      */
     @Override
-    public String geCameraStatusMessage(OLYCamera camera, String name)
+    public String getCameraStatusMessage(OLYCamera camera, String name)
     {
+        return (name);
+/*
         String message = name;
         String warn = "";
         try
@@ -195,5 +196,6 @@ public class CameraStatusListenerImpl implements OLYCameraStatusListener, ICamer
             e.printStackTrace();
         }
         return (message);
+*/
     }
 }
index 69a7cc7..43035f0 100644 (file)
@@ -5,6 +5,6 @@ import jp.co.olympus.camerakit.OLYCamera;
 
 public interface ICameraStatusSummary
 {
-    String geCameraStatusMessage(OLYCamera camera, String name);
+    String getCameraStatusMessage(OLYCamera camera, String name);
 
 }
index 3e44ed5..d99bfd2 100644 (file)
@@ -1,6 +1,5 @@
 package jp.sfjp.gokigen.a01c.olycamerawrapper;
 
-import android.content.Context;
 import android.view.MotionEvent;
 
 import jp.co.olympus.camerakit.OLYCameraLiveViewListener;
@@ -18,6 +17,9 @@ public interface IOlyCameraCoordinator
     void startLiveView();
     void stopLiveView();
 
+    /** 撮影モードの更新  **/
+    void updateTakeMode();
+
     /** オートフォーカス機能の実行 **/
     boolean driveAutoFocus(MotionEvent event);
     void unlockAutoFocus();
index b45fcc6..9a6175b 100644 (file)
@@ -13,8 +13,9 @@ public interface IOlyCameraProperty
     String BATTERY_LEVEL = "BATTERY_LEVEL";
     String AE_MODE = "AE";
     String AE_LOCK_STATE = "AE_LOCK_STATE";
-    String ISO_SENSITIVITY = "ISO";
+    String AF_LOCK_STATE = "AF_LOCK_STATE";
 
+    String ISO_SENSITIVITY = "ISO";
 
 
 
index 7c3ba90..15d7fc5 100644 (file)
@@ -1,7 +1,6 @@
 package jp.sfjp.gokigen.a01c.olycamerawrapper;
 
 import android.app.Activity;
-import android.graphics.Canvas;
 import android.graphics.PointF;
 import android.util.Log;
 import android.view.MotionEvent;
@@ -139,6 +138,16 @@ public class OlyCameraCoordinator implements IOlyCameraCoordinator, IIndicatorCo
     }
 
     /**
+     *   撮影モードの更新
+     *
+     */
+    @Override
+    public void updateTakeMode()
+    {
+        cameraStatusDisplay.updateTakeMode();
+    }
+
+    /**
      *   フォーカスロックの実行
      */
     public boolean driveAutoFocus(MotionEvent event)
@@ -217,6 +226,7 @@ public class OlyCameraCoordinator implements IOlyCameraCoordinator, IIndicatorCo
         {
             e.printStackTrace();
         }
+        cameraStatusDisplay.updateTakeMode();
     }
 
     /**
@@ -297,7 +307,7 @@ public class OlyCameraCoordinator implements IOlyCameraCoordinator, IIndicatorCo
     @Override
     public String getCameraStatusSummary(ICameraStatusSummary decoder)
     {
-        return (decoder.geCameraStatusMessage(camera, ""));
+        return (decoder.getCameraStatusMessage(camera, ""));
     }
 
     @Override