From 78871207d0817480796d556e61e4b953292ec8b8 Mon Sep 17 00:00:00 2001 From: MRSa Date: Tue, 5 May 2020 20:54:15 +0900 Subject: [PATCH] =?utf8?q?Preference=E3=82=92=E9=9A=8E=E5=B1=A4=E5=8C=96?= =?utf8?q?=E3=81=97=E3=81=A6=E6=95=B4=E7=90=86=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../liveview/LiveViewClickTouchListener.java | 2 +- .../preference/Gr2ControlPreferenceFragment.java | 437 +++++++++++++++++++++ .../gr2control/scene/CameraSceneUpdater.java | 119 ++++-- .../gokigen/gr2control/scene/IChangeScene.java | 4 +- app/src/main/res/values-ja/strings.xml | 14 +- app/src/main/res/values/strings.xml | 13 + app/src/main/res/xml/preferences_fuji_x.xml | 21 +- app/src/main/res/xml/preferences_opc.xml | 17 +- app/src/main/res/xml/preferences_ricoh_gr2.xml | 23 +- app/src/main/res/xml/preferences_summary.xml | 94 +++++ 10 files changed, 687 insertions(+), 57 deletions(-) create mode 100644 app/src/main/java/net/osdn/gokigen/gr2control/preference/Gr2ControlPreferenceFragment.java create mode 100644 app/src/main/res/xml/preferences_summary.xml diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewClickTouchListener.java b/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewClickTouchListener.java index 13c398d..2610c37 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewClickTouchListener.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/liveview/LiveViewClickTouchListener.java @@ -132,7 +132,7 @@ class LiveViewClickTouchListener implements View.OnClickListener, View.OnTouchLi case R.id.show_preference_button: // カメラの設定 - changeScene.changeSceneToConfiguration(); + changeScene.changeSceneToConfiguration(ICameraConnection.CameraConnectionMethod.UNKNOWN); isVibrate = true; break; diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/preference/Gr2ControlPreferenceFragment.java b/app/src/main/java/net/osdn/gokigen/gr2control/preference/Gr2ControlPreferenceFragment.java new file mode 100644 index 0000000..bcbdeae --- /dev/null +++ b/app/src/main/java/net/osdn/gokigen/gr2control/preference/Gr2ControlPreferenceFragment.java @@ -0,0 +1,437 @@ +package net.osdn.gokigen.gr2control.preference; + +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 net.osdn.gokigen.gr2control.R; +import net.osdn.gokigen.gr2control.camera.ICameraConnection; +import net.osdn.gokigen.gr2control.logcat.LogCatViewer; +import net.osdn.gokigen.gr2control.scene.IChangeScene; + +import java.util.Map; + +import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatActivity; +import androidx.fragment.app.FragmentActivity; +import androidx.preference.CheckBoxPreference; +import androidx.preference.ListPreference; +import androidx.preference.Preference; +import androidx.preference.PreferenceFragmentCompat; +import androidx.preference.PreferenceManager; + +public class Gr2ControlPreferenceFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener, Preference.OnPreferenceClickListener +{ + private final String TAG = toString(); + private IChangeScene changeScene = null; + private AppCompatActivity context = null; + private SharedPreferences preferences = null; + private LogCatViewer logCatViewer = null; + + /** + * + * + */ + public static Gr2ControlPreferenceFragment newInstance(@NonNull AppCompatActivity context, @NonNull IChangeScene changeScene) + { + Gr2ControlPreferenceFragment instance = new Gr2ControlPreferenceFragment(); + instance.prepare(context, changeScene); + + // パラメータはBundleにまとめておく + Bundle arguments = new Bundle(); + //arguments.putString("title", title); + //arguments.putString("message", message); + instance.setArguments(arguments); + + return (instance); + } + + /** + * + * + */ + private void prepare(@NonNull AppCompatActivity context, @NonNull IChangeScene changeScene) + { + try + { + logCatViewer = new LogCatViewer(changeScene); + logCatViewer.prepare(); + this.changeScene = changeScene; + this.context = context; + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * + * + */ + @Override + public void onAttach(@NonNull Context activity) + { + super.onAttach(activity); + Log.v(TAG, " onAttach()"); + try + { + // Preference をつかまえる + preferences = PreferenceManager.getDefaultSharedPreferences(activity); + + // Preference を初期設定する + initializePreferences(); + + preferences.registerOnSharedPreferenceChangeListener(this); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * Preferenceの初期化... + * + */ + private void initializePreferences() + { + try + { + Map items = preferences.getAll(); + SharedPreferences.Editor editor = preferences.edit(); + + if (!items.containsKey(IPreferencePropertyAccessor.RICOH_GET_PICS_LIST_TIMEOUT)) + { + editor.putString(IPreferencePropertyAccessor.RICOH_GET_PICS_LIST_TIMEOUT, IPreferencePropertyAccessor.RICOH_GET_PICS_LIST_TIMEOUT_DEFAULT_VALUE); + } + if (!items.containsKey(IPreferencePropertyAccessor.LIVE_VIEW_QUALITY)) + { + editor.putString(IPreferencePropertyAccessor.LIVE_VIEW_QUALITY, IPreferencePropertyAccessor.LIVE_VIEW_QUALITY_DEFAULT_VALUE); + } + if (!items.containsKey(IPreferencePropertyAccessor.SOUND_VOLUME_LEVEL)) + { + editor.putString(IPreferencePropertyAccessor.SOUND_VOLUME_LEVEL, IPreferencePropertyAccessor.SOUND_VOLUME_LEVEL_DEFAULT_VALUE); + } + if (!items.containsKey(IPreferencePropertyAccessor.RAW)) + { + editor.putBoolean(IPreferencePropertyAccessor.RAW, true); + } + if (!items.containsKey(IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA)) + { + editor.putBoolean(IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, true); + } + if (!items.containsKey(IPreferencePropertyAccessor.CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW)) + { + editor.putBoolean(IPreferencePropertyAccessor.CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW, false); + } + if (!items.containsKey(IPreferencePropertyAccessor.CONNECTION_METHOD)) + { + editor.putString(IPreferencePropertyAccessor.CONNECTION_METHOD, IPreferencePropertyAccessor.CONNECTION_METHOD_DEFAULT_VALUE); + } + if (!items.containsKey(IPreferencePropertyAccessor.SHARE_AFTER_SAVE)) { + editor.putBoolean(IPreferencePropertyAccessor.SHARE_AFTER_SAVE, false); + } + if (!items.containsKey(IPreferencePropertyAccessor.USE_PLAYBACK_MENU)) { + editor.putBoolean(IPreferencePropertyAccessor.USE_PLAYBACK_MENU, true); + } + if (!items.containsKey(IPreferencePropertyAccessor.GR2_DISPLAY_CAMERA_VIEW)) { + editor.putBoolean(IPreferencePropertyAccessor.GR2_DISPLAY_CAMERA_VIEW, true); + } + if (!items.containsKey(IPreferencePropertyAccessor.GR2_LCD_SLEEP)) { + editor.putBoolean(IPreferencePropertyAccessor.GR2_LCD_SLEEP, false); + } + if (!items.containsKey(IPreferencePropertyAccessor.USE_GR2_SPECIAL_COMMAND)) { + editor.putBoolean(IPreferencePropertyAccessor.USE_GR2_SPECIAL_COMMAND, true); + } + if (!items.containsKey(IPreferencePropertyAccessor.PENTAX_CAPTURE_AFTER_AF)) { + editor.putBoolean(IPreferencePropertyAccessor.PENTAX_CAPTURE_AFTER_AF, false); + } + if (!items.containsKey(IPreferencePropertyAccessor.FUJI_X_DISPLAY_CAMERA_VIEW)) { + editor.putBoolean(IPreferencePropertyAccessor.FUJI_X_DISPLAY_CAMERA_VIEW, false); + } + if (!items.containsKey(IPreferencePropertyAccessor.FUJI_X_FOCUS_XY)) { + editor.putString(IPreferencePropertyAccessor.FUJI_X_FOCUS_XY, IPreferencePropertyAccessor.FUJI_X_FOCUS_XY_DEFAULT_VALUE); + } + if (!items.containsKey(IPreferencePropertyAccessor.FUJI_X_LIVEVIEW_WAIT)) { + editor.putString(IPreferencePropertyAccessor.FUJI_X_LIVEVIEW_WAIT, IPreferencePropertyAccessor.FUJI_X_LIVEVIEW_WAIT_DEFAULT_VALUE); + } + if (!items.containsKey(IPreferencePropertyAccessor.FUJI_X_COMMAND_POLLING_WAIT)) { + editor.putString(IPreferencePropertyAccessor.FUJI_X_COMMAND_POLLING_WAIT, IPreferencePropertyAccessor.FUJI_X_COMMAND_POLLING_WAIT_DEFAULT_VALUE); + } + editor.apply(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * + * + */ + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) + { + Log.v(TAG, " onSharedPreferenceChanged() : " + key); + boolean value; + if (key != null) + { + switch (key) + { + case IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA: + value = preferences.getBoolean(key, true); + Log.v(TAG, " " + key + " , " + value); + break; + + case IPreferencePropertyAccessor.CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW: + value = preferences.getBoolean(key, false); + Log.v(TAG, " BOTH LV : " + key + " , " + value); + break; + + case IPreferencePropertyAccessor.USE_PLAYBACK_MENU: + value = preferences.getBoolean(key, true); + Log.v(TAG, " PLAYBACK MENU : " + key + " , " + value); + break; + + case IPreferencePropertyAccessor.SHARE_AFTER_SAVE: + value = preferences.getBoolean(key, false); + Log.v(TAG, " SHARE : " + key + " , " + value); + break; + + default: + String strValue = preferences.getString(key, ""); + setListPreference(key, key, strValue); + break; + } + } + } + + /** + * + * + */ + @Override + public void onCreatePreferences(Bundle savedInstanceState, String rootKey) + { + Log.v(TAG, " onCreatePreferences()"); + try + { + //super.onCreate(savedInstanceState); + addPreferencesFromResource(R.xml.preferences_summary); + + ListPreference connectionMethod = findPreference(IPreferencePropertyAccessor.CONNECTION_METHOD); + if (connectionMethod != null) + { + connectionMethod.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() { + @Override + public boolean onPreferenceChange(Preference preference, Object newValue) { + preference.setSummary(newValue + " "); + return (true); + } + }); + connectionMethod.setSummary(connectionMethod.getValue() + " "); + } + + Preference opcPreference = findPreference("opc_settings"); + if (opcPreference != null) + { + opcPreference.setOnPreferenceClickListener(this); + } + Preference gr2Preference = findPreference("ricoh_settings"); + if (gr2Preference != null) + { + gr2Preference.setOnPreferenceClickListener(this); + } + Preference fujiXPreference = findPreference("fuji_x_settings"); + if (fujiXPreference != null) + { + fujiXPreference.setOnPreferenceClickListener(this); + } + + Preference debug = findPreference("debug_info"); + if (debug != null) + { + debug.setOnPreferenceClickListener(logCatViewer); + } + + Preference wifi = findPreference("wifi_settings"); + if (wifi != null) + { + wifi.setOnPreferenceClickListener(this); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * + * + */ + @Override + public void onResume() + { + super.onResume(); + Log.v(TAG, " onResume() Start"); + try + { + synchronizedProperty(); + } + catch (Exception e) + { + e.printStackTrace(); + } + + Log.v(TAG, " onResume() End"); + } + + /** + * + * + */ + @Override + public void onPause() + { + super.onPause(); + Log.v(TAG, " onPause() Start"); + try + { + // Preference変更のリスナを解除 + preferences.unregisterOnSharedPreferenceChangeListener(this); + } + catch (Exception e) + { + e.printStackTrace(); + } + + Log.v(TAG, " onPause() End"); + } + + /** + * ListPreference の表示データを設定 + * + * @param pref_key Preference(表示)のキー + * @param key Preference(データ)のキー + * @param defaultValue Preferenceのデフォルト値 + */ + private void setListPreference(String pref_key, String key, String defaultValue) + { + try + { + ListPreference pref; + pref = findPreference(pref_key); + String value = preferences.getString(key, defaultValue); + if (pref != null) + { + pref.setValue(value); + pref.setSummary(value); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * BooleanPreference の表示データを設定 + * + * @param pref_key Preference(表示)のキー + * @param key Preference(データ)のキー + * @param defaultValue Preferenceのデフォルト値 + */ + private void setBooleanPreference(String pref_key, String key, boolean defaultValue) + { + try + { + CheckBoxPreference pref = findPreference(pref_key); + if (pref != null) + { + boolean value = preferences.getBoolean(key, defaultValue); + pref.setChecked(value); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * + * + */ + private void synchronizedProperty() + { + final FragmentActivity activity = getActivity(); + if (activity != null) + { + activity.runOnUiThread(new Runnable() { + @Override + public void run() { + try + { + // Preferenceの画面に反映させる + setBooleanPreference(IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, IPreferencePropertyAccessor.AUTO_CONNECT_TO_CAMERA, true); + setBooleanPreference(IPreferencePropertyAccessor.CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW, IPreferencePropertyAccessor.CAPTURE_BOTH_CAMERA_AND_LIVE_VIEW, false); + setBooleanPreference(IPreferencePropertyAccessor.USE_PLAYBACK_MENU, IPreferencePropertyAccessor.USE_PLAYBACK_MENU, true); + setBooleanPreference(IPreferencePropertyAccessor.SHARE_AFTER_SAVE, IPreferencePropertyAccessor.SHARE_AFTER_SAVE, false); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + }); + } + } + + + @Override + public boolean onPreferenceClick(Preference preference) + { + try + { + String preferenceKey = preference.getKey(); + Log.v(TAG, " onPreferenceClick() : " + preferenceKey); + if (preferenceKey.contains("wifi_settings")) + { + // Wifi 設定画面を表示する + Log.v(TAG, " onPreferenceClick : " + preferenceKey); + if (context != null) + { + context.startActivity(new Intent(Settings.ACTION_WIFI_SETTINGS)); + } + } + else if (preferenceKey.contains("ricoh_settings")) + { + changeScene.changeSceneToConfiguration(ICameraConnection.CameraConnectionMethod.RICOH_GR2); + } + else if (preferenceKey.contains("fuji_x_settings")) + { + changeScene.changeSceneToConfiguration(ICameraConnection.CameraConnectionMethod.FUJI_X); + } + else if (preferenceKey.contains("opc_settings")) + { + changeScene.changeSceneToConfiguration(ICameraConnection.CameraConnectionMethod.OPC); + } + else + { + return (false); + } + return (true); + } + catch (Exception e) + { + e.printStackTrace(); + } + return (false); + } +} diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/scene/CameraSceneUpdater.java b/app/src/main/java/net/osdn/gokigen/gr2control/scene/CameraSceneUpdater.java index c0a3ce6..f01fa10 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/scene/CameraSceneUpdater.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/scene/CameraSceneUpdater.java @@ -9,6 +9,7 @@ import net.osdn.gokigen.gr2control.camera.IInterfaceProvider; import net.osdn.gokigen.gr2control.liveview.IStatusViewDrawer; import net.osdn.gokigen.gr2control.logcat.LogCatFragment; import net.osdn.gokigen.gr2control.playback.ImageGridViewFragment; +import net.osdn.gokigen.gr2control.preference.Gr2ControlPreferenceFragment; import net.osdn.gokigen.gr2control.preference.fuji_x.FujiXPreferenceFragment; import net.osdn.gokigen.gr2control.preference.olympus.PreferenceFragment; import net.osdn.gokigen.gr2control.preference.ricohgr2.RicohGr2PreferenceFragment; @@ -30,6 +31,10 @@ public class CameraSceneUpdater implements ICameraStatusReceiver, IChangeScene private IStatusViewDrawer statusViewDrawer; private PreferenceFragmentCompat preferenceFragment = null; + private PreferenceFragmentCompat preferenceFragmentOpc = null; + private PreferenceFragmentCompat preferenceFragmentRicoh = null; + private PreferenceFragmentCompat preferenceFragmentFujiX = null; + private LogCatFragment logCatFragment = null; private ImageGridViewFragment imageGridViewFragment = null; @@ -194,37 +199,41 @@ public class CameraSceneUpdater implements ICameraStatusReceiver, IChangeScene // IChangeScene @Override - public void changeSceneToConfiguration() + public void changeSceneToConfiguration(ICameraConnection.CameraConnectionMethod connectionMethod) { try { - if (preferenceFragment == null) + if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2) { - try - { - //preferenceFragment = RicohGr2PreferenceFragment.newInstance(activity, this); - ICameraConnection.CameraConnectionMethod connectionMethod = interfaceProvider.getCammeraConnectionMethod(); - if (connectionMethod == ICameraConnection.CameraConnectionMethod.RICOH_GR2) { - preferenceFragment = RicohGr2PreferenceFragment.newInstance(activity, this); - //} else if (connectionMethod == ICameraConnection.CameraConnectionMethod.SONY) { - // preferenceFragment = SonyPreferenceFragment.newInstance(this, this); - } - else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X) - { - preferenceFragment = FujiXPreferenceFragment.newInstance(activity, this); - } - else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC) - { - preferenceFragment = PreferenceFragment.newInstance(activity, interfaceProvider, this); - } - } - catch (Exception e) - { - e.printStackTrace(); - //preferenceFragment = SonyPreferenceFragment.newInstance(this, this); - } + changeSceneToRicohConfiguration(); + } + else if (connectionMethod == ICameraConnection.CameraConnectionMethod.FUJI_X) + { + changeSceneToFujiXConfiguration(); + } + else if (connectionMethod == ICameraConnection.CameraConnectionMethod.OPC) + { + changeSceneToOpcConfiguration(); } + else // if (connectionMethod == ICameraConnection.CameraConnectionMethod.UNKNOWN) + { + changeSceneToSummaryConfiguration(); + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + private void changeSceneToSummaryConfiguration() + { + try + { + if (preferenceFragment == null) + { + preferenceFragment = Gr2ControlPreferenceFragment.newInstance(activity, this); + } FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment1, preferenceFragment); // backstackに追加 @@ -237,6 +246,66 @@ public class CameraSceneUpdater implements ICameraStatusReceiver, IChangeScene } } + private void changeSceneToOpcConfiguration() + { + try + { + if (preferenceFragmentOpc == null) + { + preferenceFragmentOpc = PreferenceFragment.newInstance(activity, interfaceProvider, this); + } + FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.fragment1, preferenceFragmentOpc); + // backstackに追加 + transaction.addToBackStack(null); + transaction.commit(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + private void changeSceneToRicohConfiguration() + { + try + { + if (preferenceFragmentRicoh == null) + { + preferenceFragmentRicoh = RicohGr2PreferenceFragment.newInstance(activity, this); + } + FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.fragment1, preferenceFragmentRicoh); + // backstackに追加 + transaction.addToBackStack(null); + transaction.commit(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + private void changeSceneToFujiXConfiguration() + { + try + { + if (preferenceFragmentFujiX == null) + { + preferenceFragmentFujiX = FujiXPreferenceFragment.newInstance(activity, this); + } + FragmentTransaction transaction = activity.getSupportFragmentManager().beginTransaction(); + transaction.replace(R.id.fragment1, preferenceFragmentFujiX); + // backstackに追加 + transaction.addToBackStack(null); + transaction.commit(); + } + catch (Exception e) + { + e.printStackTrace(); + } + } + // IChangeScene @Override public void changeCameraConnection() diff --git a/app/src/main/java/net/osdn/gokigen/gr2control/scene/IChangeScene.java b/app/src/main/java/net/osdn/gokigen/gr2control/scene/IChangeScene.java index 9dc4c7b..92fdc3f 100644 --- a/app/src/main/java/net/osdn/gokigen/gr2control/scene/IChangeScene.java +++ b/app/src/main/java/net/osdn/gokigen/gr2control/scene/IChangeScene.java @@ -1,12 +1,14 @@ package net.osdn.gokigen.gr2control.scene; +import net.osdn.gokigen.gr2control.camera.ICameraConnection; + /** * */ public interface IChangeScene { void changeSceneToCameraPropertyList(); - void changeSceneToConfiguration(); + void changeSceneToConfiguration(ICameraConnection.CameraConnectionMethod connectionMethod); void changeCameraConnection(); void changeSceneToDebugInformation(); void changeSceneToApiList(); diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml index 227b231..1710652 100644 --- a/app/src/main/res/values-ja/strings.xml +++ b/app/src/main/res/values-ja/strings.xml @@ -136,7 +136,7 @@ フォーカス点数[X,Y] (default: 7,7) 接続するカメラに合わせてフォーカス点数を指定します LV画像受信待ち間隔(default: 80) - ライブビュー画像受信間隔を指定します + ライブビュー画像受信待ち間隔を指定します。(単位:ms) コマンド間隔(default: 500) カメラ状態の確認間隔を調整します Special Thanks to @@ -191,4 +191,16 @@ Shutter Aperture + RICOH GR/PENTAX用設定 + + + Fujifilm X用設定 + + + Olympus Air用設定 + + + アプリ終了 (FUJI) + アプリ終了 (OPC) + アプリ終了 (RICOH) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index a4c64f4..9504cf2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -231,4 +231,17 @@ Shutter Aperture + + RICOH GR/PENTAX Settings + + + Fujifilm X Settings + + + Olympus Air Settings + + + Exit Application (FUJI) + Exit Application (OPC) + Exit Application (RICOH) diff --git a/app/src/main/res/xml/preferences_fuji_x.xml b/app/src/main/res/xml/preferences_fuji_x.xml index f128942..66c78a8 100644 --- a/app/src/main/res/xml/preferences_fuji_x.xml +++ b/app/src/main/res/xml/preferences_fuji_x.xml @@ -6,8 +6,8 @@ - + android:title="@string/pref_fuji_x_exit_only" /> + - + - + - + - - + diff --git a/app/src/main/res/xml/preferences_opc.xml b/app/src/main/res/xml/preferences_opc.xml index afe9783..0debb51 100644 --- a/app/src/main/res/xml/preferences_opc.xml +++ b/app/src/main/res/xml/preferences_opc.xml @@ -6,8 +6,8 @@ - + android:title="@string/pref_opc_exit_power_off" /> + - + + @@ -94,6 +95,7 @@ android:selectable="false" /> + diff --git a/app/src/main/res/xml/preferences_ricoh_gr2.xml b/app/src/main/res/xml/preferences_ricoh_gr2.xml index 9ea0916..1330325 100644 --- a/app/src/main/res/xml/preferences_ricoh_gr2.xml +++ b/app/src/main/res/xml/preferences_ricoh_gr2.xml @@ -6,8 +6,8 @@ - + android:title="@string/pref_ricoh_exit_power_off" /> + + @@ -43,15 +44,17 @@ android:key="gr2_lcd_sleep" android:title="@string/pref_gr2_lcd_sleep" /> + - + - + diff --git a/app/src/main/res/xml/preferences_summary.xml b/app/src/main/res/xml/preferences_summary.xml new file mode 100644 index 0000000..3fba833 --- /dev/null +++ b/app/src/main/res/xml/preferences_summary.xml @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + -- 2.11.0