OSDN Git Service

Fn1 と Fn3 の長押しに対応する。
authorMRSa <mrsa@myad.jp>
Fri, 14 Dec 2018 14:30:01 +0000 (23:30 +0900)
committerMRSa <mrsa@myad.jp>
Fri, 14 Dec 2018 14:30:01 +0000 (23:30 +0900)
app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraButtonControl.java
app/src/main/java/net/osdn/gokigen/gr2control/camera/ricohgr2/operation/RicohGr2CameraButtonControl.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewClickTouchListener.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewKeyPanelClickListener.java
build.gradle

index 9ce09d9..86996ab 100644 (file)
@@ -2,7 +2,7 @@ package net.osdn.gokigen.gr2control.camera;
 
 public interface ICameraButtonControl
 {
-    void pushedButton(String code);
+    boolean pushedButton(String code, boolean isLongPress);
 
     String SPECIAL_GREEN_BUTTON = "btn_green";
 
index 4dc7c31..767c225 100644 (file)
@@ -22,23 +22,22 @@ public class RicohGr2CameraButtonControl implements ICameraButtonControl
      *
      */
     @Override
-    public void pushedButton(String code)
+    public boolean pushedButton(String code, boolean isLongPress)
     {
-        pushButton(code);
+        return (pushButton(code, isLongPress));
     }
 
     /**
      *
      *
      */
-    private void pushButton(@NonNull final String keyName)
+    private boolean pushButton(@NonNull final String keyName, final boolean isLongPress)
     {
         Log.v(TAG, "pushButton()");
         if (keyName.equals(ICameraButtonControl.SPECIAL_GREEN_BUTTON))
         {
             // Greenボタンの処理を入れる
-            processGreenButton();
-            return;
+            return (processGreenButton(isLongPress));
         }
         try
         {
@@ -54,6 +53,11 @@ public class RicohGr2CameraButtonControl implements ICameraButtonControl
                     try
                     {
                         String cmd = "cmd=" + keyName;
+                        if (isLongPress)
+                        {
+                            // ボタン長押しの場合...
+                            cmd = cmd + " 1";
+                        }
                         String result = SimpleHttpClient.httpPost(buttonControlUrl, cmd, timeoutMs);
                         if ((result == null)||(result.length() < 1)) {
                             Log.v(TAG, "pushButton() reply is null. " + cmd);
@@ -73,9 +77,10 @@ public class RicohGr2CameraButtonControl implements ICameraButtonControl
         {
             e.printStackTrace();
         }
+        return (true);
     }
 
-    private void processGreenButton()
+    private boolean processGreenButton(boolean isLongPress)
     {
         Log.v(TAG, "processGreenButton()");
         try
@@ -111,5 +116,6 @@ public class RicohGr2CameraButtonControl implements ICameraButtonControl
         {
             e.printStackTrace();
         }
+        return (true);
     }
 }
index 257eb4a..8856a9d 100644 (file)
@@ -357,7 +357,7 @@ class LiveViewClickTouchListener implements View.OnClickListener, View.OnTouchLi
             if (btnCtl != null)
             {
                 // 'GREEN' ボタンが押されたこととする
-                btnCtl.pushedButton(ICameraButtonControl.SPECIAL_GREEN_BUTTON);
+                btnCtl.pushedButton(ICameraButtonControl.SPECIAL_GREEN_BUTTON, false);
             }
         }
         catch (Exception e)
index 836440d..a274402 100644 (file)
@@ -277,6 +277,7 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
             if (button != null)
             {
                 button.setOnClickListener(onKeyPanelClickListener);
+                button.setOnLongClickListener(onKeyPanelClickListener);
             }
         }
         catch (Exception e)
index 49e1ff9..d3172e6 100644 (file)
@@ -14,7 +14,7 @@ import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
  *
  *
  */
-class LiveViewKeyPanelClickListener  implements View.OnClickListener
+class LiveViewKeyPanelClickListener  implements View.OnClickListener, View.OnLongClickListener
 {
     private final String TAG = toString();
     private final IInterfaceProvider interfaceProvider;
@@ -32,7 +32,7 @@ class LiveViewKeyPanelClickListener  implements View.OnClickListener
         void updateToggleButton(boolean isOn);
         void updateLcdOnOff(boolean isOn);
         void updateAFLlever(boolean isCaf);
-    };
+    }
 
     LiveViewKeyPanelClickListener(@NonNull IInterfaceProvider interfaceProvider, @Nullable KeyPanelFeedback feedback, @Nullable Vibrator vibrator)
     {
@@ -44,6 +44,13 @@ class LiveViewKeyPanelClickListener  implements View.OnClickListener
     @Override
     public void onClick(View view)
     {
+        onButtonClick(view, false);
+    }
+
+
+    private boolean onButtonClick(View view, boolean isLongPress)
+    {
+        boolean ret = true;
         try
         {
             String keyId = "";
@@ -135,7 +142,8 @@ class LiveViewKeyPanelClickListener  implements View.OnClickListener
                     keyId = decideLCDOnOff();
                     break;
                 default:
-                    Log.v(TAG, "onClick() : " + id);
+                    Log.v(TAG, "onClick() : " + id + " [long:" + isLongPress + "]");
+                    ret = false;
                     break;
             }
             if (keyId.length() > 1)
@@ -143,7 +151,7 @@ class LiveViewKeyPanelClickListener  implements View.OnClickListener
                 ICameraButtonControl buttonControl = interfaceProvider.getButtonControl();
                 if (buttonControl != null)
                 {
-                    buttonControl.pushedButton(keyId);
+                    ret = buttonControl.pushedButton(keyId, isLongPress);
                     if (vibrator != null)
                     {
                         vibrator.vibrate(30);
@@ -154,7 +162,31 @@ class LiveViewKeyPanelClickListener  implements View.OnClickListener
         catch (Exception e)
         {
             e.printStackTrace();
+            ret = false;
+        }
+        return (ret);
+    }
+
+    /**
+     *    ボタンの長押し処理
+     *
+     */
+    @Override
+    public boolean onLongClick(View view)
+    {
+        try
+        {
+            int id = view.getId();
+            if ((id == R.id.button_function_1)||(id == R.id.button_function_3))
+            {
+                return (onButtonClick(view, true));
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
         }
+        return (false);
     }
 
     private String decideAccLock()
index 4e8009d..8d3ef8e 100644 (file)
@@ -7,7 +7,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.2.0'
+        classpath 'com.android.tools.build:gradle:3.2.1'
         
 
         // NOTE: Do not place your application dependencies here; they belong