OSDN Git Service

フォーカスロック時にアイコンを変えるようにした。
authorMRSa <mrsa@myad.jp>
Thu, 16 Aug 2018 13:33:30 +0000 (22:33 +0900)
committerMRSa <mrsa@myad.jp>
Thu, 16 Aug 2018 13:33:30 +0000 (22:33 +0900)
app/src/main/java/net/osdn/gokigen/gr2control/camera/ricohgr2/wrapper/RicohGr2StatusHolder.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/ICameraStatusUpdateNotify.java
app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewFragment.java

index e973157..3d49a49 100644 (file)
@@ -21,6 +21,7 @@ class RicohGr2StatusHolder
     private final ICameraStatusUpdateNotify notifier;
 
     private JSONObject latestResultObject = null;
+    private boolean focused = false;
     private String avStatus = "";
     private String tvStatus = "";
     private String xvStatus = "";
@@ -108,6 +109,7 @@ class RicohGr2StatusHolder
             String meteringMode = latestResultObject.getString("meteringMode");
             String wbMode = latestResultObject.getString("WBMode");
             String battery = latestResultObject.getString("battery");
+            boolean focus = latestResultObject.getBoolean("focused");
 
             if (result.contains("OK"))
             {
@@ -146,6 +148,11 @@ class RicohGr2StatusHolder
                     batteryStatus = battery;
                     notifier.updateRemainBattery(Integer.parseInt(batteryStatus));
                 }
+                if (focus != focused)
+                {
+                    focused = focus;
+                    notifier.updateFocusedStatus(focused);
+                }
             }
             System.gc();
         }
index c676626..e61b5e0 100644 (file)
@@ -13,7 +13,7 @@ public interface ICameraStatusUpdateNotify
     void updatedMeteringMode(String meteringMode);
     void updatedWBMode(String wbMode);
     void updateRemainBattery(int percentage);
-
+    void updateFocusedStatus(boolean focused);
     void updateIsoSensitivity(String sv);
     void updateWarning(String warning);
     void updateStorageStatus(String status);
index 6e9277e..55896c4 100644 (file)
@@ -3,12 +3,15 @@ package net.osdn.gokigen.gr2control.liveview;
 import android.app.Activity;
 import android.content.Context;
 import android.content.SharedPreferences;
+import android.graphics.Color;
+import android.graphics.drawable.Drawable;
 import android.os.Bundle;
 import android.os.Vibrator;
 import android.support.annotation.NonNull;
 import android.support.v4.app.Fragment;
 import android.support.v4.content.ContextCompat;
 import android.support.v4.content.res.ResourcesCompat;
+import android.support.v4.graphics.drawable.DrawableCompat;
 import android.support.v7.app.ActionBar;
 import android.support.v7.app.AppCompatActivity;
 import android.support.v7.preference.PreferenceManager;
@@ -881,6 +884,42 @@ public class LiveViewFragment extends Fragment implements IStatusViewDrawer, IFo
     }
 
     @Override
+    public void updateFocusedStatus(boolean focused)
+    {
+        Activity activity = getActivity();
+        try
+        {
+            if (activity != null)
+            {
+                ImageView view = getActivity().findViewById(R.id.focusUnlockImageView);
+                if (focused)
+                {
+                    Drawable icon = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_center_focus_strong_black_24dp, null);
+                    if (icon != null)
+                    {
+                        DrawableCompat.setTint(icon, Color.GREEN);
+                        view.setImageDrawable(icon);
+                    }
+                }
+                else
+                {
+                    Drawable icon = ResourcesCompat.getDrawable(getResources(), R.drawable.ic_crop_free_black_24dp, null);
+                    if (icon != null)
+                    {
+                        DrawableCompat.setTint(icon, Color.BLACK);
+                        view.setImageDrawable(icon);
+                    }
+                }
+                view.invalidate();
+            }
+        }
+        catch (Exception e)
+        {
+            e.printStackTrace();
+        }
+    }
+
+    @Override
     public void updateIsoSensitivity(String sv)
     {
         Log.v(TAG, "updateIsoSensitivity : " + sv);