OSDN Git Service

とりあえず、Power Shot Zoomから画像をダウンロードできるところまで。
[gokigen/PKRemote.git] / app / src / main / java / net / osdn / gokigen / pkremote / preference / olympus / OpcPreferenceFragment.java
index 019cef7..97b8e67 100644 (file)
@@ -3,8 +3,10 @@ package net.osdn.gokigen.pkremote.preference.olympus;
 
 import android.app.ProgressDialog;
 import android.content.Context;
+import android.content.Intent;
 import android.content.SharedPreferences;
 import android.os.Bundle;
+import android.provider.Settings;
 import android.util.Log;
 
 import net.osdn.gokigen.pkremote.R;
@@ -32,13 +34,18 @@ import androidx.preference.PreferenceFragmentCompat;
 import androidx.preference.PreferenceManager;
 import jp.co.olympus.camerakit.OLYCamera;
 
+import static net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor.DEBUG_INFO;
+import static net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor.EXIT_APPLICATION;
+import static net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor.WIFI_SETTINGS;
+
 /**
  *   SettingFragment
  *
  */
-public class OpcPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, OpcPreferenceSynchronizer.IPropertySynchronizeCallback
+public class OpcPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, OpcPreferenceSynchronizer.IPropertySynchronizeCallback, Preference.OnPreferenceClickListener
 {
     private final String TAG = toString();
+    private AppCompatActivity context = null;
     private IOlyCameraPropertyProvider propertyInterface = null;
     private ICameraHardwareStatus hardwareStatusInterface = null;
     private ICameraRunMode changeRunModeExecutor = null;
@@ -77,6 +84,8 @@ public class OpcPreferenceFragment extends PreferenceFragmentCompat implements S
         powerOffController.prepare();
         logCatViewer = new LogCatViewer(changeScene);
         logCatViewer.prepare();
+
+        this.context = context;
     }
 
     /**
@@ -138,7 +147,7 @@ public class OpcPreferenceFragment extends PreferenceFragmentCompat implements S
             editor.putBoolean(IPreferencePropertyAccessor.SHARE_AFTER_SAVE, false);
         }
         if (!items.containsKey(IPreferencePropertyAccessor.USE_PLAYBACK_MENU)) {
-            editor.putBoolean(IPreferencePropertyAccessor.USE_PLAYBACK_MENU, false);
+            editor.putBoolean(IPreferencePropertyAccessor.USE_PLAYBACK_MENU, true);
         }
         if (!items.containsKey(IPreferencePropertyAccessor.GR2_DISPLAY_CAMERA_VIEW)) {
             editor.putBoolean(IPreferencePropertyAccessor.GR2_DISPLAY_CAMERA_VIEW, true);
@@ -152,6 +161,50 @@ public class OpcPreferenceFragment extends PreferenceFragmentCompat implements S
         if (!items.containsKey(IPreferencePropertyAccessor.PENTAX_CAPTURE_AFTER_AF)) {
             editor.putBoolean(IPreferencePropertyAccessor.PENTAX_CAPTURE_AFTER_AF, false);
         }
+        if (!items.containsKey(IPreferencePropertyAccessor.SMALL_PICTURE_SIZE)) {
+            editor.putString(IPreferencePropertyAccessor.SMALL_PICTURE_SIZE, IPreferencePropertyAccessor.SMALL_PICTURE_SIZE_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.PEN_SMALL_PICTURE_SIZE)) {
+            editor.putString(IPreferencePropertyAccessor.PEN_SMALL_PICTURE_SIZE, IPreferencePropertyAccessor.PEN_SMALL_PICTURE_SIZE_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.GET_SMALL_PICTURE_AS_VGA))
+        {
+            editor.putBoolean(IPreferencePropertyAccessor.GET_SMALL_PICTURE_AS_VGA, false);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.USE_SMARTPHONE_TRANSFER_MODE))
+        {
+            editor.putBoolean(IPreferencePropertyAccessor.USE_SMARTPHONE_TRANSFER_MODE, false);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.RICOH_GET_PICS_LIST_TIMEOUT))
+        {
+            editor.putString(IPreferencePropertyAccessor.RICOH_GET_PICS_LIST_TIMEOUT, IPreferencePropertyAccessor.RICOH_GET_PICS_LIST_TIMEOUT_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.USE_OSC_THETA_V21))
+        {
+            editor.putBoolean(IPreferencePropertyAccessor.USE_OSC_THETA_V21, false);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.PIXPRO_HOST_IP))
+        {
+            editor.putString(IPreferencePropertyAccessor.PIXPRO_HOST_IP, IPreferencePropertyAccessor.PIXPRO_HOST_IP_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.PIXPRO_COMMAND_PORT))
+        {
+            editor.putString(IPreferencePropertyAccessor.PIXPRO_COMMAND_PORT, IPreferencePropertyAccessor.PIXPRO_COMMAND_PORT_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.PIXPRO_GET_PICS_LIST_TIMEOUT))
+        {
+            editor.putString(IPreferencePropertyAccessor.PIXPRO_GET_PICS_LIST_TIMEOUT, IPreferencePropertyAccessor.PIXPRO_GET_PICS_LIST_TIMEOUT_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.THUMBNAIL_IMAGE_CACHE_SIZE))
+        {
+            editor.putString(IPreferencePropertyAccessor.THUMBNAIL_IMAGE_CACHE_SIZE, IPreferencePropertyAccessor.THUMBNAIL_IMAGE_CACHE_SIZE_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.CANON_HOST_IP)) {
+            editor.putString(IPreferencePropertyAccessor.CANON_HOST_IP, IPreferencePropertyAccessor.CANON_HOST_IP_DEFAULT_VALUE);
+        }
+        if (!items.containsKey(IPreferencePropertyAccessor.CANON_CONNECTION_SEQUENCE)) {
+            editor.putString(IPreferencePropertyAccessor.CANON_CONNECTION_SEQUENCE, IPreferencePropertyAccessor.CANON_CONNECTION_SEQUENCE_DEFAULT_VALUE);
+        }
         editor.apply();
     }
 
@@ -195,9 +248,20 @@ public class OpcPreferenceFragment extends PreferenceFragmentCompat implements S
                 }
             });
             connectionMethod.setSummary(connectionMethod.getValue() + " ");
+
+            ListPreference smallPictureSize = (ListPreference) findPreference(IPreferencePropertyAccessor.SMALL_PICTURE_SIZE);
+            smallPictureSize.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
+                @Override
+                public boolean onPreferenceChange(Preference preference, Object newValue) {
+                    preference.setSummary(newValue + " ");
+                    return (true);
+                }
+            });
+            smallPictureSize.setSummary(smallPictureSize.getValue() + " ");
         }
-        findPreference("exit_application").setOnPreferenceClickListener(powerOffController);
-        findPreference("debug_info").setOnPreferenceClickListener(logCatViewer);
+        findPreference(EXIT_APPLICATION).setOnPreferenceClickListener(powerOffController);
+        findPreference(DEBUG_INFO).setOnPreferenceClickListener(logCatViewer);
+        findPreference(WIFI_SETTINGS).setOnPreferenceClickListener(this);
     }
 
     /**
@@ -362,7 +426,7 @@ public class OpcPreferenceFragment extends PreferenceFragmentCompat implements S
                     break;
 
                 case IPreferencePropertyAccessor.USE_PLAYBACK_MENU:
-                    value = preferences.getBoolean(key, false);
+                    value = preferences.getBoolean(key, true);
                     Log.v(TAG, " " + key + " , " + value);
                     break;
 
@@ -488,4 +552,28 @@ public class OpcPreferenceFragment extends PreferenceFragmentCompat implements S
             }
         });
     }
+
+    @Override
+    public boolean onPreferenceClick(Preference preference)
+    {
+        try
+        {
+            String preferenceKey = preference.getKey();
+            if (preferenceKey.contains(WIFI_SETTINGS))
+            {
+                // Wifi 設定画面を表示する
+                Log.v(TAG, " onPreferenceClick : " + preferenceKey);
+                if (context != null)
+                {
+                    context.startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS));
+                }
+            }
+            return (true);
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        return (false);
+    }
 }