From 8b1e08263d3b01470b638c66004c99dbca253b50 Mon Sep 17 00:00:00 2001 From: MRSa Date: Thu, 5 Jul 2018 00:41:33 +0900 Subject: [PATCH] =?utf8?q?=E3=82=AB=E3=83=A1=E3=83=A9=E3=81=AB=E6=8E=A5?= =?utf8?q?=E7=B6=9A=E3=81=97=E3=81=9F=E3=81=A8=E3=81=8D=E3=80=81=E7=94=BB?= =?utf8?q?=E9=9D=A2=E8=A1=A8=E7=A4=BA=E3=82=BF=E3=82=A4=E3=83=97=E3=81=AE?= =?utf8?q?=E5=88=B6=E5=BE=A1=E3=82=92=E8=BF=BD=E5=8A=A0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../connection/RicohGr2CameraConnectSequence.java | 41 ++++++++++++++++++++++ .../RicohGr2CameraDisconnectSequence.java | 18 +++++++++- .../wrapper/connection/RicohGr2Connection.java | 2 +- .../a01d/camera/utils/SimpleLiveviewSlicer.java | 3 +- .../preference/IPreferencePropertyAccessor.java | 6 +++- .../ricohgr2/RicohGr2PreferenceFragment.java | 24 ++++++++++++- app/src/main/res/values-ja/arrays.xml | 16 +++++++++ app/src/main/res/values-ja/strings.xml | 2 ++ app/src/main/res/values/arrays.xml | 15 ++++++++ app/src/main/res/values/strings.xml | 3 ++ app/src/main/res/xml/preferences_ricoh_gr2.xml | 11 ++++++ 11 files changed, 136 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraConnectSequence.java b/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraConnectSequence.java index 28bdd9c..a0f73cf 100644 --- a/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraConnectSequence.java +++ b/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraConnectSequence.java @@ -1,6 +1,8 @@ package net.osdn.gokigen.a01d.camera.ricohgr2.wrapper.connection; import android.app.Activity; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.support.annotation.NonNull; import android.util.Log; @@ -8,6 +10,7 @@ import net.osdn.gokigen.a01d.R; import net.osdn.gokigen.a01d.camera.ICameraConnection; import net.osdn.gokigen.a01d.camera.ICameraStatusReceiver; import net.osdn.gokigen.a01d.camera.utils.SimpleHttpClient; +import net.osdn.gokigen.a01d.preference.IPreferencePropertyAccessor; class RicohGr2CameraConnectSequence implements Runnable { @@ -28,6 +31,7 @@ class RicohGr2CameraConnectSequence implements Runnable public void run() { final String areYouThereUrl = "http://192.168.0.1/v1/ping"; + final String grCommandUrl = "http://192.168.0.1/_gr"; final int TIMEOUT_MS = 5000; try { @@ -35,6 +39,43 @@ class RicohGr2CameraConnectSequence implements Runnable Log.v(TAG, areYouThereUrl + " " + response); if (response.length() > 0) { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context); + + // 接続時、カメラの画面を消す + if (preferences.getBoolean(IPreferencePropertyAccessor.GR2_LCD_SLEEP, false)) + { + final String postData = "cmd=lcd sleep on"; + String response0 = SimpleHttpClient.httpPost(grCommandUrl, postData, TIMEOUT_MS); + Log.v(TAG, grCommandUrl + " " + response0); + } + + // 表示するディスプレイモードを切り替える + String dispMode = preferences.getString(IPreferencePropertyAccessor.GR2_DISPLAY_MODE, IPreferencePropertyAccessor.GR2_DISPLAY_MODE_DEFAULT_VALUE); + if (dispMode.contains("1")) + { + // Disp. ボタンを 1回 押す + final String postData = "cmd=bdisp"; + String response0 = SimpleHttpClient.httpPost(grCommandUrl, postData, TIMEOUT_MS); + Log.v(TAG, grCommandUrl + " " + response0); + + } + else if (dispMode.contains("2")) + { + // Disp. ボタンを 2回 押す + final String postData = "cmd=bdisp"; + String response0 = SimpleHttpClient.httpPost(grCommandUrl, postData, TIMEOUT_MS); + String response1 = SimpleHttpClient.httpPost(grCommandUrl, postData, TIMEOUT_MS); + Log.v(TAG, grCommandUrl + " " + response0 + " " + response1); + } + else if (dispMode.contains("3")) + { + // Disp. ボタンを 3回 押す + final String postData = "cmd=bdisp"; + String response0 = SimpleHttpClient.httpPost(grCommandUrl, postData, TIMEOUT_MS); + String response1 = SimpleHttpClient.httpPost(grCommandUrl, postData, TIMEOUT_MS); + String response2 = SimpleHttpClient.httpPost(grCommandUrl, postData, TIMEOUT_MS); + Log.v(TAG, grCommandUrl + " " + response0 + " " + response1 + response2); + } onConnectNotify(); } else diff --git a/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraDisconnectSequence.java b/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraDisconnectSequence.java index c678099..4b669ff 100644 --- a/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraDisconnectSequence.java +++ b/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2CameraDisconnectSequence.java @@ -1,16 +1,22 @@ package net.osdn.gokigen.a01d.camera.ricohgr2.wrapper.connection; +import android.app.Activity; +import android.content.SharedPreferences; +import android.preference.PreferenceManager; import android.util.Log; import net.osdn.gokigen.a01d.camera.utils.SimpleHttpClient; +import net.osdn.gokigen.a01d.preference.IPreferencePropertyAccessor; public class RicohGr2CameraDisconnectSequence implements Runnable { private final String TAG = this.toString(); + private final Activity activity; private final boolean powerOff; - RicohGr2CameraDisconnectSequence(boolean isOff) + RicohGr2CameraDisconnectSequence(Activity activity, boolean isOff) { + this.activity = activity; this.powerOff = isOff; } @@ -20,6 +26,16 @@ public class RicohGr2CameraDisconnectSequence implements Runnable // カメラをPowerOffして接続を切る try { + SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(activity); + if (preferences.getBoolean(IPreferencePropertyAccessor.GR2_LCD_SLEEP, false)) + { + final String screenOnUrl = "http://192.168.0.1/_gr"; + final String postData = "lcd sleep off"; + final int TIMEOUT_MS = 5000; + String response = SimpleHttpClient.httpPost(screenOnUrl, postData, TIMEOUT_MS); + Log.v(TAG, screenOnUrl + " " + response); + } + if (powerOff) { final String cameraPowerOffUrl = "http://192.168.0.1/v1/device/finish"; diff --git a/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2Connection.java b/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2Connection.java index 0edc7b8..72e72c0 100644 --- a/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2Connection.java +++ b/app/src/main/java/net/osdn/gokigen/a01d/camera/ricohgr2/wrapper/connection/RicohGr2Connection.java @@ -241,7 +241,7 @@ public class RicohGr2Connection implements ICameraConnection Log.v(TAG, "disconnectFromCamera()"); try { - cameraExecutor.execute(new RicohGr2CameraDisconnectSequence(powerOff)); + cameraExecutor.execute(new RicohGr2CameraDisconnectSequence(context, powerOff)); } catch (Exception e) { diff --git a/app/src/main/java/net/osdn/gokigen/a01d/camera/utils/SimpleLiveviewSlicer.java b/app/src/main/java/net/osdn/gokigen/a01d/camera/utils/SimpleLiveviewSlicer.java index 24f7617..52cf054 100644 --- a/app/src/main/java/net/osdn/gokigen/a01d/camera/utils/SimpleLiveviewSlicer.java +++ b/app/src/main/java/net/osdn/gokigen/a01d/camera/utils/SimpleLiveviewSlicer.java @@ -135,6 +135,7 @@ public class SimpleLiveviewSlicer catch (Exception e) { e.printStackTrace(); + System.gc(); } return (payload); } @@ -297,7 +298,7 @@ public class SimpleLiveviewSlicer searchIndex = 0; } } - catch (Exception e) + catch (Throwable e) { Log.v(TAG, "INPUT STREAM EXCEPTION : " + e.getLocalizedMessage()); // e.printStackTrace(); diff --git a/app/src/main/java/net/osdn/gokigen/a01d/preference/IPreferencePropertyAccessor.java b/app/src/main/java/net/osdn/gokigen/a01d/preference/IPreferencePropertyAccessor.java index c64e0af..627b9fe 100644 --- a/app/src/main/java/net/osdn/gokigen/a01d/preference/IPreferencePropertyAccessor.java +++ b/app/src/main/java/net/osdn/gokigen/a01d/preference/IPreferencePropertyAccessor.java @@ -43,8 +43,12 @@ public interface IPreferencePropertyAccessor String CONNECTION_METHOD = "connection_method"; String CONNECTION_METHOD_DEFAULT_VALUE = "OPC"; + String GR2_DISPLAY_MODE = "gr2_display_mode"; + String GR2_DISPLAY_MODE_DEFAULT_VALUE = "0"; -/* + String GR2_LCD_SLEEP = "gr2_lcd_sleep"; + + /* int CHOICE_SPLASH_SCREEN = 10; int SELECT_SAMPLE_IMAGE_CODE = 110; diff --git a/app/src/main/java/net/osdn/gokigen/a01d/preference/ricohgr2/RicohGr2PreferenceFragment.java b/app/src/main/java/net/osdn/gokigen/a01d/preference/ricohgr2/RicohGr2PreferenceFragment.java index 6194dfb..713e640 100644 --- a/app/src/main/java/net/osdn/gokigen/a01d/preference/ricohgr2/RicohGr2PreferenceFragment.java +++ b/app/src/main/java/net/osdn/gokigen/a01d/preference/ricohgr2/RicohGr2PreferenceFragment.java @@ -113,6 +113,12 @@ public class RicohGr2PreferenceFragment extends PreferenceFragmentCompat implem if (!items.containsKey(IPreferencePropertyAccessor.CONNECTION_METHOD)) { editor.putString(IPreferencePropertyAccessor.CONNECTION_METHOD, IPreferencePropertyAccessor.CONNECTION_METHOD_DEFAULT_VALUE); } + if (!items.containsKey(IPreferencePropertyAccessor.GR2_LCD_SLEEP)) { + editor.putBoolean(IPreferencePropertyAccessor.GR2_LCD_SLEEP, false); + } + if (!items.containsKey(IPreferencePropertyAccessor.GR2_DISPLAY_MODE)) { + editor.putString(IPreferencePropertyAccessor.GR2_DISPLAY_MODE, IPreferencePropertyAccessor.GR2_DISPLAY_MODE_DEFAULT_VALUE); + } editor.apply(); } catch (Exception e) @@ -144,6 +150,11 @@ public class RicohGr2PreferenceFragment extends PreferenceFragmentCompat implem Log.v(TAG, " " + key + " , " + value); break; + case IPreferencePropertyAccessor.GR2_LCD_SLEEP: + value = preferences.getBoolean(key, false); + Log.v(TAG, " " + key + " , " + value); + break; + default: String strValue = preferences.getString(key, ""); setListPreference(key, key, strValue); @@ -175,6 +186,16 @@ public class RicohGr2PreferenceFragment extends PreferenceFragmentCompat implem }); connectionMethod.setSummary(connectionMethod.getValue() + " "); + ListPreference displayMode = (ListPreference) findPreference(IPreferencePropertyAccessor.GR2_DISPLAY_MODE); + displayMode.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + preference.setSummary(newValue + " "); + return (true); + } + }); + displayMode.setSummary(displayMode.getValue() + " "); + findPreference("exit_application").setOnPreferenceClickListener(powerOffController); findPreference("debug_info").setOnPreferenceClickListener(logCatViewer); } @@ -297,6 +318,8 @@ public class RicohGr2PreferenceFragment extends PreferenceFragmentCompat implem // Preferenceの画面に反映させる setBooleanPreference(IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, defaultValue); setBooleanPreference(IPreferencePropertyAccessor.CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW, IPreferencePropertyAccessor.CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW, defaultValue); + setBooleanPreference(IPreferencePropertyAccessor.GR2_LCD_SLEEP, IPreferencePropertyAccessor.GR2_LCD_SLEEP, defaultValue); + } catch (Exception e) { @@ -306,5 +329,4 @@ public class RicohGr2PreferenceFragment extends PreferenceFragmentCompat implem }); } } - } diff --git a/app/src/main/res/values-ja/arrays.xml b/app/src/main/res/values-ja/arrays.xml index 5c7c58b..1accb8c 100644 --- a/app/src/main/res/values-ja/arrays.xml +++ b/app/src/main/res/values-ja/arrays.xml @@ -110,4 +110,20 @@ RICOH_GR2 + + + 0 + 1 + 2 + 3 + + + + 0 + 1 + 2 + 3 + + + diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index ff40d4d..b22f8e3 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -121,5 +121,7 @@ 発見 : カメラ未発見 接続方式 + ディスプレイモード + 接続中はカメラ画面OFF diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index 88f10f4..c5ab9a3 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -111,4 +111,19 @@ RICOH_GR2 + + 0 + 1 + 2 + 3 + + + + 0 + 1 + 2 + 3 + + + diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 74b40b5..302c3ad 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -126,4 +126,7 @@ Not Found… Received. Connection Method + Display Mode + Screen off during connected + diff --git a/app/src/main/res/xml/preferences_ricoh_gr2.xml b/app/src/main/res/xml/preferences_ricoh_gr2.xml index 5d5ce26..add8082 100644 --- a/app/src/main/res/xml/preferences_ricoh_gr2.xml +++ b/app/src/main/res/xml/preferences_ricoh_gr2.xml @@ -30,6 +30,17 @@ android:title="@string/pref_cat_initialize"> + + + + -- 2.11.0