OSDN Git Service

フラッシュモードとセルフタイマーの設定を変更できるようにする。
authorMRSa <mrsa@myad.jp>
Mon, 4 May 2020 06:51:02 +0000 (15:51 +0900)
committerMRSa <mrsa@myad.jp>
Mon, 4 May 2020 06:51:02 +0000 (15:51 +0900)
app/src/main/java/net/osdn/gokigen/gr2control/camera/ICameraStatus.java
app/src/main/java/net/osdn/gokigen/gr2control/camera/fuji_x/wrapper/FujiXStatusHolder.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewControlPanelClickListener.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFujiXKeyPanelClickListener.java
app/src/main/res/drawable/ic_flash_on_black_24dp.xml [new file with mode: 0644]
app/src/main/res/layout-land/fragment_live_view.xml
app/src/main/res/layout/fragment_live_view.xml
app/src/main/res/values-ja/arrays.xml
app/src/main/res/values/arrays.xml

index 76b121b..31e1780 100644 (file)
@@ -41,6 +41,7 @@ public interface ICameraStatus
     String ISO_SENSITIVITY = "sv";
     String EXPREV = "xv";
     String FLASH_XV = "flashxv";
     String ISO_SENSITIVITY = "sv";
     String EXPREV = "xv";
     String FLASH_XV = "flashxv";
+    String SELF_TIMER = "selftimer";
 
     String TAKE_MODE_MOVIE = "movie";
 }
 
     String TAKE_MODE_MOVIE = "movie";
 }
index 75b8bbe..3ce1723 100644 (file)
@@ -756,7 +756,14 @@ class FujiXStatusHolder
         {
             return (getAvailableResourceArrayItemList(R.array.fuji_x_iso_sensitivity));
         }
         {
             return (getAvailableResourceArrayItemList(R.array.fuji_x_iso_sensitivity));
         }
-
+        if (listKey.matches(ICameraStatus.FLASH_XV))
+        {
+            return (getAvailableResourceArrayItemList(R.array.fuji_x_flash_control));
+        }
+        if (listKey.matches(ICameraStatus.SELF_TIMER))
+        {
+            return (getAvailableResourceArrayItemList(R.array.fuji_x_timer_control));
+        }
 
         /////  選択可能なステータスの一覧を取得する : でも以下はアイテム名の一覧... /////
         /*
 
         /////  選択可能なステータスの一覧を取得する : でも以下はアイテム名の一覧... /////
         /*
@@ -810,6 +817,7 @@ class FujiXStatusHolder
         String[] items = activity.getResources().getStringArray(id);
         for (String item : items)
         {
         String[] items = activity.getResources().getStringArray(id);
         for (String item : items)
         {
+            Log.v(TAG, " SELECTION : " + item);
             selection.add(item);
         }
         return (selection);
             selection.add(item);
         }
         return (selection);
@@ -893,6 +901,58 @@ class FujiXStatusHolder
         return (iso);
     }
 
         return (iso);
     }
 
+    private String getCurrentFlashStatus()
+    {
+        String flash = "";
+        try
+        {
+            int current = statusHolder.get(IFujiXCameraProperties.FLASH);
+            String[] items = activity.getResources().getStringArray(R.array.fuji_x_flash_control);
+            String[] itemValues = activity.getResources().getStringArray(R.array.fuji_x_flash_control_value);
+            int index = 0;
+            for (String itemValue : itemValues)
+            {
+                int itemValueInt = Integer.parseInt(itemValue, 16);
+                if (itemValueInt == current)
+                {
+                    return (items[index]);
+                }
+                index++;
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        return (flash);
+    }
+
+    private String getCurrentSelfTimerStatus()
+    {
+        String selfTimer = "";
+        try
+        {
+            int current = statusHolder.get(IFujiXCameraProperties.SELF_TIMER);
+            String[] items = activity.getResources().getStringArray(R.array.fuji_x_timer_control);
+            String[] itemValues = activity.getResources().getStringArray(R.array.fuji_x_timer_control_value);
+            int index = 0;
+            for (String itemValue : itemValues)
+            {
+                int itemValueInt = Integer.parseInt(itemValue, 16);
+                if (itemValueInt == current)
+                {
+                    return (items[index]);
+                }
+                index++;
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+        return (selfTimer);
+    }
+
     private void setEffectItem(String value)
     {
         try
     private void setEffectItem(String value)
     {
         try
@@ -953,14 +1013,72 @@ class FujiXStatusHolder
             int index = 0;
             for (String item : items)
             {
             int index = 0;
             for (String item : items)
             {
-                Log.v(TAG, " ===== ISO : " + value + " " + item + " ===== ");
+                //Log.v(TAG, " ===== ISO : " + value + " " + item + " ===== ");
                 if (item.matches(value))
                 {
                     // 見つかった! この値を設定する
                     String itemValue = itemValues[index];
                     int itemValueInt = (int) Long.parseLong(itemValue,16);
                     logcat(" SET ISO SENSITIVITY : " + value + " " + itemValueInt);
                 if (item.matches(value))
                 {
                     // 見つかった! この値を設定する
                     String itemValue = itemValues[index];
                     int itemValueInt = (int) Long.parseLong(itemValue,16);
                     logcat(" SET ISO SENSITIVITY : " + value + " " + itemValueInt);
-                    publisher.enqueueCommand(new SetPropertyValue(new FujiXReplyMessageReceiver(" Set ISO", true), IFujiXCameraProperties.ISO, 8, itemValueInt));
+                    publisher.enqueueCommand(new SetPropertyValue(new FujiXReplyMessageReceiver(" Set ISO", true), IFujiXCameraProperties.ISO, 4, itemValueInt));
+                    return;
+                }
+                index++;
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    private void setCurrentFlashStatus(String value)
+    {
+        // ISO感度を設定する
+        try
+        {
+            String[] items = activity.getResources().getStringArray(R.array.fuji_x_flash_control);
+            String[] itemValues = activity.getResources().getStringArray(R.array.fuji_x_flash_control_value);
+            int index = 0;
+            for (String item : items)
+            {
+                Log.v(TAG, " ===== FLASH : " + value + " " + item + " ===== ");
+                if (item.matches(value))
+                {
+                    // 見つかった! この値を設定する
+                    String itemValue = itemValues[index];
+                    int itemValueInt = (int) Long.parseLong(itemValue,16);
+                    logcat(" SET FLASH : " + value + " " + itemValueInt);
+                    publisher.enqueueCommand(new SetPropertyValue(new FujiXReplyMessageReceiver(" Set FLASH", true), IFujiXCameraProperties.FLASH, 4, itemValueInt));
+                    return;
+                }
+                index++;
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    private void setSelfTimerStatus(String value)
+    {
+        // セルフタイマーを設定する
+        try
+        {
+            String[] items = activity.getResources().getStringArray(R.array.fuji_x_timer_control);
+            String[] itemValues = activity.getResources().getStringArray(R.array.fuji_x_timer_control_value);
+            int index = 0;
+            for (String item : items)
+            {
+                Log.v(TAG, " ===== SELF-TIMER : " + value + " " + item + " ===== ");
+                if (item.matches(value))
+                {
+                    // 見つかった! この値を設定する
+                    String itemValue = itemValues[index];
+                    int itemValueInt = (int) Long.parseLong(itemValue,16);
+                    logcat(" SET SELF-TIMER : " + value + " " + itemValueInt);
+                    publisher.enqueueCommand(new SetPropertyValue(new FujiXReplyMessageReceiver(" Set SELF-TIMER", true), IFujiXCameraProperties.SELF_TIMER, 4, itemValueInt));
                     return;
                 }
                 index++;
                     return;
                 }
                 index++;
@@ -986,6 +1104,14 @@ class FujiXStatusHolder
         {
             return (getCurrentIsoSensitivityStatus());
         }
         {
             return (getCurrentIsoSensitivityStatus());
         }
+        if (key.matches(ICameraStatus.FLASH_XV))
+        {
+            return (getCurrentFlashStatus());
+        }
+        if (key.matches(ICameraStatus.SELF_TIMER))
+        {
+            return (getCurrentSelfTimerStatus());
+        }
         if (key.matches(ICameraStatus.TAKE_MODE))
         {
             return ("");
         if (key.matches(ICameraStatus.TAKE_MODE))
         {
             return ("");
@@ -1033,27 +1159,28 @@ class FujiXStatusHolder
     {
         try
         {
     {
         try
         {
-            if (logcat)
-            {
-                Log.v(TAG, "setStatus(" + key + ", " + value + ")");
-            }
+            logcat(" setStatus(" + key + ", " + value + ")");
             if (key.matches(ICameraStatus.EFFECT))
             {
                 setEffectItem(value);
             if (key.matches(ICameraStatus.EFFECT))
             {
                 setEffectItem(value);
-                return;
             }
             }
-            if (key.matches(ICameraStatus.WHITE_BALANCE))
+            else if (key.matches(ICameraStatus.WHITE_BALANCE))
             {
                 setCurrentWhiteBalanceStatus(value);
             {
                 setCurrentWhiteBalanceStatus(value);
-                return;
             }
             }
-            if (key.matches(ICameraStatus.ISO_SENSITIVITY))
+            else if (key.matches(ICameraStatus.ISO_SENSITIVITY))
             {
                 setCurrentIsoSensitivityStatus(value);
             {
                 setCurrentIsoSensitivityStatus(value);
-                // return;
             }
             }
-
-            // ここで設定を行う。
+            else if (key.matches(ICameraStatus.FLASH_XV))
+            {
+                setCurrentFlashStatus(value);
+            }
+            else if (key.matches(ICameraStatus.SELF_TIMER))
+            {
+                setSelfTimerStatus(value);
+            }
+            // その他の設定...
         }
         catch (Exception e)
         {
         }
         catch (Exception e)
         {
@@ -1061,7 +1188,6 @@ class FujiXStatusHolder
         }
     }
 
         }
     }
 
-
     private void dumpStatus()
     {
         try
     private void dumpStatus()
     {
         try
index 318de81..2e9e394 100644 (file)
@@ -1,6 +1,5 @@
 package net.osdn.gokigen.gr2control.liveview;
 
 package net.osdn.gokigen.gr2control.liveview;
 
-import android.app.Activity;
 import android.content.DialogInterface;
 import android.util.Log;
 import android.view.View;
 import android.content.DialogInterface;
 import android.util.Log;
 import android.view.View;
@@ -13,6 +12,7 @@ import java.util.List;
 
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
 
 import androidx.annotation.NonNull;
 import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
 
 /**
  *
 
 /**
  *
@@ -21,10 +21,10 @@ import androidx.appcompat.app.AlertDialog;
 class LiveViewControlPanelClickListener  implements View.OnClickListener
 {
     private final String TAG = toString();
 class LiveViewControlPanelClickListener  implements View.OnClickListener
 {
     private final String TAG = toString();
-    private final Activity activity;
+    private final FragmentActivity activity;
     private final IInterfaceProvider interfaceProvider;
 
     private final IInterfaceProvider interfaceProvider;
 
-    LiveViewControlPanelClickListener(Activity context, IInterfaceProvider interfaceProvider)
+    LiveViewControlPanelClickListener(FragmentActivity context, IInterfaceProvider interfaceProvider)
     {
         this.activity = context;
         this.interfaceProvider = interfaceProvider;
     {
         this.activity = context;
         this.interfaceProvider = interfaceProvider;
index 07ac50c..f8aa972 100644 (file)
@@ -226,7 +226,7 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
 
             if (fujiXOnKeyPanelClickListener == null)
             {
 
             if (fujiXOnKeyPanelClickListener == null)
             {
-                fujiXOnKeyPanelClickListener = new LiveViewFujiXKeyPanelClickListener(interfaceProvider, vibrator);
+                fujiXOnKeyPanelClickListener = new LiveViewFujiXKeyPanelClickListener(getActivity(), interfaceProvider, vibrator);
             }
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_minus);
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_plus);
             }
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_minus);
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_sv_plus);
@@ -234,6 +234,8 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_tv_plus);
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_minus);
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_plus);
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_tv_plus);
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_minus);
             setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_xv_plus);
+            setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_flash);
+            setFujiXKeyPanelClickListener(view, R.id.button_fuji_x_timer);
 
             connectStatus = view.findViewById(R.id.connect_disconnect_button);
             if (connectStatus != null)
 
             connectStatus = view.findViewById(R.id.connect_disconnect_button);
             if (connectStatus != null)
index db94f7a..5e699f5 100644 (file)
@@ -1,13 +1,17 @@
 package net.osdn.gokigen.gr2control.liveview;
 
 package net.osdn.gokigen.gr2control.liveview;
 
+import android.content.DialogInterface;
 import android.os.Vibrator;
 import android.util.Log;
 import android.view.View;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import android.os.Vibrator;
 import android.util.Log;
 import android.view.View;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.appcompat.app.AlertDialog;
+import androidx.fragment.app.FragmentActivity;
 
 import net.osdn.gokigen.gr2control.R;
 
 import net.osdn.gokigen.gr2control.R;
+import net.osdn.gokigen.gr2control.camera.ICameraStatus;
 import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandCallback;
 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandPublisher;
 import net.osdn.gokigen.gr2control.camera.IInterfaceProvider;
 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandCallback;
 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.IFujiXCommandPublisher;
@@ -15,15 +19,19 @@ import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.messages.Comman
 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.messages.IFujiXCameraCommands;
 import net.osdn.gokigen.gr2control.camera.utils.SimpleLogDumper;
 
 import net.osdn.gokigen.gr2control.camera.fuji_x.wrapper.command.messages.IFujiXCameraCommands;
 import net.osdn.gokigen.gr2control.camera.utils.SimpleLogDumper;
 
+import java.util.List;
+
 public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener, View.OnLongClickListener, IFujiXCommandCallback
 {
     private final String TAG = toString();
 public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener, View.OnLongClickListener, IFujiXCommandCallback
 {
     private final String TAG = toString();
+    private final FragmentActivity activity;
     private static final boolean isDumpLog = false;
     private final IInterfaceProvider interfaceProvider;
     private final Vibrator vibrator;
 
     private static final boolean isDumpLog = false;
     private final IInterfaceProvider interfaceProvider;
     private final Vibrator vibrator;
 
-    LiveViewFujiXKeyPanelClickListener(@NonNull IInterfaceProvider interfaceProvider, @Nullable Vibrator vibrator)
+    LiveViewFujiXKeyPanelClickListener(@NonNull FragmentActivity activity, @NonNull IInterfaceProvider interfaceProvider, @Nullable Vibrator vibrator)
     {
     {
+        this.activity = activity;
         this.interfaceProvider = interfaceProvider;
         this.vibrator = vibrator;
     }
         this.interfaceProvider = interfaceProvider;
         this.vibrator = vibrator;
     }
@@ -52,9 +60,15 @@ public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener,
                 case R.id.button_fuji_x_xv_minus:
                     updateValue(IFujiXCameraCommands.EXPREV, 0);
                     break;
                 case R.id.button_fuji_x_xv_minus:
                     updateValue(IFujiXCameraCommands.EXPREV, 0);
                     break;
-                case R.id.button_fuji_x_xv_plus:
-                    updateValue(IFujiXCameraCommands.EXPREV, 1);
+                case R.id.button_fuji_x_flash:
+                    updateSelection(ICameraStatus.FLASH_XV);
+                    isVibrate = false;
+                    break;
+                case R.id.button_fuji_x_timer:
+                    updateSelection(ICameraStatus.SELF_TIMER);
+                    isVibrate = false;
                     break;
                     break;
+
                 default:
                     isVibrate = false;
                     break;
                 default:
                     isVibrate = false;
                     break;
@@ -89,6 +103,10 @@ public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener,
                     break;
                 case R.id.button_fuji_x_xv_plus:
                     break;
                     break;
                 case R.id.button_fuji_x_xv_plus:
                     break;
+                case R.id.button_fuji_x_flash:
+                    break;
+                case R.id.button_fuji_x_timer:
+                    break;
                 default:
                     break;
             }
                 default:
                     break;
             }
@@ -119,6 +137,62 @@ public class LiveViewFujiXKeyPanelClickListener implements View.OnClickListener,
     }
 
     /**
     }
 
     /**
+     *  選択肢を更新する
+     *
+     */
+    private void updateSelection(@NonNull final String key)
+    {
+        try
+        {
+            Log.v(TAG, "updateSelection() : " + key);
+            final ICameraStatus statusList = interfaceProvider.getCameraStatusListHolder();
+            if (statusList == null)
+            {
+                // ステータスリストの保持クラスが取れなかった...
+                Log.w(TAG, "ICameraStatus is NULL...");
+                return;
+            }
+            final String current = statusList.getStatus(key);
+            final List<String> itemList = statusList.getStatusList(key);
+            if (itemList.size() <= 0)
+            {
+                // アイテム(選択肢)が登録されていなければ、何もしない
+                return;
+            }
+
+            AlertDialog.Builder builder = new AlertDialog.Builder(activity);
+
+            // リストから配列に積み替え...
+            String[] items = new String[itemList.size()];
+            int index = 0;
+            for (String item : itemList)
+            {
+                Log.v(TAG, " (" + index + ") " + item);
+                items[index] = item;
+                index++;
+            }
+            int position = itemList.indexOf(current);
+            Log.v(TAG, " updateSelection() : " + key + " " + itemList.size() + " " + position);
+            builder.setSingleChoiceItems(items, position, new DialogInterface.OnClickListener() {
+                @Override
+                public void onClick(DialogInterface dialogInterface, int i)
+                {
+                    String choice = itemList.get(i);
+                    Log.v(TAG, key + " ITEM CHOICED : " + choice + "(CURRENT : " + current + ")");
+
+                    statusList.setStatus(key, choice);
+                    dialogInterface.dismiss();
+                }
+            });
+            builder.show();
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    /**
      *   ぶるぶるさせる
      *
      */
      *   ぶるぶるさせる
      *
      */
diff --git a/app/src/main/res/drawable/ic_flash_on_black_24dp.xml b/app/src/main/res/drawable/ic_flash_on_black_24dp.xml
new file mode 100644 (file)
index 0000000..a3c81cc
--- /dev/null
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+        android:width="24dp"
+        android:height="24dp"
+        android:viewportWidth="24.0"
+        android:viewportHeight="24.0">
+    <path
+        android:fillColor="#FF000000"
+        android:pathData="M7,2v11h3v9l7,-12h-4l4,-8z"/>
+</vector>
index ae969fb..c8f15f7 100644 (file)
             android:layout_marginStart="2pt"
             android:gravity="center" />
 
             android:layout_marginStart="2pt"
             android:gravity="center" />
 
+        <ImageView
+            android:id="@+id/button_fuji_x_dummy"
+            android:layout_width="34pt"
+            android:layout_height="9pt"
+            android:layout_below="@id/label_fuji_x_xv_center"
+            android:layout_alignLeft="@id/label_fuji_x_xv_center"
+            android:layout_alignStart="@id/label_fuji_x_xv_center"
+            android:scaleType="fitCenter"
+            android:visibility="invisible"
+            android:clickable="true"
+            android:focusable="true"
+            android:src="@drawable/ic_camera_roll_black_24dp"
+            android:layout_marginTop="6pt"
+            android:gravity="center" />
+
+        <ImageView
+            android:id="@+id/button_fuji_x_flash"
+            android:layout_width="20pt"
+            android:layout_height="14pt"
+            android:layout_below="@id/button_fuji_x_dummy"
+            android:layout_alignLeft="@id/button_fuji_x_tv_minus"
+            android:layout_alignStart="@id/button_fuji_x_tv_minus"
+            android:scaleType="fitCenter"
+            android:visibility="visible"
+            android:clickable="true"
+            android:focusable="true"
+            android:src="@drawable/ic_flash_on_black_24dp"
+            android:layout_marginTop="6pt"
+            android:gravity="center" />
+
+        <ImageView
+            android:id="@+id/button_fuji_x_timer"
+            android:layout_width="34pt"
+            android:layout_height="14pt"
+            android:layout_below="@id/button_fuji_x_dummy"
+            android:layout_alignLeft="@id/button_fuji_x_dummy"
+            android:layout_alignStart="@id/button_fuji_x_dummy"
+            android:scaleType="fitCenter"
+            android:visibility="visible"
+            android:clickable="true"
+            android:focusable="true"
+            android:src="@drawable/ic_timer_black_24dp"
+            android:layout_marginTop="6pt"
+            android:gravity="center" />
+
         <TextView
             android:id="@+id/fuji_x_hideKeyPanelTextView"
             android:layout_width="48dp"
         <TextView
             android:id="@+id/fuji_x_hideKeyPanelTextView"
             android:layout_width="48dp"
index e70ad0b..14ab6a9 100644 (file)
             android:layout_marginStart="2pt"
             android:gravity="center" />
 
             android:layout_marginStart="2pt"
             android:gravity="center" />
 
+        <ImageView
+            android:id="@+id/button_fuji_x_dummy"
+            android:layout_width="34pt"
+            android:layout_height="9pt"
+            android:layout_below="@id/label_fuji_x_xv_center"
+            android:layout_alignLeft="@id/label_fuji_x_xv_center"
+            android:layout_alignStart="@id/label_fuji_x_xv_center"
+            android:scaleType="fitCenter"
+            android:visibility="invisible"
+            android:clickable="true"
+            android:focusable="true"
+            android:src="@drawable/ic_camera_roll_black_24dp"
+            android:layout_marginTop="6pt"
+            android:gravity="center" />
+
+        <ImageView
+            android:id="@+id/button_fuji_x_flash"
+            android:layout_width="20pt"
+            android:layout_height="14pt"
+            android:layout_below="@id/button_fuji_x_dummy"
+            android:layout_alignLeft="@id/button_fuji_x_tv_minus"
+            android:layout_alignStart="@id/button_fuji_x_tv_minus"
+            android:scaleType="fitCenter"
+            android:visibility="visible"
+            android:clickable="true"
+            android:focusable="true"
+            android:src="@drawable/ic_flash_on_black_24dp"
+            android:layout_marginTop="6pt"
+            android:gravity="center" />
+
+        <ImageView
+            android:id="@+id/button_fuji_x_timer"
+            android:layout_width="34pt"
+            android:layout_height="14pt"
+            android:layout_below="@id/button_fuji_x_dummy"
+            android:layout_alignLeft="@id/button_fuji_x_dummy"
+            android:layout_alignStart="@id/button_fuji_x_dummy"
+            android:scaleType="fitCenter"
+            android:visibility="visible"
+            android:clickable="true"
+            android:focusable="true"
+            android:src="@drawable/ic_timer_black_24dp"
+            android:layout_marginTop="6pt"
+            android:gravity="center" />
+
         <TextView
             android:id="@+id/fuji_x_hideKeyPanelTextView"
             android:layout_width="48dp"
         <TextView
             android:id="@+id/fuji_x_hideKeyPanelTextView"
             android:layout_width="48dp"
index 4ded025..d85562c 100644 (file)
         <item>64</item>
     </string-array>
 
         <item>64</item>
     </string-array>
 
+    <string-array name="fuji_x_flash_control">
+        <item>AUTO</item>
+        <item>OFF</item>
+        <item>FILL</item>
+        <item>RedEye AUTO</item>
+        <item>RedEye FILL</item>
+        <item>External Sync</item>
+        <item>ON</item>
+        <item>RedEye</item>
+        <item>RedEye ON</item>
+        <item>RedEye Sync</item>
+        <item>RedEye Rear</item>
+        <item>Slow Sync</item>
+        <item>Rear Sync</item>
+        <item>Commander</item>
+        <item>DISABLE</item>
+        <item>ENABLE</item>
+    </string-array>
+
+    <string-array name="fuji_x_flash_control_value">
+        <item>1</item>
+        <item>2</item>
+        <item>3</item>
+        <item>4</item>
+        <item>5</item>
+        <item>6</item>
+        <item>8001</item>
+        <item>8002</item>
+        <item>8003</item>
+        <item>8004</item>
+        <item>8005</item>
+        <item>8006</item>
+        <item>8007</item>
+        <item>8008</item>
+        <item>8009</item>
+        <item>800A</item>
+    </string-array>
+
+
+    <string-array name="fuji_x_timer_control">
+        <item>OFF</item>
+        <item>1 Sec.</item>
+        <item>2 Sec.</item>
+        <item>5 Sec.</item>
+        <item>10 Sec.</item>
+    </string-array>
+
+    <string-array name="fuji_x_timer_control_value">
+        <item>0</item>
+        <item>1</item>
+        <item>2</item>
+        <item>3</item>
+        <item>4</item>
+    </string-array>
+
 </resources>
 </resources>
index 4ded025..15b8b22 100644 (file)
         <item>64</item>
     </string-array>
 
         <item>64</item>
     </string-array>
 
+    <string-array name="fuji_x_flash_control">
+        <item>AUTO</item>
+        <item>OFF</item>
+        <item>FILL</item>
+        <item>RedEye AUTO</item>
+        <item>RedEye FILL</item>
+        <item>External Sync</item>
+        <item>ON</item>
+        <item>RedEye</item>
+        <item>RedEye ON</item>
+        <item>RedEye Sync</item>
+        <item>RedEye Rear</item>
+        <item>Slow Sync</item>
+        <item>Rear Sync</item>
+        <item>Commander</item>
+        <item>DISABLE</item>
+        <item>ENABLE</item>
+    </string-array>
+
+    <string-array name="fuji_x_flash_control_value">
+        <item>1</item>
+        <item>2</item>
+        <item>3</item>
+        <item>4</item>
+        <item>5</item>
+        <item>6</item>
+        <item>8001</item>
+        <item>8002</item>
+        <item>8003</item>
+        <item>8004</item>
+        <item>8005</item>
+        <item>8006</item>
+        <item>8007</item>
+        <item>8008</item>
+        <item>8009</item>
+        <item>800A</item>
+    </string-array>
+
+    <string-array name="fuji_x_timer_control">
+        <item>OFF</item>
+        <item>1 Sec.</item>
+        <item>2 Sec.</item>
+        <item>5 Sec.</item>
+        <item>10 Sec.</item>
+    </string-array>
+
+    <string-array name="fuji_x_timer_control_value">
+        <item>0</item>
+        <item>1</item>
+        <item>2</item>
+        <item>3</item>
+        <item>4</item>
+    </string-array>
+
 </resources>
 </resources>