OSDN Git Service

Wifi設定をPreferenceから出せるようにした。Nikonの接続シーケンスまで確認。
[gokigen/PKRemote.git] / app / src / main / java / net / osdn / gokigen / pkremote / preference / fujix / FujiXPreferenceFragment.java
index 29defe9..ca6df77 100644 (file)
@@ -1,8 +1,10 @@
 package net.osdn.gokigen.pkremote.preference.fujix;
 
 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 java.util.Map;
@@ -22,13 +24,18 @@ import net.osdn.gokigen.pkremote.logcat.LogCatViewer;
 import net.osdn.gokigen.pkremote.preference.IPreferencePropertyAccessor;
 import net.osdn.gokigen.pkremote.scene.IChangeScene;
 
+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;
+
 /**
  *
  *
  */
-public class FujiXPreferenceFragment  extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener
+public class FujiXPreferenceFragment  extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, Preference.OnPreferenceClickListener
 {
     private final String TAG = toString();
+    private AppCompatActivity context = null;
     private SharedPreferences preferences = null;
     private CameraPowerOffFujiX powerOffController = null;
     private LogCatViewer logCatViewer = null;
@@ -64,6 +71,8 @@ public class FujiXPreferenceFragment  extends PreferenceFragmentCompat implement
 
             logCatViewer = new LogCatViewer(changeScene);
             logCatViewer.prepare();
+
+            this.context = context;
         }
         catch (Exception e)
         {
@@ -204,9 +213,10 @@ public class FujiXPreferenceFragment  extends PreferenceFragmentCompat implement
             });
             connectionMethod.setSummary(connectionMethod.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);
+        }
         catch (Exception e)
         {
             e.printStackTrace();
@@ -337,4 +347,27 @@ public class FujiXPreferenceFragment  extends PreferenceFragmentCompat implement
         }
     }
 
+    @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);
+    }
 }