OSDN Git Service

フォーカスのエリアサイズを変更できるようにした。
authorMRSa <mrsa@myad.jp>
Thu, 23 May 2019 15:46:24 +0000 (00:46 +0900)
committerMRSa <mrsa@myad.jp>
Thu, 23 May 2019 15:46:24 +0000 (00:46 +0900)
app/src/main/java/net/osdn/gokigen/cameratest/camtest/CamTest.java
app/src/main/java/net/osdn/gokigen/cameratest/fuji/preference/FujiPreferenceFragment.java
app/src/main/java/net/osdn/gokigen/cameratest/fuji/preference/IPreferencePropertyAccessor.java
app/src/main/res/values/strings.xml
app/src/main/res/xml/preferences_fuji_x.xml

index ebd44f8..6c87ce6 100644 (file)
@@ -23,6 +23,7 @@ import net.osdn.gokigen.cameratest.fuji.statuses.IFujiStatus;
 import net.osdn.gokigen.cameratest.fuji.statuses.IFujiStatusNotify;
 
 import androidx.annotation.NonNull;
+import androidx.preference.EditTextPreference;
 import androidx.preference.PreferenceManager;
 
 public class CamTest implements View.OnClickListener, View.OnTouchListener, ILiveViewImage, IFujiStatusNotify
@@ -59,6 +60,25 @@ public class CamTest implements View.OnClickListener, View.OnTouchListener, ILiv
             SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity);
             final boolean isBothLiveView = preferences.getBoolean(IPreferencePropertyAccessor.FUJIX_DISPLAY_CAMERA_VIEW, false);
 
+            // フォーカス解像度を変えたい
+            String focusPoint = preferences.getString(IPreferencePropertyAccessor.FUJIX_FOCUS_XY, IPreferencePropertyAccessor.FUJIX_FOCUS_XY_DEFAULT_VALUE);
+            try
+            {
+                String[] focus = focusPoint.split(",");
+                if (focus.length == 2)
+                {
+                    maxPointLimitWidth = Integer.parseInt(focus[0]);
+                    maxPointLimitHeight = Integer.parseInt(focus[1]);
+                }
+                Log.v(TAG, "FOCUS RESOLUTION : " + maxPointLimitWidth + "," + maxPointLimitHeight);
+            }
+            catch (Exception e)
+            {
+                e.printStackTrace();
+                maxPointLimitWidth = 7.0f;
+                maxPointLimitHeight = 7.0f;
+            }
+
             showMessageText("START CONNECT");
             Thread thread = new Thread(new Runnable() {
                 @Override
index 37017eb..914a0cc 100644 (file)
@@ -8,6 +8,7 @@ import android.util.Log;
 import androidx.annotation.NonNull;
 import androidx.fragment.app.FragmentActivity;
 import androidx.preference.CheckBoxPreference;
+import androidx.preference.EditTextPreference;
 import androidx.preference.ListPreference;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceFragmentCompat;
@@ -16,6 +17,7 @@ import androidx.preference.PreferenceManager;
 import net.osdn.gokigen.cameratest.IApplicationControl;
 import net.osdn.gokigen.cameratest.R;
 
+import java.net.Inet4Address;
 import java.util.Map;
 
 public class FujiPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener
@@ -75,20 +77,45 @@ public class FujiPreferenceFragment extends PreferenceFragmentCompat implements
     @Override
     public void onCreatePreferences(Bundle savedInstanceState, String rootKey)
     {
-        setPreferencesFromResource(R.xml.preferences_fuji_x, rootKey);
-
-        ListPreference connectionMethod = (ListPreference) findPreference(IPreferencePropertyAccessor.CONNECTION_METHOD);
-        connectionMethod.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
-            @Override
-            public boolean onPreferenceChange(Preference preference, Object newValue) {
-                preference.setSummary(newValue + " ");
-                return (true);
-            }
-        });
-        connectionMethod.setSummary(connectionMethod.getValue() + " ");
+        try
+        {
+            setPreferencesFromResource(R.xml.preferences_fuji_x, rootKey);
 
-        findPreference("exit_application").setOnPreferenceClickListener(powerOffController);
+            ListPreference connectionMethod = (ListPreference) findPreference(IPreferencePropertyAccessor.CONNECTION_METHOD);
+            connectionMethod.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+                @Override
+                public boolean onPreferenceChange(Preference preference, Object newValue) {
+                    preference.setSummary(newValue + " ");
+                    return (true);
+                }
+            });
+            connectionMethod.setSummary(connectionMethod.getValue() + " ");
 
+            findPreference("exit_application").setOnPreferenceClickListener(powerOffController);
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        try
+        {
+            EditTextPreference focusResolition = (EditTextPreference) findPreference(IPreferencePropertyAccessor.FUJIX_FOCUS_XY);
+            String[] focus = focusResolition.getText().split(",");
+            if (focus.length != 2)
+            {
+                focusResolition.setText(IPreferencePropertyAccessor.FUJIX_FOCUS_XY_DEFAULT_VALUE);
+            }
+            else
+            {
+                int x = Integer.parseInt(focus[0]);
+                int y = Integer.parseInt(focus[1]);
+                focusResolition.setText(x + "," + y);
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
     }
 
     /**
@@ -111,6 +138,9 @@ public class FujiPreferenceFragment extends PreferenceFragmentCompat implements
             if (!items.containsKey(IPreferencePropertyAccessor.FUJIX_DISPLAY_CAMERA_VIEW)) {
                 editor.putBoolean(IPreferencePropertyAccessor.FUJIX_DISPLAY_CAMERA_VIEW, false);
             }
+            if (!items.containsKey(IPreferencePropertyAccessor.FUJIX_FOCUS_XY)) {
+                editor.putString(IPreferencePropertyAccessor.FUJIX_FOCUS_XY, IPreferencePropertyAccessor.FUJIX_FOCUS_XY_DEFAULT_VALUE);
+            }
             editor.apply();
         }
         catch (Exception e)
index 6005876..88f9305 100644 (file)
@@ -10,6 +10,7 @@ public interface IPreferencePropertyAccessor
     String CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW = "capture_both_camera_and_live_view";
 
     String FUJIX_DISPLAY_CAMERA_VIEW = "fujix_display_camera_view";
-
+    String FUJIX_FOCUS_XY = "fujix_focus_xy";
+    String FUJIX_FOCUS_XY_DEFAULT_VALUE = "7,7";
 
 }
index 0e21ddb..bcd1228 100644 (file)
@@ -37,6 +37,9 @@
     <string name="pref_fujix_display_camera_view">Use Camera Display</string>
     <string name="pref_fujix_display_camera_view_summary">Shows liveview screen both camera and smartphone.</string>
 
+    <string name="pref_fujix_focus_xy">Focus Area X,Y (default: 7,7)</string>
+    <string name="pref_summary_fujix_focus_xy">Set Focus Area resolution X,Y (default: 7,7)</string>
+
     <string name="pref_special_thanks">Special Thanks to : fuji-cam-wifi-tool</string>
 
 
index 2a8aa46..5bd3269 100644 (file)
             android:title="@string/pref_fujix_display_camera_view"
             android:summary="@string/pref_fujix_display_camera_view_summary"/>
 
+        <EditTextPreference
+            android:key="fujix_focus_xy"
+            android:title="@string/pref_fujix_focus_xy"
+            android:defaultValue="7,7"
+            android:summary="@string/pref_summary_fujix_focus_xy" />
+
         <CheckBoxPreference
             android:key="capture_both_camera_and_live_view"
             android:title="@string/pref_capture_both_camera_and_live_view" />