OSDN Git Service

物理ボタン(音量+)キーでシャッターが切れるようにする。
authorMRSa <mrsa@myad.jp>
Sat, 3 Aug 2019 14:51:30 +0000 (23:51 +0900)
committerMRSa <mrsa@myad.jp>
Sat, 3 Aug 2019 14:51:30 +0000 (23:51 +0900)
app/build.gradle
app/src/main/AndroidManifest.xml
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewClickTouchListener.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java
build.gradle

index 0359ad6..7d5921b 100644 (file)
@@ -1,13 +1,13 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 28
+    compileSdkVersion 29
     defaultConfig {
         applicationId "net.osdn.gokigen.gr2control"
         minSdkVersion 14
-        targetSdkVersion 28
-        versionCode 1002001
-        versionName "1.2.1"
+        targetSdkVersion 29
+        versionCode 1002002
+        versionName "1.2.2"
     }
     buildTypes {
         release {
index 25fbb61..c7eb69b 100644 (file)
@@ -14,6 +14,7 @@
         android:label="@string/app_name"
         android:roundIcon="@mipmap/ic_launcher_round"
         android:usesCleartextTraffic="true"
+        android:requestLegacyExternalStorage="true"
         android:supportsRtl="true"
         android:theme="@style/AppTheme">
         <activity android:name=".Gr2ControlMain">
index 18ba1c8..7e013a7 100644 (file)
@@ -3,6 +3,7 @@ package net.osdn.gokigen.gr2control.liveview;
 import android.app.Activity;
 import android.content.SharedPreferences;
 import android.util.Log;
+import android.view.KeyEvent;
 import android.view.MotionEvent;
 import android.view.View;
 
@@ -24,7 +25,7 @@ import androidx.preference.PreferenceManager;
  *
  *
  */
-class LiveViewClickTouchListener implements View.OnClickListener, View.OnTouchListener
+class LiveViewClickTouchListener implements View.OnClickListener, View.OnTouchListener, View.OnKeyListener
 {
     private final String TAG = toString();
     private final Activity context;
@@ -383,4 +384,27 @@ class LiveViewClickTouchListener implements View.OnClickListener, View.OnTouchLi
         Log.v(TAG, "onTouch() : " + id + " (" + motionEvent.getX() + "," + motionEvent.getY() + ")");
         return ((id == R.id.cameraLiveImageView)&&(focusingControl.driveAutoFocus(motionEvent)));
     }
+
+    /**
+     *   ボタンを押したときの対応
+     *
+     */
+    @Override
+    public boolean onKey(View view, int keyCode, @NonNull KeyEvent keyEvent)
+    {
+        Log.v(TAG, "onKey() : " + keyCode);
+        try
+        {
+            if ((keyEvent.getAction() == KeyEvent.ACTION_DOWN)&&
+                    ((keyCode == KeyEvent.KEYCODE_VOLUME_UP)||(keyCode == KeyEvent.KEYCODE_CAMERA)))
+            {
+                pushedShutterButton();
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        return (false);
+    }
 }
index 3c576fc..4264d45 100644 (file)
@@ -163,6 +163,10 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
             imageView.setOnClickListener(onClickTouchListener);
             imageView.setOnTouchListener(onClickTouchListener);
 
+            // キーイベントを拾うことにする
+            view.setOnKeyListener(onClickTouchListener);
+            view.setFocusableInTouchMode(true);
+
             setOnClickListener(view, R.id.hideControlPanelTextView);
             setOnClickListener(view, R.id.showControlPanelTextView);
             setOnClickListener(view, R.id.showKeyPanelImageView);
@@ -969,7 +973,7 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     @Override
     public void updateFocusedStatus(final boolean focused, final boolean focusLocked)
     {
-        Activity activity = getActivity();
+        final Activity activity = getActivity();
         try
         {
             if (activity != null)
@@ -979,7 +983,7 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
                     public void run() {
                         try
                         {
-                            ImageView view = getActivity().findViewById(R.id.focusUnlockImageView);
+                            ImageView view = activity.findViewById(R.id.focusUnlockImageView);
                             if (focused) {
                                 Drawable icon = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_center_focus_strong_black_24dp, null);
                                 if (icon != null) {
index a868baa..9c3977b 100644 (file)
@@ -7,7 +7,7 @@ buildscript {
         jcenter()
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:3.4.0'
+        classpath 'com.android.tools.build:gradle:3.4.2'
         
 
         // NOTE: Do not place your application dependencies here; they belong