OSDN Git Service

ちょっとだけ、preferenceの準備。
[gokigen/FujiCam.git] / app / src / main / java / net / osdn / gokigen / cameratest / pages / SectionsPagerAdapter.java
index ec0b71d..3e8a94d 100644 (file)
@@ -1,7 +1,13 @@
 package net.osdn.gokigen.cameratest.pages;
 
+import android.content.Context;
+
+import net.osdn.gokigen.cameratest.IApplicationControl;
 import net.osdn.gokigen.cameratest.camtest.CamTest;
+import net.osdn.gokigen.cameratest.fuji.preference.FujiPreferenceFragment;
+import net.osdn.gokigen.cameratest.logcat.LogCatFragment;
 
+import androidx.annotation.NonNull;
 import androidx.fragment.app.Fragment;
 import androidx.fragment.app.FragmentManager;
 import androidx.fragment.app.FragmentPagerAdapter;
@@ -12,25 +18,49 @@ import androidx.fragment.app.FragmentPagerAdapter;
  */
 public class SectionsPagerAdapter extends FragmentPagerAdapter
 {
+    private final Context context;
     private final CamTest testTarget;
-    public SectionsPagerAdapter(FragmentManager fm, CamTest testTarget)
+    private final IApplicationControl appControl;
+    private LogCatFragment logCatFragment = null;
+    private FujiPreferenceFragment preferenceFragment = null;
+    private TestViewFragment testViewFragment = null;
+    public SectionsPagerAdapter(@NonNull Context context, FragmentManager fm, CamTest testTarget, IApplicationControl control)
     {
         super(fm);
+        this.context = context;
         this.testTarget = testTarget;
+        this.appControl = control;
     }
 
     @Override
-    public Fragment getItem(int position)
+    public @NonNull Fragment getItem(int position)
     {
-        // getItem is called to instantiate the fragment for the given page.
-        // Return a TestViewFragment (defined as a static inner class below).
-        return TestViewFragment.newInstance((position + 1), testTarget);
+        if (position == 2)
+        {
+            if (logCatFragment == null)
+            {
+                logCatFragment = LogCatFragment.newInstance();
+            }
+            return (logCatFragment);
+        }
+        else if (position == 1)
+        {
+            if (preferenceFragment == null)
+            {
+                preferenceFragment = FujiPreferenceFragment.newInstance(context, appControl);
+            }
+            return (preferenceFragment);
+        }
+        if (testViewFragment == null)
+        {
+            testViewFragment = TestViewFragment.newInstance((position + 1), testTarget);
+        }
+        return (testViewFragment);
     }
 
     @Override
     public int getCount()
     {
-        // Show only one page.
-        return 1;
+        return 3;
     }
 }